Plane es una plataforma open source de gestión de proyectos, en la misma categoría que Jira y Linear. Su Community Edition auto-hospedada pesa más de lo que sugiere su interfaz, y dimensionar el VPS a ojo es la causa más frecuente de que una instalación de Plane fracase.
Los requisitos documentados
La documentación oficial de auto-hospedaje de Plane indica:
| Recurso | Requisito |
|---|---|
| CPU | 2 núcleos (x64/AMD64 o AArch64/ARM64) |
| RAM | 4 GB mínimo, 8 GB recomendados para producción |
| Sistema operativo | Ubuntu, Debian, CentOS, Amazon Linux 2 o 2023 |
| Entorno de ejecución | Docker Engine 20.10+, Docker Compose v2 |
| Red | Puertos 80 y 443, más un dominio que resuelva |
Por qué el suelo de 4 GB es real
Plane no es un solo proceso. La pila Compose de la Community Edition arranca trece contenedores:
- Aplicación: los frontends
web,admin,spaceylive, más laapide Django - Segundo plano:
worker,beat-workerymigrator - Datos:
postgres:15.7-alpine,valkey/valkey:7.2.11-alpine,rabbitmq:3.13.6-management-alpine,minio/minio - Borde: el contenedor
proxy, dueño de los puertos 80 y 443
Trece contenedores en reposo consumen la mayor parte de 4 GB antes de crear la primera incidencia. Por eso los planes de 1 y 2 GB no funcionan: no porque Plane sea ineficiente, sino porque estás ejecutando una base de datos, un intermediario de mensajes, una caché y un almacén de objetos junto a la propia aplicación.
RAM: dimensionar según el tamaño del equipo
| Escenario | RAM | Notas |
|---|---|---|
| Evaluación o equipo de 2 a 5 personas | 4 GB | El mínimo documentado; funciona, pero sin margen |
| De 5 a 30 personas usando Plane a diario | 8 GB | La recomendación documentada para producción |
| Migración en curso de un histórico grande de Jira | 8 GB o más | Las importaciones masivas consumen mucha memoria, aunque brevemente |
Si dudas entre dos tamaños, coge el mayor. Cuando falta memoria, Plane falla porque el núcleo mata un contenedor a mitad de una petición, lo que parece una sucesión de errores aleatorios en lugar de un mensaje claro de memoria agotada.
CPU: dos núcleos bastan de verdad
El trabajo con incidencias va a ráfagas. Alguien abre un tablero, la API responde y el servidor vuelve a quedarse quieto. Dos vCPU absorben eso sin esfuerzo para un equipo normal.
Cuatro núcleos se ganan el sueldo en un caso concreto: importar un histórico existente. Durante una importación masiva compiten la API de Django, el worker de Celery y PostgreSQL, y la tarea termina bastante antes con más núcleos. Es algo puntual, así que rara vez compensa de forma permanente, salvo que el plan con 4 núcleos resulte ser también el plan con 8 GB, que es el caso en Contabo.
Almacenamiento: vigila MinIO, no Postgres
La base de datos se mantiene pequeña. Incidencias, comentarios y registros de actividad son texto, y hasta en un equipo muy activo el volumen de Postgres crece despacio.
La variable son los adjuntos. Cada captura de pantalla y cada documento subido a una incidencia acaba en el volumen de MinIO, y los equipos que pegan capturas con generosidad se quedarán sin un disco de 40 GB mucho antes de que la base de datos importe.
Empieza con 40 GB, vigila el volumen de MinIO y prefiere NVMe o SSD: el rendimiento de PostgreSQL depende de la entrada/salida y la diferencia se nota en las vistas de tablero que agregan muchas incidencias.
Planes de VPS que encajan con estos requisitos
| Proveedor | Plan | vCPU / RAM / Disco | Precio | Veredicto | Enlace |
|---|---|---|---|---|---|
| Contabo | Cloud VPS 4 | 4 / 8 GB / 100 GB SSD | 5.50 EUR/mes sin IVA | Cumple la recomendación de 8 GB | Contabo |
| Hetzner Cloud | CX23 | 2 / 4 GB / 40 GB NVMe | 5.49 EUR/mes sin IVA | Cumple el mínimo; CX33 a 8.49 con 8 GB | Hetzner |
| DigitalOcean | Basic 4 GB | 2 / 4 GB / 80 GB SSD | 24 USD/mes | Cumple el mínimo; mejores herramientas de instantánea | DigitalOcean |
| Vultr | Regular 4 GB | 2 / 4 GB / 80 GB SSD | 20 USD/mes | Cumple el mínimo; mayor elección de regiones | Vultr |
| Linode | Linode 4 GB | 2 / 4 GB / 80 GB SSD | 24 USD/mes | Cumple el mínimo; rendimiento predecible | Linode |
Los planes de entrada de 1 GB de cada proveedor se han excluido a propósito. Quedan por debajo del mínimo documentado por Plane, y ningún ajuste cambia eso.
Una nota sobre compilar desde el código fuente
El docker-compose.yml del repositorio de Plane en GitHub construye cada servicio a partir de su Dockerfile en vez de descargar las imágenes publicadas. Compilar los frontends de Next.js exige bastante más memoria que ejecutarlos, y la compilación dejará el VPS de 4 GB en swap o fallará directamente.
La vía admitida descarga imágenes ya compiladas:
curl -fsSL https://prime.plane.so/install/ | sh -
Dimensiona el servidor para ejecutar Plane, no para compilarlo.
Planificar el crecimiento
- Observa con
docker statsantes de decidir una ampliación; muestra qué contenedor está realmente bajo presión. - Haz una instantánea del VPS antes de cada subida de versión: el contenedor
migratoraplica los cambios de esquema al arrancar. - Respalda juntos el volumen de PostgreSQL y el de MinIO. Cualquiera de los dos por separado restaura una instancia incompleta.
- La mayoría de proveedores amplían la memoria en caliente, así que pasar de 4 GB a 8 GB es un reinicio, no una migración.
Para una visión más amplia de los planes disponibles, consulta nuestra comparativa completa de VPS.
Referencias de la comunidad que merece la pena seguir: la lista awesome-selfhosted y el subreddit r/selfhosted.
Frequently asked questions
¿Cuánta RAM necesita realmente una instancia de Plane auto-hospedada?
El mínimo oficial es de 4 GB y la recomendación documentada para producción es de 8 GB. La Community Edition ejecuta trece contenedores, entre ellos PostgreSQL, Valkey, RabbitMQ y MinIO, que por sí solos ocupan la mayor parte de 4 GB antes de que nadie inicie sesión. Usa 4 GB para un equipo pequeño o una prueba, y 8 GB cuando Plane sea la herramienta que tu equipo abre cada mañana.
¿Cuántos núcleos de CPU requiere Plane para funcionar?
Dos núcleos son el mínimo documentado, en x64/AMD64 o AArch64/ARM64. Dos bastan para el trabajo diario con incidencias porque la carga llega a ráfagas en lugar de mantenerse constante. Cuatro núcleos merecen la pena si piensas importar un histórico grande desde Jira, ya que la API de Django y los procesos en segundo plano compiten por la CPU durante las operaciones masivas.
¿Cuánto espacio de disco debo reservar para Plane?
Empieza con 40 GB y prevé crecimiento. La base de datos PostgreSQL se mantiene modesta, pero MinIO guarda cada archivo adjuntado a una incidencia, y es ese volumen el que llena el disco. Las capturas de pantalla y los documentos adjuntos se acumulan sin pausa, así que vigila el volumen de MinIO antes que la base de datos al decidir si amplías.