services: pocketbase: build: ./pocketbase restart: unless-stopped environment: POCKETBASE_ADMIN_EMAIL: ${POCKETBASE_ADMIN_EMAIL} POCKETBASE_ADMIN_PASSWORD: ${POCKETBASE_ADMIN_PASSWORD} volumes: - pocketbase-data:/pb/pb_data healthcheck: test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:8090/api/health"] interval: 10s timeout: 5s retries: 5 frontend: build: ./frontend restart: unless-stopped depends_on: pocketbase: condition: service_healthy environment: NODE_ENV: production HOST: 0.0.0.0 PORT: 3000 NUXT_POCKETBASE_URL: ${POCKETBASE_URL} NUXT_PUBLIC_SITE_URL: ${PUBLIC_SITE_URL} NUXT_PUBLIC_POCKETBASE_URL: ${PUBLIC_POCKETBASE_URL} caddy: image: caddy:2-alpine restart: unless-stopped depends_on: - frontend - pocketbase ports: - "80:80" - "443:443" # Host uses systemd-resolved (127.0.0.53), unreachable from inside the # container network namespace; ACME lookups need a real resolver. dns: - 1.1.1.1 - 8.8.8.8 environment: PUBLIC_DOMAIN: ${PUBLIC_DOMAIN} ACME_EMAIL: ${ACME_EMAIL} volumes: - ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro - caddy-data:/data - caddy-config:/config volumes: pocketbase-data: caddy-data: caddy-config: