---
title: Castopod
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, activitypub-fediverse, podcast, audio, php, fediverse]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://code.castopod.org/adaures/castopod, https://castopod.org/]
---

# 🎙️ Castopod

> **La plateforme de podcasting fediverse** : hébergez vos podcasts sur une instance compatible ActivityPub, où chaque épisode est un post que vos auditeurs peuvent suivre depuis Mastodon, Pleroma ou tout autre serveur du Fediverse.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [https://castopod.org](https://castopod.org) |
| **GitHub** | [https://code.castopod.org/adaures/castopod](https://code.castopod.org/adaures/castopod) |
| **License** | AGPL-3.0 |
| **Langage principal** | PHP (CodeIgniter 4) |
| **Étoiles GitHub** | 63 ⭐ |
| **Dernière MAJ** | 2026-05 |
| **Catégorie** | [[cat-activitypub-fediverse]] |

## Description

Castopod est une plateforme libre de **podcasting** pensée pour les créateurs et podcasteurs qui veulent garder le contrôle de leur média. Chaque épisode publié est automatiquement exposé via **ActivityPub** : un auditeur peut donc suivre `@podcast@mon-instance.fr` directement depuis son compte Mastodon, recevoir les nouveaux épisodes dans sa timeline et même répondre — la réponse apparaissant comme un commentaire sous l'épisode.

Concrètement, Castopod propose tout ce qu'attend un podcasteur : hébergement et distribution RSS des flux, statistiques d'écoute (téléchargements, lecteurs, géolocalisation), **mutualisation multi-podcasts** (plusieurs podcasts sur une même instance, idéal pour des collectifs ou des radios associatives), gestion des invités, transcriptions, intégration avec les **plateformes iTunes/Spotify/Pocket Casts** classiques.

**Points forts** : basé sur CodeIgniter 4, relativement léger, interface d'administration claire (CodeIgniter admin), export OPML, transcriptions automatiques, multilingue.

**Points faibles** : image Docker officielle un peu capricieuse (problèmes de permissions sur les volumes), documentation perfectible, pas d'algorithme de recommandation, fonctionnalités sociales plus limitées qu'un PeerTube (pas de likes distribués, par ex.).

## Installation

### Via Docker (recommandé)

L'image officielle est `castopod/castopod` sur Docker Hub. Castopod a besoin d'une base MySQL/MariaDB.

```yaml
# docker-compose.yml
services:
  castopod:
    image: castopod/castopod:latest
    container_name: castopod
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      CP_BASEURL: "https://podcast.example.com"
      CP_ADMIN_GATEWAY: cp-admin
      CP_DATABASE: castopod
      CP_DATABASE_HOSTNAME: db
      CP_DATABASE_USERNAME: castopod
      CP_DATABASE_PASSWORD: change-me
      CP_DATABASE_DRIVER: "mysql"
      CP_EMAIL_FROM: "noreply@example.com"
      CP_EMAIL_SMTP_HOST: ""
    volumes:
      - castopod_media:/var/www/castopod/public/media
    depends_on:
      - db

  db:
    image: mariadb:11
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: castopod
      MYSQL_USER: castopod
      MYSQL_PASSWORD: change-me
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
    volumes:
      - castopod_db:/var/lib/mysql

volumes:
  castopod_media:
  castopod_db:
```

### Installation manuelle

1. Cloner le dépôt : `git clone https://code.castopod.org/adaures/castopod.git`
2. Installer les dépendances PHP avec Composer : `composer install --no-dev`
3. Configurer Apache/Nginx pour pointer sur `public/` (le `.htaccess` est fourni)
4. Créer la base MariaDB et lancer l'installateur web

## Configuration

1. Accéder à `https://podcast.example.com/cp-admin/install` (gateway configurable via `CP_ADMIN_GATEWAY`)
2. Créer le **super-admin** (premier compte = administrateur global)
3. Ajouter un **podcast** : titre, description, image de couverture, propriétaire
4. Configurer le **flux RSS** : chaque podcast a son URL, Castopod gère iTunes/Podcast Index
5. Activer la **fédération ActivityPub** (on par défaut) : les comptes podcasteurs deviennent des acteurs fediverse

## Alternatives

### Open source
- [[app-funkwhale]] — pour l'audio plus généraliste (musique, livres audio, podcasts)
- [[app-peertube]] — vidéo plutôt que podcast, mais même philosophie fediverse
- [[app-podcastgenerator]] — solution PHP minimaliste, pas de ActivityPub
- **Funkwhale** — pour une bibliothèque audio unifiée

### Propriétaires
- Anchor / Spotify for Podcasters — gratuit mais hébergé
- Buzzsprout — payant, centralisé
- Transistor — payant, analytics poussées

## Sécurité

- **Reverse-proxy HTTPS** obligatoire (Let's Encrypt via Traefik/Caddy)
- **Isoler le compte super-admin** : pas d'email public dans le profil fediverse pour éviter le spam
- **Modération ActivityPub** : Castopod dispose d'un onglet pour bloquer/filtrer les acteurs federés indésirables
- **Mises à jour** : suivre les releases sur le GitLab officiel (correctifs de sécurité réguliers)
- **Sauvegardes** : `castopod_media` (épisodes, images) et `castopod_db` (métadonnées, commentaires)

## Ressources
- Site officiel : [castopod.org](https://castopod.org)
- Documentation : [docs.castopod.org](https://docs.castopod.org/)
- Communauté : Matrix `#castopod:matrix.org`
- Code source : [code.castopod.org/adaures/castopod](https://code.castopod.org/adaures/castopod)

## Pages Liées
- [[cat-activitypub-fediverse]]
- [[recettes-docker-compose]]
- [[app-funkwhale]]
