Create a folder for Penpot
You need one tidy place on your computer to hold Penpot's config file. This keeps things easy to find and easy to delete later if you want.

Spin up Penpot — a free, open-source design and prototyping tool — on your own machine using Docker. No Figma subscription needed.
You need one tidy place on your computer to hold Penpot's config file. This keeps things easy to find and easy to delete later if you want.
Penpot publishes a ready-made Docker Compose file that describes every service the app needs — the frontend, backend, and database. This single command fetches it directly from their servers so you are always using the official version.
curl: command not found on Windows
Open the URL in your browser, save the page as docker-compose.yaml inside your penpot-local folder, then continue.
This one command tells Docker to download all the pieces Penpot needs and start them together. The first run downloads several hundred megabytes, so it takes a few minutes depending on your internet speed. After that, future starts are instant.
Port 9001 or 3449 already in use — Docker reports a bind error
Another app is using that port. Open docker-compose.yaml in a text editor, find the conflicting port number, and change the left side of the mapping (e.g. change '9001:9001' to '9002:9001'). Save, then re-run the command.
Once the containers are running, Penpot's web interface is available on your own machine. Give it about 30 seconds after the previous step before opening the link — the backend needs a moment to finish starting up.
'open' command not found on Windows or Linux
Just type http://localhost:3449 directly into your browser's address bar.
Because this is a fresh self-hosted install, email verification is disabled by default — you can register and log in immediately without needing to confirm an email address. Click 'Create new account', fill in your name, email, and a password, and you are in.
Registration page says email confirmation is required and no email arrives
The default compose file disables email. If you edited the file and enabled SMTP, you need a working SMTP server configured. Revert that change or set up SMTP credentials in the environment section of docker-compose.yaml.
Penpot keeps running in the background until you tell it to stop. Use this command when you are finished for the day. Your projects are saved in a Docker volume and will still be there next time you start it up.
A fully working Penpot design tool running at http://localhost:3449, where you can create projects, design screens, prototype flows, inspect CSS/SVG code, and invite teammates on your local network — all without a Figma subscription.
This setup is for local or internal use only — it is not hardened for public internet exposure without additional security configuration (HTTPS, firewall rules, proper SMTP). Penpot is a large app with many moving parts; on older or low-RAM machines it can feel slow. Real-time collaboration works on a local network but requires extra reverse-proxy setup to work across the internet. Upgrades require pulling a new compose file and restarting, and occasionally involve breaking changes — always read the release notes before upgrading.