Instalación en servidor
Requisitos, opciones del instalador, modos de HTTPS, actualizaciones y desinstalación.
Requisitos
| Sistema operativo | Linux de 64 bits con systemd: Ubuntu 22.04+, Debian 12+, Rocky/Alma 9+ y la mayoría de distribuciones modernas |
| Python | 3.10 o más reciente (el instalador añade python3-venv si hace falta) |
| Acceso | root o un usuario con sudo |
| Red | HTTPS de salida hacia https://mcp.opsgates.com y PyPI (para instalar dependencias); puertos 80 y 443 accesibles desde internet para el certificado, salvo que uses EasyPanel o tu propio proxy |
| Recursos | unos 80 MB de RAM y 150 MB de disco |
El comando de instalación
curl -fsSL https://mcp.opsgates.com/install.sh | sudo bash -s -- --key og_tu_clave [opciones]
| Opción | Qué hace |
|---|---|
--key CLAVE |
Tu clave de licencia (obligatoria en la primera instalación). |
--domain NOMBRE |
Usa tu propio nombre, p. ej. mcp.ejemplo.com. Su registro A de DNS debe apuntar al servidor. Sin él se usa <tu-ip>.sslip.io. |
--proxy MODO |
auto (por defecto), easypanel, caddy, nginx o none. |
--email DIRECCIÓN |
Contacto para Let's Encrypt (modo nginx). |
--port N |
Puerto local del agente (por defecto 8765, o el siguiente libre). |
--allow-write CARPETAS |
Carpetas separadas por comas que la IA puede modificar, p. ej. /var/www/app,/etc/nginx/sites-available. |
--allow-restart SERVICIOS |
Servicios separados por comas que la IA puede reiniciar, p. ej. nginx,miapp. |
--access PERFILES |
Lo que puede hacer la IA: readonly (por defecto), network, asterisk, full (separados por comas). Sin esta opción, un menú pregunta al instalar. Se cambia después con sudo opsgate access. |
--no-firewall |
No abrir los puertos 80/443 en ufw o firewalld. |
--update |
Actualizar una instalación existente, manteniendo la contraseña, la clave y los ajustes. |
¿Quieres leer el script antes? Descárgalo, léelo y ejecútalo:
curl -fsSL https://mcp.opsgates.com/install.sh -o install.sh
less install.sh
sudo bash install.sh --key og_tu_clave
Cómo se configura el HTTPS
El agente solo escucha en una dirección local. Un proxy inverso delante de él da el HTTPS. Con --proxy auto el instalador elige:
- EasyPanel: si EasyPanel está instalado, se añade una ruta a su Traefik (
/etc/easypanel/traefik/config/custom.yaml, con copia de seguridad; tus otras rutas se mantienen). El certificado lo da el resolvedor Let's Encrypt de EasyPanel. - Caddy: si Caddy ya funciona, se añade un sitio con
import /etc/caddy/opsgate.caddy. - nginx: si nginx ya usa los puertos 80/443, se añade un bloque de servidor y certbot obtiene el certificado.
- Caddy (nuevo): si los puertos 80 y 443 están libres, se instala y configura Caddy. Es la opción más sencilla.
- none: si otra cosa usa los puertos, no se cambia nada y se te indica a dónde apuntar tu proxy (
http://127.0.0.1:8765, con el búfer de respuesta desactivado).
El primer certificado suele tardar menos de un minuto. Compruébalo con sudo opsgate doctor.
Qué se instala
| Ruta | Contenido |
|---|---|
/opt/opsgate/app |
El código del agente (de root, solo lectura para el servicio) |
/opt/opsgate/venv |
Su entorno de Python |
/etc/opsgate/env |
Configuración, solo root: hash de la contraseña, hashes de tokens, clave de licencia |
/var/lib/opsgate |
Base de datos OAuth (solo hashes) y contador de uso |
/var/log/opsgate/audit.jsonl |
Registro de auditoría de cada llamada |
/var/backups/opsgate |
Copias de seguridad automáticas antes de cada escritura |
/etc/systemd/system/opsgate.service |
El servicio reforzado |
/etc/sudoers.d/opsgate |
Los reinicios exactos que permitiste (vacío por defecto) |
/usr/local/bin/opsgate |
El comando de gestión |
Actualizar
sudo opsgate update
Descarga el último agente de https://mcp.opsgates.com, comprueba su firma, mantiene tus ajustes y reinicia el servicio (unos segundos). Si la versión nueva no arranca o no responde, se restaura sola la anterior: código, entorno de Python y comando de gestión. Tu panel muestra Actualización disponible junto a un servidor con una versión antigua.
Actualizaciones automáticas (opcional)
sudo opsgate autoupdate on # cada día hacia las 03:30, hora de este servidor
sudo opsgate autoupdate on 05:00 # o la hora que prefieras
sudo opsgate autoupdate status
sudo opsgate autoupdate off
Una vez al día busca una versión nueva firmada y solo la instala si existe. Si la IA usó el servidor en los últimos 10 minutos, espera al día siguiente. Una actualización fallida vuelve atrás sola. Cada intento queda en /var/log/opsgate/autoupdate.log.
Pasar a tu propio dominio
Apunta el registro A del dominio al servidor y ejecuta la actualización con --domain (primero verifica la firma del proveedor):
sudo opsgate update --domain mcp.ejemplo.com
Después actualiza la URL del conector en tus apps de IA.
Desinstalar
sudo opsgate uninstall # mantiene /etc/opsgate (contraseña, ajustes) para reinstalar
sudo opsgate uninstall --purge # lo borra todo, incluidos registros y copias
Después quita el servidor en tu panel para que su clave de licencia deje de funcionar.