Gestão de serviços em casa

Com o evoluir do homelab e a criação de mais serviços internos, começa a ser difícil manter tudo organizado e esta é a solução a que eu cheguei.

Gestão de serviços em casa

Com o evoluir do homelab e a criação de mais serviços internos, começa a ser difícil manter tudo organizado e esta é a solução a que eu cheguei.

Existem alguns pontos que eu acho essenciais para ter a minha rede de serviços organizada.

  1. Tudo tem de ter um friendly name, não me é possível decorar todos os IPs e todas as portas de todos os serviços.
  2. Preciso de ter um único local onde me posso dirigir para encontrar tudo o que tenho disponível.
  3. A adição de novos serviços tem de ser simples e sem problemas.
  4. HTTPS deve ser simples e estar activo em todos os serviços disponíveis online.

Assim sendo, estou a utilizar os seguintes serviços:

  • Pi-hole para DNS local
  • NGINX Proxy Manager para gerir certificados e redireccionar os pedidos para os servidores e portas correctas
  • Heimdall para ter um dashboard dos meus serviços

Pi-hole

Após criar um novo serviço, seja ele um docker container, uma VM, um plugin do TrueNAS, etc, é preciso criar um friendly name, e é ai que o Pi-hole entra para criar um domínio na minha rede interna.

Para quem usa o Pi-hole como adBlocker fica a saber que o Pi-hole também tem a possibilidade de criar domínios que são acessíveis a quem utiliza esse mesmo Pi-hole, assim sendo, sempre que crio um novo serviço que vai ficar ligado durante algum tempo vou ate ao Pi-hole e crio lá um domínio a apontar para o meu NGINX Proxy Manager (pois é este que vai redireccionar tudo para a porta correcta).

Configuração de exemplo do Pi-hole

Como se pode ver na imagem acima todos os domínios estão a apontar para o IP 192.168.50.11, mas na realidade, só o NGINX Proxy Manager é que esta a correr na porta 80 e 443 naquele mesmo IP. O NGINX Proxy Manager é depois utilizado para redireccionar os pedidos para o IP correcto e porta correcta.

A razão para não utilizar o IP correcto da maquina onde o serviço está a correr, é porque muitas vezes tenho serviços a correr na mesma maquina em portas diferentes, e o Pi-hole sozinho só cria o domínio, eu iria ser obrigado a aceder aos serviços utilizando sempre a porta onde ele está a correr, e eu não quero ter de andar a decorar portas.

NGINX Proxy Manager

Agora que o domínio já esta a apontar para o NGINX é preciso ligar o domínio ao IP e porta correcta.

Este passo é bastante simples, basta adicionar mais uma linha aos nossos hosts e configurar para que todos os pedidos que venham com um certo domínio X vão para o IP Y na porta Z.

Proxy Hosts NGINX

No caso de existir um serviço externo, pode-se abrir a porta 80 e 443 do router, apontar directamente para o NGINX Proxy Manager e depois é so adicionar mais um host com o domínio publico e apontar para o serviço correcto.

Este serviço também é capaz de gerir certificados utilizando o Let's encrypt.

Lista de certificados

Heimdall

Por fim, é preciso aceder ás aplicações e de preferência com um só click e é ai que entra o Heimdall.

Este é um excelente dashboard de aplicações que requer 0 de configuração, e é super simples i intuitivo.

Basta instalar, meter a correr, e depois aceder ao dashboard e começar a adicionar as nossas aplicações.

À data da criação desta publicação, o Heimdall suporta 345 aplicações diferentes por default, dando também a possibilidade ao utilizador de adicionar as suas próprias aplicações personalizadas.

Heimdall exemplo