Plataforma para gestión y streaming de podcasts autoalojada con Docker Compose
¿Te imaginas tener tu plataforma privada de podcasts, gestionada de manera profesional, con soporte para varios usuarios y acceso vía web, todo en tu propio servidor o VPS? Hoy te traigo un proyecto de tendencia (potenciado por la popularidad del podcasting) listo para desplegar con Docker Compose, incluyendo Podify (un frontend superamigable), Ponicast-API para los feeds, una base de datos PostgreSQL, y un servicio de almacenamiento de archivos tipo S3 (MinIO).
¿Por qué desplegar tu sistema de podcasts?
- Privacidad absoluta: Tus episodios se sirven directamente desde tu máquina. Sin algoritmos, sin intermediarios.
- Control granular: Multiusuario, feeds protegidos con contraseña y posibilidad de limitar el acceso por IP o usuario.
- Streaming y descargas: Compatible con apps de podcast externas (Overcast, Pocket Casts, Apple Podcasts…) o escucha directa por web.
- Integración fácil: Puedes añadir otros sistemas (backup automático, transcripción, estadísticas) fácilmente, gracias a la arquitectura de microservicios de Docker [1].
¡Manos a la obra! El docker-compose.yml para tu plataforma de podcasts
version: "3.8"
services:
postgres:
image: postgres:15
container_name: podcasts_postgres
restart: unless-stopped
environment:
POSTGRES_DB: podify
POSTGRES_USER: podifyuser
POSTGRES_PASSWORD: strongsecret
volumes:
- postgres_data:/var/lib/postgresql/data
minio:
image: minio/minio:latest
container_name: podcasts_minio
restart: unless-stopped
environment:
MINIO_ROOT_USER: "minioadmin"
MINIO_ROOT_PASSWORD: "minioadminstrongpass"
command: server /data
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio_data:/data
podify-backend:
image: ghcr.io/podify-org/podify-backend:latest
container_name: podcasts_backend
restart: unless-stopped
environment:
PODIFY_DB_HOST: postgres
PODIFY_DB_USER: podifyuser
PODIFY_DB_PASSWORD: strongsecret
PODIFY_DB_NAME: podify
PODIFY_S3_HOST: minio
PODIFY_S3_PORT: 9000
PODIFY_S3_ACCESS_KEY: minioadmin
PODIFY_S3_SECRET_KEY: minioadminstrongpass
PODIFY_S3_BUCKET: podify-media
PODIFY_S3_SSL: "false"
PODIFY_ADMIN_USER: admin
PODIFY_ADMIN_PASS: ultra_secure
depends_on:
- postgres
- minio
ports:
- "8080:8080"
podify-frontend:
image: ghcr.io/podify-org/podify-frontend:latest
container_name: podcasts_frontend
restart: unless-stopped
environment:
PODIFY_API_HOST: podify-backend
depends_on:
- podify-backend
ports:
- "80:80"
volumes:
postgres_data:
minio_data:
Explicación del stack
- PostgreSQL: Toda la base de datos y la gestión de usuarios, podcasts y episodios.
- MinIO: Almacena los audios sin cuota (ideal para cientos de episodios) y se comporta como un S3 local.
- Podify Backend: Gestiona la lógica de la API, la validación de usuarios y el control de flujos RSS.
- Podify Frontend: Una web moderna para descubrir, subir y escuchar episodios, con login integrado.
Primeros pasos tras levantar el stack
- Accede a http://localhost para usar la interfaz web de Podify usando el usuario y contraseña que definiste.
- Configura los feeds públicos o privados, añade tu podcast y comienza a subir episodios.
- Entra a http://localhost:9000 (usuario: minioadmin, pass: minioadminstrongpass) para gestionar los archivos en MinIO si lo necesitas.
- Puedes acceder a la API en http://localhost:8080 para integraciones avanzadas.
Consejos útiles y troubleshooting
- Paso imprescindible: La primera vez que arranques, entra a MinIO y crea el bucket «podify-media». Sin él, fallará la subida de episodios.
- HTTPS: Si vas a exponer tu plataforma fuera de tu LAN, pon un proxy inverso como Nginx Proxy Manager delante, y usa HTTPS para los cuatro servicios*.
- Backups periódicos: Monta el volumen
postgres_datayminio_datafuera del contenedor para copias automáticas. - ¿Problemas creando el usuario admin? Prueba reiniciando podify-backend y borra el volumen si es la primera vez que lo iniciaste mal.
¿Te animas? Con este stack dockerizado, montar tu propio sistema de podcasts es más fácil de lo que pensabas. ¡Domina tus audios y olvida las plataformas ajenas!
