Web Rádio completa e 100% Open Source

Autor(a):

Como seu editor sênior, reformulei o seu artigo para elevar o nível técnico, melhorar a autoridade do conteúdo e otimizar a estrutura para motores de busca (SEO). O texto agora conta com uma introdução mais persuasiva, explicações detalhadas sobre os componentes e uma formatação que facilita a leitura rápida.

Aqui está a versão atualizada e expandida:

# Como Criar uma Web Rádio Completa e 100% Open Source: O Guia Definitivo

Você quer lançar sua própria rádio online, mas deseja fugir das mensalidades caras de plataformas de streaming e manter total controle sobre seus dados e músicas? A solução está no ecossistema **Open Source**.

Neste guia, vamos construir uma infraestrutura profissional de Web Rádio utilizando o **Coolify** como orquestrador. Combinaremos o poder do **Navidrome** para gestão de biblioteca, **Icecast** para transmissão, **Liquidsoap** para o AutoDJ e o **FileBrowser** para gestão de arquivos via web.

## Por que esta Stack?

Diferente de soluções “tudo-em-um” que podem ser pesadas ou limitadas, esta arquitetura é modular e extremamente leve.
* **Navidrome:** Funciona como seu “Spotify privativo”. Ele organiza metadados e capas.
* **Icecast:** O padrão ouro para servidores de streaming de áudio.
* **Liquidsoap:** Uma linguagem de script poderosa para processamento de áudio que garante que sua rádio nunca fique em silêncio.
* **Coolify:** Simplifica o deploy e a gestão de containers Docker, oferecendo uma interface amigável para quem quer fugir da complexidade do terminal.

## Pré-requisitos do Sistema

Para rodar essa stack com fluidez (considerando cerca de 100 ouvintes simultâneos e o processamento do AutoDJ), recomendamos:
* **VPS:** Ubuntu 22.04 ou 24.04 LTS.
* **Hardware:** Mínimo de 2GB de RAM (4GB recomendados para evitar swap durante o processamento de áudio).
* **Domínio:** Um domínio ou subdomínio apontado para o IP da sua VPS.

## Passo 1: Preparando a VPS e Instalando o Coolify v4

O **Coolify** é a melhor alternativa Open Source ao Heroku e Vercel. Ele gerencia certificados SSL (HTTPS) automaticamente e monitora seus containers.

1. Acesse sua VPS via SSH:
“`bash
ssh root@seu_ip_servidor
“`

2. Instale o Coolify v4 com o comando oficial:
“`bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
“`

3. Após finalizar, acesse `http://seu_ip:8000`, configure sua conta e defina o servidor como **Localhost**.

## Passo 2: Estruturando o Sistema de Arquivos e Script AutoDJ

Antes de subir os containers, precisamos preparar o terreno na VPS para que os dados sejam persistentes.

### Criando o diretório de trabalho:
No terminal, execute:
“`bash
mkdir -p /opt/radio/music /opt/radio/data
touch /opt/radio/fb.db
chmod -R 777 /opt/radio/music
“`
*Nota: O `chmod 777` é necessário para garantir que diferentes containers (com diferentes usuários internos) possam ler e escrever na mesma pasta de músicas.*

### Configurando a Inteligência da Rádio (Liquidsoap):
O Liquidsoap é o que diferencia uma rádio amadora de uma profissional. Ele gerencia transições e garante o fluxo contínuo.

Crie o arquivo de configuração:
“`bash
nano /opt/radio/liquidsoap.liq
“`

Cole o script abaixo (otimizado para a versão 2.2.x):
“`liquidsoap
settings.log.stdout.set(true)
settings.server.telnet.set(true)

# Playlist: Lê a pasta /music, embaralha e monitora novos arquivos
myplaylist = playlist(mode=”random”, reload_mode=”watch”, “/music”)

# Segurança: Se a playlist falhar, toca silêncio em vez de derrubar o stream
radio = fallback(track_sensitive=false, [myplaylist, blank()])

# Saída para o servidor Icecast
output.icecast(%mp3(bitrate=128),
host = “icecast”,
port = 8000,
password = “senha_icecast_dj”,
mount = “/stream”,
name = “Minha Web Rádio Open Source”,
description = “Transmissão 24/7 via Liquidsoap & Navidrome”,
genre = “Mix”,
radio)
“`
*Salve (CTRL+O, Enter) e saia (CTRL+X).*

