Plane ist eine Open-Source-Plattform für Projektmanagement in derselben Kategorie wie Jira und Linear. Die selbst gehostete Community Edition ist schwerer, als ihre Oberfläche vermuten lässt, und einen VPS nach Gefühl zu dimensionieren ist der häufigste Grund, warum eine Plane-Installation scheitert.
Die dokumentierten Anforderungen
Die offizielle Self-Hosting-Dokumentation von Plane nennt:
| Ressource | Anforderung |
|---|---|
| CPU | 2 Kerne (x64/AMD64 oder AArch64/ARM64) |
| RAM | mindestens 4 GB, 8 GB empfohlen für den Produktivbetrieb |
| Betriebssystem | Ubuntu, Debian, CentOS, Amazon Linux 2 oder 2023 |
| Laufzeitumgebung | Docker Engine 20.10+, Docker Compose v2 |
| Netzwerk | Ports 80 und 443 sowie eine auflösende Domain |
Warum die 4-GB-Grenze real ist
Plane ist kein einzelner Prozess. Der Compose-Stack der Community Edition startet dreizehn Container:
- Anwendung: die Frontends
web,admin,spaceundlivesowie die Django-api - Hintergrund:
worker,beat-workerundmigrator - Daten:
postgres:15.7-alpine,valkey/valkey:7.2.11-alpine,rabbitmq:3.13.6-management-alpine,minio/minio - Edge: der
proxy-Container, dem die Ports 80 und 443 gehören
Dreizehn Container im Leerlauf belegen den größten Teil von 4 GB, bevor das erste Issue angelegt ist. Deshalb funktionieren 1- und 2-GB-Tarife nicht - nicht weil Plane ineffizient wäre, sondern weil du neben der Anwendung eine Datenbank, einen Message Broker, einen Cache und einen Objektspeicher betreibst.
RAM: Dimensionierung nach Teamgröße
| Szenario | RAM | Anmerkungen |
|---|---|---|
| Evaluierung oder Team mit 2 bis 5 Personen | 4 GB | Das dokumentierte Minimum; machbar, aber ohne Reserve |
| 5 bis 30 Personen nutzen Plane täglich | 8 GB | Die dokumentierte Empfehlung für den Produktivbetrieb |
| Laufende Migration eines großen Jira-Bestands | 8 GB und mehr | Massenimporte brauchen viel Speicher, wenn auch nur kurz |
Wenn du zwischen zwei Größen schwankst, nimm die größere. Bei Speichermangel beendet der Kernel einen Container mitten in einer Anfrage, und das sieht nach zufälligen Fehlern aus statt nach einer klaren Meldung über zu wenig Arbeitsspeicher.
CPU: Zwei Kerne reichen wirklich
Arbeit an Issues kommt in Schüben. Jemand öffnet ein Board, die API antwortet, danach ist der Server wieder still. Zwei vCPU bewältigen das für ein normales Team ohne Mühe.
Vier Kerne zahlen sich in einem konkreten Fall aus: beim Import eines bestehenden Backlogs. Während eines Massenimports konkurrieren die Django-API, der Celery-Worker und PostgreSQL, und der Job läuft mit mehr Kernen spürbar schneller durch. Das ist ein einmaliger Vorgang und lohnt daher selten dauerhaft - es sei denn, der Tarif mit 4 Kernen ist zufällig auch der Tarif mit 8 GB, was bei Contabo der Fall ist.
Speicher: Auf MinIO achten, nicht auf Postgres
Die Datenbank bleibt klein. Issues, Kommentare und Aktivitätseinträge sind Text, und selbst bei einem umtriebigen Team wächst das Postgres-Volume langsam.
Die Variable sind die Anhänge. Jeder Screenshot und jedes Dokument, das an ein Issue gehängt wird, landet im MinIO-Volume, und Teams, die großzügig Screenshots einfügen, sprengen eine 40-GB-Platte lange bevor die Datenbank eine Rolle spielt.
Starte mit 40 GB, behalte das MinIO-Volume im Blick und bevorzuge NVMe oder SSD - die Leistung von PostgreSQL hängt an der I/O, und der Unterschied zeigt sich bei Board-Ansichten, die viele Issues zusammenfassen.
VPS-Tarife, die zu diesen Anforderungen passen
| Anbieter | Tarif | vCPU / RAM / Speicher | Preis | Urteil | Link |
|---|---|---|---|---|---|
| Contabo | Cloud VPS 4 | 4 / 8 GB / 100 GB SSD | 5,50 EUR/Mo netto | Erfüllt die Empfehlung von 8 GB | Contabo |
| Hetzner Cloud | CX23 | 2 / 4 GB / 40 GB NVMe | 5,49 EUR/Mo netto | Erfüllt das Minimum; CX33 für 8,49 mit 8 GB | Hetzner |
| DigitalOcean | Basic 4 GB | 2 / 4 GB / 80 GB SSD | 24 USD/Mo | Erfüllt das Minimum; beste Snapshot-Werkzeuge | DigitalOcean |
| Vultr | Regular 4 GB | 2 / 4 GB / 80 GB SSD | 20 USD/Mo | Erfüllt das Minimum; größte Regionsauswahl | Vultr |
| Linode | Linode 4 GB | 2 / 4 GB / 80 GB SSD | 24 USD/Mo | Erfüllt das Minimum; vorhersehbare Leistung | Linode |
Die 1-GB-Einstiegstarife aller Anbieter fehlen hier bewusst. Sie liegen unter dem dokumentierten Minimum von Plane, und daran ändert auch kein Feintuning etwas.
Ein Wort zum Bauen aus dem Quellcode
Die docker-compose.yml im GitHub-Repository von Plane baut jeden Dienst aus seinem Dockerfile, statt veröffentlichte Images zu ziehen. Das Kompilieren der Next.js-Frontends braucht erheblich mehr Speicher als deren Betrieb, und der Build läuft auf einem 4-GB-VPS ins Swapping oder scheitert ganz.
Der unterstützte Weg zieht fertige Images:
curl -fsSL https://prime.plane.so/install/ | sh -
Dimensioniere den Server für den Betrieb von Plane, nicht für dessen Build.
Für Wachstum planen
- Beobachte mit
docker stats, bevor du vergrößerst; das zeigt, welcher Container tatsächlich unter Druck steht. - Lege vor jedem Versions-Upgrade einen Snapshot an - der
migrator-Container führt beim Start Schemaänderungen aus. - Sichere PostgreSQL-Volume und MinIO-Volume gemeinsam. Jedes für sich stellt nur eine unvollständige Instanz wieder her.
- Die meisten Anbieter erhöhen den Speicher im Bestand, der Weg von 4 GB auf 8 GB ist also ein Neustart und keine Migration.
Einen breiteren Blick auf die Tarife der Anbieter gibt unser vollständiger VPS-Vergleich.
Lesenswerte Anlaufstellen der Community: die Liste awesome-selfhosted und das Subreddit r/selfhosted.
Frequently asked questions
Wie viel RAM braucht eine selbst gehostete Plane-Instanz tatsächlich?
Das offizielle Minimum liegt bei 4 GB, die dokumentierte Empfehlung für den Produktivbetrieb bei 8 GB. Die Community Edition betreibt dreizehn Container, darunter PostgreSQL, Valkey, RabbitMQ und MinIO, und die belegen allein schon den größten Teil von 4 GB, bevor sich jemand anmeldet. Nimm 4 GB für ein kleines Team oder einen Test und 8 GB, sobald Plane der Tracker ist, den dein Team jeden Morgen öffnet.
Wie viele CPU-Kerne benötigt Plane für den laufenden Betrieb?
Zwei Kerne sind das dokumentierte Minimum, wahlweise x64/AMD64 oder AArch64/ARM64. Für die tägliche Arbeit an Issues reichen zwei aus, weil die Last stoßweise auftritt statt dauerhaft anzuliegen. Vier Kerne lohnen sich, wenn du ein großes Backlog aus Jira importieren willst, denn dabei konkurrieren die Django-API und die Hintergrund-Worker um Rechenzeit.
Wie viel Speicherplatz sollte ich für Plane einplanen?
Beginne mit 40 GB und plane Wachstum ein. Die PostgreSQL-Datenbank selbst bleibt überschaubar, aber MinIO legt jeden Dateianhang eines Issues ab, und dieses Volume füllt die Platte. Screenshots und Dokumente an Tickets sammeln sich stetig an, beobachte also eher das MinIO-Volume als die Datenbank, wenn du über eine Vergrößerung nachdenkst.