Gotify Commander
Un mando a distancia para tus servidores. El primer plugin de Gotify que responde.
El Problema
Estás paseando. Tu móvil vibra — un servicio necesita reiniciarse. Con cualquier otra herramienta, necesitarías un portátil, una terminal y una sesión SSH. Se acabó el paseo.
La Solución
Con gotify-commander, escribes restart nginx y recibes ✓ nginx reiniciado. La misma app que ya usas para alertas — ahora responde. Sin portátil, sin SSH, sin terminal. El paseo continúa.
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
23 comandos organizados en 5 categorías. Todos aceptan aliases y targets de máquina.
🔄 Gestión de Servicios (7)
| 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 |
services | — | Listar todos los servicios gestionados |
help | — | Mostrar todos los comandos y servicios |
📊 Diagnósticos de Sistema (9)
| 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 |
ping | [vps|mac] | Health check — responde con "pong" + latencia |
ip | [vps|mac] | Direcciones IP |
ports | [vps|mac] | Puertos abiertos |
connections | [vps|mac] | Estadísticas de sockets |
🌐 Monitoring y Analytics (4)
| Comando | Argumentos | Descripción |
|---|---|---|
traffic | [service] | Análisis de tráfico Nginx vía rhit |
analytics | — | Resumen de analíticas web vía GoAccess |
certs | — | Expiración de certificados SSL |
updates | — | Actualizaciones pendientes (apt) |
📍 Localización (1)
| Comando | Argumentos | Descripción |
|---|---|---|
locate | <lat> <lon> | Geocodificación inversa GPS vía OpenStreetMap |
⚠ Peligro (2)
| Comando | Argumentos | Descripción |
|---|---|---|
reboot | <vps|mac> | Reiniciar máquina (requiere target explícito) |
shutdown | <vps|mac> | Apagar máquina (requiere target explícito) |
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 ejecución arbitraria
- Sanitización de input — la mayoría de comandos usan
exec.Command; los que requieren shell validan input con regex estrictos - 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.