Quando leio a palavra “homelab” me vêm a cabeça racks de servidores, dezenas de cabos, luzes piscando e muito barulho de ventoinha. O meu homelab não poderia estar mais longe disso. Ele consiste de um Raspberry Pi 4 com 4Gb de RAM e armazenamento dividido entre um SSD de 240 GB para o sistema operacional (overkill, não usa mais de 20Gb) e um HD externo de 2TB para o resto. Como o Raspberry não conseguiria alimentar a si mesmo + SSD + HD externo (se fosse apenas o Pi e o SSD ele conseguiria), eu utilizo um USB-dock com fonte própria para alimentar os discos.

neofetch

Serviços#

O objetivo inicial do homelab era utilizá-lo como um NAS (network attached storage) e guardar minhas fotos e arquivos em geral nele. Porém, ao começar a pesquisar, descobri as possibilidades que um simples Raspberry Pi com 4Gb de RAM pode proporcionar.

Essas “possibilidades” são os serviços que podem rodar no Pi. Streaming de mídia, VPN, sua própria cloud, as possibilidades são (quase) infinitas.

Dashboard criada com o homepage com os serviços que rodo no meu homelab.

Dashboard criada com o homepage com os serviços que rodo no meu homelab.

A seguir temos a lista de serviços que rodo no Pi:

  • OpenMediaVault
    • Implementa um sistema de gerenciamento automático de configuração do Debian, ou seja, ele modifica os arquivos de configuração do Debian conforme sua conveniência. Isso permite que ele transforme o Pi em um servidor de armazenamento em rede (NAS) fácil de usar e gerenciar.
  • Tailscale
    • VPN de configuração simples. Esse é um dos poucos serviços que rodam “bare-metal”, ou seja, sem estar containerizado. Utilizo para acessar a rede de casa sem estar necessariamente conectado a ela. Dá a opção de rotear todo o tráfego da rede por ele, utilizando a sua rede mesmo estando na rua (no 4G ou no wi-fi do aeroporto, por exemplo).

Os serviços abaixo rodam em containers Docker:

  • Portainer
    • Software de gerenciamento de containers. A maioria dos serviços que rodo são containerizados. A interface gráfica do portainer ajuda na criação e manutenção dos containers.
  • Immich
    • Gerenciamento de fotos. Possui recursos avançados de pesquisa e aprendizado de máquina. É utilizado para substituir o iCloud/Google photos.
    • Obs: A performance no Pi não é a das melhores. Por isso, durante importação em massa de fotos para o serviço é recomendado desativar outros containers. Além disso, as tarefas de ML podem ser carregadas em um outro dispositivo mais potente (recomendado) e, ao importar fotos, é recomendado também desativá-las.
  • Home Assistant
    • Plataforma de automação residencial. Minha casa está longe de ser smart, então, por enquanto, o Home Assistant está ligado apenas a uma tomada inteligente que permite monitorar o consumo de energia do homelab.
  • Transmission
    • Cliente de torrent. Auto-explicativo.
  • homepage
    • Dashboard com integração com centenas de serviços. Todos os que utilizo possuem integração nativa, gerando a captura de tela anterior.
  • Plex
    • Streaming de mídia armazenada no Pi. É utilizado para substituir serviços de streaming (Netflix, Apple TV, etc.).
    • Obs: Plex não é open-source e possui algumas features atrás de paywall (mensal/anual ou “one-time fee”). Existe o Jellyfin , que é FOSS e funciona de forma parecida com o Plex. Obtive mais sucesso com o Plex do que com o Jellyfin, mas acredito que os problemas foram por causa hardware, não do software (podia estar entre o teclado e cadeira também).
    • Obs 2: O Pi não tem placa gráfica dedicada para realizar o “transcoding” da mídia (converter a mídia para um formato que o destinatário consiga reproduzir) e possui dificuldade com playback de arquivos 4k. Em relação ao transcoding, se faz necessário confirmar que o destinatário consiga transmitir o arquivo diretamente, de forma que o Plex faça “direct play” da mídia. No meu caso, uso um Roku 4K que roda bem a maioria dos arquivos (menos 4K, embora o nome sugira).
  • tautulli : gerenciamento e monitoramento do Plex
    • Obs: alternativa para usuários do Jellyfin é o Jellystat .
  • *arr stack
    • A *arr stack são serviços projetados para baixar, classificar, organizar e monitorar automaticamente suas coleções de músicas, filmes, livros eletrônicos ou programas de TV, gerenciar indexers e mantê-los em sincronia com outros aplicativos. Abaixo seguem alguns exemplos de serviços da *arr stack:
    • sonarr : séries
    • radarr : filmes
    • bazarr : legendas
    • overseerr : gerenciador de pedidos de mídia para o Plex
      • Obs: alternativa para usuários do Jellyfin é o Jellyseerr .
    • prowlarr : gerenciador de indexers/sites de download

Lista de componentes#

Item Preço Moeda Link
Raspberry Pi 4 4Gb 53.54 CHF https://www.amazon.de/dp/B09TTNF8BT?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1
FLIRC case 12.04 CHF https://www.amazon.de/Raspberry-Pi-FLIRC-Case-Aluminium-silber/dp/B07WG4DW52?th=1
Power supply 7.78 CHF https://www.amazon.de/dp/B07TMPC9FG?ref=ppx_yo2ov_dt_b_fed_asin_title
MicroHDMI 4.65 CHF https://www.interdiscount.ch/fr/product/hama-adaptateur-video-micro-hdmi-0002568203
Sata to USB UGreen* 66.95 BRL https://pt.aliexpress.com/item/4000756910303.html
Rack 71.29 BRL https://pt.aliexpress.com/item/1005005968725807.htm
UH700 usb hub 34.6 CHF https://www.digitec.ch/en/s1/product/tp-link-uh700-micro-usb-docking-stations-usb-hubs-2760145
2TB Wd elements HDD 70 CHF https://www.galaxus.ch/en/s1/product/wd-elements-2-tb-external-hard-drives-448766?supplier=406802

*Um salve para James A. Chambers e seu blog post sobre como bootar o Pi através de um SSD. Lá existe uma lista de aparelhos SSD e de adaptadores USB/SATA que são compatíveis com o Pi.