Nesta dica, vou mostrar como montei meu "Spotify caseiro" em um servidor Gentoo, mas a lógica serve para qualquer distro. Vamos usar o
Navidrome (o servidor), o
Docker (para facilitar a instalação) e o
Tailscale (para ouvir suas músicas na rua com segurança).
Passo 1: O Motor (Docker)
O Docker evita que a gente precise compilar dezenas de bibliotecas. Os comandos a seguir são para Gentoo com Systemd. Adapte-os para sua distro, caso não use Gentoo (apt, dnf etc).
Instale o Docker e o Compose:
sudo emerge -av app-containers/docker app-containers/docker-compose
Ative o serviço:
sudo systemctl enable --now docker
Permita que seu usuário use o Docker:
sudo gpasswd -a $USER docker && newgrp docker
Passo 2: Navidrome
O Navidrome é leve e lindo. Vamos criar uma pasta para ele:
mkdir -p ~/navidrome/musicas ~/navidrome/dados && cd ~/navidrome
Agora, crie um arquivo chamado
docker-compose.yml e cole isto:
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000 # Isso garante que o servidor tenha acesso aos seus arquivos
ports:
- "4533:4533" # A porta que vamos usar no navegador
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_BASEURL: ""
volumes:
- "./dados:/data"
- "./musicas:/music" # Aqui é onde você vai colocar seus MP3/FLAC
Suba o servidor com:
docker compose up -d
Agora, se você acessar:
No navegador, o seu "Spotify" já está vivo!
Passo 3: Obtendo as músicas (yt-dlp)
Para baixar suas músicas favoritas com capas e nomes organizados, use o
yt-dlp.
Dica: no Gentoo, certifique-se de que o media-video/ffmpeg esteja instalado com a USE flag lame para mp3.
O comando (obrigado Gemini!) para baixar uma playlist em pastas organizadas por Álbum e Artista é:
yt-dlp -x --audio-format mp3 --audio-quality 0 --add-metadata --embed-thumbnail --parse-metadata "playlist_index:%(track_number)s" -o "~/navidrome/musicas/%(artist)s/%(album)s/%(playlist_index)s - %(title)s.%(ext)s" "URL_DA_PLAYLIST"
Execute-o dentro de
"~/navidrome/musicas". Não vou dizer de onde pegar a URL, mas você deve ser capaz de deduzir.
Passo 4: Ouvindo na rua (Tailscale)
Você não precisa abrir portas no roteador. Instale o Tailscale no servidor e no celular. Ele cria uma rede privada segura.
No servidor, rode:
tailscale ip -4
Para ver seu IP (ex: 100.x.x.x).
No celular, conecte-se ao Tailscale.
Nesta dica eu mostrei com mais detalhes a configuração do Tailscale:
Passo 5: Transformando em App
Não precisa de apps pesados. No navegador do seu celular (como o Samsung Internet ou Chrome):
Acesse o IP do Tailscale: http://100.x.x.x:4533.
Vá nas opções do navegador e clique em "Adicionar à tela inicial" ou "Instalar aplicativo".
Pronto! Um ícone vai aparecer na sua gaveta de apps, funcionando como o app nativo do Spotify.
Dica extra
Caso queira de fato um app, eu cheguei a testar o
Yuzic, no Android. Basta abrir o link do servidor nele e colocara seu usuário e senha do Navidrome.