# Servidores VPS

Servidor Linux Ubuntu propio con root, recursos del plan y control completo desde el panel o por MCP.

Fuente: https://ardumaker.com/docs/vps/

- Categoría: Servidores e infraestructura
- Estado: Disponible
- Requisitos: Una empresa en ArduMaker sin cobros vencidos; Ser admin de la empresa para crear, cambiar de plan, encender, apagar o mover el VPS; Un plan disponible para la empresa (su bloque `elegibilidad` lo dice)
- Herramientas MCP (Solo leen): `listar_vps`, `listar_todos_los_vps`, `ver_vps`, `ver_estado_vps`, `listar_planes_vps`, `ver_opciones_vps`, `ver_funciones_vps`, `ver_funciones_por_sistema`
- Herramientas MCP (Escriben o modifican): `crear_vps`, `editar_vps`, `cambiar_plan_vps`
- Herramientas MCP (Destructivas): `controlar_vps`

## ¿Qué permite hacer?

Un VPS de ArduMaker es un servidor Linux propio de la empresa: un contenedor de sistema aislado con Ubuntu 22.04, acceso `root` y los recursos del plan elegido. Sobre él se instala todo lo demás: apps, bases de datos, despliegues de Git, servicios y tareas.

- Crear un servidor eligiendo plan, ubicación y tipo de disco (`nvme`, `ssd` o `hdd`, según lo que ofrezca la ubicación).
- Entrar por SSH como `root` o como `admin` (con sudo), con contraseñas aleatorias propias de ese VPS.
- Encender, apagar y reiniciar el servidor, y cambiarlo de plan (CPU, RAM y disco).
- Renombrarlo, pasarlo a otra empresa y decidir qué miembros lo ven (listas de permitidos y excluidos).
- Ver su estado en vivo: CPU, memoria, disco, tiempo encendido y servicios corriendo.
- Saber qué funciones soporta según el sistema operativo que informa su agente.

## ¿Cuándo conviene usarlo?

