volumes: clsi-cache: clsi-output: filestore-public-files: filestore-template-files: filestore-uploads: filestore-user-files: mongo-data: redis-data: sharelatex-data: spelling-cache: web-data: history-v1-buckets: services: chat: build: context: .. dockerfile: services/chat/Dockerfile env_file: - dev.env clsi: build: context: .. dockerfile: services/clsi/Dockerfile env_file: - dev.env environment: - DOCKER_RUNNER=true - TEXLIVE_IMAGE=texlive-full # docker build texlive -t texlive-full - COMPILES_HOST_DIR=${PWD}/compiles user: root volumes: - ${PWD}/compiles:/overleaf/services/clsi/compiles - ${DOCKER_SOCKET_PATH:-/var/run/docker.sock}:/var/run/docker.sock - clsi-cache:/overleaf/services/clsi/cache - clsi-output:/overleaf/services/clsi/output contacts: build: context: .. dockerfile: services/contacts/Dockerfile env_file: - dev.env docstore: build: context: .. dockerfile: services/docstore/Dockerfile env_file: - dev.env document-updater: build: context: .. dockerfile: services/document-updater/Dockerfile env_file: - dev.env filestore: build: context: .. dockerfile: services/filestore/Dockerfile env_file: - dev.env # environment: # - ENABLE_CONVERSIONS=true volumes: - filestore-public-files:/overleaf/services/filestore/public_files - filestore-template-files:/overleaf/services/filestore/template_files - filestore-uploads:/overleaf/services/filestore/uploads - filestore-user-files:/overleaf/services/filestore/user_files history-v1: build: context: .. dockerfile: services/history-v1/Dockerfile env_file: - dev.env environment: OVERLEAF_EDITOR_ANALYTICS_BUCKET: "/buckets/analytics" OVERLEAF_EDITOR_BLOBS_BUCKET: "/buckets/blobs" OVERLEAF_EDITOR_CHUNKS_BUCKET: "/buckets/chunks" OVERLEAF_EDITOR_PROJECT_BLOBS_BUCKET: "/buckets/project_blobs" OVERLEAF_EDITOR_ZIPS_BUCKET: "/buckets/zips" PERSISTOR_BACKEND: fs volumes: - history-v1-buckets:/buckets mongo: image: mongo:5 command: --replSet overleaf ports: - "127.0.0.1:27017:27017" # for debugging volumes: - mongo-data:/data/db healthcheck: test: 'test $$(mongosh --eval "rs.initiate({ _id: "overleaf", members: [ { _id: 0, host: "mongo:27017" } ] }).ok || rs.status().ok" --quiet) -eq 1' interval: 30s start_period: 30s notifications: build: context: .. dockerfile: services/notifications/Dockerfile env_file: - dev.env project-history: build: context: .. dockerfile: services/project-history/Dockerfile env_file: - dev.env real-time: build: context: .. dockerfile: services/real-time/Dockerfile env_file: - dev.env redis: image: redis:5 ports: - "127.0.0.1:6379:6379" # for debugging volumes: - redis-data:/data spelling: build: context: .. dockerfile: services/spelling/Dockerfile env_file: - dev.env volumes: - spelling-cache:/overleaf/services/spelling/cache web: build: context: .. dockerfile: services/web/Dockerfile target: dev env_file: - dev.env environment: - APP_NAME=Overleaf Community Edition - ENABLED_LINKED_FILE_TYPES=project_file,project_output_file - EMAIL_CONFIRMATION_DISABLED=true - NODE_ENV=development - SHARELATEX_ALLOW_PUBLIC_ACCESS=true command: ["node", "app.js"] volumes: - sharelatex-data:/var/lib/sharelatex - web-data:/overleaf/services/web/data depends_on: - mongo - redis - chat - clsi - contacts - docstore - document-updater - filestore - history-v1 - notifications - project-history - real-time - spelling webpack: build: context: .. dockerfile: services/web/Dockerfile target: dev command: ["npx", "webpack", "serve", "--config", "webpack.config.dev-env.js"] ports: - "127.0.0.1:80:3808" volumes: - ./webpack.config.dev-env.js:/overleaf/services/web/webpack.config.dev-env.js