Replace build-time NEXT_PUBLIC_* environment variables with server-side runtime configuration. This allows changing the Pastel API URL without rebuilding the Docker image. **Changes:** - Add Next.js API proxy route at /api/pastel/[...path] for server-side proxying - Update API client to use proxy endpoint instead of direct API URL - Replace NEXT_PUBLIC_API_URL with server-side PASTEL_API_URL - Remove build arguments from Dockerfile (no longer needed) - Simplify docker-compose.yml to use runtime environment variables only - Update all .env files to reflect new configuration approach - Add comprehensive DOCKER.md documentation **Benefits:** - No rebuild required to change API URL - Same image works across all environments (dev/staging/prod) - Better security (API URL not exposed in client bundle) - Simpler deployment and configuration management **Migration:** Old: NEXT_PUBLIC_API_URL (build-time, embedded in bundle) New: PASTEL_API_URL (runtime, read by server proxy) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
44 lines
1015 B
YAML
44 lines
1015 B
YAML
version: '3.8'
|
|
|
|
services:
|
|
pastel-ui:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
image: ghcr.io/valknarness/pastel-ui:latest
|
|
container_name: pastel-ui
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
- NODE_ENV=production
|
|
# Runtime configuration - can be changed without rebuilding
|
|
- PASTEL_API_URL=${PASTEL_API_URL:-http://pastel-api:3001}
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
pastel-api:
|
|
image: ghcr.io/valknarness/pastel-api:latest
|
|
container_name: pastel-api
|
|
ports:
|
|
- "3001:3001"
|
|
environment:
|
|
- RUST_LOG=info
|
|
- PORT=3001
|
|
- HOST=0.0.0.0
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
networks:
|
|
default:
|
|
name: pastel-network
|