Open the server Apps tab
Select the tutorial-vps VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Open-source design and prototyping platform for cross-domain teams (Figma alternative)
Add your server credentials to Server Compass
Choose from our template library
Fill in settings and click Deploy
Use the Penpot template in Server Compass to deploy a self-hosted design and prototyping platform on your VPS, then verify the login UI in a browser.
Select the tutorial-vps VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Click New App and choose the template deployment path so Server Compass can load the built-in catalog.

Use the template picker search to find Penpot in the Server Compass template catalog.

Choose the Penpot template. Server Compass fills the frontend, backend, exporter, Postgres, and Valkey services with generated secrets and persistent asset/database volumes.

Confirm the app name and compose services. In this run, the app was named penpot-demo and used host port 9001.

Review the generated compose settings, confirm the web port is available, keep the generated secret and database password hidden, and click Deploy Now.

Keep the deployment modal open while Server Compass uploads the compose file, pulls the Penpot image, starts the container, and verifies the stack.

After deployment finishes, return to the Apps tab and confirm the Penpot app is marked Running with its application URL available.

Click Open Application or open the application URL in a browser. The Penpot login screen confirms the design platform is reachable.

It deploys Penpot frontend, backend, exporter, Postgres, and Valkey services with persistent assets and database volumes.
The tutorial used host port 9001, which maps to the Penpot web UI on container port 8080.
A fresh Penpot deployment is considered reachable when the login screen loads. User provisioning and registration policy depend on your production access model.
No. The deployment guide should live on the Penpot template detail page and be linked from the reusable template deployment docs page.
Deploy Penpot the traditional way with SSH and Docker Compose.
Open a terminal session and log into your VPS. Replace the placeholder with your actual IP.
# Connect via SSH
ssh root@your-vps-ip
# Alternative with key file
ssh -i /path/to/key root@your-vps-ipFirst time? Make sure Docker is installed on your VPS. Run: curl -fsSL https://get.docker.com | sh
Create a workspace for your deployment files.
# Create and navigate to project directory
mkdir -p ~/apps/penpot
cd ~/apps/penpotConfigure your containers with this Docker Compose setup:
services:
penpot-frontend:
image: penpotapp/frontend:latest
ports:
- "9001:8080"
environment:
- PENPOT_FLAGS=disable-registration enable-login disable-email-verification
- PENPOT_BACKEND_URI=http://penpot-backend:6060
- PENPOT_EXPORTER_URI=http://penpot-exporter:6061
restart: unless-stopped
depends_on:
- penpot-backend
- penpot-exporter
penpot-backend:
image: penpotapp/backend:latest
environment:
- PENPOT_FLAGS=disable-registration enable-login disable-email-verification disable-secure-session-cookies
- PENPOT_SECRET_KEY=<your-secret-key>
- PENPOT_PUBLIC_URI=http://localhost:9001
- PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot
- PENPOT_DATABASE_USERNAME=penpot
- PENPOT_DATABASE_PASSWORD=<your-db-password>
- PENPOT_REDIS_URI=redis://penpot-valkey/0
- PENPOT_OBJECTS_STORAGE_BACKEND=fs
- PENPOT_OBJECTS_STORAGE_FS_DIRECTORY=/opt/data/assets
volumes:
- penpot_assets:/opt/data/assets
restart: unless-stopped
depends_on:
penpot-postgres:
condition: service_healthy
penpot-valkey:
condition: service_started
penpot-exporter:
image: penpotapp/exporter:latest
environment:
- PENPOT_PUBLIC_URI=http://penpot-frontend:8080
- PENPOT_REDIS_URI=redis://penpot-valkey/0
restart: unless-stopped
penpot-postgres:
image: postgres:15-alpine
environment:
- POSTGRES_INITDB_ARGS=--data-checksums
- POSTGRES_DB=penpot
- POSTGRES_USER=penpot
- POSTGRES_PASSWORD=<your-db-password>
volumes:
- penpot_db:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U penpot -d penpot"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
penpot-valkey:
image: valkey/valkey:8.1-alpine
restart: unless-stopped
volumes:
penpot_assets:
penpot_db:
PORTHost port to expose(default: 9001)SECRET_KEYMaster secret keyDB_PASSWORDDatabase passwordSpin up the containers and verify the deployment.
# Start all services
docker compose up -d
# List running containers
docker compose ps
# Watch the logs
docker compose logs -fAllow incoming traffic on the application port.
# Allow the application port through firewall
sudo ufw allow 9001/tcp
sudo ufw reload
# Access your app at:
# http://your-server-ip:9001Server Compass makes deploying Penpot effortless. Visual setup, one-click deploy, done.
After deploying Penpot with Server Compass, complete these steps to finish setup
Open the Penpot URL in your browser
Create your account
Create a new project and start designing
Invite team members for collaboration
Need help? Check out our documentation for detailed guides.
Common questions about self-hosting Penpot
Simply download Server Compass, connect to your VPS, and select Penpot from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.
Penpot requires a minimum of 2048MB RAM. We recommend a VPS with at least 4096MB RAM for optimal performance. Any modern Linux server with Docker support will work.
Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard Penpot backup and restore procedures.
Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest Penpot image will be pulled and deployed with zero downtime.
Penpot 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.

Open-source backend in a single file with realtime database, auth, and file storage

Open-source backend-as-a-service - self-hosted Firebase alternative

Open-source backend framework with dashboard

Full Supabase self-hosted with Kong, GoTrue Auth, Realtime, and Studio
Download Server Compass and deploy Penpot to your VPS in under 3 minutes. No Docker expertise required.
Download Server Compass