Skip to content

Deploy a Strapi CMS on OrbixPanel

Strapi is a Node.js headless CMS, so it deploys like any Node server app: OrbixPanel builds it and runs it behind a reverse proxy.

Scripts in your repo

Strapi ships the right scripts by default:

{
"scripts": {
"build": "strapi build",
"start": "strapi start"
}
}

OrbixPanel runs npm ci → npm run build → npm start. The build step compiles the admin panel; strapi start runs the server.

The $PORT rule

Strapi reads its port from config/environment. OrbixPanel sets a PORT env var and proxies to it — make sure Strapi uses it. In config/server.js:

module.exports = ({ env }) => ({
host: '0.0.0.0',
port: env.int('PORT', 1337),
});

(Strapi honors HOST/PORT env vars — binding 0.0.0.0 and env PORT is what lets the reverse proxy reach it.)

Database

Don’t run Strapi on its default SQLite in production. Create a database (PostgreSQL or MySQL) and point Strapi at it with environment variables:

DATABASE_CLIENT=postgres
DATABASE_HOST=127.0.0.1
DATABASE_PORT=5432
DATABASE_NAME=strapi
DATABASE_USERNAME=strapi
DATABASE_PASSWORD=•••••

Also set Strapi’s secrets (APP_KEYS, JWT_SECRET, etc.) as environment variables — never commit them.

Deploy

Apps → Deploy from Git → repo + branch → Deploy → add your domain + SSL. See how deploys work.

Gotchas

  • Admin build is memory-hungry — if the build is killed, see disk & memory.
  • 502 after deploy → Strapi isn’t binding 0.0.0.0:$PORT, or the DB connection failed on boot. Check the deploy log.

Running OrbixPanel? Strapi deploys from Git with a managed Postgres/MySQL alongside. OrbixPanel.com → — the free, self-hosted, AI-powered hosting control panel.