Estudo de caso: conversor de mídia em microserviços
O AllInOne Converter roda inteiro na sua máquina, dentro do Docker. Ele converte vídeo e áudio com FFmpeg, baixa de mais de mil sites com yt-dlp, puxa torrent por magnet ou por arquivo .torrent e transmite por HLS o que ainda está baixando. É um projeto aberto, e o README pede colaboradores.
O front em React fala com um gateway em Laravel, e o gateway reparte o trabalho entre quatro serviços em Python, cada um no seu container. O Redis segura a fila, o MySQL guarda o estado dos jobs e os serviços trocam arquivo por volumes compartilhados. Quebrar assim deixa escalar só a parte que estiver apertada.
Front em React
:3000↓
Gateway em Laravel
Nginx, PHP-FPM e Supervisor · :8080↓
Converter
Python + FFmpeg:8001Downloader
Python + yt-dlp:8002Torrent
Python + libtorrent:8003Streamer
Python + HLS:8004↓
Redis
fila · :6379MySQL
banco · :3306Python + FFmpeg
Python + yt-dlp
Python + libtorrent
Python + HLS

O painel, com a conversão a um clique e a contagem do que está na fila

Arquivo, URL ou magnet entram pela mesma caixa

O gerenciador de torrent, com velocidade, progresso e peers
Precisa de Docker 20.10, Docker Compose 2.0, 8GB de RAM e 20GB de disco. Depois disso é clonar e subir, sem arquivo de configuração para preencher.
git clone https://github.com/Advansoftware/allInOne-Converter.git cd allInOne-Converter make up
O front sobe em localhost:3000 e a API em localhost:8080. O Makefile ainda traz atalhos para logs, migrations e para checar a saúde dos containers.
O código está todo aberto.