Cómo instalar Mastodon en Docker - Red social descentralizada en Docker

Imagen
Mastodon | Fediverse | Docker Mastodon: Red social descentralizada y autohospedada en Docker Alternativa open source a Twitter con federación. Crea tu propia instancia de Mastodon completamente descentralizada, sin anuncios, sin algoritmos secretos, en tu propio servidor. ¿Qué es Mastodon? Mastodon es una red social descentralizada y de código abierto basada en ActivityPub, el protocolo federado de redes sociales. Es una alternativa completa a Twitter donde tú eres el dueño de tu instancia, tus datos, y tu comunidad. No hay anuncios, no hay algoritmo oculto, no hay tracking corporativo. La magia de Mastodon es la federación : múltiples servidores independientes funcionan como una red conectada. Puedes seguir a usuarios de otros servidores, interactuar con ellos, y formar comunidades. Es como correo electrónico: tu email está en Gmail pero puedes escribir a usuarios en Outlook. Con Mastodon, tú hospeadas tu propia insta...

Cómo instalar UpSnap en Docker - Wake on LAN desde web en Docker

UpSnap | Wake on LAN | Docker

UpSnap: Gestión de Wake-on-LAN desde web en Docker

Enciende, apaga y gestiona tus dispositivos de red desde un navegador. Descubrimiento automático, permisos por usuario, escaneo de red y control remoto de máquinas.

¿Qué es UpSnap?



UpSnap es una aplicación web para Wake-on-LAN (WOL) escrita en SvelteKit, Go y PocketBase. Permite encender computadoras y dispositivos de red remotamente usando Magic Packets, apagar máquinas via SSH o comandos personalizados, y gestionar todo desde una interfaz web limpia y moderna.

A diferencia de herramientas WOL tradicionales de línea de comandos o aplicaciones móviles limitadas, UpSnap ofrece una solución completa con gestión de usuarios, permisos granulares, descubrimiento automático de dispositivos en tu red, programación de encendidos, y más. Todo autohospedado en Docker con almacenamiento PocketBase.

Perfecto para: Apagar laboratorios de ordenadores, encender máquinas home-lab, gestionar servidores domésticos, crear automatizaciones para equipos en tu red local sin necesidad de herramientas comerciales costosas.

Características principales

Wake-on-LAN

Enciende máquinas en tu red local enviando Magic Packets a su dirección MAC.

Apagado remoto

Apaga dispositivos via SSH, comandos personalizados o scripts shell.

Descubrimiento automático

Escanea tu red con nmap para encontrar y añadir dispositivos automáticamente.

Control de usuarios

Permisos granulares: admins y usuarios normales con acceso por dispositivo.

Gestión de dispositivos

Añade, edita, elimina dispositivos con notas, nombres personalizados y metadatos.

Ping y estado

Verifica si un dispositivo está encendido o apagado con ping en tiempo real.

Cron y programación

Programa encendidos/apagados automáticos a horas específicas.

Interfaz responsive

Funciona en desktop, tablet y móvil para acceso desde cualquier lugar.

Base de datos integrada

PocketBase integrado, sin necesidad de base de datos externa.

Multiidioma

Interfaz disponible en múltiples idiomas incluyendo español.

API REST

API completa para automatizar y integrar con otras herramientas.

Open Source

100% código abierto bajo licencia MIT. Completamente gratuito para siempre.

Instalación rápida

Opción 1: Docker Run (lo más simple)

docker run --network=host \ -v upsnap-data:/app/data \ ghcr.io/seriousm4x/upsnap:5

Accede a http://localhost:8090 y crea tu cuenta de administrador en el primer acceso.

Importante: --network=host es necesario para que WOL funcione correctamente (envío de Magic Packets).

Opción 2: Docker Compose (recomendado)

Paso 1: Crear docker-compose.yml

services: upsnap: image: ghcr.io/seriousm4x/upsnap:5 container_name: upsnap network_mode: host # Requerido para WOL volumes: - upsnap-data:/app/data restart: unless-stopped volumes: upsnap-data:

Paso 2: Iniciar UpSnap

docker compose up -d

Paso 3: Acceder a la aplicación

Abre http://localhost:8090 en tu navegador.

Docker Compose con todas las opciones

services: upsnap: image: ghcr.io/seriousm4x/upsnap:5 container_name: upsnap network_mode: host volumes: - upsnap-data:/app/data environment: # Puerto HTTP (default: 8090) - UPSNAP_HTTP_LISTEN=0.0.0.0:8090 # Rango de escaneo de red (CIDR notation) # - UPSNAP_SCAN_RANGE=192.168.1.0/24 # Timeout del escaneo nmap (default: 500ms) # - UPSNAP_SCAN_TIMEOUT=500ms # Ping sin privilegios (default: true) # - UPSNAP_PING_PRIVILEGED=true # Título personalizado del sitio web # - UPSNAP_WEBSITE_TITLE=Mi UpSnap # Ruta base para reverse proxy (default: /) # - UPSNAP_BASE_URL=/upsnap/ - TZ=Europe/Madrid restart: unless-stopped volumes: upsnap-data:

