Checklist before production
Use this checklist before sending real traffic to an application on Zenifra. It helps review the points that most often cause production issues: port, variables, database, logs, domain, permissions, and billing.
Application
- the application starts locally with the same command configured in the console
- the port configured on Zenifra matches the port used by the application
- the server listens on
0.0.0.0, not only onlocalhost - there is a simple health route, such as
/health - dependencies are declared in
package.json,package-lock.json, orrequirements.txt - secrets are not versioned in the repository
Deployment
- the selected source fits the flow: GitHub or Forgejo repository for source builds, OCI for ready images
- production branch is correct
- select Automatic by branch only if the watched branch is stable
- OCI image tags identify real versions
- the project port matches the port exposed by the OCI image, such as
80for the official NGINX image - build logs were reviewed after the last publication
- operational rollback was planned before critical changes
- the team knows build logs live in Build logs and are different from application logs
Variables and secrets
DATABASE_URLwas configured manually when a database is used- API keys, tokens, and passwords are stored as environment variables
- variable names match the names used by the application
- production values do not reuse local or test credentials
- the team knows who can edit variables in the console
Database
- engine and version match the application
- storage is sized for production
- storage increase rules are understood
- connection pooling is configured in the application
- migrations were tested before deployment
- connection details were stored securely
- there is your own dump or export routine, with a tested restore, because Zenifra does not offer automatic backups with restore from the console
Observability
- logs appear in the console (application logs on every plan, read live with no stored history)
- CPU, RAM, storage, and HTTP request metrics were checked
- the team knows where to check build logs and application logs
- email alerts were enabled and external alerts or a monitoring routine were defined when needed
- the team follows platform incidents at status.zenifra.com
- diagnostic route shows version or commit when that helps support
Security and access
- organization permissions were reviewed
- members have only the access they need
- API keys were stored securely
- whitelist or blacklist was configured for internal projects (from the Premium Plus plan)
- custom domain points to the correct destination
- incident response ownership was agreed internally
Billing
- credit or payment method is available
- billing mode is understood
- persistent storage cost was considered
- AI usage is limited by budget when applicable
- the person responsible for billing has console access
Next steps
FAQ
Do I need to complete every item?
For real production, yes. In test environments, some items can be simplified, but port, variables, logs, and billing should always be reviewed.
Does this checklist replace application tests?
No. It reviews operations on Zenifra. Unit, integration, load, and migration tests remain the project's responsibility.
When should I review it again?
Review it before large changes, plan changes, instance increases, database changes, domain changes, or critical variable changes.
Last updated on
Production deploy on Zenifra
Complete guide to publish an application in production on Zenifra with GitHub, Forgejo, or an OCI image, variables, database, logs, metrics, and billing.
Limits and quotas
Known Zenifra operational limits for API, variables, instances, previews, domains, database, Jobs, logs, metrics, deployment, and AI.