Files
2026-06-09 18:40:21 +02:00

125 lines
4.9 KiB
Markdown

---
title: PinePods
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, media-streaming, podcasts, multi-user, rust]
confidence: high
contested: false
sources:
- https://selfh.st/apps/?tag=Media+Streaming
- https://github.com/madeofpendletonwool/PinePods
---
# 🎬 PinePods
> Serveur de podcasts multi-utilisateurs avec synchronisation entre clients, gestion fine des épisodes écoutés et découverte par thème.
## 📋 Informations Générales
| Attribut | Valeur |
|----------|--------|
| **Nom** | PinePods |
| **Slug** | app-pinepods |
| **Description** | Plateforme de podcasts self-hosted, multi-utilisateurs, compatible clients iOS/Android/web |
| **Site officiel** | https://pinepods.online/ |
| **Repository** | https://github.com/madeofpendletonwool/PinePods |
| **Stars** | 878 ⭐ |
| **Licence** | MIT |
| **Langage principal** | Rust (backend) + Svelte (frontend) |
| **Catégorie** | Media Streaming |
| **Tags** | [catalogue, media-streaming, podcasts, multi-user, rust] |
## 📝 Description
PinePods est un gestionnaire de podcasts moderne pensé pour un usage familial ou de petite équipe. Contrairement à des solutions mono-utilisateur comme [[app-casteros]] ou [[app-antennapod]] (qui est Android-only), PinePods gère nativement plusieurs comptes, conserve l'historique d'écoute par utilisateur et synchronise la position de lecture entre tous les clients connectés (web, iOS, Android, CLI).
L'indexation est centralisée : les métadonnées, la position d'écoute, les épisodes téléchargés et les abonnements sont stockés dans une base PostgreSQL. Le backend en Rust assure des temps de réponse rapides et une empreinte mémoire modeste, ce qui rend l'application parfaitement adaptée à un [[self-hosting]] sur Raspberry Pi 4/5 ou un mini-PC.
Points forts : interface agréable, recherche via iTunes et gpodder.net, génération RSS, marque-pages sur épisode, support des podcasts avec chapitres. Limites : la gestion de très grosses bibliothèques (> 5 000 abonnements) peut nécessiter quelques ajustements d'index PostgreSQL.
## 🚀 Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
version: "3.8"
services:
pinepods-db:
image: postgres:16-alpine
container_name: pinepods-db
restart: unless-stopped
environment:
POSTGRES_USER: pinepods
POSTGRES_PASSWORD: changeme
POSTGRES_DB: pinepods
volumes:
- ./db:/var/lib/postgresql/data
pinepods-api:
image: madeofpendletonwool/pinepods-api:latest
container_name: pinepods-api
restart: unless-stopped
depends_on:
- pinepods-db
environment:
DATABASE_URL: postgres://pinepods:changeme@pinepods-db:5432/pinepods
JWT_SECRET: changez-moi-en-production
ports:
- "8013:8013"
pinepods-web:
image: madeofpendletonwool/pinepods-web:latest
container_name: pinepods-web
restart: unless-stopped
depends_on:
- pinepods-api
ports:
- "8014:8014"
```
### Installation manuelle
Build Rust depuis les sources : `cargo build --release`, puis lancer l'API et servir le frontend Svelte. Réservé aux utilisateurs avancés ; la voie Docker est largement privilégiée.
## ⚙️ Configuration
- **Compte admin** : créé au premier lancement via l'interface web (`/setup`).
- **Reverse proxy** : configurer [[app-caddy]] ou [[app-traefik]] pour exposer en HTTPS sur un sous-domaine dédié.
- **Sauvegarde** : ne pas oublier de sauvegarder le volume `db/` (PostgreSQL) en plus des fichiers média.
- **Clients mobiles** : utiliser les apps PinePods iOS / Android officielles (F-Droid et Play Store).
- **Synchronisation gPodder** : activer le module correspondant pour conserver la compatibilité avec d'autres clients (AntennaPod).
## 🔗 Alternatives
- **Funkwhale** — Serveur audio/podcasts ActivityPub, plus orienté musique.
- **Castopod** — Plateforme podcasting avec ActivityPub, focalisée sur la publication.
- **Gpodder** — Serveur gPodder standalone, plus minimaliste.
- **AntennaPod** — Client Android uniquement, pas de serveur.
## 🔒 Sécurité
- Changer `JWT_SECRET` et le mot de passe PostgreSQL avant toute exposition réseau.
- Activer HTTPS (obligatoire pour la géolocalisation des clients mobiles récents).
- Limiter l'inscription publique (`allow_registration: false` dans la conf).
- Mettre à jour régulièrement ; le projet est en développement actif.
## 📚 Ressources
- Site officiel : https://pinepods.online/
- Repository : https://github.com/madeofpendletonwool/PinePods
- Documentation : https://pinepods.online/docs/
- Clients mobiles : https://github.com/madeofpendletonwool/PinePodsApps
## 🔗 Pages Liées
- [[cat-media-streaming]] (catégorie parente)
- [[app-navidrome]] — Équivalent pour la musique
- [[app-funkwhale]] — Alternative audio/podcasts
- [[app-jellyfin]] — Serveur média polyvalent
- [[app-traefik]] — Reverse proxy HTTPS
- [[recettes-docker-compose]] — Templates
- [[securisation-home-lab]] — Bonnes pratiques