version: '3.2' services: db: image: postgres:${postgres_version:-14} restart: unless-stopped environment: - POSTGRES_DB=nextcloud - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres volumes: - postgres_data:/var/lib/postgresql/data networks: - database app: image: nextcloud:${nextcloud_version:-latest} restart: unless-stopped volumes: - /media/nextcloud/nextcloud_data:/var/www/html/data - /media/nextcloud/nextcloud_config:/var/www/html/config - /media/nextcloud/nextcloud_apps:/var/www/html/custom_apps environment: - VIRTUAL_HOST=cloud.jfreudenberger.de # the domain where the service should be reached - VIRTUAL_PORT=80 # the port the service listens in the container - LETSENCRYPT_HOST=cloud.jfreudenberger.de # the same domain as VIRTUAL_HOST; this enables ssl depends_on: - db networks: - webproxy - database - onlyoffice - redis - smtp_relay onlyoffice: image: onlyoffice/documentserver:${onlyoffice_version:-latest} restart: unless-stopped environment: - VIRTUAL_HOST=onlyoffice.jfreudenberger.de # the domain where the service should be reached - VIRTUAL_PORT=80 # the port the service listens in the container - LETSENCRYPT_HOST=onlyoffice.jfreudenberger.de # the same domain as VIRTUAL_HOST; this enables ssl - JWT_ENABLED=${ONLYOFFICE_JWT_ENABLED:-false} - JWT_SECRET=${ONLYOFFICE_JWT_SECRET} volumes: - document_data:/var/www/onlyoffice/Data - document_log:/var/log/onlyoffice networks: - onlyoffice - webproxy redis: image: redis:${redis_version:-latest} restart: unless-stopped networks: - redis networks: database: onlyoffice: redis: webproxy: external: true name: webproxy smtp_relay: external: true name: smtp_relay volumes: postgres_data: document_data: document_log: