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.
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.
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.