Last verified:
Plane is an open-source project management platform - issues, cycles, modules, pages - built as an alternative to Jira and Linear. It is also heavier than most self-hosted apps its size suggests, and that single fact decides which VPS plans are viable.
The Requirement That Rules Everything Out
Planeโs own documentation asks for 2 CPU cores and 4 GB of RAM, with 8 GB recommended for production. The Community Edition compose stack runs thirteen containers: the web, admin, space and live frontends, the Django api plus worker, beat-worker and migrator, a proxy, and then postgres:15.7-alpine, valkey/valkey:7.2.11-alpine, rabbitmq:3.13.6-management-alpine and minio/minio.
That rules out the plan most people reach for first. The 1 GB entry droplet at DigitalOcean, Vultr and Linode is a quarter of the documented minimum - Plane will install and then fall over.
What to Look For in a VPS for Plane
- RAM above all. 4 GB to run it, 8 GB if the team lives in it daily.
- 2+ vCPU. The Django API and the background workers compete for CPU during bulk imports.
- NVMe or SSD. PostgreSQL holds every issue, comment and activity record.
- Disk headroom. MinIO stores file attachments, and they accumulate faster than the database does.
- Snapshot support. You want a rollback point before every version upgrade.
Top VPS Choices for Hosting Plane
| Provider | Plan | vCPU | RAM | Storage | Price | Best For | Link |
|---|---|---|---|---|---|---|---|
| Contabo | Cloud VPS 4 | 4 | 8 GB | 100 GB SSD | 5.50 EUR/mo net | Hitting the recommended 8 GB at the price of a 4 GB plan | Contabo |
| Hetzner Cloud | CX23 | 2 | 4 GB | 40 GB NVMe | 5.49 EUR/mo net | Exactly the documented minimum, in EU data centres | Hetzner |
| DigitalOcean | Basic 4 GB | 2 | 4 GB | 80 GB SSD | 24 USD/mo | Teams that want snapshots, docs and support quality | DigitalOcean |
Contabo Cloud VPS 4 - the one that clears the recommendation
At 5.50 EUR net, Cloud VPS 4 gives 4 vCPU, 8 GB RAM and 100 GB SSD. It is the only plan in this comparison that meets Planeโs recommended production specification rather than its minimum, and it does so at a price within one cent of Hetznerโs 4 GB plan. For an issue tracker that a team will use every working day, the extra 4 GB is the difference between comfortable and constantly near the limit.
The known trade-offs: provisioning takes longer than at Hetzner or DigitalOcean, and Contaboโs network performance is more variable. Neither matters much for an internal tool used by your own staff.
Hetzner CX23 - the minimum, done well
CX23 is 2 vCPU, 4 GB RAM and 40 GB NVMe at 5.49 EUR net. It meets the documented minimum exactly and the NVMe storage is genuinely fast for the Postgres workload. Two caveats: 40 GB fills faster than you expect once MinIO starts collecting attachments, and 4 GB leaves little headroom, so a bulk import from Jira will feel it. Stepping up to CX33 (4 vCPU, 8 GB, 80 GB NVMe) costs 8.49 EUR - still cheap, but no longer cheaper than Contaboโs 8 GB plan.
DigitalOcean Basic 4 GB - when the tooling is worth the premium
At 24 USD a month for 2 vCPU, 4 GB and 80 GB SSD, DigitalOcean is roughly four times the European price for the same specification. What you get is the best documentation and snapshot workflow of the three, plus a monitoring stack that works without configuration. If your team already runs on DigitalOcean, the consistency is worth something. If not, the premium is hard to defend for a single internal service.
Matching the Plan to Your Team
| Situation | Recommended plan | Reason |
|---|---|---|
| 5-30 people using Plane daily | Contabo Cloud VPS 4 | 8 GB is the documented production recommendation |
| Small team or a trial instance | Hetzner CX23 | Meets the minimum at the lowest EU price |
| Migrating a large Jira backlog | Contabo Cloud VPS 4 or Hetzner CX33 | Imports are memory-hungry and short-lived |
| Any 1 GB entry plan | None | Below Planeโs minimum - it will not stay up |
Deployment Notes
- Install with
curl -fsSL https://prime.plane.so/install/ | sh -; the repository compose file builds from source and needs far more RAM than running Plane does. - Point DNS at the server before you run the installer - it writes your domain into
WEB_URLandCORS_ALLOWED_ORIGINS. - Configure SMTP in the
/god-mode/admin panel early, or workspace invitations will never arrive. - Back up the PostgreSQL volume and the MinIO volume. The database alone gives you every issue with none of the attachments.
Final Thoughts
The decision here is unusually simple, because Planeโs memory floor eliminates most of the field before price enters the picture. Contabo Cloud VPS 4 meets the recommended 8 GB for 5.50 EUR net; Hetzner CX23 meets the 4 GB minimum for 5.49 EUR. The 1 GB plans that dominate provider landing pages are not options at all.
Check the full VPS comparison if you are hosting other services alongside Plane and need to size for the whole set.
Frequently asked questions
What is the minimum VPS specification to run Plane properly?
Plane's documentation specifies 2 CPU cores and 4 GB of RAM as the minimum, with 8 GB recommended for production. The Community Edition starts thirteen containers, including PostgreSQL, Valkey, RabbitMQ and MinIO, so the memory goes quickly. Treat 4 GB as a genuine floor for a small team and 8 GB as the target once more than a handful of people use it daily.
Why do the cheapest VPS plans not work for Plane?
Almost every provider's entry plan is 1 GB of RAM, which is a quarter of Plane's documented minimum. The installer will complete on such a box, but containers are killed for exceeding memory as soon as real work starts. The cheapest plans that clear the bar are Contabo Cloud VPS 4 at 5.50 EUR and Hetzner CX23 at 5.49 EUR, both net of VAT.
Can I move Plane to a bigger server later?
Yes, and it is straightforward because all persistent state lives in two Docker volumes: the PostgreSQL database and the MinIO object store holding attachments. Take a database dump, copy both volumes to the new host, run the installer there and restore. Most providers also offer in-place resizing, which avoids the migration entirely if you only need more memory.