Última verificación:
Windmill convierte scripts en webhooks, flujos de trabajo, tareas programadas e interfaces internas: una alternativa open source a Retool y Temporal. Elegir un VPS para él funciona distinto que con la mayoría de aplicaciones auto-hospedadas, porque la capacidad se mide en workers, y los workers se compran con núcleos.
Por qué el número de núcleos decide esta comparativa
Windmill no va más rápido si le das más memoria a un proceso. Va más rápido si añades contenedores worker, y el techo práctico está en torno a un worker estándar por vCPU, con 1-2 GB de RAM cada uno.
Eso invierte el consejo habitual. En la mayoría de aplicaciones auto-hospedadas miras primero la RAM y tratas los núcleos como algo secundario. Aquí, un plan de 4 vCPU asume alrededor del doble de carga simultánea que uno de 2 vCPU con la misma memoria por worker, así que el plan con más núcleos al mismo precio es sencillamente la mejor máquina.
Otros dos hechos arquitectónicos moldean los requisitos:
- PostgreSQL es la cola. No hay Redis ni intermediario aparte, así que la base de datos está en la ruta caliente de cada reparto de tarea y pide disco rápido.
- Los workers nativos son casi gratis. Ejecutan tareas ligeras con unos 0,1 CPU y 128 MB, por eso la pila estándar incluye uno sin necesitar otro núcleo.
Las mejores opciones de VPS para alojar Windmill
| Proveedor | Plan | vCPU | RAM | Almacenamiento | Precio | Workers en paralelo (aprox.) | Enlace |
|---|---|---|---|---|---|---|---|
| Contabo | Cloud VPS 4 | 4 | 8 GB | 100 GB SSD | 5.50 EUR/mes sin IVA | ~4 | Contabo |
| Hetzner Cloud | CX23 | 2 | 4 GB | 40 GB NVMe | 5.49 EUR/mes sin IVA | ~2 | Hetzner |
| DigitalOcean | Basic 4 GB | 2 | 4 GB | 80 GB SSD | 24 USD/mes | ~2 | DigitalOcean |
Contabo Cloud VPS 4: el doble de workers por el mismo dinero
Por 5.50 EUR sin IVA obtienes 4 vCPU, 8 GB de RAM y 100 GB de SSD. Frente al CX23 de Hetzner, un céntimo más barato, eso es el doble de núcleos y el doble de memoria, lo que se traduce casi directamente en el doble de capacidad de tareas simultáneas. Para una carga hecha de muchas tareas cortas (sincronizaciones programadas, manejadores de webhooks, pequeños pasos de ETL) es el plan que más trabajo saca por euro.
Las debilidades conocidas de Contabo siguen ahí: aprovisionamiento más lento y rendimiento de red más variable que en Hetzner o DigitalOcean. Ninguna está en la ruta crítica de un ejecutor de tareas que habla sobre todo con tus propios sistemas y a horas fijas.
Hetzner CX23: suficiente para la pila por defecto
El CX23 da 2 vCPU, 4 GB de RAM y 40 GB de NVMe por 5.49 EUR sin IVA. Eso ejecuta con holgura la pila estándar (servidor, un worker estándar, un worker nativo, indexador y Postgres) y el disco NVMe le viene bien a Postgres haciendo de cola. El límite es el paralelismo: manejas unos dos workers, así que una ráfaga de tareas simultáneas se encola en vez de repartirse. El CX33 (4 vCPU, 8 GB, 80 GB NVMe) por 8.49 EUR lo resuelve, pero cuesta más que el equivalente de Contabo.
DigitalOcean Basic 4 GB: el sobreprecio del instrumental
24 USD al mes compran 2 vCPU, 4 GB y 80 GB de SSD: la misma configuración que el CX23 por unas cuatro veces el precio. A cambio obtienes el mejor flujo de instantáneas y la mejor documentación de los tres, además de una monitorización que funciona sin tocar nada. Un intercambio razonable si tu equipo ya vive en DigitalOcean y valora un único panel. Como elección independiente para un ejecutor de tareas, las cuentas no salen.
Ajustar el plan a tu carga de trabajo
| Carga de trabajo | Plan recomendado | Motivo |
|---|---|---|
| Muchas tareas programadas pequeñas | Contabo Cloud VPS 4 | El paralelismo escala con los núcleos |
| Unas pocas tareas, casi siempre en reposo | Hetzner CX23 | La pila por defecto de dos workers encaja |
| Tareas de Python pesadas con dependencias grandes | Contabo Cloud VPS 4 o Hetzner CX33 | Las instalaciones de dependencias disparan la memoria |
| Evaluación en 1 GB | No recomendado | Solo worker nativo; sin instalación de dependencias |
Notas de despliegue
- Usa el
docker-compose.ymldel propio proyecto en lugar de escribir uno. Las guías que añaden un servicio Redis se equivocan: Windmill encola con PostgreSQL. - Cambia la contraseña
changemede Postgres en el.envincluido antes del primer arranque, porque la base de datos se crea en ese arranque. - Define
BASE_URLy apunta el DNS al servidor antes de arrancar, para que Caddy pueda emitir un certificado. - Respalda el volcado de Postgres y trátalo como un secreto: contiene las credenciales que tus tareas usan para todo lo demás.
Conclusión
La clasificación aquí se desprende de un solo hecho arquitectónico: Windmill compra rendimiento con núcleos. Contabo Cloud VPS 4 entrega unos cuatro workers por 5.50 EUR sin IVA, Hetzner CX23 unos dos por 5.49 EUR, y los proveedores estadounidenses esos mismos dos por cuatro veces más. Salvo que necesites una región concreta o ya estés estandarizado en una plataforma, la cifra de núcleos por euro es toda la comparativa.
Para una comparación a fondo de todas las opciones de VPS disponibles, visita nuestra comparativa completa de VPS.
Frequently asked questions
¿Cuánta CPU y RAM necesita Windmill en un VPS?
Dimensiona por worker en lugar de por aplicación. Cada worker estándar ejecuta una tarea a la vez y quiere aproximadamente un vCPU y 1-2 GB de RAM, además de Postgres y el proceso servidor. La pila Compose por defecto con dos workers va holgada con 2 vCPU y 4 GB, mientras que 4 vCPU y 8 GB son el objetivo sensato cuando varias tareas corren a la vez.
¿Qué VPS ofrece más rendimiento de Windmill por el dinero?
Contabo Cloud VPS 4 a 5.50 EUR sin IVA, porque aquí el rendimiento depende del número de núcleos. Sus 4 vCPU sostienen unos cuatro workers en paralelo, mientras que un plan de 2 vCPU al mismo precio sostiene dos. Si tu carga son muchas tareas pequeñas en lugar de unas pocas pesadas, esa proporción decide la comparativa por sí sola.
¿Puedo ejecutar Windmill en un VPS de 1 GB?
Solo como demostración. Un worker nativo atiende tareas ligeras con unos 0,1 CPU y 128 MB, así que la interfaz cargará y las tareas simples se ejecutarán. Ahí no cabe un worker estándar, lo que descarta cualquier tarea de Python o TypeScript que instale dependencias, y ese es el grueso del trabajo real de automatización.