πŸŽ™ 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.

Castopod | Your Free & Open-source Podcast Host
Castopod is a free and open-source hosting platform made for podcasters. Engage and interact with your audience whilst keeping control over your content.

Building your own podcast? If you want to build it with F/OSS software, look no further than Castopod (code)!

Castopod example page (source: castopod.org)

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.