Self-hosting
Deploy Certo in your own environment
The project is designed to be self-hostable. The main production concerns are environment configuration, persistence, secrets handling, and reverse proxy setup.
Environment essentials
- Set NUXT_PUBLIC_API_URL for the frontend app
- Set HOST, PORT, APP_KEYS, JWT_SECRET, and DATABASE settings for Strapi
- Configure FRONTEND_URL and any email provider variables used in credential actions
Deployment options
- Docker Compose is the easiest path for local or lightweight self-hosting
- Helm values are available under helm/certo for Kubernetes deployments
- Use a reverse proxy in front of the app for TLS termination and production hardening
Operational checklist
- Protect keys and secrets with a real secret manager or environment injection layer
- Persist uploads and database storage across restarts
- Review the monitoring and backup docs before exposing the stack publicly
Required environment variables
Frontend
NUXT_PUBLIC_API_URL=http://localhost:1337
NUXT_PUBLIC_WEBSITE_URL=http://localhost:3000Backend
HOST=0.0.0.0
PORT=1337
APP_KEYS=your-app-keys
JWT_SECRET=your-jwt-secret
ADMIN_JWT_SECRET=your-admin-jwt-secret
DATABASE_CLIENT=postgres
DATABASE_HOST=localhostProduction deployment notes
For production, prefer a managed secret layer, durable storage for uploads and the database, and reverse proxy termination for TLS. The repository includes Docker Compose and Helm examples, as well as docs for reverse proxy and Kubernetes deployment patterns.