🎙 Castopod
Castopod makes it easy to publish podcasts and maintain a webpage for your podcast as well. With social features, commenting and fediverse integration, you can share audio with your audience with ease.
Building your own podcast? If you want to build it with F/OSS software, look no further than Castopod (code)!
Castopod comes with a full fledged set of documentation. Wondering how Castopod differs from solutions like Wordpress and other software? They've got a section for that.
Castopod is built on modern PHP (8.1 is required), using CodeIgniter4, with advanced support for Federation. The codebase is actively worked on and sees active development – hitting the v1.0 milestone in October.
Running Castopod
Castopod does require quite a few services to get going, so th easiest way to start is with docker-compose
:
version: "3.7"
services:
app:
image: castopod/app:latest
container_name: "castopod-app"
volumes:
- castopod-media:/opt/castopod/public/media
environment:
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: changeme
CP_BASEURL: "http://castopod.example.com"
CP_ANALYTICS_SALT: changeme
CP_CACHE_HANDLER: redis
CP_REDIS_HOST: redis
networks:
- castopod-app
- castopod-db
restart: unless-stopped
web-server:
image: castopod/web-server:latest
container_name: "castopod-web-server"
volumes:
- castopod-media:/var/www/html/media
networks:
- castopod-app
ports:
- 8080:80
restart: unless-stopped
mariadb:
image: mariadb:10.5
container_name: "castopod-mariadb"
networks:
- castopod-db
volumes:
- castopod-db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: changeme
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: changeme
restart: unless-stopped
redis:
image: redis:7.0-alpine
container_name: "castopod-redis"
volumes:
- castopod-cache:/data
networks:
- castopod-app
# this container is optional
# add this if you want to use the videoclips feature
video-clipper:
image: castopod/video-clipper:latest
container_name: "castopod-video-clipper"
volumes:
- castopod-media:/opt/castopod/public/media
environment:
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: changeme
networks:
- castopod-db
restart: unless-stopped
volumes:
castopod-media:
castopod-db:
castopod-cache:
networks:
castopod-app:
castopod-db:
Quite the handful! But given Castopod's feaureset, it's hard to get away with a smaller set of supporting services.
If you're itching to get a look at the source code, make sure to check out their Gitlab code repository.