1.7 KiB
Production Deployment Runtime Foundation
This project can be deployed in a dedicated Proxmox container using Docker Compose. The files added here establish a minimal production runtime baseline without changing application business logic or Supabase security boundaries.
Dockerfile purpose
The Dockerfile uses a multi-stage build on Node 20:
- installs dependencies
- runs
next build - prepares a lean runtime image with production dependencies
- runs the app with
next starton port3000
This keeps the runtime image small and focused on serving the built Next.js app.
docker-compose.prod.yml purpose
docker-compose.prod.yml defines one service:
- service name:
web - container name:
plesk-agency-portal - restart policy:
unless-stopped - environment from
.env - port mapping
3000:3000 - health check against
/api/health
External Supabase requirement
Supabase remains external to this application container. The app container must only connect to Supabase via environment variables. No local Supabase container is included in this production compose file.
Health endpoint usage
GET /api/health provides a fast, dependency-light runtime check for container orchestration and uptime checks.
Example:
curl -s http://localhost:3000/api/health
Expected response shape:
ok: trueservice: "plesk-agency-portal"timestampenvironment
Production environment expectations
Before deploying, set production-safe values in .env (using .env.example as the template), including:
- app URL and
NODE_ENV - Supabase public and server credentials
- Plesk credential encryption key
- Stripe secrets
- cron/job shared secrets
Keep secrets out of source control.