- Hace falta un servidor con `root` para desplegar una aplicación, una API o un sitio.
- Se quiere instalar [PostgreSQL](https://ardumaker.com/docs/postgresql), [MySQL](https://ardumaker.com/docs/mysql), [Redis](https://ardumaker.com/docs/redis), [n8n](https://ardumaker.com/docs/n8n) o [WordPress](https://ardumaker.com/docs/wordpress) sin mantener la máquina a mano.
- Se busca que un agente de IA opere la infraestructura por MCP con los mismos permisos que la persona tiene en el panel.

## ¿Cómo funciona en ArduMaker?

Crear un VPS responde enseguida con el estado `creating`. El aprovisionamiento corre en segundo plano durante algunos minutos y es reanudable: si algo se corta, sigue desde el último estado guardado.

1. `creating`: se lanza el contenedor con Ubuntu 22.04 y los límites de CPU y memoria del plan; después se aplica el tamaño de disco del plan al disco raíz.
2. `create_api`: se instala dentro el agente de ArduMaker, por el que la plataforma lee el estado y ejecuta las operaciones.
3. `assigning_port`: el VPS recibe su nombre DNS propio y se arma el camino privado hacia el agente.
4. `updating_system`: `apt-get update`, `upgrade` y `autoremove`, y un reinicio del contenedor.
5. `installing_base_tools`: `sudo`, `curl`, `openssh-server`, `ca-certificates`, `python3-venv`, `python3-pip`, Node.js LTS con npm y `nginx`; contraseña aleatoria para `root` y la política de SSH.
6. `creating_user`: el usuario `admin` con sudo y contraseña aleatoria, que pide cambiarla en el primer ingreso.
7. `active`: el VPS queda listo. ArduMaker abre el SSH durante 6 horas y manda el correo de bienvenida con el servidor, el puerto, el usuario, la clave inicial y el comando `ssh` listo para pegar.

La plataforma también puede crear el VPS desde una imagen base ya actualizada. En ese camino los estados intermedios son `importing_base`, `customizing` (llaves SSH de host nuevas, contraseñas aleatorias propias, hostname) y `verifying`. Si la verificación no pasa, el contenedor se destruye y se crea por el camino normal: nunca se entrega un VPS a medias.

Todo VPS nuevo nace con los permisos de contenedor que Docker necesita (anidamiento e intercepción de llamadas del sistema), sin ser privilegiado. El daemon de Docker no se instala solo: se instala cuando lo pedís o cuando una app lo necesita. Si el host no admite esos permisos, el VPS se crea igual, más restringido, y Docker figura como no soportado.

## ¿Qué cambia realmente?

| Qué | Dónde / cómo |
| --- | --- |
| Sistema | Ubuntu 22.04 actualizado con `apt-get upgrade` |
| Herramientas | `sudo`, `curl`, `openssh-server`, `python3-venv`, `python3-pip`, Node.js LTS, npm y `nginx` |
| Usuario `root` | Contraseña aleatoria guardada cifrada; en el primer ingreso interactivo por SSH pide elegir una nueva |
| Usuario `admin` | Con sudo y contraseña aleatoria vencida desde el inicio (`chage -d 0`) |
| SSH | Contraseña y claves habilitadas; `root` puede entrar con contraseña según la política de la plataforma |
| Mensaje de bienvenida | MOTD de ArduMaker; el MOTD por defecto de Ubuntu se desactiva |
| Web | `nginx` instalado con su configuración por defecto: es el servidor web interno al que llegan los dominios |

> **INFO:** Las contraseñas de alta no quedan en ningún log de la creación. Solo viajan en el correo de bienvenida, que sirve para el primer ingreso.

## Estados del VPS

| Estado | Qué significa |
| --- | --- |
| `creating` … `creating_user` | Alta en curso (ver los pasos) |
| `active` | Listo para usar |
| `stopped` | Apagado |
| `migrating` | Se está moviendo de máquina |
| `errored` | La creación no pudo terminar |
| `deleting` / `dead` | Borrado en curso o terminado |

## Borrado y copia final

Al borrar un VPS se guarda una copia final, que ven y pueden descargar solo los admins de la empresa. Su plazo depende del motivo: 90 días si se borró por falta de pago; mientras la cuenta siga abierta si lo borró el cliente (que puede pedir que se elimine); 30 días si la empresa se dio de baja. Se avisa por correo a los admins 7 días antes de borrarla.

> **PELIGRO:** Borrar el VPS da de baja todas sus apps, repos y terminales. No se hace por MCP.

## Esquema

**Alta de un VPS**

```text
Pedido (panel o `crear_vps`; responde `creating`)
  ↓
Backend de ArduMaker (cola de creación reanudable)
  ↓
Host (contenedor Ubuntu 22.04 con CPU, RAM y disco del plan)
  ↓
Agente de ArduMaker (instalado dentro del VPS)
  ↓
Actualización y herramientas (apt, Node.js, nginx, SSH)
  ↓
Usuarios (`root` y `admin` con claves aleatorias)
  ↓
active (SSH abierto 6 h y correo de bienvenida)
```

## Resultado esperado

El VPS aparece en `active` en el panel y en `listar_vps`. `ver_estado_vps` devuelve en `system_status` la CPU, memoria, disco, tiempo encendido y servicios, leídos del propio servidor.

- Para entrar, se usa el comando `ssh` del correo de bienvenida mientras la ventana de 6 horas está abierta. Después se reabre desde la gestión de puertos del VPS.
- `ver_funciones_vps` confirma qué funciones están disponibles en ese sistema antes de instalar algo.

## Errores y resolución

| Síntoma | Causa y qué hacer |
| --- | --- |
| `crear_vps` responde 409 | La ubicación elegida se llenó entre la consulta y el alta. Hay que elegir otra con `ver_opciones_vps`; no conviene repetir la misma. |
| El plan figura pero no se puede crear | `elegibilidad.puede` es `false` y `elegibilidad.codigo` dice por qué (cupo gratuito usado, escuela sin cupos). Crear igual falla con ese código. |
| `empresa_en_mora` | La empresa tiene un cobro vencido: no se crea nada nuevo hasta regularizarlo. |
| `funcion_no_disponible` | La función no corre en el sistema de ese VPS (por ejemplo, Docker en Ubuntu 16.04). Reintentar no sirve. |
| El agente no ve el VPS nuevo | La conexión MCP está limitada a ciertos VPS: el dueño tiene que sumarlo al alcance de la conexión. |

El progreso de la creación se sigue con `ver_vps` (campo de estado). Si una llamada de creación se cortó y no se sabe si llegó, se repite con el mismo `idempotency_key` y los mismos argumentos: devuelve el VPS original en vez de crear otro.

> **PRECAUCION:** `stop` y `restart` cortan todo lo que corre en la máquina, incluidas las terminales web abiertas, que quedan marcadas como perdidas por reinicio.

## Relación con MCP

Todo el ciclo del VPS, salvo el borrado, se opera por MCP con los permisos de la persona que autorizó al agente. Referencia completa en [/mcp/docs](https://ardumaker.com/mcp/docs) y en el dominio [/mcp/vps](https://ardumaker.com/mcp/vps).

| Tipo | Herramientas |
| --- | --- |
| Lectura | `listar_vps`, `listar_todos_los_vps`, `ver_vps`, `ver_estado_vps`, `listar_planes_vps`, `ver_opciones_vps`, `ver_funciones_vps`, `ver_funciones_por_sistema` |
| Modifican (solo admin) | `crear_vps`, `editar_vps`, `cambiar_plan_vps` |
| Destructivas (solo admin) | `controlar_vps` con `stop` o `restart` |

> **INFO:** Borrar un VPS entero no existe por MCP, tenga el alcance que tenga el agente: se hace solo desde el panel.

Un agente autorizado solo lectura ve las lecturas pero no las herramientas que modifican. Antes de `crear_vps`, el agente debería revisar `elegibilidad` en `listar_planes_vps` y, si importa dónde vive el servidor, `ver_opciones_vps`.

## Funciones relacionadas

- [Planes de VPS](https://ardumaker.com/docs/planes-vps/)
- [Terminal web](https://ardumaker.com/docs/terminal-web/)
- [Usuarios Linux](https://ardumaker.com/docs/usuarios-linux/)
- [Firewall y puertos](https://ardumaker.com/docs/firewall-y-puertos/)
- [Copias de seguridad](https://ardumaker.com/docs/backups/)
- [Monitorización](https://ardumaker.com/docs/monitorizacion/)
