services: nextcloud: # image: nextcloud:latest build: context: . dockerfile: Dockerfile container_name: nextcloud restart: unless-stopped depends_on: - postgres - redis - imaginary volumes: - ./app:/var/www/html - ./data:/var/www/html/data environment: - POSTGRES_DB=nextcloud - POSTGRES_USER=nextcloud - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_HOST=postgres - NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.timothykim.net - REDIS_HOST=redis - SMTP_HOST=smtp.fastmail.com - SMTP_SECURE=ssl - SMTP_PORT=465 - SMTP_AUTHTYPE=LOGIN - SMTP_NAME=timothykim@fastmail.fm - SMTP_PASSWORD=${SMTP_PASSWORD} - MAIL_FROM_ADDRESS=nextcloud.timothykim.net - MAIL_DOMAIN=fastmail.com - PHP_MEMORY_LIMIT=8G - PHP_UPLOAD_LIMIT=20G - APACHE_BODY_LIMIT=0 networks: - nextcloud_net - internal_net - shared healthcheck: test: ["CMD", "curl", "-f", "http://localhost/status.php"] interval: 30s timeout: 10s retries: 10 start_period: 120s appapi-harp: image: ghcr.io/nextcloud/nextcloud-appapi-harp:release container_name: appapi-harp hostname: appapi-harp restart: unless-stopped depends_on: nextcloud: condition: service_healthy environment: - HP_SHARED_KEY=${HP_SHARED_KEY} - NC_INSTANCE_URL=https://nextcloud.timothykim.net volumes: - /var/run/docker.sock:/var/run/docker.sock - ./certs:/certs networks: - nextcloud_net postgres: image: postgres:17-alpine container_name: nextcloud-db restart: unless-stopped volumes: - ./db:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_USER=nextcloud - POSTGRES_DB=nextcloud networks: - internal_net redis: image: redis:alpine container_name: nextcloud-redis restart: unless-stopped networks: - internal_net imaginary: image: nextcloud/aio-imaginary:latest container_name: nextcloud-imaginary restart: unless-stopped environment: - PORT=9000 networks: - internal_net networks: internal_net: nextcloud_net: external: true shared: external: true