- Como alternativa aos serviços centralizados focados em coleta de dados, o self-hosting tem ganhado popularidade recentemente
- Com base na experiência de testar várias ferramentas e apps e operá-los de forma estável por mais de um ano, são apresentadas as ferramentas que se mostraram mais úteis
- Uma coletânea de recomendações de runtime de contêineres, ferramentas de gerenciamento via web, proxy reverso e VPN, além de outras ferramentas de self-hosting
- Este não é um texto para determinar qual solução é superior; o foco é enfatizar que problemas diferentes têm soluções diferentes
Runtime de contêineres
- Hoje em dia, contêineres se tornaram a base da hospedagem, e a forma tradicional está cada vez mais rara
- Isso é uma tendência muito positiva para usuários de home server (homelabber), pois contêineres simplificam a distribuição de software e oferecem desempenho mais eficiente do que máquinas virtuais
- A maioria usa Docker, mas este texto apresenta vários runtimes alternativos que podem ser usados em ambientes domésticos
-
Docker
- O runtime de contêineres original e mais amplamente utilizado
- Graças à documentação abundante e à comunidade, mesmo quem não está acostumado com TI pode copiar um
docker-compose.yml do GitHub e colocá-lo para rodar
- No entanto, é preciso considerar separadamente as configurações relacionadas à segurança
-
Podman
- Um runtime de contêineres de nova geração que vem chamando atenção por sua arquitetura rootless e compatibilidade com a CLI do Docker
- Como funciona sem daemon, é adequado para quem prioriza segurança ou quer aprender as tecnologias relacionadas
- A maioria dos comandos do Docker pode ser usada diretamente, e a compatibilidade via alias para o comando
docker facilita a migração
- Embora haja uma barreira inicial de entrada, a acessibilidade vem melhorando com a evolução da documentação e da comunidade
- Além disso, com Podman Quadlets, também é possível fazer gerenciamento declarativo de contêineres baseado em systemd no lugar de docker compose
-
Kubernetes
- Para usuários de home server curiosos e experimentais, é uma ferramenta avançada que desperta o desejo de encarar um desafio
- Como uma ferramenta de orquestração capaz de gerenciar inúmeras instâncias com elegância, oferece uma experiência de administração em nível empresarial
- Porém, como tem muitos recursos e é bastante complexo, é excessivo para a maioria dos usuários
- Em ambientes domésticos, o principal objetivo costuma ser o aprendizado em si, com foco maior na compreensão da tecnologia do que no uso prático
Ferramentas web de gerenciamento de contêineres
- Alguns usuários preferem manter e gerenciar arquivos compose no disco local, mas isso traz a inconveniência de ter que acessar o servidor por SSH sempre que quiser verificar logs
- Em vez disso, usar ferramentas web de gerenciamento de contêineres torna o trabalho muito mais conveniente
-
Portainer
- A ferramenta de gerenciamento com interface web mais estável, compatível com Docker, Kubernetes e Podman
- É amplamente usada desde home servers até ambientes corporativos, e também é muito útil para aprender por meio do uso prático
- Há uma versão open source comunitária e uma versão enterprise com recursos adicionais (3 licenças são oferecidas gratuitamente)
- Sua interface intuitiva e variedade de recursos tornam o gerenciamento de contêineres muito vantajoso
-
Dockge
- Uma nova ferramenta web de gerenciamento de Docker Compose criada pelo desenvolvedor do Uptime Kuma
- Ainda não é tão madura quanto o Portainer, mas seu ponto forte é uma UI muito simples e intuitiva
- O desenvolvedor responde rapidamente a issues no GitHub, e há atualizações regulares
- Indicada para usuários que preferem ferramentas leves e minimalistas
Proxy reverso e VPN
- Para acessar aplicações self-hosted de fora da rede local, há dois métodos principais:
- Expor o serviço diretamente à internet
- Acessar a rede interna via VPN
- A VPN é mais segura do ponto de vista de segurança, mas a exposição à internet também pode ser bastante útil se for bem configurada
-
Pangolin
- Uma solução inovadora que combina VPN e proxy reverso em um só
- Funciona como uma espécie de Cloudflare para self-hosting
- Basta instalar o servidor de ingress em um VPS ou similar, e então é possível conectar com facilidade usando um cliente VPN em vários ambientes
- Inclui até integração com CrowdSec e recursos básicos de SSO
- É uma ferramenta tão impressionante que foi o motivo de o autor escrever este texto, e com o tempo pode se tornar a principal alternativa padrão às soluções existentes
-
Nginx Proxy Manager (NPM)
- Um frontend do Nginx que permite configurar proxies TCP/UDP/HTTP(S) facilmente por meio de uma interface web
- Muitos usuários o utilizam, mas o autor avalia que alguns recursos (por exemplo, proteção por senha) são instáveis
- Não deixou uma ótima primeira impressão por ter sido a primeira ferramenta com que teve contato, mas quando funciona cumpre bem seu papel
-
Caddy
- Com um arquivo de configuração simples (Caddyfile), automatiza desde a configuração de proxy até a emissão de certificados HTTPS
- Como não tem interface web, não é recomendado para iniciantes, mas para usuários que gostam da filosofia UNIX é a melhor escolha
- Oferece suporte nativo ao Let’s Encrypt, e a vantagem é não exigir configurações complexas
-
NetBird
- Uma solução de VPN à qual quem já conhece o Tailscale consegue se adaptar imediatamente
- Configura automaticamente uma rede baseada em WireGuard, reduzindo a complexidade de configuração
- Oferece flexibilidade por permitir tanto o uso do plano gratuito em nuvem quanto self-hosting
Ferramentas de monitoramento de status e alertas
-
Uptime Kuma
- Permite monitorar facilmente o status de serviços sem precisar de uma stack pesada como Zabbix ou Grafana
- Com uma única implantação, é possível configurar alertas por vários canais
- Excelente para verificar a disponibilidade de sistemas self-hosted
-
Gotify
- Um servidor de notificações que permite enviar push notifications com uma simples requisição HTTP
- Após instalar o app no celular, é possível receber alertas, além de permitir integração com Uptime Kuma e outros
- É prático por poder ser usado junto com várias ferramentas de self-hosting
Materiais adicionais para buscar apps de self-hosting
- Uma coletânea de recursos úteis para encontrar várias aplicações de self-hosting
-
- Uma vasta lista de softwares disponível no GitHub
- É um pouco desorganizada e inclui alguns projetos cujo desenvolvimento foi interrompido
-
- É a fonte de referência favorita do autor
- Oferece uma newsletter com recomendações de aplicações de nicho e um grande diretório de aplicações com recurso de ordenação
- É um site muito útil
-
- Uma coletânea de arquivos Docker Compose prontos para uso imediato
- Alguns aplicativos podem ter problemas de compatibilidade devido a atualizações, mas no geral é uma boa referência
4 comentários
Comprei um n100 na última promoção do Ali, instalei o promox e, por enquanto, já fiz backup de todos os dados que eu usava no servidor Oracle ARM. Além disso, deixei o Xpenology e o pfSense instalados e, embora ainda não esteja rodando pra valer, pretendo migrar em breve para ele como principal.
No fim do ano passado, assinei um serviço de VPN que estava em promoção. Comecei a pensar em fazer self-hosting aos poucos, porque parece que grandes serviços vão passar por várias mudanças. Por enquanto, vou testando aos poucos, migrando as senhas e os favoritos do navegador.
Docker + Portainer + Cloudflare + Uptime Kuma
Estou usando assim.
Comentários do Hacker News
Gosto da ideia de auto-hospedagem. Mantenho vários sites pequenos e projetos, então recursos não são um grande problema
Estou configurando um novo VPS
dnf-automatice automatizei as atualizações com a configuraçãoreboot = when-changedEstou preocupado com o aumento da auto-hospedagem
Pretendo continuar usando dokku para hospedar apps web
Estou gerenciando Hashicorp Nomad, Consul e Traefik com OpenTofu
Já usei Portainer, mas
docker composeera mais fácildocker compose pullautomático com crontabAo fazer auto-hospedagem, recomendo não usar contêineres e optar por um gerador de site estático
Faço auto-hospedagem com FreeBSD jails e scripts de shell
Este artigo me motivou a atualizar minha forma de hospedagem