## Passo 3: Deploy Centralizado via Docker Compose

Agora, vamos utilizar a interface do Coolify para orquestrar todos os serviços de uma vez.

1. No painel do Coolify, crie um novo **Project**.
2. Clique em **Add Resource** > **Docker Compose**.
3. Cole a seguinte configuração (Stack Atualizada 2024/2025):

“`yaml
version: ‘3.8’

services:
navidrome:
image: deluan/navidrome:latest
environment:
ND_LOGLEVEL: info
ND_BASEURL: “” # Adicione sua URL aqui futuramente
volumes:
– /opt/radio/data:/data
– /opt/radio/music:/music
restart: unless-stopped

filebrowser:
image: filebrowser/filebrowser:latest
volumes:
– /opt/radio/music:/srv
– /opt/radio/fb.db:/database/filebrowser.db
restart: unless-stopped

icecast:
image: pltnk/icecast2:latest
environment:
– ICECAST_SOURCE_PASSWORD=senha_icecast_dj
– ICECAST_ADMIN_PASSWORD=admin_password_mudeme
– ICECAST_PASSWORD=hackme
– ICECAST_RELAY_PASSWORD=hackme
restart: unless-stopped

autodj:
image: savonet/liquidsoap:v2.2.5
user: root
volumes:
– /opt/radio/music:/music:ro
– /opt/radio/liquidsoap.liq:/etc/liquidsoap/script.liq:ro
command: liquidsoap /etc/liquidsoap/script.liq
depends_on:
– icecast
restart: unless-stopped
“`

**Dica Profissional:** No Coolify, você pode configurar os domínios para cada serviço individualmente na aba “Domains” de cada container. Exemplo: `radio.seudominio.com` apontando para a porta 8000 do Icecast.

## Passo 4: Operação e Gestão da Rádio

Com o deploy realizado, veja como gerenciar o dia a dia da sua estação:

### 1. Gestão de Arquivos (FileBrowser)
Acesse a URL definida para o FileBrowser (ou IP:8081). O login padrão é `admin/admin`.
* **O que fazer:** Faça o upload dos seus MP3s aqui. O Liquidsoap detectará as novas músicas automaticamente graças ao parâmetro `reload_mode=”watch”`.

### 2. Biblioteca e Streaming Pessoal (Navidrome)
Acesse a porta 4533.
* **Diferencial:** O Navidrome é compatível com a API Subsonic. Isso significa que você pode usar apps como **Substreamer** ou **Amperfy** no seu celular para ouvir e gerenciar sua biblioteca musical de forma privada, enquanto o mundo ouve sua rádio via Icecast.

### 3. O Link da Rádio (Icecast)
Sua rádio estará disponível publicamente em `http://seu_ip:8000/stream`.
* Este é o link que você deve colocar em players HTML5 no seu site ou em diretórios de rádio online.

## Considerações Finais e Próximos Passos

Esta stack é a mais eficiente para quem deseja uma rádio de curadoria pessoal com baixo consumo de recursos.

**Quer algo mais corporativo?**
Se você precisa de agendamento preciso de comerciais (ex: “tocar vinheta X exatamente às 14:00”), gestão de múltiplos locutores com permissões e relatórios detalhados de audiência, o **AzuraCast** é a recomendação ideal, embora exija mais recursos de hardware (mínimo 4GB-8GB RAM).

**Segurança:**
Não esqueça de alterar todas as senhas no arquivo Docker Compose antes do deploy final e habilitar o HTTPS via Coolify para garantir que as senhas de administração não trafeguem em texto plano.


*Gostou deste guia? Compartilhe com outros entusiastas de áudio e tecnologia Open Source!*

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *