services: nextcloud: image: nextcloud:latest container_name: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - POSTGRES_HOST=postgres - POSTGRES_DB=nextcloud - POSTGRES_USER=nextcloud - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} volumes: - ./nextcloud/config:/config - ~/data/nextcloud:/data ports: - 9443:80 restart: unless-stopped env_file: - .env networks: - productivity gitea: image: docker.gitea.com/gitea:1.25.4-rootless restart: always user: 1000:1000 volumes: - ~/data/git/data:/var/lib/gitea - ./gitea/config:/etc/gitea - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - productivity code-server: image: lscr.io/linuxserver/code-server:latest container_name: code-server environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - PASSWORD=${CODE_PASSWORD} - DEFAULT_WORKSPACE=/repositories volumes: - ./code/config:/config - ~/data/git/data/git/repositories:/repositories restart: unless-stopped networks: - productivity sharelatex: restart: always image: sharelatex/sharelatex container_name: sharelatex depends_on: mongo: condition: service_healthy redis: condition: service_started networks: - overleaf stop_grace_period: 60s volumes: - ./overleaf/sharelatex_data:/var/lib/overleaf environment: OVERLEAF_APP_NAME: Overleaf Community Edition OVERLEAF_MONGO_URL: mongodb://mongo/sharelatex OVERLEAF_REDIS_HOST: redis REDIS_HOST: redis ENABLED_LINKED_FILE_TYPES: "project_file,project_output_file" ENABLE_CONVERSIONS: "true" EMAIL_CONFIRMATION_DISABLED: "true" SANDBOXED_COMPILES: "true" SANDBOXED_COMPILES_HOST_DIR_COMPILES: "./overleaf/sharelatex_data/data/compiles" SANDBOXED_COMPILES_HOST_DIR_OUTPUT: "./overleaf/sharelatex_data/data/output" DOCKER_RUNNER: "true" SANDBOXED_COMPILES_SIBLING_CONTAINERS: "true" mongo: restart: always image: mongo container_name: mongo command: "--replSet overleaf" volumes: - ./overleaf/mongo_data:/data/db - ./overleaf/bin/shared/mongodb-init-replica-set.js:/docker-entrypoint-initdb.d/mongodb-init-replica-set.js environment: MONGO_INITDB_DATABASE: sharelatex extra_hosts: - mongo:127.0.0.1 networks: - overleaf healthcheck: test: echo 'db.stats().ok' | mongosh localhost:27017/test --quiet interval: 10s timeout: 10s retries: 5 redis: restart: always image: redis:6.2 container_name: redis networks: - overleaf volumes: - ./overleaf/redis_data:/data postgres: image: postgres:11 container_name: postgres_nextcloud restart: unless-stopped volumes: - ./postgres/dbdata:/var/lib/postgresql/data - ./postgres/dbdata/init:/docker-entrypoint-initdb.d env_file: - .env environment: - PGDATA=/var/lib/postgresql/data/nextcloud/ - POSTGRES_DB=nextcloud - POSTGRES_USER=nextcloud - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} networks: - productivity networks: productivity: external: true overleaf: external: true