Anterior: Dev Tool Immich Photo Manager Gestión de fotos con IA para Immich
Siguiente: App SoundInbox Deja de revisar email. Escucha lo que importa.

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
Android
Android — machine commands
iPhone
iPhone — restart service from phone

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.

# 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

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
servicesListar 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
GPS locate with map tile

⚙ General

Comando Argumentos Descripción
helpMostrar todos los comandos y servicios
ping[vps|mac]Health check — responde con "pong" + latencia
versionVersión + info del runtime Go

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 plugin configuration

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 passthrough shell
  • Sin inyección shell — todos los comandos van por exec.Command, no sh -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í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.

1 Or gimme a star 🤗