Docker
O repositório já traz um docker-compose.yml completo, subindo de uma vez a aplicação e toda a infraestrutura descrita nas próximas páginas: PHP/Apache, MySQL, Redis, Janus e FreeSWITCH. É a forma mais rápida de rodar o Rouxinol para desenvolvimento ou teste, sem instalar cada peça manualmente.
PHP
O Rouxinol roda sobre PHP 8.2 ou superior, exigido pelo Laravel 12.
MySQL
Em desenvolvimento, o Rouxinol funciona com SQLite (DB_CONNECTION=sqlite, sem nenhuma instalação extra). Em produção, use MySQL (ou MariaDB).
Redis
O Rouxinol usa o Redis para processar filas e chamadas de forma assíncrona (processamento de mensagens do WhatsApp, chamadas de voz, cache), conforme configurado em QUEUECONNECTION e CACHESTORE no .env.
Janus
O Janus WebRTC Server é o servidor que roteia as chamadas de voz do Rouxinol — tanto SIP (telefonia) quanto WhatsApp e WebRTC direto do navegador. É um pré-requisito obrigatório: sem ele, nenhum canal de voz funciona.
FreeSWITCH
O FreeSWITCH é usado como PBX/gateway SIP para receber chamadas de telefonia (por exemplo, via tronco Twilio) e encaminhá-las para o Janus.
Nginx
O Nginx serve a aplicação Laravel do Rouxinol e faz o TLS (HTTPS) na frente do PHP-FPM. Esta página cobre a instalação, a configuração do site e a emissão de certificado com o Certbot.
Supervisor
O Rouxinol depende de processos de longa duração rodando em segundo plano — o worker de filas e os listeners do Janus. O Supervisor garante que eles iniciem com o servidor e sejam reiniciados automaticamente se caírem.