# Dokploy "Compose" application. Two services share one image + a storage volume. # Set the env vars in Dokploy's Environment tab (they populate the .env Dokploy # generates, which feeds both the build args and runtime env below). services: web: build: context: . args: NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL} NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: ${NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY} image: podcastyes:latest # Apply pending migrations on boot, then serve. command: sh -c "npx prisma migrate deploy && npm run start" restart: unless-stopped environment: STORAGE_DIR: /app/storage PORT: "3000" volumes: - storage:/app/storage expose: - "3000" # Dokploy attaches the Traefik router (domain + SSL) to this service on port 3000. worker: image: podcastyes:latest command: npx tsx worker/index.ts restart: unless-stopped environment: STORAGE_DIR: /app/storage volumes: - storage:/app/storage depends_on: - web volumes: storage: