
Strapi
Headless CMS powered by Node.js with PostgreSQL
Deploy Strapi in 3 Steps
Connect Your VPS
Add your server credentials to Server Compass
Select Strapi
Choose from our template library
Deploy & Configure
Fill in settings and click Deploy
Deploy Strapi Yourself
Want full control? Here's how to deploy Strapi yourself using Docker Compose.
Connect to Your VPS via SSH
Fire up your terminal application and establish a connection to your remote server.
# Access your VPS
ssh root@YOUR_SERVER_IP
# With SSH key authentication
ssh -i ~/.ssh/your-private-key root@YOUR_SERVER_IPFirst time? Ensure Docker is installed first: curl -fsSL https://get.docker.com | sh
Initialize Project Folder
Create a folder to house your Docker Compose configuration.
# Create and navigate to project directory
mkdir -p ~/apps/strapi
cd ~/apps/strapiCreate Docker Configuration
Define your services in a docker-compose.yml file:
services:
strapi:
image: node:20-bookworm-slim
ports:
- "1337:1337"
environment:
- NODE_ENV=development
- HOST=0.0.0.0
- PORT=1337
- DATABASE_CLIENT=postgres
- DATABASE_HOST=db
- DATABASE_PORT=5432
- DATABASE_NAME=strapi
- DATABASE_USERNAME=strapi
- DATABASE_PASSWORD=<your-db-password>
- APP_KEYS=<your-app-keys>
- API_TOKEN_SALT=<your-api-token-salt>
- ADMIN_JWT_SECRET=<your-admin-jwt-secret>
- TRANSFER_TOKEN_SALT=<your-transfer-token-salt>
- JWT_SECRET=<your-jwt-secret>
- STRAPI_TELEMETRY_DISABLED=true
volumes:
- strapi_app:/opt/app
working_dir: /opt/app
command: >
sh -c "
if [ ! -f package.json ]; then
echo 'Initializing new Strapi v4 project...';
npx --yes create-strapi-app@4 . --no-run --skip-cloud --dbclient=postgres --dbhost=db --dbport=5432 --dbname=strapi --dbusername=strapi --dbpassword=<your-db-password> --dbssl=false || exit 1;
fi;
[ -f package.json ] || { echo 'Strapi init failed'; exit 1; };
if [ $NODE_ENV = development ]; then npm run develop; else npm run build && npm run start; fi
"
depends_on:
db:
condition: service_healthy
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
- POSTGRES_DB=strapi
- POSTGRES_USER=strapi
- POSTGRES_PASSWORD=<your-db-password>
volumes:
- db_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U strapi -d strapi"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
volumes:
strapi_app:
db_data:
PORTHost port to expose(default: 1337)NODE_ENVEnvironment mode (development or production)(default: development)DB_NAMEDatabase name(default: strapi)DB_USERDatabase user(default: strapi)DB_PASSWORDDatabase passwordAPP_KEYSComma-separated Strapi APP_KEYSExecute the Deployment
Start your containers and verify they're running correctly.
# Launch the stack
docker compose up -d
# Verify container status
docker compose ps
# Follow the logs
docker compose logs --followAllow Network Access
Update UFW rules to allow traffic on the application port.
# Allow the application port through firewall
sudo ufw allow 1337/tcp
sudo ufw reload
# Access your app at:
# http://your-server-ip:1337Don't want to type commands? We've got you.
Skip the terminal and deploy Strapi with a visual interface. Configure everything with clicks, not commands.
- No terminal required
- Point-and-click setup
- Auto SSL certificates
- Rolling deployments
- Health monitoring
- Instant rollbacks
After Deployment
After deploying Strapi with Server Compass, complete these steps to finish setup
Complete Strapi setup wizard at /admin
Create an admin user and roles
In 'development' mode: Use Content-Type Builder to create collections
For production: Switch NODE_ENV to 'production' and redeploy to disable schema editing
Need help? Check out our documentation for detailed guides.
Strapi FAQ
Common questions about self-hosting Strapi
How do I deploy Strapi with Server Compass?
Simply download Server Compass, connect to your VPS, and select Strapi from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.
What are the system requirements for Strapi?
Strapi requires a minimum of 1024MB RAM. We recommend a VPS with at least 2048MB RAM for optimal performance. Any modern Linux server with Docker support will work.
Can I migrate my existing Strapi data?
Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard Strapi backup and restore procedures.
How do I update Strapi to the latest version?
Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest Strapi image will be pulled and deployed with zero downtime.
Is Strapi free to self-host?
Strapi is open-source software. You only pay for your VPS hosting (typically $5-20/month) and optionally Server Compass ($29 one-time). No subscription fees or per-seat pricing.
Ready to Self-Host Strapi?
Download Server Compass and deploy Strapi to your VPS in under 3 minutes. No Docker expertise required.
Download Server Compass



