
Deploy Penpot Libraries
Shared components, colors and typography for your team
Just deployed
/var/lib/postgresql/data
penpot-frontend
Just deployed
penpot-backend
Just deployed
/opt/data/assets
Valkey
Just deployed
penpot-exporter
Just deployed
Deploy and Host self hosted Penpot Libraries (Shared Design Libraries and Components) on Railway
Publish a master file once, then connect it to every other file on your team so buttons, colors and type styles stay in sync. Approve changes once and every connected file can pick them up.
About Hosting Penpot Libraries open-source software on Railway (self hosted Penpot shared libraries for reusable components, colors and typographies template)
Your libraries live in your own Postgres database, not a vendor's cloud. Railway covers containers, TLS, private networking and volumes.
Why Deploy Penpot Libraries, the Figma alternative on Railway (Railway Free Trial)
Figma keeps shared libraries in its cloud and bills per editor, so every designer who publishes or connects a library adds a seat.
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 Libraries 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.
Railway vs Other Hosting Providers and VPS for Penpot Libraries self hosting
Railway runs the Penpot stack as one project with Postgres and Valkey already wired in. Here is how that compares with running it yourself.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | Five services on private networking, with Postgres and Valkey wired by reference. | A Droplet you size and patch, plus Docker Compose, TLS, and library backups to set up. |
| AWS | Services, volumes, and domains in one dashboard, with no VPC work for the stack. | Flexible but heavy setup across EC2, networking, and storage before Penpot serves a page. |
| Hetzner | Per-service deploys and redeploys, with the backend volume and health checks handled. | Low-cost raw servers where you own the Docker install, TLS, updates, and backups. |
Choose based on how much server work your team wants to own.
Common Use Cases for hosted Penpot Libraries
-
Publishing a brand design system: Publish one master file as a shared library and connect it to every product file, so buttons and spacing come from one source.
-
Keeping components consistent: Connect the same library to several project files, so a fix to an alert or button reaches each file once you accept the update.
-
Syncing colors and typography: Keep brand colors and text styles in one library and pull them into each file from the assets panel, instead of retyping values.
-
Grouping assets with slashes: Name components like "Buttons/Primary" so a large library stays navigable, and delete a whole group when a set is retired.
-
Sourcing design tokens: Click "Set as tokens source" on a library that holds tokens, so a token change reaches every connected file immediately.
Dependencies for Penpot Libraries Docker hosted on Railway
Five services work together here: the frontend, the backend that stores your shared libraries, a headless exporter, Postgres and Valkey.
Deployment Dependencies for Managed Penpot Libraries Service (Design Tool)
- penpot-frontend: penpotapp/frontend:2.18.3 behind nginx on port 8080, the only public service.
- penpot-backend: penpotapp/backend:2.18.3 on port 6060, with a volume at /opt/data/assets.
- penpot-exporter: penpotapp/exporter:2.18.3 on port 6061 for PNG, SVG and PDF exports.
- Postgres 18.6 and Valkey 8.1.10: Postgres holds libraries and files, Valkey handles notifications.
Implementation Details for Penpot Libraries (Using Penpot official docker image)
Set PENPOT_PUBLIC_URI on the frontend, since the backend and exporter reference it, and keep PENPOT_SECRET_KEY stable because changing it logs everyone out.
How does Penpot Libraries compare against other ways to share design libraries across files and teams
Penpot Libraries vs Figma libraries (Figma Alternative)
- Where Penpot wins: Publishing and connecting libraries works from the file main menu or the Libraries panel, and you keep the whole library on infrastructure you run.
- Where Figma wins: Its team libraries are mature, and the cloud editor needs no server.
- Updates: Penpot's Updates list covers components, colors and typographies, while tokens sync immediately.
Penpot Libraries vs Sketch libraries (Sketch Alternative)
- Platform reach: Penpot runs in a browser, so teammates on Windows, Linux or a Chromebook can connect to a published library. Sketch needs the macOS app.
- Where Sketch wins: Its symbol and shared style workflow is well known on macOS.
Penpot Libraries vs Framer (Framer Alternative)
- Purpose: Framer components feed its hosted website builder. Penpot libraries target product design systems and prototypes.
- Where Framer wins: If you want to publish a live site straight from components, Framer closes that loop and Penpot does not.
Penpot Libraries vs Adobe XD (Adobe XD Alternative)
- Development status: Adobe stopped active development on Adobe XD and it is in maintenance mode, so Penpot is the more actively developed choice.
- Where Adobe XD wins: Its shared asset collections suit teams already inside the Adobe ecosystem.
- Ownership: Penpot is MPL-2.0 and self-hostable, so published libraries stay on your infrastructure.
How to use Penpot Libraries (the OSS design and prototyping tool)?
Once your Penpot instance is live, work through these steps on day one so your team has one source of truth for components, colors and typographies.
- Open the file you want to share and use the file main menu (or the Libraries panel opened with the Libraries button in the assets tab) to publish it as a shared library.
- In the file that needs the assets, open the assets tab in the workspace left sidebar and click the Libraries button.
- Search and select the published library in the libraries panel; if you see "There are no Shared Libraries available", publish a file first.
- Expand the connected library in the assets panel to browse its components, colors and typographies.
- To use a library-wide token source, click "Set as tokens source" next to the library in the Libraries panel.
- Disconnect a library anytime with the disconnect button in the libraries panel.
How to self host Penpot Libraries on other VPS Services (Penpot self hosting guide)
Here's how to run Penpot on a plain VPS with Docker, the same stack this template uses. Libraries live in Postgres and the image store, so get both right before you publish your first one.
Clone the Repository
Start from the upstream compose file so you get the official service layout.
git clone https://github.com/penpot/penpot.git
cd penpot/docker/images
Install Dependencies
You need Docker with the Compose plugin and about 2 GB of RAM or more. Point a DNS record at the server and put HTTPS in front with a reverse proxy.
Configure Environment Variables
Set the public address and a real secret key before the first start. Changing the key later logs everyone out.
export PENPOT_PUBLIC_URI=https://your-domain
export PENPOT_SECRET_KEY=$(openssl rand -hex 32)
Start the Penpot Libraries Application
Bring the stack up detached, open your domain, and create the first account. Railway handles the domain, private networking and volumes for you, so you skip most of this.
Official Pricing of Penpot Libraries (Penpot pricing)
Penpot itself is free and open source under MPL-2.0, so publishing a file as a shared library, connecting it to other files, and syncing components, colors and typographies costs you nothing in licensing.
Penpot Libraries cloud vs self hosted comparison (Pricing, features, costs, and more)
Self hosting Penpot is free under MPL-2.0, so the real choice is between Penpot's hosted cloud at design.penpot.app and running your own copy. Hosted gets you zero ops work.
Monthly cost of self hosting Penpot Libraries on Railway
On Railway the whole stack usually lands at about $10-25 per month at light team use, mostly driven by RAM. Plan on at least the Railway Hobby plan, and remember the $5 trial covers a first look.
System Requirements for Hosting Penpot Libraries on a VPS
Running this on a VPS instead means Docker and about 2 GB of RAM or more.
Frequently Asked Questions (FAQs)
Do I need to publish a file before others can connect to it?
Yes. Only a published file appears in the Libraries panel for other files in the team. If you see "There are no Shared Libraries available", publish a file first.
What happens to assets already used when I unpublish a library?
Unpublishing disconnects the library from every connected file. Assets already used stay in those files, but they are no longer linked, so later source changes will not reach them.
How do I group components and colors with slashes?
Put a slash in the asset name, such as "Buttons/Alert Button", or right-click the asset and choose "Group". Deleting a group removes every asset inside it after a confirmation prompt.
Why can't I edit a token in a file that uses a library?
Files that use library tokens cannot create, edit, rename or delete them. Open the library's Tokens tab to change them, and those changes reach connected files immediately.
Do component updates in linked files show up in the Updates list?
The Updates list covers components, colors and typographies from a connected library. Token changes skip it and reach connected files right away.
Who can see a published library on a self-hosted instance?
Penpot's upstream library docs do not describe team-level visibility on a self-hosted instance, so I cannot confirm who can see a published library.
Template Content
penpot-frontend
penpotapp/frontend:2.18.3penpot-backend
penpotapp/backend:2.18.3Valkey
valkey/valkey:8.1.10penpot-exporter
penpotapp/exporter:2.18.3