Skip to main content

Configuration & Deployment

Our blog CMS is feature-complete. This chapter is a short deploy checklist for that project. The full recipes - environment config, PostgreSQL, Docker, PM2, nginx, and HTTPS -- live in one place: Configuration and Deployment. That page also has a production hardening checklist; OS-level steps (firewall, SSH, Fail2Ban) belong in your VPS/Linux hardening guides, not duplicated here.

Use the reference as the source of truth. Follow the steps below in order, opening the linked sections when you need the commands or file contents.

Deployment architecture​

Reverse proxy :1337Internetnginx + TLSStrapi (Node.js)PostgreSQL

Walkthrough​

  1. Environment-based config - create config/env/production/ overrides and a production .env. See Environment-based configuration and Environment variables. Use Strapi's own SSL flag name: DATABASE_SSL_REJECT_UNAUTHORIZED.
  2. PostgreSQL - switch the production database client off SQLite. See PostgreSQL (recommended for production).
  3. Ship the app - build the admin panel on the server (or in CI), then run with NODE_ENV=production. Docker users can start from Docker deployment.
  4. Keep it running - use PM2 or systemd. See PM2 deployment (VPS).
  5. Terminate TLS - put nginx in front and obtain certificates. See nginx reverse proxy and HTTPS.
  6. Harden and back up - walk the Production hardening checklist and set up the Backup strategy before you call the deploy done.

Acceptance check​

After the walkthrough:

  • Exactly one page owns the full deployment recipes: Configuration and Deployment.
  • Env var names match that page (including DATABASE_SSL_REJECT_UNAUTHORIZED).
  • The blog is reachable over HTTPS behind a reverse proxy, with PostgreSQL and a process manager.

Where to go from here​