Podcasting 2.0 with Castopod
Have you ever wanted to podcast but don't know where to begin? Well if so, Castopod is your all in one self-hosted solution. They claim that Castopod will:
"Self-host your podcasts with ease, keep control over what you create and talk to your audience without any middleman. Your podcast and your audience belong to you and you only."
Some key features they offer are:
- Federated Social Media
- Promotion Tools
- Multiple Publishing Options
- Podcasting Analytics
So now that you know what is offered, it's time to try it out.
The project does provide documentation for various types of installations, but we'll focus only on the Docker Installation that will not be used in production.
So please, don't use this config and try to make a real product off of it.
Disclaimer: This is a dev build and https is off by default (last variable in app environment). You may also need to adjust your volume locations, port numbers and PUID/PGID for each service.
version: "3.7"
services:
app:
image: castopod/app:develop
container_name: "castopod-app1"
volumes:
- ./castopod-media:/opt/castopod/public/media
environment:
MYSQL_DATABASE: castopod1
MYSQL_USER: castopod1
MYSQL_PASSWORD: changeme1
CP_BASEURL: "http://10.10.0.142:8087"
CP_ANALYTICS_SALT: changeme20001
CP_CACHE_HANDLER: redis
CP_REDIS_HOST: redis
CP_DISABLE_HTTPS: 1
PUID: 1000
PGID: 1000
networks:
- castopod-app1
- castopod-db1
restart: unless-stopped
web-server:
image: castopod/web-server:develop
container_name: "castopod-web-server1"
volumes:
- ./castopod-media:/var/www/html/media
environment:
PUID: 1000
PGID: 1000
networks:
- castopod-app1
ports:
- 8087:80
restart: unless-stopped
mariadb:
image: mariadb:10.5
container_name: "castopod-mariadb1"
networks:
- castopod-db1
volumes:
- ./castopod-db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: changeme01
MYSQL_DATABASE: castopod1
MYSQL_USER: castopod1
MYSQL_PASSWORD: changeme1
PUID: 1000
PGID: 1000
restart: unless-stopped
redis:
image: redis:7.0-alpine
container_name: "castopod-redis1"
volumes:
- ./castopod-cache:/data
environment:
PUID: 1000
PGID: 1000
networks:
- castopod-app1
volumes:
castopod-media:
castopod-db:
castopod-cache:
networks:
castopod-app1:
castopod-db1:
After Docker is finished pulling images and creating containers, you can log into the web GUI using your computer IP, port number and a trailing slash with "cp-install" at the end.
10.20.0.12:8087/cp-install
You'll have to create a super user account right away.
After logging in, you'll see the main dashboard that is available.
Your Castopod instance can host multiple podcasts and just appends the end of your base url with a trailing slash and the fediverse username you pick.
http://10.10.0.142:8087/@asdfasdf
After your podcast is created, it makes a social page for your feed
Your podcast will have it's own page with many settings that you can customize.
If you really want to take Castopod out of development and the main stream, you'll need to adapt your docker compose file and get things running with SSL and a reverse proxy. They have documentation for a reverse proxy using Caddy and there is a PR if you use LSIO Swag.
So what are you waiting for? Get out and there and get podcasting!!
Did you read the article on AzuraCast? If you're into podcasting 2.0 stuff, this might be a tool you could use to host a live (lit) stream.