O Castopod é uma ótima alternativa para quem quer começar um podcast e ter um controle sobre tudo o que envolve a publicação dos episódios. Com ele você pode hospedar e compartilhar seus programas com todo o mundo.
Uma dos passos na hora de se lançar nesse mercado é decidir onde hospedar os arquivos de áudio que serão ouvidos por quem acompanha seu podcast. Há muitas opções no mercado mas cada uma com seus prós e contras.
Fica difícil decidir e há muitos recursos que deixam qualquer um confuso, sem falar nos termos que algumas vezes podem ser cabulosos. Mas se você tem tráfego e espaço o bastante, pode controlar todos esses pontos.
O que é o Castopod
Com o Castopod você cria um sistema capaz de conectar seu programa com o fediverso, transformando ele numa rede social. Seus episódios assim podem ser compartilhados, curtidos e comentados sem depender de ninguém.
Ele facilita postar em todas as demais redes sociais estabelecidas e gerenciar seu show em um único lugar mas compartilhando ele em todos os demais via RSS, como no Apple Podcasts e Google Podcasts.

Se deseja saber como está se saindo, o Castopod inclui estatísticas seguindo padrões de mercado. Todos os dados são anonimizados para proteger a privacidade de seus ouvintes de acordo com leis nacionais e estrangeiras.
E você pode hospedar mais de um e quantos podcasts quiser. Para saber mais sobre e conhecer todos os recursos disponíveis, visite o site oficial da plataforma. O foco de hoje vai ser como instalar esse rico software.
Ingredientes necessários
Você vai precisar de um servidor VPS e um domínio. Nesse exemplo vamos usar a Vultr no decorrer do tutorial. Nesse servidor virtual vamos escolher o Debian 11 como sistema operacional.
Você precisa ter conhecimentos básicos para, uma vez que seu VPS estiver rodando, poder entrar no SSH e executar os passos seguintes. Também será preciso saber apontar seu domínio para o IP do servidor VPS.
Para isso, na empresa onde gerencia seu domínio, crie um “A Record” apontando seu domínio para o IP informado pela Vultr (ou outra empresa de VPS) após criar uma nova máquina virtual.
Instalando os pacotes
Para ter tudo o que precisamos disponível, iremos acessar o servidor via SSH e colar os comandos abaixo:
sudo apt-get update sudo apt-get -y --no-install-recommends install apt-transport-https lsb-release ca-certificates curl wget unzip sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' sudo wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup sudo chmod +x mariadb_repo_setup sudo ./mariadb_repo_setup sudo apt-get update sudo apt install -y --no-install-recommends nginx mariadb-server php-{fpm,intl,curl,mbstring,gd,xml,json,mysql} ffmpeg redis-server
Esses comandos vão instalar no sistema os repositórios para baixar as versões mais recentes do MariaDB e do PHP, além do servidor web nginx, do ffmpeg para cuidar dos arquivos multimídia, assim como um servidor de cache.
Agora vamos configurar o servidor MariaDB para deixá-lo seguro. Para tal, digite mysql_secure_installation
no terminal SSH e responda as perguntas conforme descrito a seguir:
- Current password for root: como ainda não definimos uma senha para o usuário root, pressione Enter;
- Unix socket authentication: aperte Enter para dizer que sim e usar um socket Unix em vez do tradicional endereço e porta HTTP;
- Change the root password: aperte Enter e digite duas vezes seguidas uma senha forte para o usuário root;
- Remove anonymous users: aperte Enter para responder sim e remover usuários anônimos;
- Disallow root login remotely: aperte Enter para responder sim e desativar login remoto com o usuário root;
- Remove tests databases: aperte Enter para responder sim e apagar bancos de dados de teste e o acesso a elas;
- Reload privilege tables: aperte Enter para recarregar os privilégios e aplicar as alterações;
- Pronto! Sua instalação está mais protegida agora.
Baixando o Castopod
Os próximos passos são baixar os arquivos do Castopod e fazer as configurações iniciais. Para isso, primeiro vamos criar as pastas necessárias e entrar nelas:
mkdir -p /var/www
cd /var/www
Agora vamos baixar o arquivo zip com a instalação do Castopod. Para isso, visite o site oficial e copie o link do botão “Download Castopod”. De volta ao console SSH, você vai digitar wget <link copiado>
, como no exemplo:
wget https://code.castopod.org/adaures/castopod/uploads/ab09b21e1e0f3ef02518fc0794d6a3be/castopod-1.1.2.zip
Então vamos extrair seu conteúdo e depois entrar na pasta que foi extraída:
unzip castopod-1.1.2.zip rm castopod-1.1.2.zip cd castopod
Configurando o servidor web
Para que o Castopod fique acessível corretamente na internet, precisamos configurar o servidor web de maneira adequada. Simplesmente apontá-lo para a pasta /var/www/castopod
não vai funcionar.
Dentro desta pasta há outra chamada public
, é para ela que o servidor web deve apontar ao expor o Castopod. No nginx que instalamos no início do tutorial vamos dizer para que ele faça isso.
Veja este arquivo de configuração de exemplo, que podemos salvar em /etc/nginx/conf.d/podcast.conf
:
server { listen 80; listen [::]:80; server_name podcast.exemplo.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name podcast.exemplo.com; root /var/www/castopod/public; ssl_protocols TLSv1.2 TLSv1.3; ssl_early_data on; ssl_prefer_server_ciphers on; ssl_session_tickets off; ssl_buffer_size 4k; ssl_session_timeout 4h; ssl_ecdh_curve X25519:secp384r1; ssl_session_cache shared:SSL:20m; ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-CHACHA20-POLY1305 ECDHE-RSA-CHACHA20-POLY1305 ECDHE-ECDSA-AES128-SHA ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES256-SHA384 @STRENGTH"; ssl_certificate /caminho/pasta/ate/arquivo/certificado.pem; ssl_certificate_key /caminho/pasta/ate/arquivo/chave.key; location / { index index.php; try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi_params; fastcgi_intercept_errors on; fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Como pode ver na linha root /var/www/castopod/public
, nosso servidor de exemplo está corretamente configurado para mostrar publicamente a pasta desenvolvida para isso.
Tudo o que fica uma pasta acima é conteúdo restrito ao público em geral e arquivos de configuração necessários ao correto funcionamento da plataforma. Acima, em negrito e sublinhado, estão as partes que você precisa editar.
Informe o domínio a partir do qual seus podcasts ficarão disponíveis e corrija o caminho até o certificado e chave privada deste, para permitir que a conexão HTTPS da página funcione.
Depois de terminadas as alterações, veja se está tudo certinho:
nginx -t
Caso nenhum erro seja mostrado, reinicie o servidor web:
systemctl restart nginx
Caso você esteja usando a Vultr, por padrão a máquina virtual vem com o firewall UFW ativado. Para que seu podcast fique acessível, autorize as portas:
ufw allow http
ufw allow https
ufw reload
Configurando o banco de dados
Estamos quase na hora do “vamos ver”. Mas antes precisamos criar um banco de dados no servidor MariaDB que instalamos no início deste tutorial. Para isso, use os comandos abaixo, linha por linha:
mysql -u root -p
use mysql
CREATE DATABASE castopod;
CREATE USER castopod_usr@localhost IDENTIFIED BY 'senha_super_secreta';
GRANT ALL PRIVILEGES ON castopod.* TO castopod_usr@localhost;
FLUSH PRIVILEGES;
Lembre de alterar onde diz senha_super_secreta
para incluir uma senha forte e segura.
Instalando o Castopod
Agora que temos tudo alinhado, vamos finalmente instalar o Castopod e começar a usá-lo. O primeiro passo é acessar o assistente de instalação da plataforma, acessando o endereço /cp-install
no seu domínio.
No nosso exemplo, seria em https://podcast.exemplo.com/cp-install
. Na primeira de quatro telas, temos os seguintes campos:
- Hostname: endereço a partir do qual seus podcasts ficarão disponíveis. Você não precisa mexer aqui pois já deve estar tudo certo automaticamente;
- Media base URL: de preenchimento opcional, define a partir de qual endereço seus arquivos de mídia serão carregados;
- Admin gateway: nome do caminho a partir do qual o painel de administração ficará disponível. No nosso exemplo, por padrão ficaria
https://podcast.exemplo.com/cp-admin
; - Auth gateway: endereço da página de login e autenticação, seguindo a mesma lógica acima.
No segundo passo vamos configurar o banco de dados:
- Database hostname: aqui você não precisa mexer a menos que seja necessário. Deixe
localhost
e vamos ao próximo campo; - Database name: o nome do banco de dados, conforme criamos anteriormente. No nosso caso é
castopod
; - Database username: nome de usuário do banco de dados. Conforme nosso exemplo, é
castopod_usr
; - Database password: senha de acesso ao banco de dados. Conforme nosso exemplo, é aquela que foi no lugar de
senha_super_secreta
; - Database prefix: você não precisa mexer nesse campo.
No terceiro passo vamos configurar o servidor de cache, que no caso vai ser o Redis. Selecione esta opção no menu e avance. No quarto passo vamos criar a conta de administrador desta instância do Castopod.
Escolha um nome de usuário, um e-mail e uma senha.
Pronto!
Se tudo saiu como esperado, você será encaminhado agora para a tela de login do painel de administração do Castopod. Entre com os dados que acabou de criar e comece a explorar a plataforma.
Agora você pode começar a configurar as opções do painel de administração e publicar seu primeiro podcast. Envie os arquivos de áudio ou vídeo e publique mensagens como num microblog na página do podcast.
Como faz parte do fediverso, vários outros softwares compatíveis podem seguir e interagir com o Castopod, como o Mastodon. Por ser como uma rede social, dá para seguir a página do seu podcast no Castopod.
Os próximos passos são avaliar as formas de hospedar seus arquivos de mídia em algum serviço de armazenamento na nuvem e também levar em conta o tráfego necessário para manter seu programa sustentável no longo prazo.
Sem rastreadores. Sem anúncios. Sem paywall.
Se você gostou do conteúdo, considere pagar um cafezinho para o autor.
Este blog não mostra mais anúncios, nem conta com rastreadores ou paywall. De verdade. Não rouba seus dados e nem os vende. Ele conta apenas com a colaboração dos leitores.