Faz algum tempo que tenho uma TV Box T95 Max Plus que usava para rodar emuladores com EmuELEC, mas estava parada. Esses dias, olhando para ela, pensei: "Poderia utilizar essa Box para rodar algo diferente?" Então, comecei a pesquisar sobre o que poderia ser feito com uma TV Box desse modelo e hardware, CPU Amlogic S905x3, 4GB RAM + 32GB eMMC + SD 128GB.
O Projeto
Com isso em mente, encontrei o Armbian e o projeto Ophub. Com o Ophub, tive sucesso na instalação e configuração. Outro detalhe é que preferi fazer todo o processo no cartão SD pela facilidade de gravar as imagens e não correr o risco de perder o Android original da Box.
Docker e Observabilidade
Depois disso, pensei em instalar o Docker e rodar o Grafana para criar a observabilidade de uma API em formato de 'Homelab'.
Desafios de Hardware
Diferente de programar em um ambiente com bom hardware (ao qual nós devs normalmente temos acesso), ao começar a implementar esse projeto, tive diversas dificuldades devido às limitações da TV Box. Tive que observar com cuidado o uso de CPU e memória de cada container (Grafana, Prometheus, etc.) para garantir que tudo rodasse sem travar.
Configuração do Docker
A CPU aguentou bem o tranco, mas precisei limitar de forma rígida o uso de RAM de cada serviço. Para resolver isso, defini a configuração mem_limit para cada container diretamente no arquivo docker-compose.yml, como no exemplo abaixo:
``yaml``
mem_limit: 100m
Documentação
Deixei todo o processo de configuração e os arquivos completos documentados no meu GitHub.
Conclusão
Ao fim, consegui ver todo o processo de fato funcionando na TV Box. O Docker Compose rodou liso a observabilidade de uma API de testes. Foi uma experiência incrível!
Outras Possibilidades
Logo pensei em outras coisas para fazer: dada a flexibilidade do Linux, talvez exibir esse Grafana em um monitor portátil com outras informações.
Conclusão Final
Gostaria de ver mais Homelabs como este? Deixa um comentário. O código e as instruções estão no repositório do projeto https://github.com/kevinjh07/homelab-observability-box. Se ele for útil, considere deixar uma estrela.