12 julho 2024

Resolvendo problema de timezone com Python (ZoneInfoNotFoundError) no Termux

Tenho experimentado usar o Termux para escrever e executar alguns pequenos programas no meu Android. Algumas provas de conceito, ideias ou teste rápidos. Porém recentemente após instalar e tentar rodar um projeto que implementa o i18n recebi a seguinte mensagem de erro no traceback do Python:

File "/data/data/com.termux/files/usr/lib/python3.11/zoneinfo/_common.py", line 24, in load_tzdata raise ZoneInfoNotFoundError(f"No time zone found with key {key}") zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key America/Sao_Paulo'
 

A falha ocorreu pelo fato de não existir esse timezone America/São Paulo no sistema. Para resolver isso de forma pontual, encontrei um pacote Python tzdata que serve justamente como fallback para sistemas que não contém os dados dos timezones.

pip install tzdata

09 julho 2024

Homelab com um ARM

Recentemente tenho me aventurado em manter ativo um servidor local em casa. Minha ideia principal é manter alguns softwares de backup que sincronize principalmente meus documentos e fotos. Além de servir como um pequeno servidor de serviços locais como Git, Backup e Mídia, por exemplo.

Essa ideia surgiu pela necessidade de automatizar com mais autonomia algumas tarefas de backup, mas além disso, também pelo fato de eu ter um pequeno dispositivo ARM disponivel em casa e que provavelmente não teria mais utilidade. Muito conhecido como TV Box, esses mini computadores em sua grande maioria são equipados com processador ARM, geralmente da Amlogic ou da Rockchip com alguma versão do Android instalado. O meu é da Rockchip, sendo mais especifico é um RK3318 e nele veio o Android 9 que posteriormente foi substituido pelo GNU/Linux Debian (Armbian).


Configuração da máquina

Tenho em mãos um ARM Rockchip RK3318 Quad-Core (1,8GHz) com 4GB de RAM e 64GB de memória interna (flash) e um HD adicional de 1TB. O sistema é um Debian 12 para processadores ARM (ou para ser mais exato, o Armbian).


Esses computadores são conhecidos por serem simples e sucintos em recursos de hardware. Todos os componentes são soldados na placa, impedindo a troca ou expansão, como por exemplo a memória interna ou a memória RAM. Mas nada que seja um impedimento para esse primeiro experimento com servidores caseiros.

Primeiro serviço

A principal função atualmente do meu servidor é manter meus backups em funcionamento.

Gosto de manter meus documentos e fotos sempre disponível e seguro, afim de evitar alguma catastrofe¹ nas nuvens.

Eu costumava armazenar meus documentos em alguns HD’s e fazia todo o processo de baixar e organizar de forma manual. Porém comecei a experimentar uma ferramenta mais eficiente que minha força de vontade de fazer manualmente, talvez o RCLONE seja um baixador melhor.

Atualmente tenho um script shell similar a isso:

rclone sync --interactive /mnt/homecloud/photos remote:album/newAlbum

Que executo (por enquanto) manualmente dentro de uma sessão do GNU Screen.

Considerações finais

Meu plano é fazer melhorias pequenas e continuas no meu servidor. Inicialmente minha principal necessidade era manter meus backups seguros e locais, porém existem outras possibilidades de uso além disso.

Algumas ideias que achei intessantes para meu dia a dia, seriam ter um servidor de mídia (DLNA) e um servidor de arquivos disponível na REDE com Samba, além de um DNS local nomeando os endereços de IP para nomes humanamente memorisaveis (homelab.local?).

Hoje todo o processo é bem manual e sem qualquer ferramenta de monitoração, apenas o bom e velho SSH e o HTOP.