
Deploy Penpot
Penpot: The open-source design tool for design and code collaboration
exporter
penpotapp/exporter
Just deployed
minio
minio/minio:latest
Just deployed
/mnt/data
postgres
railwayapp-templates/postgres-ssl:17
Just deployed
/var/lib/postgresql/data
valkey
valkey/valkey:8.1
Just deployed
frontend
penpotapp/frontend:latest
Just deployed
backend
penpotapp/backend:latest
Just deployed
Deploy and Host Penpot on Railway
Penpot is an open‑source, web‑based design and prototyping tool that enables teams to collaborate visually. Built using open standards, Penpot works entirely in the browser and provides flexibility for both designers and developers.
About Hosting Penpot
Hosting Penpot involves deploying multiple interconnected services that handle storage, rendering, collaboration, and data persistence. When hosting on Railway, these services are provisioned through managed containers and databases, allowing you to run Penpot reliably without manual infrastructure setup. Deployment requires configuring environment variables, linking services, and applying the necessary Penpot flags. With Railway's automated builds and scaling features, keeping your Penpot instance stable and performant becomes significantly easier.
Common Use Cases
- Running a private design/prototyping workspace for teams
- Integrating Penpot into an existing development environment
- Hosting a fully managed, scalable design platform without self‑maintained servers
Dependencies for Penpot Hosting
- Valkey (Redis-compatible cache)
- Penpot Exporter (rendering/export service)
- MinIO (S3-compatible storage)
- PostgreSQL database
- Penpot Frontend
- Penpot Backend
MinIO Setup Requirement
After the MinIO service is deployed and running, you must log in to the
MinIO console and create a bucket named penpot-assets.
Penpot uses this bucket to store project assets, previews, and exported
files.
If this bucket is not created, uploads and exports will not function
correctly.
Deployment Dependencies
- Penpot configuration documentation: https://help.penpot.app/technical-guide/configuration/
- Penpot getting-started guide: https://help.penpot.app/technical-guide/getting-started/
- Railway SMTP restrictions discussion: https://station.railway.com/questions/smtp-65969dff
Implementation Details (OPTIONAL)
Default Flags Used in This Template
Frontend: - enable-prepl-server: Enables PREPL server, used by
internal tooling and manage.py.
Backend: - disable-email-verification: Disabled because SMTP is
blocked on Railway Hobby plans. - enable-prepl-server: Enables PREPL
server for internal communication.
SMTP Configuration for Railway Pro Users
If you are using a Railway Pro plan, SMTP becomes available.
In this case, remove disable-email-verification and configure these
environment variables in the backend service:
PENPOT_SMTP_DEFAULT_FROM: [email protected]
PENPOT_SMTP_DEFAULT_REPLY_TO: [email protected]
PENPOT_SMTP_HOST: penpot-mailcatch
PENPOT_SMTP_PORT: 1025
PENPOT_SMTP_USERNAME:
PENPOT_SMTP_PASSWORD:
PENPOT_SMTP_TLS: false
PENPOT_SMTP_SSL: false
For more configuration details, refer to the template's Discuss page or
the official guide:
https://help.penpot.app/technical-guide/getting-started/
Why Deploy Penpot on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Penpot on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
exporter
penpotapp/exporterminio
minio/minio:latestvalkey
valkey/valkey:8.1frontend
penpotapp/frontend:latestbackend
penpotapp/backend:latest