Configuración de almacenamiento y servicios centrales Storage setup and core services
Sistema operativo: Debian Linux. Sobre él instalé y configuré Jellyfin (servidor de medios) y qBittorrent-nox (cliente de torrents con WebUI).
Configuración de carpetas e integración:
- Estructura de directorios nativa para descargas:
/var/lib/qbittorrent/Downloads/. - Permisos de archivos: asegurar propiedad del usuario
qbittorrent(chown -R qbittorrent:qbittorrent) y permisos755/775(chmod). - Asignación de grupos: añadir el usuario
jellyfinal grupoqbittorrent(usermod -aG qbittorrent jellyfin) para permitir lectura de medios sin conflictos de permisos. - Mapeo en Jellyfin: apuntar las bibliotecas de Jellyfin exactamente a las subcarpetas de descarga.
Operating system: Debian Linux. On top of it I installed and configured Jellyfin (media server) and qBittorrent-nox (torrent client with a WebUI).
Folder setup and integration:
- Native download directory structure:
/var/lib/qbittorrent/Downloads/. - File permissions: ensure ownership by the
qbittorrentuser (chown -R qbittorrent:qbittorrent) with755/775permissions (chmod). - Group assignment: add the
jellyfinuser to theqbittorrentgroup (usermod -aG qbittorrent jellyfin) so it can read media without permission conflicts. - Mapping in Jellyfin: point Jellyfin's libraries exactly at the download subfolders.
Acceso remoto seguro sin abrir puertos (solución a CG-NAT) Secure remote access without opening ports (working around CG-NAT)
Implementé Tailscale sobre Debian como red privada virtual (mesh VPN). Esto permite la
administración remota completa (SSH, WebUI de qBittorrent en el puerto 8080 y Jellyfin en el
puerto 8096) a través de la interfaz cifrada tailscale0 (rango IP 100.X.X.X).
De esta manera prescindo del reenvío de puertos (port forwarding) en el router, lo que mitiga el riesgo de escaneo masivo sobre la IP pública.
I set up Tailscale on top of Debian as a mesh VPN. This allows full remote administration
(SSH, qBittorrent's WebUI on port 8080, and Jellyfin on port 8096) through the encrypted
tailscale0 interface (IP range 100.X.X.X).
This way I avoid port forwarding on the router entirely, which mitigates the risk of mass scanning against the public IP.
Mantenimiento y actualizaciones automáticas Maintenance and automatic updates
- Configuré
unattended-upgradesyapt-listchangespara gestionar los parches de seguridad de Debian en segundo plano. - Habilité los
systemd timers(APT::Periodic::Unattended-Upgrade "1") con la propiedadPersistent=true, para garantizar que si el servidor está apagado en la hora programada, las actualizaciones pendientes se ejecuten automáticamente tras el siguiente arranque. - Configuré la limpieza automática de paquetes obsoletos (
Remove-Unused-Dependencies).
- I configured
unattended-upgradesandapt-listchangesto handle Debian's security patches in the background. - I enabled
systemd timers(APT::Periodic::Unattended-Upgrade "1") withPersistent=true, to guarantee that if the server is off at the scheduled time, pending updates run automatically after the next boot. - I set up automatic cleanup of obsolete packages (
Remove-Unused-Dependencies).