Back to all templates
Penpot logo

Penpot

Development2048MB+ RAM

Open-source design and prototyping platform for cross-domain teams (Figma alternative)

designprototypingfigma-alternativeui-uxcollaboration

Deploy Penpot in 3 Steps

1

Connect Your VPS

Add your server credentials to Server Compass

2

Select Penpot

Choose from our template library

3

Deploy & Configure

Fill in settings and click Deploy

No Docker knowledge required
Step-by-step deployment guide

Deploy Penpot on a VPS with Server Compass

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.

About 10 minutesBrowser verified
1
Step 1

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.

Server Compass Apps tab before creating a Penpot app
2
Step 2

Choose an app template

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

Choosing to deploy an app from a Server Compass template
3
Step 3

Search for Penpot

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

Searching for Penpot in the Server Compass template picker
4
Step 4

Select the Penpot template

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

Penpot template selected in Server Compass
5
Step 5

Review the Penpot settings

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

Reviewing Penpot project settings and compose services
6
Step 6

Deploy Penpot

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

Reviewing Penpot environment variables and port before deployment
7
Step 7

Watch the deployment progress

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

Server Compass deploying the Penpot template on the VPS
8
Step 8

Confirm Penpot is running

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

Penpot template running in the Server Compass Apps tab
9
Step 9

Open Penpot in the browser

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

The deployed Penpot first-run screen loaded in a browser

After Penpot Opens

  • The current template disables public registration by default; temporarily enable registration or provision users before inviting a team.
  • Add a domain and HTTPS before exposing Penpot outside a private network.
  • Review team, project, and asset permissions before using Penpot for production design work.
  • Keep the database password and Penpot secret key in a secure vault.
  • Back up the Penpot assets and Postgres volumes before relying on production files.

Verified Result

The Penpot web UI loaded successfully in a browser.

Penpot deployment questions

What does the Penpot template deploy?

It deploys Penpot frontend, backend, exporter, Postgres, and Valkey services with persistent assets and database volumes.

Which port did the tutorial use?

The tutorial used host port 9001, which maps to the Penpot web UI on container port 8080.

Why does the browser verification stop at the first web UI screen?

A fresh Penpot deployment is considered reachable when the login screen loads. User provisioning and registration policy depend on your production access model.

Should this become a blog post?

No. The deployment guide should live on the Penpot template detail page and be linked from the reusable template deployment docs page.

Terminal Deployment

Penpot CLI Deployment

Deploy Penpot the traditional way with SSH and Docker Compose.

1

Access Your VPS via Terminal

Open a terminal session and log into your VPS. Replace the placeholder with your actual IP.

terminal
# Connect via SSH
ssh root@your-vps-ip

# Alternative with key file
ssh -i /path/to/key root@your-vps-ip

First time? Make sure Docker is installed on your VPS. Run: curl -fsSL https://get.docker.com | sh

2

Set Up Project Folder

Create a workspace for your deployment files.

terminal
# Create and navigate to project directory
mkdir -p ~/apps/penpot
cd ~/apps/penpot
3

Create the Compose File

Configure your containers with this Docker Compose setup:

docker-compose.yml
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:
Deployment Settings
PORTHost port to expose(default: 9001)
SECRET_KEYMaster secret key
DB_PASSWORDDatabase password
4

Deploy Your Stack

Spin up the containers and verify the deployment.

terminal
# Start all services
docker compose up -d

# List running containers
docker compose ps

# Watch the logs
docker compose logs -f
5

Update Firewall Settings

Allow incoming traffic on the application port.

terminal
# Allow the application port through firewall
sudo ufw allow 9001/tcp
sudo ufw reload

# Access your app at:
# http://your-server-ip:9001
Skip the Terminal

Skip the terminal. Use Server Compass instead.

Server Compass makes deploying Penpot effortless. Visual setup, one-click deploy, done.

  • Beautiful interface
  • One-click deploys
  • Let's Encrypt SSL
  • Zero downtime
  • Container monitoring
  • Easy rollbacks
Download Server Compass$29 one-time • Lifetime license

After Deployment

After deploying Penpot with Server Compass, complete these steps to finish setup

1

Open the Penpot URL in your browser

2

Create your account

3

Create a new project and start designing

4

Invite team members for collaboration

Need help? Check out our documentation for detailed guides.

Penpot FAQ

Common questions about self-hosting Penpot

How do I deploy Penpot with Server Compass?

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.

What are the system requirements for Penpot?

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.

Can I migrate my existing Penpot data?

Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard Penpot backup and restore procedures.

How do I update Penpot to the latest version?

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.

Is Penpot free to self-host?

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.

Ready to Self-Host Penpot?

Download Server Compass and deploy Penpot to your VPS in under 3 minutes. No Docker expertise required.

Download Server Compass