Installer Castopod avec Docker
Castopod

Installer Castopod avec Docker

Table des matières

Castopod est LE couteau Suisse du podcast! Vous avez tout sous la main pour vous lancer et vous exprimer.

Sa mise en place est facile et son utilisation tout autant, pour ne rien gâcher au plaisir il est gratuit et open-source.

Rien ne vous empêche de donner une étoile pour soutenir le projet sur Github!

J'ai commencé depuis un moment à préparer Castopod en parallèle pour qu'il héberge les podcasts belginux mais je n'ai pas encore fini tant l'ensemble du travail que demande ce site m'a dépassé. Mais c'est pour bientôt! 😀

Notez qu'il faudra un nom de domaine et un proxy, pour le proxy j'ai abordé deux sujets:


La solution libre & gratuite pour lancer votre podcast 2.0!

Hébergez vos podcasts sereinement, gardez le contrôle sur ce que vous créez et discutez avec votre public sans aucun intermédiaire. Votre podcast et votre audience n'appartiennent qu'à vous, et vous uniquement.

⚡Caractéristiques

  • 🌱 Libre, gratuit & open-source (Licence AGPL v3)
  • 🔐 focalisé sur la souveraineté des données : votre contenu, votre audience et vos statiistiques vous appartiennent, et à vous seulement
  • 🪄 Fonctionnalités du Podcasting 2.0 : GUID, verrouillage, transcriptions, financement, chapitres, géo-localisation, intervenants, extraits sonores, …
  • 💬 Réseau social intégré :
    • 🚀 Castopod fait partie du Fédivers, un réseau social décentralisé
    • ❤️ Créer des publications, partager, mettre en favori et commenter des épisodes
  • 📈 Statistiques intégrées :
    • ⚖️ Conforme GDPR / CCPA / LGPD
    • 🪙 Mesure d'audience IABv2
    • 🏡 Statistiques intégrées, aucune tierce partie intermédiaire
  • 📢 Outils de marketing intégrés :
    • ✅ Prêt pour le SEO (méta-tags open-graph, JSON-LD…)
    • 📱 PWA: installez comme application autonome
    • 🎨 Couleurs de thèmes personnalisables
    • 🎬 Générez des clips vidéo prêts à partager à partir d'épisodes
    • 🔉 Générez des extraits sonores
    • ▶️ Intégrer vos épisodes dans n'importe quel site web
  • 💸 Monétisation:
    • 🔗 Liens de financement
    • 📲 publicité “listen-to-click”
    • 🤝 value4value / WebMonetization
    • 💎 Podcasts premium
  • 📡 Publiez vos épisodes partout avec RSS :
    • 📱 Sur tous les index et toutes les applications : Podcast Index, Podcasts Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend…
    • ⚡ Diffusez instantanément vos épisodes avec WebSub
  • 📥 Importation de Podcast : déménagez votre podcast existant vers Castopod
  • 📤 Déplacez votre podcast chez un autre hébergeur
  • 🔀 Multi-locataire : hébergez autant de podcasts que vous le souhaitez
  • 👥 Multi-utilisateur : ajoutez des contributeurs et définissez leurs rôles
  • 🌎 support de i18n : traduit en anglais, français, polonais, allemand, portugais, brésilien & espagnol… et plus à l'avenir!

Si vous avez la moindre difficulté, n'oubliez pas que vous pouvez rejoindre belginux sur Discord et Matrix!


L'installation

  1. Créez votre docker-compose.yml:
sudo nano docker-compose.yml
  1. Collez ça dedans:
version: "3.7"

services:
  app:
    image: castopod/castopod:latest
    container_name: "castopod-app"
    volumes:
      - castopod-media:/var/www/castopod/public/media
    environment:
      MYSQL_DATABASE: castopod
      MYSQL_USER: castopod
      MYSQL_PASSWORD: changeme
      CP_BASEURL: "https://ndd.tld"
      CP_ANALYTICS_SALT: changeme
      CP_CACHE_HANDLER: redis
      CP_REDIS_HOST: redis
      CP_REDIS_PASSWORD: changeme-redis-pass  #CHANGEZ_MOI
      #CP_EMAIL_SMTP_HOST: smtp.gmail.com
      #CP_EMAIL_FROM: monmail@gmail.com
      #CP_EMAIL_SMTP_USERNAME: monmail@gmail.com
      #CP_EMAIL_SMTP_PASSWORD: bqyggfdtmcdyigdgtj
      #CP_EMAIL_SMTP_PORT: 587
      #CP_EMAIL_SMTP_CRYPTO: tls
    networks:
      - castopod-app
      - castopod-db
    ports:
      - 8001:8000
    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
    command: --requirepass changeme-redis-pass  #CHANGEZ_MOI

volumes:
  castopod-media:
  castopod-db:
  castopod-cache:

networks:
  castopod-app:
  castopod-db:
  • CP_BASEURL: "https://ndd.tld" => à la place de http://ndd.tld, indiquez votre domaine

  • CP_ANALYTICS_SALT: changeme => à la place de changeme, indiquez une chaine de caractères au nombre de 64 (conseillé mais pas obligatoire, mais fortement conseillé ;)

  • CP_REDIS_PASSWORD: changeme-redis-pass => à la place de changeme-reids-pass, indiquez un mot de passe fort

  • MYSQL_PASSWORD: changeme => à la place de changeme, indiquez un mot de passe fort

  • command: --requirepass changeme-redis-pass => à la place de changeme-redis-pass, indiquez un mot de passe fort

Configurer le serveur mail

Si vous avez besoin du serveur mail, comme d'habitude je prends comme exemple Gmail mais libre à vous d'utiliser celui de votre choix. N'oubliez pas de créer un mot de passe pour application tierce suivant ce tutoriel:

Configurer le SMTP pour envoyer un mail avec une application Docker
Tutoriel pour configurer le SMTP afin d’envoyer un mail à partir de vos applications self-hosted.
Pour activer le serveur mail il faudra décommenter les lignes, c'est à dire retirer le # devant chaque ligne.

Ce qui donne:

CP_EMAIL_SMTP_HOST: smtp.gmail.com
CP_EMAIL_FROM: monmail@gmail.com
CP_EMAIL_SMTP_USERNAME: monmail@gmail.com
CP_EMAIL_SMTP_PASSWORD: bqyggfdtmcdyigdgtj
CP_EMAIL_SMTP_PORT: 587
CP_EMAIL_SMTP_CRYPTO: tls

Ensuite complétez le formulaire avec les informations suivantes, attention, je sais que Gmail fourni un mot de passe avec des espaces, il faut absolument les retirer sans quoi Castopod va planter.

Pour être certain d'être clair, si votre mot de passe est: abcdef abcdef abcdef, il devient abcdefabcdefabcdef.

  • CP_EMAIL_SMTP_HOST: => smtp.gmail.com

  • CP_EMAIL_FROM: monmail@gmail.com => à la place de monmail@gmail.com, indiquez votre mail complet

  • CP_EMAIL_SMTP_USERNAME: monmail@gmail.com => à la place de monmail@gmail.com, indiquez votre mail complet

  • CP_EMAIL_SMTP_PASSWORD: bqyggfdtmcdyigdgtj => remplacez bqyggfdtmcdyigdgtj par votre mot de passe fourni par Gmail en tenant compte de la remarque sur les espaces

  • CP_EMAIL_SMTP_PORT: => 587

  • CP_EMAIL_SMTP_CRYPTO: => tls

  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur votre nom de domaine sans oublier d'ajouter /cp-install à la fin.
https://ndd.tld/cp-install

Terminer l'installation

Créer son compte super-utilisateur

Rendez-vous sur votre domaine, suivi de /cp-install, comme indiqué précédemment et remplissez les informations demandées. Une fois que c'est complet, cliquez sur Terminer l'installation:

Première connexion

Maintenant que votre compte super-utilisateur est créé, connectez-vous avec en entrant les informations de votre compte, validez en cliquant sur Se connecter:

Vous voilà redirigé vers votre tableau de bord qui permet d'administrer Castopod:


Paramètres généraux

Toujours dans le tableau de bord, dans Paramètres, Général, vous avez le loisir de personnaliser l'instance avec Titre du site, Description du site et Flavicon du site.

Une fois que vous êtes satisfait, enregistrez vos paramètres en cliquant sur Sauvegarder:


Thème

Toujours sur le tableau de bord, vous avez également la possibilité de choisir une couleur d'accentuation, cliquez sur la couleur de votre choix et validez avec Sauvegarder:


Créer un utilisateur

Pour créer un utilisateur, sauf erreur de ma part, vous aurez besoin du serveur mail.

Rendez-vous dans la partie Utilisateurs, Créer un utilisateur:

Cliquez en haut à droite sur Créer un utilisateur:

Il faudra remplir les informations demandées comme, son Identifiant, son E-mail et son Rôle. Rôles qui sont au nombre de 3:

  • Gestionnaire
  • Podcast-rice-eur
  • Super administrat.rice.eur

Quand tout est terminé, cliquez sur Créez un utilisateur:

Si tout s'est bien passé, vous aurez ce message=

Voyons voir du côté du mail, ça sent bon l'invitation:

Il ne reste qu'à votre utilisateur de cliquer sur Se connecter:

Votre utilisateur devra définir un mot de passe et cliquer sur Choisis ton mot de passe:

Le voilà redirigé vers son tableau de bord:


Créer un podcast

Toujours dans le tableau de bord, cliquez sur Podcasts, Tous les podcasts:

Ensuite cliquez sur + Créer un podcast:

Remplissez les informations, certaines sont obligatoires, d'autres pas.

Alors, classification, Technologie:

L'auteur, et son mail:

Identité dans le Fédivers:

Quand vous avez terminé, cliquez sur Créer le podcast:

Le podcast a été créé avec succès! Cool...! Mais on est en mode brouillon pour le moment.

Cliquons sur Publier le podcast, peu de chance qu'on tue quelqu'un en faisant ça, ensuite vous arrivez ici ou vous pouvez écrire votre message de publication publier le podcast, soit sur le moment-même ou le planifier. Cliquez sur Publier pour terminer:

Pour voir ce que ça donne, en haut à gauche vous avez Aller sur le site, cliquez dessus:

J'ai déjà zéro abonné, le succès est fulgurant!


Créer un épisode

Rendez-vous dans Podcasts, Tous les podcasts:

Cliquez sur le podcast de votre choix, enfin ici on a pas trop le choix j'en ai fait qu'un:

En haut à droite, cliquez sur + Ajouter un épisode:

Complétez les informations demandées, le Fichier audio, d'une taille maximale de 512MiB, une Image de couverture, pas obligatoire mais c'est quand même plus sympa, et un Titre:

Ajoutez une Description de maximum 4000 caractères:

Quand vous êtes satisfait, validez en cliquant sur Créer l'épisode:

Yeah!

Cliquez en haut à droite sur Publier:

Ajoutez Votre message de publication, définissez la Date de publication et cliquez sur Publier:

Comme tout à l'heure, cliquez sur Aller au site:

Et voilà le résultat!


Problème de CSS lors d'une mise à jour

Il est possible que vous rencontriez un souci avec le CSS lors d'une mise à jour de Castopod. Ce n'est qu'un souci de cache.

Voici comment résoudre ce petit problème:

Copiez/collez cette commande dans votre terminal:

docker exec -ti castopod-app bash

Ensuite copiez/collez cette commande qui va avoir pour effet de vider le cache:

php spark cache:clear

Ce qui va retourner:

CodeIgniter v4.4.5 Command Line Tool - Server Time: 2024-03-12 14:53:38 UTC+00:00

Cache cleared.

Le tout en image:

Tapez exit dans votre terminal.
Pour terminer, faites un CTRL + F5 dans votre navigateur préféré pour retrouver votre site avec son CSS!

zarev

Belgique
🐧 Passionné de self-hosting, je partage ce que je connais et je me nourris du savoir des bonnes âmes qui partagent avec moi. Je soutiens l'usage des solutions open-source et leurs développeurs.

Vous pourriez aussi aimer