Esses 4 pequenos contêineres Docker fazem o trabalho chato que torna os laboratórios domésticos realmente confiáveis

Quando as pessoas falam sobre auto-hospedagem, geralmente se referem a servidores de mídia, backups de fotos e substituições de armazenamento em nuvem. E eu concordo, eles são importantes e é por isso que configurei meu servidor doméstico em primeiro lugar.

Mas um servidor doméstico pode executar dezenas de contêineres e ainda assim parecer incrivelmente amador. Não porque os aplicativos em si sejam ruins, mas porque gerenciá-los geralmente exige muitas suposições.

Com o tempo, experimentei vários pequenos contêineres de utilitários que fizeram meu servidor parecer mais maduro e acabei optando por quatro. Eles são pequenos, fáceis de implantar e, sem dúvida, alguns dos serviços mais úteis da minha pilha para me ajudar a entender e gerenciar todo o resto.

9 contêineres Docker rodando 24 horas por dia, 7 dias por semana no meu mini PC de US$ 100

Laboratório doméstico com orçamento de valor máximo.

Guarda-Arcas

O gerenciador de senhas que você sempre adia

Eu uso o Bitwarden Premium como meu gerenciador de senhas padrão há muitos anos. O mundo recentemente mudou de senhas e 2FA para logon único sem senha. E, francamente, também tem sido conveniente. Mas também veio com dependências específicas do dispositivo. Por exemplo, se eu configurar uma chave de acesso no meu iPhone, sempre precisarei do iPhone para fazer login nessa conta.

Foi aí que decidi centralizar o processo. O Bitwarden também oferece suporte a chaves de acesso, mas ultimamente tenho tentado migrar meus serviços diários para meu servidor homelab. O Bitwarden veio com uma opção de auto-hospedagem, mas o servidor é pesado (precisa de mais de 1 GB para funcionar confortavelmente) e não vale a pena para meu antigo servidor Debian. Então me deparei com o Vaultwarden, um servidor não oficial compatível com Bitwarden escrito em Rust que ocupa menos de 50 MB de memória para ser executado. E como é compatível com o Bitwarden, eu poderia usar o mesmo aplicativo Bitwarden e extensão de navegador para usá-lo.

Todas as minhas credenciais estão agora no meu hardware e não no servidor de outra pessoa. É difícil argumentar contra hospedar suas senhas e chaves de acesso em seu próprio hardware. Usei-o durante meses e agora acho que deveria ter feito isso antes.

services:
 vaultwarden:
   image: vaultwarden/server:latest
   container_name: vaultwarden
   ports:
     - "8090:8080"
   volumes:
     - /opt/vaultwarden/data:/data
   environment:
     - DOMAIN=https://your-domain.com
     - ROCKET_PORT=8080
     - ADMIN_TOKEN=your_secure_admin_token
     - WEBSOCKET_ENABLED=true
     - PASSWORD_MIN_LENGTH=8
   restart: unless-stopped

Você bebe

Mais leve do que o que substituiu

O monitoramento de servidores hoje em dia é como pilotar um Airbus apenas para verificar o tempo. É muito mais complexo e consome mais recursos do que o próprio serviço que monitora. Por que eu iria querer uma ferramenta de monitoramento que não me mostrasse nada de útil ou que tivesse estatísticas completas de nível empresarial de que eu não precisava? Estou procurando uma ferramenta de monitoramento que possa responder à minha única pergunta: meu servidor está íntegro? Beszel respondeu diretamente, sem sobrecarregar todo o processo.

Beszel depende de dois componentes, um agente leve que é executado no servidor monitorado e um painel GUI simples que exibe métricas. Juntos, eles não ocupam mais de 40 MB de memória. E a interface do usuário é simples o suficiente para que eu possa olhar os números e saber imediatamente no que preciso prestar atenção. O hub se concentra em quatro métricas principais: uso de CPU, RAM, disco e rede, que é exatamente o que preciso saber se meu servidor está íntegro. Já usei serviços de monitoramento de nível empresarial, como Datadog e Zabbix, para infraestrutura de grande escala, mas eles são um exagero para um pequeno laboratório doméstico.

services:
 beszel-agent:
   image: henrygd/beszel-agent:latest
   container_name: beszel-agent
   network_mode: host
   volumes:
     - /var/run/docker.sock:/var/run/docker.sock:ro
     - beszel_agent_data:/var/lib/beszel-agent
   environment:
     - HUB_URL=https://your-beszel-hub-url
     - LISTEN=45876
     - KEY=your_ssh_ed25519_public_key
     - TZ=Asia/Kolkata
   restart: unless-stopped

volumes:
 beszel_agent_data:

Torre de vigia

Atualiza-se. Atualiza tudo.

Sempre digo em meus artigos que implantar um serviço e fazer com que pareça um serviço em nuvem é uma coisa, mantê-lo é outra história. Os novos trabalhadores de laboratório doméstico seguem o padrão: implantar e esquecer. A atualização manual dos contêineres é esquecida ou adiada pela maioria dos proprietários de homelabs. Até eu sou um deles. Tenho mais de 15 serviços ativos em minha pilha, mas quase não verifico atualizações. A única vez que atualizo alguma coisa é quando um pop-up aparece na tela solicitando.

É aqui que entra a Watchtower. Ela monitora imagens do Docker e atualiza automaticamente os contêineres. Quando o executei pela primeira vez, ele digitalizou 21 imagens e atualizou 15 delas. É por isso que até eu, que sempre falo sobre segurança e privacidade, tenho preguiça de não atualizar os serviços que utilizo regularmente. Um fato interessante é que ele ocupa menos de 20 MB de memória de execução. Então isso quase não atrapalha sua memória; você só precisa implantá-lo uma vez e esquecê-lo. E você não precisa se preocupar com isso forçando atualizações em momentos inconvenientes, no estilo Windows. Eu programo-o para ser executado em um determinado horário e ele cumpre.

services:
 watchtower:
   image: containrrr/watchtower
   container_name: watchtower
   volumes:
     - /var/run/docker.sock:/var/run/docker.sock
   environment:
     - WATCHTOWER_SCHEDULE=0 30 10 * * *
     - WATCHTOWER_CLEANUP=true
     - DOCKER_API_VERSION=1.44
   restart: unless-stopped

Rastreador de velocidade

Seu ISP não pode mais mentir

Você já teve problemas inconsistentes de download ou upload do seu ISP e, quando você reclama, o ISP pede um relatório de teste de velocidade, diz que está tudo bem e fecha o ticket? Acontece comigo o tempo todo. E nunca tenho nenhuma prova para mostrar a eles. Foi quando me deparei com o Speedtest Tracker.

É um rastreador simples que funciona de acordo com uma programação, registra todos os resultados e cria um histórico. Não apenas velocidades de download e upload, mas também latência, jitter e perda de pacotes. E pode ser acessado por meio de um painel da web limpo. Sim, é um pouco mais pesado que os outros três desta lista, ocupando cerca de 120 MB de memória, mas isso porque é o único com banco de dados que suporta logs históricos.

Se algo parecer errado, posso verificar os dados históricos antes de alterar as configurações ou reiniciar os contêineres. Ele muda a solução de problemas de suposições para evidências. O Speedtest Tracker não torna sua internet mais rápida, mas informa exatamente quando, onde e como seu desempenho muda ao longo do tempo.

services:
 speedtest-tracker:
   image: lscr.io/linuxserver/speedtest-tracker:latest
   container_name: speedtest-tracker
   ports:
     - "8765:80"
   volumes:
     - speedtest-config:/config
   environment:
     - PUID=1000
     - PGID=1000
     - APP_KEY=base64:your_generated_app_key
     - APP_URL=http://your-server-ip:8765
     - DB_CONNECTION=sqlite
     - SPEEDTEST_SCHEDULE=0 */6 * * *
   restart: unless-stopped

volumes:
 speedtest-config:

Recipientes chatos que fazem todo o resto funcionar

Não adicionei todos esses serviços de uma vez. Eles são gradualmente adicionados à minha pilha sempre que sinto necessidade deles. Individualmente, nenhum deles é muito emocionante. Mas juntos, eles melhoram a visibilidade, a manutenção e a solução de problemas, sem suposições. A parte interessante é que nenhum desses contêineres Docker consome muitos recursos. Alguns deles usam menos memória do que uma janela do navegador e nenhum deles é o motivo pelo qual alguém não inicia a auto-hospedagem, mas resolvem problemas de desempenho que ocorrem todos os dias e podem se acumular com o tempo.

Link da fonte