Self-hosting is one of the most distinctive features of Penpot. Other solutions are available only via locked-in SaaS subscriptions or Mac-only proprietary desktop applications. You are forced to trust the vendor and hope they make good use of your data, and that it will always be available when you need it.
Today, more and more companies (especially big ones, but also small ones or even individuals) tend to prefer keeping their toolkit hosted internally, for full control and security. Even more so if it’s a mission-critical piece, such as a design tool in a software development pipeline. It’s not uncommon to see in the news cases of companies leaking —or even selling— users’ private data; having service interruptions that affect millions of customers; shutting down an application and causing users to lose important information, because they can’t keep using the tool nor migrate their data to a different platform.
Penpot is committed to giving your team complete freedom, including running your application and storing your data wherever you want. So, not only we allow it but we make self-hosting absolutely painless. Of course, we offer our own SaaS at https://design.penpot.app for your convenience, but feel free to deploy Penpot your way if that excites you!
It should be noted that there is absolutely no difference between our SaaS Penpot and the instance you host.
Options to self-host Penpot: Elestio, Docker and Kubernetes
Penpot supports three ways of self-hosting: via our partner Elestio’s platform (easy). via the Docker tool (for advanced users) or Kubernetes (for very large setups).
-
Elestio is a point-and-click solution, with prebuilt packages, to deploy and manage a set of open source applications on your designated hosting provider. With it, you can set up an instance of Penpot in just 3 minutes!
You choose between several cloud providers (currently Digital Ocean, Amazon Lightsail, Linode, Vultr, or Hetzner). Also, with a little more effort, you can use a generic virtual machine hosted wherever you want, even in your own facilities.
The hosting company offers the bare machine, and Elestio offers a tool with which you or your team can install the tool and easily manage the domain, certificates, emails, backups, upgrades, etc.
If you don’t have a specific need for the other tools, our recommendation is to use Elestio, since it’s simpler, fully automatic and still greatly flexible. Our friends at Elestio have done a great job to bridge the gap between 100% self-host and pure SaaS.
To use it, you can simply follow the Instructions to install Penpot with Elestio.
-
Docker is an industry standard system to create a sort of virtual machine inside a computer (the so-called “containers”) and install software inside them. A configuration file describes the installation process. With a single command, you can instruct Docker to raise one or more containers, set up any needed applications and dependencies, and configure them.
This way, you may have a multi-component system like Penpot running with very little effort on any machine you want —let it be virtual or physical— located in the cloud or at your home.
If you want to know more about Docker, please read the second part of this article.
-
Kubernetes. When you need to deploy Penpot to really large numbers of users, a single virtual machine may not be enough. You will need to create several of them to distribute the load, and even add or remove machines and containers as needed. Kubernetes is an “orchestrator” that allows you to easily manage many Docker containers from one place.
But if you are the kind of person who needs this tool, you probably won’t need more introduction. You can directly proceed to the instructions to deploy Penpot with Kubernetes.
Other options
Also, there are some unsupported alternatives worth mentioning!
- Installation with Podman instead of Docker.
- Try the Penpot Desktop app (under development).
- Or try a fully manual installation if you have really special needs. For help, you can look at the Architecture section and the Docker configuration files.