Até onde um hardware barato e com pouca memória consegue ir quando os recursos são bem distribuídos? Um entusiasta brasileiro resolveu colocar essa ideia à prova e montou um pequeno ecossistema doméstico utilizando dois servidores com apenas 1 GB de RAM cada.
Em publicação no grupo Raspberry PI Brasil BR, no Facebook, Cesar Scavone mostrou como dividiu diferentes aplicações entre um Raspberry Pi 4 instalado em casa e uma máquina virtual na Oracle Cloud. Segundo ele, o sistema já chegou a 95 dias de uptime, sem travamentos.
A ideia não foi concentrar tudo em uma única máquina, mas distribuir os serviços de acordo com o papel de cada servidor.
Raspberry Pi virou rádio, nuvem pessoal e servidor de música
O Raspberry Pi 4 é o coração do projeto. Mesmo equipado com somente 1 GB de RAM, o pequeno computador executa uma lista considerável de aplicações. Entre elas estão Liquidsoap e Icecast, responsáveis por uma rádio online com programação dinâmica, boletins meteorológicos ao vivo, horário e inserções programadas.
O mesmo Raspberry Pi também mantém um analisador de espectro em Python, streaming de vídeo institucional e uma instalação do Nextcloud, utilizada para armazenar arquivos.
A lista continua com o Wallabag, serviço de leitura e arquivamento de páginas, o Navidrome, utilizado como biblioteca e servidor de música, além de um servidor NTP próprio sincronizado por meio de outro servidor NTP.
Apesar da quantidade limitada de memória, a máquina desempenha simultaneamente funções de servidor multimídia, armazenamento pessoal e infraestrutura de rede.
Outro servidor de 1 GB assume as tarefas mais pesadas
Para evitar que o Raspberry Pi precise fazer tudo sozinho, Scavone utiliza uma instância na Oracle Cloud, também com 1 GB de RAM.
É nela que roda o Collabora Online, suíte utilizada para edição colaborativa de documentos. Segundo o autor do projeto, a aplicação seria pesada demais para compartilhar os recursos disponíveis no Pi junto com a rádio.
A máquina na nuvem também executa o Uptime Kuma, utilizado para monitorar os serviços externos, recebe backups diários do Raspberry Pi através do rsync e mantém uma VPN própria utilizando WireGuard.
Nenhuma porta precisa ficar diretamente exposta à internet
Outro detalhe interessante do projeto está na forma como o acesso externo foi montado.
Segundo Scavone, nenhuma porta dos servidores fica diretamente aberta para a internet. A comunicação externa passa por um Cloudflare Tunnel, acompanhado de firewall de aplicação, proteção contra bots e HTTPS.
É uma abordagem que permite publicar determinados serviços sem simplesmente encaminhar portas do roteador para as máquinas da rede doméstica.
O maior problema acabou sendo a memória
Mesmo com tantos serviços, Scavone afirma que o processador continua trabalhando tranquilamente. No momento da publicação, apenas 17 GB dos 219 GB de armazenamento disponíveis estavam ocupados. O verdadeiro limitador teria sido justamente a RAM.
Para lidar com isso, ele desenvolveu um monitor capaz de reiniciar apenas o serviço necessário quando a memória começa a faltar, evitando reiniciar todo o servidor e interromper as demais aplicações.
Nos comentários da postagem, um usuário também perguntou como a rádio havia sido configurada. Scavone explicou que o sistema utiliza basicamente PHP, MySQL e Liquidsoap, além de uma interface web própria com player para facilitar o acesso.
O projeto é um bom exemplo de como hardware modesto ainda pode assumir uma quantidade surpreendente de funções quando as aplicações são distribuídas de forma inteligente, e de como 1 GB de RAM ainda pode render bastante nas mãos certas.
Você também deve ler!