Configuración inicial

Crear cuenta de administrador

  1. Accede a http://localhost:8090 en tu navegador
  2. Completa el formulario de registro (primera cuenta es automáticamente admin)
  3. Inicia sesión

Descubrir dispositivos en la red

  1. Ve a Settings → Network Scan
  2. Introduce tu rango de red (ej: 192.168.1.0/24)
  3. Haz clic en Scan
  4. Espera a que termine el escaneo (puede tomar 1-5 minutos)
  5. Selecciona los dispositivos que quieras añadir
  6. Haz clic en Add Selected
Nota: El escaneo requiere nmap. Si no está disponible, añade dispositivos manualmente con su dirección MAC.

Añadir dispositivo manual

  1. Ve a Devices
  2. Haz clic en Add Device
  3. Completa los campos:
    • Name: Nombre visible (ej: "Gaming PC")
    • MAC Address: Dirección MAC del dispositivo
    • IP Address: IP del dispositivo (para ping, opcional)
    • Broadcast Address: Dirección de broadcast de la red
  4. Haz clic en Save

Configurar apagado remoto (SSH)

Para apagar máquinas remotamente, UpSnap puede usar SSH con claves.

Generar clave SSH en el contenedor

docker exec upsnap ssh-keygen -t rsa -N "" -f /app/data/upsnap-key

Configurar en UpSnap

  1. Ve a Settings → SSH Config
  2. Pega la clave privada generada
  3. Para cada dispositivo, ve a Device Details → Shutdown Config
  4. Configura el comando de apagado (ej: shutdown -h now en Linux)
  5. Prueba la conexión

Comando de apagado por SO

  • Linux: shutdown -h now o poweroff
  • Windows (Powershell): Stop-Computer -Force
  • macOS: shutdown -h now

Gestión de permisos de usuarios

UpSnap permite control granular de quién puede hacer qué:

Niveles de acceso

  • Admin: Control total. Puede crear usuarios, modificar dispositivos, cambiar configuración
  • User: Acceso limitado a dispositivos específicos según permisos asignados

Permisos por dispositivo

Para cada dispositivo, admins pueden asignar a usuarios específicos:

  • View: Ver el dispositivo en la lista
  • Edit: Editar nombre, IP, MAC y configuración del dispositivo
  • Wake: Encender el dispositivo (WOL)
  • Shutdown: Apagar el dispositivo

Crear usuario y asignar permisos

  1. Ve a Settings → Users
  2. Haz clic en Add User
  3. Introduce email y contraseña
  4. Haz clic en el usuario para editar permisos por dispositivo
  5. Marca/desmarca los permisos según necesites
  6. Guarda los cambios

Configurar reverse proxy (Caddy)

upsnap.tudominio.com { reverse_proxy localhost:8090 }

Con ruta personalizada (Nginx)

location /upsnap/ { proxy_pass http://localhost:8090/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }

También actualiza el variable de entorno en docker-compose:

- UPSNAP_BASE_URL=/upsnap/

Consideraciones de seguridad

Advertencia importante: El comando de apagado se ejecuta como shell. Si alguien obtiene acceso no autorizado y puede abusar de esta ruta API, tendría acceso a un shell en tu red local (posiblemente como root si corres Docker como root).

Recomendaciones de seguridad

  • No expongas a Internet: UpSnap está diseñado para usar en red local. Si necesitas acceso remoto, usa VPN (Wireguard, OpenVPN)
  • Usa reverse proxy con autenticación: Añade autenticación extra con Authelia o similar si accedes desde fuera de tu red
  • Contraseñas fuertes: Usa contraseñas complejas para todas las cuentas
  • Limita permisos: Asigna solo los permisos necesarios a cada usuario
  • Actualiza regularmente: Mantén UpSnap y Docker actualizados

Gestión y mantenimiento

Ver logs

docker compose logs -f upsnap

Reiniciar UpSnap

docker compose restart upsnap

Detener UpSnap

docker compose down

Actualizar a la última versión

docker compose pull docker compose up -d

Acceder al shell del contenedor

docker compose exec upsnap sh

Backup de datos

docker run --rm \ -v upsnap-data:/data \ -v $(pwd):/backup \ alpine tar czf /backup/upsnap-backup-$(date +%Y%m%d).tar.gz -C /data .

Casos de uso

  • Laboratorio escolar: Encender y apagar múltiples ordenadores simultáneamente
  • Home lab: Gestionar servidores y máquinas virtuales desde una interfaz centralizada
  • Empresa pequeña: Control de estaciones de trabajo sin necesidad de software costoso
  • Gaming: Encender/apagar ordenadores gaming desde cualquier dispositivo
  • Automatización: Integración con automatización del hogar para control de energía
  • Data center pequeño: Gestión de múltiples servidores sin hardware especializado
  • Ahorro de energía: Apagar ordenadores automáticamente fuera de horario de trabajo

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.