Um guia gentil para self-hosting
(knhash.in)- Em 2024, quando a nuvem e os serviços por assinatura se tornaram comuns, vale a pena tentar de novo, como hobby, o self-hosting centrado em software, aprendendo ao configurar sistemas por conta própria
- O self-hosting pode ser uma forma de resistir a serviços proprietários, mas como o custo de tempo e energia mental é alto, a motivação mais importante é diversão e exploração
- Iniciantes podem começar mesmo sem um servidor físico, usando hospedagem compartilhada como a Uberspace, com acesso via SSH a um ambiente com 10GB de armazenamento e 1,5GB de RAM
- Na Uberspace não é possível usar Docker, mas com referência ao Uberspace Labs e ao Awesome-Selfhosted é possível operar serviços como Actual Budget e Miniflux
- Ao conectar um domínio próprio, fica mais fácil exibir e manter os resultados do self-hosting com subdomínios por serviço, endereços de e-mail personalizados e hospedagem pública de arquivos
A sensação da computação pessoal antes da nuvem
- Nos anos 2000, softwares e jogos eram distribuídos em DVD, e o computador pessoal tinha fortemente o caráter de um dispositivo de computação operado diretamente pelo usuário
- Nos anos 2010, com a expansão dos Chromebooks e dos serviços em nuvem, muitos softwares passaram a ser executados em computadores de outras pessoas
- Depois da publicidade, a assinatura se tornou um dos principais modelos de monetização online, e cresceu a tendência de os usuários abrirem mão do controle em troca de conveniência
- Como resultado, parte da geração que aprende ciência da computação hoje teve menos oportunidades de começar como entusiasta de computadores, e a postura hacker inicial também vem enfraquecendo
Self-hosting como hobby
- O self-hosting pode ser uma forma de retomar o controle sobre a própria identidade digital em um ambiente dominado por monopólios
- Se pensarmos apenas na praticidade, delegar a hospedagem a outra parte pode ser uma escolha melhor
- Estabilidade, concorrência, redundância e gestão de disponibilidade podem ficar a cargo do provedor de serviço
- Em troca de economizar dinheiro, o custo em tempo e carga mental pode aumentar
- Intelectualmente, isso se parece mais com uma garagem digital em constante ajuste
- Depois de um dia de trabalho, pode virar um hobby de mexer em sistemas de que você gosta, como se fossem brinquedos
- Mais importante do que discutir rigidamente o que é “self-hosting de verdade” é começar de forma prazerosa, nem que seja apenas no nível do software
Criando o primeiro ambiente com hospedagem compartilhada
- Para começar no self-hosting, primeiro é preciso um lugar para hospedar
- Uberspace aparece como hospedagem recomendada
- É um tipo de hospedagem próximo de “vamos te dar as chaves, só não coloque fogo no prédio e divirta-se”
- O pagamento é pós-pago no fim do mês, então o primeiro mês funciona na prática como um teste gratuito
- Ao criar uma conta, você pode fazer acesso via SSH a um computador conectado à internet
- O ambiente oferecido tem 10GB de armazenamento e 1,5GB de RAM
- Ao executar
ls, é possível ver um diretório de usuário novo e vazio
Como escolher o software para instalar
- Ao procurar software para usar na Uberspace, duas referências são especialmente úteis
- Uberspace Labs: guia dedicado que explica como instalar vários softwares na Uberspace
- Awesome-Selfhosted: lista ampla de softwares que podem ser auto-hospedados, útil para encontrar projetos com alguma comunidade em volta
- Na Uberspace, não é possível usar Docker
- Por causa das limitações de memória, é difícil rodar um pacote completo de virtualização
- Isso é inconveniente para softwares grandes ou instalações exclusivas via Docker, mas existem alternativas como instalar a partir do código-fonte ou aproveitar o runtime final do processo de dockerização como se fosse uma imagem de build
Exemplo 1: gerenciando dados financeiros diretamente com Actual Budget
- Actual Budget é um aplicativo de gestão financeira rápido e focado em privacidade
- É indicado para usuários que querem acompanhar gastos, patrimônio líquido, padrões de consumo e mais
- Dá para operar o serviço sem entregar informações financeiras sensíveis a terceiros, mantendo acesso de qualquer lugar pelo navegador
- No centro do método de orçamento está a metodologia de Envelope Budgeting
- O guia de instalação na Uberspace pode ser visto em guide_actual
- Na seção de relatórios, é possível recortar e analisar os dados financeiros
- Itens que pareciam compras pequenas podem somar bastante ao longo de um mês
- É possível obter insights como perceber que o custo do deslocamento está maior do que o esperado
Exemplo 2: recuperando seus feeds com Miniflux e RSS
- Miniflux é um leitor de feeds minimalista e de opiniões firmes
- Com RSS, você pode acompanhar em um só lugar atualizações dos seus veículos de notícia, revistas e blogs favoritos
- Também é possível organizar canais do YouTube assinados como uma linha do tempo de feed dedicada e sem anúncios
- O YouTube fornece feeds RSS
- O player incorporado do YouTube não tem anúncios
- Depois de instalar o Miniflux na Uberspace, você pode adicionar os feeds dos seus canais favoritos do YouTube
- Ao ativar a Fever API nas configurações, clientes RSS capazes de ler a Fever API podem acessar o agregador RSS na nuvem
- No ecossistema Apple, a recomendação é o Unread, da Golden Hill Software
- Também dá para separar categorias de feeds para notícias e webcomics
Criando um espaço para mostrar com um domínio próprio
- Uma das diversões do self-hosting é mostrar o que você construiu
- Um domínio pessoal funciona como o seu próprio espaço online
- Porkbun é recomendado como serviço de registro de domínio
- Se você tiver um domínio como
awesauce.com, várias configurações são possíveis- Você pode conectar serviços hospedados na Uberspace a subdomínios como
actual.awesauce.comeminiflux.awesauce.com - Se o seu provedor de e-mail oferecer suporte a domínio personalizado, você pode criar endereços como
contact@awesauce.com- Mesmo que você troque de provedor de e-mail depois, o endereço pode ser mantido
- E-mail com domínio personalizado pode ser pago
- Você pode conectar um subdomínio ou caminho de URL a um repositório no GitHub para disponibilizar arquivos públicos, como um currículo, em
awesauce.com/files/resume.pdf
- Você pode conectar serviços hospedados na Uberspace a subdomínios como
Próximas explorações deixadas de propósito
- O objetivo deste texto não é um tutorial detalhado passo a passo, mas despertar a curiosidade de colocar a mão na massa
- Como tarefa para o próprio leitor explorar, fica a ideia de enviar notificações para o celular quando um produto específico voltar ao estoque ou quando um site mudar
- A discussão relacionada no Hacker News continua nesta thread
1 comentários
Comentários do Hacker News
Visto por uma perspectiva mais antiga, é surpreendente que pagar por hospedagem compartilhada agora seja chamado de “self-hosting”. Não quer dizer que isso seja ruim, mas acho que, 10 anos atrás, ninguém chamaria isso de self-hosting
É parecido com a mudança no significado de “cozinhar do zero”. Um livro de receitas do século XIX talvez listasse “1 porco” entre os ingredientes e mandasse abatê-lo, mas hoje, naturalmente, você compra um corte de porco em uma bandeja de isopor
Mas também há um grande mercado de pessoas que poderiam aproveitar os benefícios do self-hosting sem precisar entender todos os detalhes. Por exemplo, usar serviços gerenciados com seu próprio domínio já traz boa parte das vantagens, como propriedade dos dados, software open source e concorrência entre provedores. Por isso parece necessário um termo mais amplo, e ultimamente tenho usado a expressão hospedagem indie
A exceção geralmente aceita é a área de proteção de rede. Como, se possível, ninguém quer expor o endereço IP de casa para fora, muita gente usa Tailscale, Cloudflare Tunnel ou uma VPS como proxy
E, se isso ainda não bastar, no freezer também tenho carne de porco de um porco que criei e processei eu mesmo, além de bacon curado em casa. A expressão “uma alma antiga vivendo em um mundo novo” cai muito bem
Seja alugando esse hardware, montando seu próprio servidor ou usando uma máquina virtual fornecida pelo provedor, a carga de manutenção é parecida. Ainda assim, continua sendo diferente de usar Wix/Squarespace, Geocities ou plataformas de redes sociais
Afinal, ele escreveu: “Então aqui vai uma introdução suave ao self-hosting que não é ‘self-hosting de verdade’, mas enfim. Pode me processar.” :)
Gosto muito de self-hosting e, nos últimos meses, mergulhei bem fundo nisso. Hoje opero vários serviços para a empresa e para meu homelab, e faço deploy em uma VPS da Hetzner com Ansible + arquivos Docker Compose ou com https://github.com/coollabsio/coolify/
O repositório awesome-selfhosted também é ótimo para encontrar projetos para self-hosting, mas faltam recursos de usabilidade; então criei em https://selfhostedworld.com um diretório com algumas melhorias de experiência do usuário. Tem busca, filtros por número de estrelas/popularidade/data e modo escuro
Fico curioso se, usando ferramentas modernas e máquinas virtuais, isso é relativamente seguro, ou se é algo que exige atenção constante, como verificar atualizações de software toda semana. Há muito tempo quero montar um servidor e agora arrumei um notebook sobrando, então estou pensando em rodar pelo menos um NAS
https://ptah.sh
Para a parte de autenticação, também montei uma comparação de servidores OIDC: https://github.com/lastlogin-net/obligator#comparison-is-the...
Há quem diga que “é praticamente uma burrice, porque você perde em tempo e sanidade mental o que economiza em dinheiro”, e, nas comunidades de self-hosting, Kubernetes costuma ser visto com maus olhos. Mas self-hosting como um todo já tem esse lado mesmo, então ir até o fim não é uma má ideia.
Estou rodando NixOS em 3 Dell R720XD, com k3s multi-master. Para armazenamento uso rook/ceph, com cerca de 12 discos rígidos de tamanhos variados. Meu truque de festa favorito é puxar qualquer disco rígido do cluster enquanto faço streaming de vídeo, e ele nem liga. Quando plugo de volta, tudo volta como se nada tivesse acontecido; ainda tenho bastante espaço sobrando e continuo procurando coisas úteis para hospedar.
Pessoalmente, mesmo tendo uma configuração com 4 desktops pequenos, uso Docker Swarm. Com esse hardware que você tem, a conta de luz facilmente deve dar uns 200 dólares por mês. Docker Swarm é antigo e não é popular, mas é só um pouco mais complexo que Docker puro e faz tudo o que é necessário para implantação e orquestração em múltiplos nós.
Assim, dá para aproveitar as vantagens da configuração do NixOS e ainda executar aplicações arbitrárias que talvez não existam no nixpkgs. Para armazenamento, uso ZFS no Proxmox, que é o hipervisor, e exponho localmente via NFS.
[1] https://github.com/aksiksi/compose2nix
O texto original acertou bem neste ponto: “Já que estamos em 2024, talvez seja hora de redescobrir a alegria fundamental de configurar nossos próprios sistemas.”
Self-hosting é realmente divertido. É uma mistura de aprendizado, desafio e utilidade prática. +1 para Actual Budget e Changedetection.io. Mas -1 por não tratar de modelagem de ameaças e segurança. O autor original usa HTTPS, mas deixa o site aberto na internet pública. Quem está começando deveria hospedar apenas na LAN ou travar tudo com bastante rigor. Em hospedagem compartilhada, porém, isso pode ser difícil sem restrição por IP ou tunelamento, e não sei se a uberspace oferece esse tipo de recurso. Para quem já passou da fase inicial, eu recomendaria algo como Docker para rodar mais aplicativos lado a lado. Dependências empacotadas são ótimas. Fazendo uma pequena propaganda do meu livro, que também cobre a abordagem com Docker: https://selfhostbook.com
Concordo com a turma mais antiga.
Se não há hardware próprio rodando em um espaço que você possui ou aluga, então não é self-hosting. Hoje uso uma pequena caixa Micro-ITX, mas antigamente tive até um rack de servidor de verdade, com servidor 6U, UPS e equipamentos de rede. Isso foi antes de eu me casar.
Gosto muito de self-hosting. Aprendi bastante fazendo pequenos projetos de hobby.
Para quem tiver curiosidade sobre minha configuração: comprei barato no eBay um Dell R630 usado. Ele tem SSD de 1 TB em RAID 1, 32 GB de RAM e 32 cores, e me divirto rodando pequenos apps de hobby com Docker, virsh e minikube. Aprendi os três. Tenho fibra de 1 Gbps e, a cada minuto, um job cron detecta se o IP mudou e então altera o registro DNS A via API da Linode.
1,5 GB de RAM e 10 GB de disco? O VPS cloud básico da Hetzner oferece 4 GB de RAM e 40 GB de disco por 4,51 euros.
Para computação, eles dizem: “são fornecidas gratuitamente, todos os meses, as primeiras 3.000 horas de OCPU e 18.000 GB-hora para criar instâncias Ampere A1 Compute em cada tenancy. Esse uso do nível gratuito é compartilhado entre instâncias bare metal, máquinas virtuais e contêineres.” Para armazenamento em bloco, é algo como: “a franquia do nível gratuito do serviço Block Volume é de um total de 200 GB para toda a tenancy. Se houver várias estimativas na mesma tenancy, apenas 200 GB no total se aplicam.” Ou seja, na prática você tem CPU ARM de 4 núcleos + 24 GB de RAM + 200 GB de espaço de graça.
Spoiler: este texto não é sobre self-hosting, e sim sobre hospedagem compartilhada.
Mas se alguém sussurrar K8S no seu ouvido…
Quando você se formar neste guia, vale muito conferir também /r/homelab e /r/homedatacenter ;)