services: server: image: gitea.futureporn.net/futureporn/our:latest init: true command: > sh -c "npx prisma migrate deploy && npm run start:server" volumes: - /mnt/vfs/futureporn:/mnt/vfs/futureporn ports: - target: 3000 published: 8086 protocol: tcp mode: ingress healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/health"] interval: 10s retries: 5 start_period: 10s timeout: 10s worker: image: gitea.futureporn.net/futureporn/our:latest 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 init: false volumes: - /mnt/vfs/futureporn:/mnt/vfs/futureporn postgres: image: postgres:17 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 pgadmin: image: dpage/pgadmin4:latest network_mode: service:tailscale-pgadmin environment: PGADMIN_DISABLE_POSTFIX: 1 tailscale-pgadmin: image: tailscale/tailscale:latest volumes: - /mnt/vfs/futureporn/tailscale/state:/var/lib/tailscale - /mnt/vfs/futureporn/tailscale/config:/config devices: - /dev/net/tun:/dev/net/tun cap_add: - net_admin restart: unless-stopped environment: TS_EXTRA_ARGS: --advertise-tags=tag:container --reset" TS_SERVE_CONFIG: /config/pgadmin.json TS_STATE_DIR: /var/lib/tailscale TS_USERSPACE: false volumes: pgdata: networks: default: external: true name: our