Dev Tools
Immich Photo Manager Gestión de fotos con IA para Immich
Go-Docs MCP Install and Go — tu IA lee cualquier documento

Gotify Commander

Un mando a distancia para tus servidores. El primer plugin de Gotify que responde.

Gotify 2.x Linux amd64 / arm64 Licencia MIT Código Abierto Plugin Gotify v0.2

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.

▮▮
Comandos y gestión de servicios desde el móvil
Localización GPS con geocodificación inversa

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.

# Data flow 📱 Phone → Gotify Client → Gotify Server → gotify-commander (.so) ↓ systemctl / SSH+launchctl → Target Machine ↓ Result notification → 📱 Phone # Web UI 💻 Browser → https://gotify.example.com/plugin/gotify-commander/ → Control Panel

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.

# 1. Descarga el plugin para tu arquitectura wget https://github.com/drolosoft/gotify-commander/releases/latest/download/gotify-commander-linux-amd64.so # 2. Copia a la carpeta de plugins de Gotify cp gotify-commander-linux-amd64.so /opt/gotify/data/plugins/ # 3. Reinicia Gotify systemctl restart gotify # 4. Configura vía WebUI de Gotify # Plugins → gotify-commander → Configuración → Pega tu YAML # 5. Envía tu primer comando # Desde la app Gotify en tu móvil, escribe: help

Referencia de Comandos

Help command output

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
servicesListar todos los servicios gestionados
helpMostrar 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
analyticsResumen de analíticas web vía GoAccess
certsExpiración de certificados SSL
updatesActualizaciones 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/memoryfree · disk/spacedf · loglogs · upuptime. 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
Gotify Commander Web UI Control Panel

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.

# Ejemplo de configuración YAML gotify: server_url: "http://localhost:2006" base_url: "https://gotify.example.com" client_token: "your-client-token" command_app_id: 1 response_app_token: "your-token" categories: web: label: "🌐 Web" type: web media: label: "📺 Media" type: media monitoring: label: "📊 Monitoring" type: monitoring services: nginx: description: "🌐 Web Server" category: web domain: "example.com" machine: vps port: 80 aliases: [ng, web] systemd: nginx homeserver: description: "🏠 Home Server" category: media machine: mac port: 8080 aliases: [home] launchd: com.myapp.service ssh_targets: mac: host: "100.x.x.x" # Tailscale IP recommended port: 22 user: "admin" key_file: "/home/admin/.ssh/id_rsa"

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ícitoreboot solo 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
Linuxamd64
Linuxarm64
Linuxarm/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
Gimme a coffee 😋
Buy Me A Coffee

Construyo las herramientas que me faltan, y las regalo.
Si alguna te ahorró tiempo, un café mantiene la siguiente en camino.

Buy Me A Coffee QR

¿Listo para gestionar tus servidores desde el móvil?

gotify-commander es gratuito, open source, y listo para usar con tu instancia Gotify.

5 Or gimme a star 🤗