gotify-commander
Un mando a distancia para tus servidores. El primer plugin de Gotify que responde.
El Problema
Vas caminando. El móvil vibra — un servicio necesita reiniciarse. Con cualquier otra solución, necesitarías un portátil, un terminal y una sesión SSH. El paseo se acabó.
La Solución
Con gotify-commander, tocas restart nginx y recibes ✅ nginx reiniciado. Sigues caminando. La misma app que ya usas para alertas — ahora responde. Sin portátil, sin SSH, sin terminal.
Características
23 Comandos, 6 Categorías
Reinicia servicios, comprueba disco, consulta logs, analiza tráfico, localiza tu móvil — todo desde la app de Gotify que ya usas.
Panel de Control Web
Un dashboard en el navegador construido con Pico CSS. Grid de estado de servicios en vivo, reinicio/parada/inicio con un clic, historial de comandos, métricas del sistema — todo impulsado por tu config YAML.
Arquitectura de App Unificada
Comandos y respuestas fluyen por una única app Gotify. Envía un comando, recibe la respuesta como la siguiente notificación. Sin canales separados que gestionar.
Multi-Máquina
Servicios VPS vía systemctl, servicios Mac Mini vía SSH + launchctl. Apunta a cualquier máquina por nombre — free mac, uptime vps.
Seguridad Primero
VPN Tailscale + login Gotify + token de plugin aleatorio. Solo lista blanca de comandos — sin passthrough shell, sin inyección, timeouts configurables. Reboot requiere target explícito.
GPS Locate y Analíticas
Localiza tus dispositivos con locate. Analiza tráfico con rhit, analíticas web con GoAccess. Verificación de certificados TLS, consultas DNS, health probes HTTP.
Config YAML Dinámica
Añade un servicio al YAML — aparece en comandos, web UI e informes de estado automáticamente. Categorías, dominios, puertos, alias, favicons — todo config-driven.
Primer Plugin Bidireccional
Todos los plugins de Gotify existentes son unidireccionales — reenvían a Telegram, Slack o email. gotify-commander cierra el bucle: escribe un comando, recibe el resultado de vuelta.
Arquitectura
gotify-commander se carga como un plugin nativo de Gotify (.so). Intercepta mensajes en una app de comandos unificada, ejecuta el comando whitelisted correspondiente y devuelve el resultado como notificación en la misma app.
El plugin se ejecuta dentro del proceso del servidor Gotify — sin daemon separado, sin puertos extra, sin dependencias externas. Los comandos se envían a systemctl local, SSH/launchctl remoto, o herramientas de diagnóstico según la configuración YAML. El web UI se sirve en la ruta webhook del plugin.
Inicio Rápido
Descarga el binario del plugin, colócalo en el directorio de plugins de Gotify y reinicia. Menos de dos minutos.
Referencia de Comandos
24 comandos organizados en 6 categorías. Todos aceptan alias y targets de máquina.
🔄 Gestión de Servicios
| Comando | Argumentos | Descripción |
|---|---|---|
status | [service] | Estado de todos o un servicio específico |
restart | <service> | Reiniciar un servicio (soporta aliases) |
start | <service> | Iniciar un servicio |
stop | <service> | Parar un servicio |
logs | <service> | Últimas N líneas de logs del servicio |
env | <service> | Resumen de entorno de un servicio |
services | — | Listar todos los servicios agrupados por categoría |
📊 Diagnósticos de Sistema
| Comando | Argumentos | Descripción |
|---|---|---|
free | [vps|mac] | Uso de memoria |
df | [vps|mac] | Uso de disco |
uptime | [vps|mac] | Uptime + carga media |
top | [vps|mac] | Procesos top por CPU/memoria |
who | [vps|mac] | Usuarios conectados |
reboot | <vps|mac> | Reiniciar máquina (requiere target explícito) |
🌐 Red y Análisis
| Comando | Argumentos | Descripción |
|---|---|---|
ip | [vps|mac] | IP pública de una máquina |
ports | [vps|mac] | Puertos abiertos |
cert | <domain> | Verificar expiración de certificado TLS |
dns | <domain> | Consulta DNS |
curl | <url> | Health check HTTP de una URL |
traffic | [vps|mac] | Análisis de tráfico en vivo vía rhit |
analytics | [service] | Resumen de analíticas web vía GoAccess |
locate | <device> | Localización GPS de un dispositivo |
⚙ General
| Comando | Argumentos | Descripción |
|---|---|---|
help | — | Mostrar todos los comandos y servicios |
ping | [vps|mac] | Health check — responde con "pong" + latencia |
version | — | Versión + info del runtime Go |
Aliases universales: mem/memory → free · disk/space → df · log → logs · up → uptime. Escribir solo el nombre de un servicio equivale a status <servicio>.
¿Por qué gotify-commander?
Todos los demás plugins de Gotify reenvían notificaciones a otro sitio. Este te permite actuar sobre ellas.
| gotify-commander | Telegram Bot | Uptime Kuma | |
|---|---|---|---|
| Self-hosted | ✅ | ❌ | ✅ |
| Bidireccional | ✅ | ✅ | ❌ |
| Dentro de Gotify | ✅ | ❌ | ❌ |
| Sin servicios terceros | ✅ | ❌ | ✅ |
| Gestión de servicios | ✅ | varía | ❌ |
| Multi-máquina (SSH) | ✅ | varía | ❌ |
| Panel de control web | ✅ | ❌ | ✅ |
| Tráfico y analíticas | ✅ | ❌ | ❌ |
| GPS locate | ✅ | ❌ | ❌ |
| Seguridad Tailscale | ✅ | ❌ | ❌ |
| App ya instalada | ✅ | ✅ | ❌ |
Panel de Control Web
Un dashboard en el navegador construido con Pico CSS que vive en https://tu-dominio/plugin/gotify-commander/.
- Grid de estado de servicios en vivo — agrupados por categoría, coloreados ✅ / ❌
- Reinicio / inicio / parada con un clic para cualquier servicio
- Historial de comandos con timestamps y resultados
- Métricas del sistema (memoria, disco, uptime) de un vistazo
- Favicons dinámicos obtenidos de los dominios de servicios
- Categorías dinámicas desde tu config YAML — sin hardcoding
Acceso protegido por tu login de Gotify. Sin credenciales extra.
Configuración
Toda la configuración vive en un único archivo YAML, editable desde el WebUI de Gotify. Define tus servicios, categorías, máquinas, dominios y alias. Añade un servicio — aparece en todas partes.
Seguridad
- Tailscale VPN — todo el tráfico SSH y HTTP cifrado peer-to-peer, nunca expuesto a internet público
- Login Gotify — web UI protegida por tu autenticación Gotify existente
- Lista blanca de comandos — solo los comandos registrados se ejecutan; sin passthrough shell
- Sin inyección shell — todos los comandos van por
exec.Command, nosh -c - Sanitización de input — nombres de servicio validados con
^[a-zA-Z0-9_-]+$ - Timeouts configurables — 30s por defecto, previene procesos desbocados
- SSH solo por clave — sin autenticación por contraseña
- Reboot explícito —
rebootsolo devuelve error, previniendo reinicios accidentales - Registro de auditoría — cada comando registrado: timestamp, comando, origen, resultado, duración
Compatibilidad de plataforma
gotify-commander funciona donde Gotify funcione. El binario del plugin se compila para cada arquitectura objetivo.
| Plataforma | Arquitectura |
|---|---|
| Linux | amd64 |
| Linux | arm64 |
| Linux | arm/v7 |
Construido Con
Un único plugin Go (.so) sin dependencias en runtime más allá del propio Gotify.
- Plugin Go (.so) — Se carga nativamente dentro del servidor Gotify
- Gotify Plugin API — Integración de primera clase, sin hacks
- SSH — Gestión remota de máquinas vía SSH estándar
- Config YAML — Legible, editable desde WebUI
- Pico CSS — Web UI mínima y semántica, sin frameworks JS
- Gin — Router HTTP ligero para el panel de control
¿Listo para gestionar tus servidores desde el móvil?
gotify-commander es gratuito, open source, y listo para usar con tu instancia Gotify.