Plane è una piattaforma open source per la gestione dei progetti, nella stessa categoria di Jira e Linear. La sua Community Edition auto-ospitata è più pesante di quanto lasci intuire l’interfaccia, e dimensionare un VPS a occhio è il modo più comune in cui un’installazione di Plane fallisce.
I requisiti documentati
La documentazione ufficiale di auto-hosting di Plane indica:
| Risorsa | Requisito |
|---|---|
| CPU | 2 core (x64/AMD64 oppure AArch64/ARM64) |
| RAM | 4 GB minimi, 8 GB consigliati in produzione |
| Sistema operativo | Ubuntu, Debian, CentOS, Amazon Linux 2 o 2023 |
| Runtime | Docker Engine 20.10+, Docker Compose v2 |
| Rete | Porte 80 e 443, più un dominio che risolve |
Perché la soglia di 4 GB è reale
Plane non è un singolo processo. Lo stack Compose della Community Edition avvia tredici container:
- Applicazione: i frontend
web,admin,spaceelive, più l’apiDjango - Background:
worker,beat-workeremigrator - Dati:
postgres:15.7-alpine,valkey/valkey:7.2.11-alpine,rabbitmq:3.13.6-management-alpine,minio/minio - Bordo: il container
proxy, proprietario delle porte 80 e 443
Tredici container a riposo consumano gran parte di 4 GB prima che venga creata la prima issue. È per questo che i piani da 1 e 2 GB non funzionano: non perché Plane sia inefficiente, ma perché accanto all’applicazione stai facendo girare un database, un broker di messaggi, una cache e un archivio a oggetti.
RAM: dimensionare in base alla grandezza del team
| Scenario | RAM | Note |
|---|---|---|
| Valutazione o team di 2-5 persone | 4 GB | Il minimo documentato; praticabile ma senza margine |
| Da 5 a 30 persone che usano Plane ogni giorno | 8 GB | La raccomandazione documentata per la produzione |
| Migrazione in corso di un grande archivio Jira | 8 GB o più | Le importazioni massive sono avide di memoria, ma per poco |
Se sei indeciso fra due taglie, prendi la maggiore. Con memoria insufficiente Plane cede perché il kernel termina un container nel mezzo di una richiesta, il che assomiglia a errori casuali più che a un messaggio chiaro di memoria esaurita.
CPU: due core bastano davvero
Il lavoro sulle issue procede a raffiche. Qualcuno apre una board, l’API risponde, poi il server torna in silenzio. Due vCPU reggono tutto questo senza sforzo per un team normale.
Quattro core si guadagnano lo stipendio in un caso preciso: l’importazione di un archivio esistente. Durante un’importazione massiva l’API Django, il worker Celery e PostgreSQL si contendono la macchina, e il lavoro finisce sensibilmente prima con più core. È un’operazione una tantum, quindi raramente conviene in permanenza, a meno che il piano con 4 core non sia anche il piano con 8 GB, come accade da Contabo.
Archiviazione: guarda MinIO, non Postgres
Il database resta piccolo. Issue, commenti e voci di attività sono testo, e anche con un team molto attivo il volume Postgres cresce lentamente.
La variabile sono gli allegati. Ogni screenshot e ogni documento caricato su una issue finisce nel volume MinIO, e i team che incollano screenshot con generosità supereranno un disco da 40 GB molto prima che il database conti qualcosa.
Parti da 40 GB, tieni d’occhio il volume MinIO e preferisci NVMe o SSD: le prestazioni di PostgreSQL dipendono dall’I/O e la differenza si vede nelle viste board che aggregano molte issue.
Piani VPS che rispettano questi requisiti
| Provider | Piano | vCPU / RAM / Disco | Prezzo | Verdetto | Link |
|---|---|---|---|---|---|
| Contabo | Cloud VPS 4 | 4 / 8 GB / 100 GB SSD | 5,50 EUR/mese netto | Soddisfa la raccomandazione di 8 GB | Contabo |
| Hetzner Cloud | CX23 | 2 / 4 GB / 40 GB NVMe | 5,49 EUR/mese netto | Soddisfa il minimo; CX33 a 8,49 con 8 GB | Hetzner |
| DigitalOcean | Basic 4 GB | 2 / 4 GB / 80 GB SSD | 24 USD/mese | Soddisfa il minimo; migliori strumenti di snapshot | DigitalOcean |
| Vultr | Regular 4 GB | 2 / 4 GB / 80 GB SSD | 20 USD/mese | Soddisfa il minimo; scelta di regioni più ampia | Vultr |
| Linode | Linode 4 GB | 2 / 4 GB / 80 GB SSD | 24 USD/mese | Soddisfa il minimo; prestazioni prevedibili | Linode |
I piani d’ingresso da 1 GB di ciascun provider sono esclusi di proposito. Stanno sotto il minimo documentato da Plane, e nessuna messa a punto cambia questo fatto.
Una nota sulla compilazione dai sorgenti
Il docker-compose.yml nel repository GitHub di Plane costruisce ogni servizio dal proprio Dockerfile invece di scaricare le immagini pubblicate. Compilare i frontend Next.js richiede molta più memoria che eseguirli, e la compilazione manderà in swap o farà fallire un VPS da 4 GB.
Il percorso supportato scarica immagini già compilate:
curl -fsSL https://prime.plane.so/install/ | sh -
Dimensiona il server per far girare Plane, non per compilarlo.
Pianificare la crescita
- Osserva con
docker statsprima di decidere un ampliamento: mostra quale container è davvero sotto pressione. - Fai uno snapshot del VPS prima di ogni aggiornamento di versione: il container
migratorapplica le modifiche di schema all’avvio. - Salva insieme il volume PostgreSQL e quello MinIO. Ciascuno da solo ripristina un’istanza incompleta.
- La maggior parte dei provider aumenta la memoria sul posto, quindi passare da 4 GB a 8 GB è un riavvio, non una migrazione.
Per uno sguardo più ampio ai piani disponibili, vedi il nostro confronto VPS completo.
Riferimenti della comunità che vale la pena seguire: la lista awesome-selfhosted e il subreddit r/selfhosted.
Frequently asked questions
Quanta RAM serve davvero a un'istanza di Plane auto-ospitata?
Il minimo ufficiale è 4 GB e la raccomandazione documentata per la produzione è 8 GB. La Community Edition fa girare tredici container, fra cui PostgreSQL, Valkey, RabbitMQ e MinIO, che da soli occupano gran parte di 4 GB prima che qualcuno acceda. Usa 4 GB per un piccolo team o una prova, e 8 GB quando Plane diventa il tracker che il tuo team apre ogni mattina.
Quanti core CPU richiede Plane per funzionare?
Due core sono il minimo documentato, su x64/AMD64 oppure AArch64/ARM64. Due bastano per il lavoro quotidiano sulle issue perché il carico arriva a raffiche anziché restare costante. Quattro core valgono la spesa se prevedi di importare un grande archivio da Jira, dato che l'API Django e i worker in background si contendono la CPU durante le operazioni massive.
Quanto spazio su disco devo prevedere per Plane?
Parti da 40 GB e metti in conto la crescita. Il database PostgreSQL resta contenuto, ma MinIO conserva ogni file allegato a una issue, ed è quel volume a riempire il disco. Screenshot e documenti allegati si accumulano di continuo, quindi tieni d'occhio il volume MinIO più che il database quando valuti un ampliamento.