services: app: image: ghcr.io/manyfold3d/manyfold:${MANYFOLD_APP_VERSION:-latest} container_name: manyfold-app ports: - ${MANYFOLD_PORT:-3214}:3214 volumes: - manyfold-app:/libraries environment: PUID: ${MANYFOLD_PUID:-1000} PGID: ${MANYFOLD_PGID:-1000} SECRET_KEY_BASE: ${MANYFOLD_SECRET_KEY:-a_nice_long_random_string} DATABASE_ADAPTER: postgresql DATABASE_HOST: db DATABASE_PORT: 5432 DATABASE_USER: ${MANYFOLD_DB_USERNAME:-manyfold} DATABASE_PASSWORD: ${MANYFOLD_DB_PASSWORD:-changeme} DATABASE_NAME: manyfold REDIS_URL: redis://redis:6379/1 depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - manyfold healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3214/health"] interval: 30s timeout: 10s retries: 5 start_period: 60s deploy: resources: limits: memory: 512M restart: unless-stopped db: image: postgres:${MANYFOLD_DB_VERSION:-15} container_name: manyfold-db volumes: - manyfold-db:/var/lib/postgresql/data environment: POSTGRES_USER: ${MANYFOLD_DB_USERNAME:-manyfold} POSTGRES_PASSWORD: ${MANYFOLD_DB_PASSWORD:-changeme} networks: - manyfold healthcheck: test: ["CMD-SHELL", "pg_isready -U ${MANYFOLD_DB_USERNAME:-manyfold}"] interval: 10s timeout: 5s retries: 5 start_period: 30s deploy: resources: limits: memory: 1G restart: unless-stopped redis: image: redis:${MANYFOLD_REDIS_VERSION:-7} container_name: manyfold-redis volumes: - manyfold-redis:/data networks: - manyfold healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 start_period: 20s deploy: resources: limits: memory: 512M restart: unless-stopped volumes: manyfold-app: name: manyfold-app driver: local driver_opts: type: nfs o: "addr=${MANYFOLD_NFS_SERVER},rw,noatime,rsize=65536,wsize=65536,timeo=600,nfsvers=4" device: "${MANYFOLD_APP_NFS_DEVICE}" manyfold-db: name: manyfold-db driver: local driver_opts: type: nfs o: "addr=${MANYFOLD_NFS_SERVER},rw,noatime,rsize=65536,wsize=65536,timeo=600,nfsvers=4" device: "${MANYFOLD_DB_NFS_DEVICE}" manyfold-redis: name: manyfold-redis driver: local driver_opts: type: nfs o: "addr=${MANYFOLD_NFS_SERVER},rw,noatime,rsize=65536,wsize=65536,timeo=600,nfsvers=4" device: "${MANYFOLD_REDIS_NFS_DEVICE}" networks: manyfold: