Initial vault setup
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
---
|
||||
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]]
|
||||
Reference in New Issue
Block a user