services: postgres: image: postgres:17 restart: unless-stopped env_file: ./.env volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] interval: 10s retries: 5 start_period: 10s timeout: 10s deploy: replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 5 window: 60s server: image: gitea.futureporn.net/futureporn/our:latest env_file: ./.env depends_on: - postgres init: true entrypoint: > sh -c "npx prisma migrate deploy && npm run start:server" volumes: - /mnt/vfs/futureporn:/mnt/vfs/futureporn ports: - target: 5000 # container port published: 8084 # Swarm ingress port protocol: tcp mode: ingress worker: image: gitea.futureporn.net/futureporn/our:latest env_file: ./.env depends_on: - postgres init: true entrypoint: > sh -c "npm run start:worker" volumes: - /mnt/vfs/futureporn:/mnt/vfs/futureporn deploy: replicas: 2 restart_policy: condition: on-failure delay: 5s max_attempts: 5 window: 60s update_config: parallelism: 1 delay: 10s resources: limits: cpus: "0.5" memory: 2G qbittorrent: image: gitea.futureporn.net/futureporn/qbittorrent-nox:latest env_file: ./.env init: false volumes: - /mnt/vfs/futureporn:/mnt/vfs/futureporn