Castopod ist eine kostenlose und Open-Source-Software, mit der du deinen Podcast ganz einfach selbst hosten kannst.
Behalte die Kontrolle über das, was du erschaffst, und kommuniziere direkt mit deiner Hörerschaft. Mit Castopod gehört dein Podcast wirklich dir, und du kannst direkt mit deiner Community interagieren.
On top: Castopod bietet dir eine Integration ins Fediverse, sodass du deine Inhalte mit einem dezentralen Netzwerk teilen und eine noch engere Verbindung zu deiner Hörerschaft aufbauen kannst. Perfekt, um in die Welt des Podcasting 2.0 einzutauchen!
1. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
2. Verzeichnis erstellen
Dazu gebt ihr folgenden Befehl ein:
mkdir -p /opt/containers/castopod
3. Docker Compose Datei erstellen
Nun erstellen wir unsere Docker Compose Datei.
nano /opt/containers/castopod/compose.yml
Fügt folgendes ein:
---
services:
castopod:
image: castopod/castopod:latest
container_name: "castopod"
volumes:
- ./castopod-media:/var/www/castopod/public/media
environment:
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: changeme
CP_BASEURL: "https://podcast.deinedomain.de"
CP_ANALYTICS_SALT: changeme
CP_CACHE_HANDLER: redis
CP_REDIS_HOST: redis
CP_REDIS_PASSWORD: changeme
networks:
- castopod
- castopod-db
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.castopod.entrypoints=websecure"
- "traefik.http.routers.castopod.rule=(Host(`podcast.deinedomain.de`))"
- "traefik.http.routers.castopod.tls=true"
- "traefik.http.routers.castopod.tls.certresolver=http_resolver"
- "traefik.http.routers.castopod.service=castopod"
- "traefik.http.services.castopod.loadbalancer.server.port=8000"
- "traefik.docker.network=proxy"
- "traefik.http.routers.castopod.middlewares=default@file"
restart: unless-stopped
mariadb:
image: mariadb:11.2
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.2-alpine
container_name: "castopod-redis"
command: --requirepass changeme
volumes:
- ./castopod-cache:/data
networks:
- castopod
networks:
castopod:
castopod-db:
proxy:
external: true
Notwendige Anpassungen:
- Ihr müsst noch den Hostnamen anpassen: (Host(
podcast.deinedomain.de))” - 2x MYSQL_PASSWORD: changeme
- CP_BASEURL: “https://podcast.deinedomain.de”
- CP_ANALYTICS_SALT: changeme
- CP_REDIS_PASSWORD: changeme
- MYSQL_ROOT_PASSWORD: changeme
4. Castopod starten
Jetzt nur noch den Container starten. Gebt dazu folgendes ein:
docker compose -f /opt/containers/castopod/compose.yml up -d
Nun geht ihr auf podcast.euredomain.de/cp-install
Dort solltet ihr jetzt folgendes sehen.

Jetzt noch Gruppe und User zuordnen:
chown www-data:www-data /opt/containers/castopod/castopod-media
Wir erstellen jetzt den Super Admin Account und können uns nun einloggen.

Und so sieht das Admin Dashboard aus:

Quelle:
https://docs.castopod.org/main/en

Um den Docker ordnungsgemäß nutzen zu können musste ich nicht Schreibrechte zuordnen, sondern den Ordner “castopod-media” www-date als Gruppe und User zuordnen.