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:

  1. 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.
  2. Caddy: si Caddy ya funciona, se añade un sitio con import /etc/caddy/opsgate.caddy.
  3. nginx: si nginx ya usa los puertos 80/443, se añade un bloque de servidor y certbot obtiene el certificado.
  4. Caddy (nuevo): si los puertos 80 y 443 están libres, se instala y configura Caddy. Es la opción más sencilla.
  5. 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.