A arquitetura (o mapa)
Esta é a visão de engenharia do sistema. Se você só quer operar, a trilha Operar a rádio basta. Aqui a gente abre a caixa.
Visão de cima
Section titled “Visão de cima”Tudo roda num único servidor (uma VPS Linux) que hospeda três camadas, mais alguns serviços de apoio na nuvem:
┌───────────────────────────────────────────┐ │ VPS (Linux, Docker) │ │ │ ouvinte ─────▶ │ AzuraCast ── motor de streaming (18) │ │ │ icecast + liquidsoap por rádio │ dono ─────▶ │ Painel InfoCel (Node) ── radio.infocel… │ │ │ API + banco SQLite (painel.db) │ │ Robôs (crons) ── conteúdo, hora, backup… │ │ Acervo BRLogic ── /opt/brlogic-content │ └───────────────┬───────────────────────────┘ │ Sites das rádios (Next.js) ──▶ Vercel (apelido.agoranoar.app.br) Backups ─────────────────────▶ Google Drive (via rclone) Alertas ─────────────────────▶ WhatsApp (via Ari)As peças, uma a uma
Section titled “As peças, uma a uma”AzuraCast — o motor de streaming
Section titled “AzuraCast — o motor de streaming”É o software que toca as rádios. Cada rádio é uma station dentro dele, com dois componentes: Icecast (entrega o áudio pro ouvinte) e Liquidsoap (o “AutoDJ” que decide o que toca — música, vinheta, programete, hora certa). Roda em Docker. É o coração: se o AzuraCast está de pé, as rádios estão no ar.
Painel InfoCel — o dashboard dos donos
Section titled “Painel InfoCel — o dashboard dos donos”Um servidor Node.js (serviço painel-infocel, gerenciado pelo systemd) que serve
radio.infocelradios.com. É onde o dono de cada rádio entra e configura a dele. Guarda
tudo num banco SQLite (painel.db): logins, planos, o conteúdo dos sites (CMS),
locutores, chat, pedidos de música, hora certa. Também expõe a API que o site público
consome.
Sites das rádios — Next.js na Vercel
Section titled “Sites das rádios — Next.js na Vercel”Cada rádio tem um site público feito em Next.js, hospedado na Vercel, no
endereço apelido.agoranoar.app.br. O conteúdo vem da API do painel (o que o dono
preenche). Quando uma rádio nova é criada, o subdomínio é adicionado na Vercel
automaticamente.
Acervo BRLogic — o conteúdo
Section titled “Acervo BRLogic — o conteúdo”Uma pasta no servidor (/opt/brlogic-content) que guarda todo o conteúdo baixado do
fornecedor: programas, programetes, campanhas, vinhetas, hora certa. Um catálogo em JSON
lista tudo. É desse acervo que os robôs distribuem o conteúdo pra cada rádio.
Os robôs (crons) — o que roda sozinho
Section titled “Os robôs (crons) — o que roda sozinho”Um conjunto de tarefas agendadas que rodam em horários certos: backup, download de conteúdo, distribuição, hora certa, e o vigia. Cada um está detalhado em As automações.
Serviços de apoio (na nuvem)
Section titled “Serviços de apoio (na nuvem)”- Google Drive — destino dos backups (banco, biblioteca de músicas, painel), via
a ferramenta
rclone. - Ari (WhatsApp) — o assistente da PSYCO que envia os alertas (rádio caiu, conteúdo vencido) pro grupo de WhatsApp.
- Vercel — hospeda os sites das rádios.
Como um ouvinte chega no som
Section titled “Como um ouvinte chega no som”- O ouvinte abre o site da rádio (Vercel) ou o player.
- O player aponta pro AzuraCast (Icecast), que entrega o áudio ao vivo.
- O que está tocando é decidido pelo Liquidsoap (AutoDJ) daquela rádio.
Como um dono muda algo
Section titled “Como um dono muda algo”- O dono entra no painel (Node) e salva uma mudança.
- A mudança vai pro banco
painel.db. - O site (Next.js) lê a API do painel e reflete a mudança.
Pronto — esse é o mapa. Para o miolo das automações, siga para As automações (os crons).