Plane est une plateforme open source de gestion de projet, dans la même catégorie que Jira et Linear. Sa Community Edition auto-hébergée est plus lourde que son interface ne le laisse penser, et dimensionner un VPS à l’estime reste la première cause d’échec d’une installation.
Les prérequis documentés
La documentation officielle d’auto-hébergement de Plane indique :
| Ressource | Exigence |
|---|---|
| CPU | 2 cœurs (x64/AMD64 ou AArch64/ARM64) |
| RAM | 4 Go minimum, 8 Go recommandés en production |
| Système | Ubuntu, Debian, CentOS, Amazon Linux 2 ou 2023 |
| Exécution | Docker Engine 20.10+, Docker Compose v2 |
| Réseau | Ports 80 et 443, plus un domaine qui résout |
Pourquoi le plancher de 4 Go est bien réel
Plane n’est pas un processus unique. La pile Compose de la Community Edition démarre treize conteneurs :
- Application : les frontends
web,admin,spaceetlive, ainsi que l’apiDjango - Arrière-plan :
worker,beat-workeretmigrator - Données :
postgres:15.7-alpine,valkey/valkey:7.2.11-alpine,rabbitmq:3.13.6-management-alpine,minio/minio - Périphérie : le conteneur
proxy, propriétaire des ports 80 et 443
Treize conteneurs au repos consomment l’essentiel de 4 Go avant la création du premier ticket. Voilà pourquoi les offres à 1 ou 2 Go ne conviennent pas - non parce que Plane serait inefficace, mais parce que vous exploitez une base de données, un courtier de messages, un cache et un stockage objet en plus de l’application.
RAM : dimensionner selon la taille de l’équipe
| Scénario | RAM | Remarques |
|---|---|---|
| Évaluation ou équipe de 2 à 5 personnes | 4 Go | Le minimum documenté ; jouable, mais sans marge |
| 5 à 30 personnes utilisant Plane quotidiennement | 8 Go | La recommandation documentée en production |
| Migration en cours d’un gros historique Jira | 8 Go et plus | Les imports massifs sont gourmands, mais brièvement |
Entre deux tailles, prenez la plus grande. En cas de mémoire insuffisante, Plane échoue par un conteneur tué par le noyau en pleine requête, ce qui ressemble à des erreurs aléatoires plutôt qu’à un message clair de saturation mémoire.
CPU : deux cœurs suffisent vraiment
Le suivi de tickets fonctionne par à-coups. Quelqu’un ouvre un tableau, l’API répond, puis le serveur retombe au calme. Deux vCPU absorbent cela sans peine pour une équipe ordinaire.
Quatre cœurs se justifient dans un cas précis : l’import d’un historique existant. Pendant un import massif, l’API Django, le worker Celery et PostgreSQL se disputent la machine, et la tâche se termine nettement plus vite avec davantage de cœurs. C’est une opération ponctuelle, rarement rentable en permanence - sauf si l’offre à 4 cœurs se trouve être aussi celle à 8 Go, ce qui est le cas chez Contabo.
Stockage : surveillez MinIO, pas Postgres
La base reste petite. Tickets, commentaires et entrées d’activité sont du texte, et même chez une équipe très active le volume Postgres grossit lentement.
Les pièces jointes sont la variable. Chaque capture d’écran et chaque document déposé sur un ticket atterrit dans le volume MinIO, et les équipes qui collent des captures sans compter dépasseront un disque de 40 Go bien avant que la base ne compte.
Démarrez à 40 Go, surveillez le volume MinIO et privilégiez le NVMe ou le SSD - les performances de PostgreSQL dépendent des entrées-sorties, et l’écart se voit sur les vues de tableau qui agrègent beaucoup de tickets.
Les offres VPS correspondant à ces prérequis
| Hébergeur | Offre | vCPU / RAM / Disque | Prix | Verdict | Lien |
|---|---|---|---|---|---|
| Contabo | Cloud VPS 4 | 4 / 8 Go / 100 Go SSD | 5,50 EUR/mois HT | Atteint la recommandation de 8 Go | Contabo |
| Hetzner Cloud | CX23 | 2 / 4 Go / 40 Go NVMe | 5,49 EUR/mois HT | Atteint le minimum ; CX33 à 8,49 pour 8 Go | Hetzner |
| DigitalOcean | Basic 4 Go | 2 / 4 Go / 80 Go SSD | 24 USD/mois | Atteint le minimum ; meilleurs outils d’instantané | DigitalOcean |
| Vultr | Regular 4 Go | 2 / 4 Go / 80 Go SSD | 20 USD/mois | Atteint le minimum ; plus large choix de régions | Vultr |
| Linode | Linode 4 Go | 2 / 4 Go / 80 Go SSD | 24 USD/mois | Atteint le minimum ; performances prévisibles | Linode |
Les offres d’entrée à 1 Go de chaque hébergeur sont volontairement absentes. Elles se situent sous le minimum documenté par Plane, et aucun réglage n’y changera rien.
Un mot sur la compilation depuis les sources
Le docker-compose.yml du dépôt GitHub de Plane construit chaque service à partir de son Dockerfile au lieu de télécharger les images publiées. Compiler les frontends Next.js réclame nettement plus de mémoire que les exécuter, et la compilation saturera ou échouera sur un VPS de 4 Go.
La voie prise en charge télécharge des images précompilées :
curl -fsSL https://prime.plane.so/install/ | sh -
Dimensionnez le serveur pour faire tourner Plane, pas pour le compiler.
Anticiper la croissance
- Surveillez avec
docker statsavant de décider d’un redimensionnement ; cela montre quel conteneur est réellement sous pression. - Prenez un instantané du VPS avant chaque montée de version - le conteneur
migratorapplique les changements de schéma au démarrage. - Sauvegardez ensemble le volume PostgreSQL et le volume MinIO. Isolément, chacun ne restaure qu’une instance incomplète.
- La plupart des hébergeurs augmentent la mémoire sur place : passer de 4 Go à 8 Go relève du redémarrage, pas de la migration.
Pour un panorama plus large des offres, voyez notre comparatif VPS complet.
Références communautaires à suivre : la liste awesome-selfhosted et le subreddit r/selfhosted.
Frequently asked questions
De combien de RAM une instance Plane auto-hébergée a-t-elle réellement besoin ?
Le minimum officiel est de 4 Go et la recommandation documentée en production est de 8 Go. La Community Edition fait tourner treize conteneurs, dont PostgreSQL, Valkey, RabbitMQ et MinIO, qui occupent à eux seuls l'essentiel de 4 Go avant toute connexion. Prévoyez 4 Go pour une petite équipe ou un essai, et 8 Go dès que Plane devient l'outil que votre équipe ouvre chaque matin.
Combien de cœurs CPU Plane exige-t-il pour fonctionner ?
Deux cœurs constituent le minimum documenté, en x64/AMD64 ou AArch64/ARM64. Deux suffisent au suivi quotidien des tickets car la charge arrive par à-coups plutôt qu'en continu. Quatre cœurs valent l'investissement si vous prévoyez d'importer un gros historique depuis Jira, puisque l'API Django et les workers d'arrière-plan se disputent alors le processeur.
Quelle capacité de stockage faut-il prévoir pour Plane ?
Commencez à 40 Go et anticipez la croissance. La base PostgreSQL reste modeste, mais MinIO conserve chaque pièce jointe déposée sur un ticket, et c'est ce volume qui remplit le disque. Les captures d'écran et les documents attachés s'accumulent régulièrement : surveillez donc le volume MinIO plutôt que la base au moment de décider d'un redimensionnement.