Bueno, este hilo no viene a ser más que una pequeña historia de cómo he montado mi NAS casero, lo que tengo corriendo y qué proyectos tengo ahora mismo en el frente, así que va a ser un poco como mi calvario personal para ayudar a otros en su camino o que al menos me critiqueis por mis decisiones, yo que sé.
ÍNDICE
1) Preludio
2) Hardware
3) The Xpenology Xperience (D.E.P.)
4) OpenMediaVault, el retorno
5) Servicios en funcionamiento
6) Acceso desde fuera
7) Proyectos en curso
Ahora mismo el estado del servidor es el que se describe en el último spoiler (06/10/2020)
Servicios Funcionando
Lo primero y esencial... docker y sobre esto... protainer, después... google o directamente hub.docker.com
¿Qué es docker?
Docker es ese amigo mágico que hace que todo esto sea más divertido. Por encima, un gestor de maquinas virtuales y en cada maquina virtual vamos a correr sólo lo justo y necesario para proveer el servicio que buscamos, esto es, Sistema operativo básico y las dependencias que pueda tener el servicio que queremos. Docker se encarga de gestionar los recursos, confia en docker, en serio, es como Gandalf pero en gestor.
Un ejemplo básico sería Plex, que corre sobre un debian pelao, actualizado y al que luego instala la aplicación plex y la arranca, ya está, no hay más. Si necesitas información que tienes en tus discos duros puedes crear un enlace entre una carpeta del servidor y una carpeta que aparecerá en el docker en la ruta en la que indiques.
Me he hecho muy amigo del portainer, tiene una interfaz sencilla que permite mapear todo, la mayoría de cosas que he instalado que no han sido demasiado locura lo he hecho siguiendo las indicaciones en la propia pagina de la imagen.
Servicios de descarga
Transmission - Cliente torrent básico de linux de toda la vida con interfaz web que se puede integrar con diferentes clientes remotos para gestión.
qBittorrent - Cliente de torrent como la versión de escritorio al que se puede acceder via web, tiene pestaña de busqueda y addons.
Jackett - Indexador de trackers de torrents que se integra con el buscador de qbittorrent
Servicios multimedia
Plex - Servidor multimedia
Tautulli - Con este saco información de uso de plex, usuarios, transcodings, reproducciones, también notifica en un canal de telegram cada vez que añado algo a la biblioteca de plex o si el servicio está caido.
Servicios de archivos
Calibre Web
Herramientas
Krusader
Otros servicios
Docker DuckDNS (requiere token que se obtiene en DuckDNS)
Para Nextcloud seguí una guía de DB Tech creo que era, luego la enlazaré. Los pongo juntos porque los tengo corriendo desde el mismo docker-compose, cosas del copia y pega y no querer calentarme la cabeza.
Nextcloud
Nextcloud-proxy
Nextcloud-MariaDB
Nextcloud-letsencrypt
Después también describiré cómo llegué a hacerme la setup para cada dns que tengo por servicio.
Acceder desde fuera:
Para acceder desde fuera es importante saber cómo redireccionar puertos en tu router lo primero, lo segundo tener un servicio de DNS que puedas ir refrescando para no tener que ir mirando la ip cada vez, no?
Bien, para lo primero lo tengo fácil, el router de mi casa me deja trastear bastante, tengo una ip fija asignada al servidor así que otro problema menos.
Las DNS... Algunos routers tienen también un servicio de DDNS, en mi caso soporta no-ip.com, pero no siempre lo actualiza, así que el contenedor de DuckDNS es todo lo que necesito, tengo varias DNS que refresco desde el mismo contenedor con el mismo token, así mis urls siempre estan accesibles.
Lo siguiente es saber qué estamos exponiendo en docker y qué queremos que sea accesible. Por ejemplo, transmission expone el puerto 9091, pero yo no quiero tener ese puerto abierto, con lo que tengo mapeado otro puerto, digamos el 58272 al 9091 de la ip interna de mi NAS. Ahora si me quiero conectar desde fuera apunto a mi dns, pero en lugar de usar el clásico puerto 9091 uso el que he mapeado al router.
Así con todo, nextcloud usa el puerto 80 y el 443 para servir http y https respectivamente, esos son los importantes, ya que desde aquí accedo a mis ficheros desde fuera.
Aquí también juega un papel importante el proxy que hay corriendo en el stack de nextcloud, puesto que por cada dns que yo refresco en duckdns y configuro un conf.d para ésta el contenedor de letsencrypt genera un certificado y el proxy lo engancha para proveer el https. Esto ha sido un quebradero de cabeza de pelotas que también debería detallar, porque hasta que di con la solución adecuada fueron bastantes vueltas.
Proyectos en marcha
Servidor NUT para poder conectar la switch vía Tinfoil cuyos usuarios sean gestionables por mi.
Automatizar el proceso de creación de rutas para el nginx proxy de verdad.
Tareas pendientes del post
Detallar mi lucha con nextcloud.
Detallar la parte básica de docker y portainer.
Enlazar todos los recursos que he usado para configurarlo todo
Añadir posibilidades de HW contempladas y sugerencias.
Añadir glosario de palabros al post.
Añadir fotos del cacharro.
Añadir más detalle a la sección de almacenamiento
Contar mi historia con Xpenology
Servidor de CS:GO (Sí, en serio, iba de la hostia con sus 128 de tick)
P.D. Iré ampliando el hilo conforme vaya teniendo tiempo y posiblemente habrá partes ya escritas que iré editaré también, cuando eso pase lo notificaré en el post