Floppy en Docker - Tracker media autohospedado estilo Trakt

Floppy | Media Tracking | Docker | Self-Hosted | Trakt Alternative | Movies TV Music Podcasts Books

Floppy en Docker: Tracker media autohospedado Trakt-killer con movies, TV, anime, manga, libros, cómics, juegos, boardgames, música, podcasts, Plex sync, Last.fm, Pocket Casts, listas compartidas, estadísticas recap-style, multi-usuario OIDC, REST API, MCP server, todo en uno 🎬📺🎵📚🎮

Floppy es un tracker media autohospedado diseñado por quien echa de menos Trakt. Un proyecto único: historial unificado de películas, series, anime, manga, libros, cómics, juegos, boardgames, música y podcasts en una sola librería. Sync Plex, Last.fm, Pocket Casts. Estadísticas recap-style. Listas compartidas con RSS. Multi-usuario OIDC. Descubre personalizadas. REST API + MCP server. SQLite o PostgreSQL. Zero suscripción. AGPL-3.0 open source. Production-ready en Docker.

¿Qué es Floppy en Docker?


Floppy es un tracker media autohospedado all-in-one que unifica películas, series, anime, manga, libros, cómics, juegos, boardgames, música y podcasts en una sola librería, directorio y historial, con sincronización Plex/Jellyfin/Emby, Last.fm, Pocket Casts, listas compartidas, estadísticas recap-style, descubrimiento personalizado, multi-usuario OIDC, REST API + MCP server, todo ejecutándose en Docker bajo tu control total sin dependencias cloud. La alternativa Trakt profesional que pedías.

Propuesta clave: Trakt replacement self-hosted. Historial unificado (películas, TV, anime, manga, books, comics, games, boardgames, music, podcasts). Progress tracking ("Time Left"). Unified history feed scaneable. Recap-style statistics con custom date ranges. Public shareable lists con RSS feeds. Smart lists con reglas (collection status, release state, platform, origin, author, tags). Descubrimiento personalizado (genre, studio, cast, tag affinity). Collection/owned media (source, resolution, HDR, format, codec). Plex full library import + watchlist + ratings sync. Pocket Casts account sync (not one-shot import). Last.fm live polling. Radarr/Sonarr scheduled sync. Jellyseerr webhook auto-add. Import desde Trakt, Simkl, MyAnimeList, AniList, Kitsu, Steam, Goodreads, StoryGraph, IMDb, HowLongToBeat, Grouvee. Anime-specific handling (proper routing). Episode detail pages con scoring individual. Barcode/ISBN scanning libros desde foto. Multi-user OIDC + social login. TOTP authenticator + recovery codes. Now-playing card desde Plex/Jellyfin/Emby. REST API /api/v1 + MCP server. Scheduled backups + export. iCalendar feeds. Apprise notifications. CSV export/import. SQLite o PostgreSQL. Docker integrated. AGPL-3.0 open source. Production-ready.

Para media enthusiasts: Librería unificada. Sync automático. Stats bonitas. Compartir sin upload. Control total.

Características principales

Librería unificada

Movies, TV, anime, manga, books, comics, games, boardgames, music, podcasts — todo en uno.

Progress tracking

Time Left view. Sabe qué ver después. Episodios pendientes. Libros en lectura. Música escuchada.

Historial unificado

Feed filtrable. Mes a mes. Genres, media-type filters. Cleanup duplicados. Delete flow.

Estadísticas recap-style

Refresh explícito. Compare mode. Custom date ranges. Top talents. Per-type splits. Per-author stats.

Listas compartidas

Public + private. Custom slugs. Public profiles. RSS/JSON feeds. Smart-list rules. Completion %. Recomendaciones con aprobación.

Sync automático

Plex library, watchlist, ratings. Pocket Casts account. Last.fm polling. Radarr/Sonarr. Jellyseerr webhooks.

Descubrimiento

Personalizado (genre, studio, cast, tag affinity). Not-interested feedback. Hide. Background refresh.

Colecciones

Track físico/digital. Copy-level detail (source, resolution, HDR, format, codec, bitrate). Filters.

Anime handling

Anime vs TV separación. Anime-specific season/episode nav. Grouped-anime routing. Franchise navigation.

Podcasts nativos

Podcast + episode pages. Episode-level tracking. Mark-all-played. Pocket Casts live sync (not import).

Música nativa

Artist + album pages. Track-level history. Play-count stats. Listening-time. MusicBrainz metadata. Discography sync.

Libros + lectura

Barcode/ISBN scanning. Percentage-based progress. Top-authors stats. Resilient imports. Goodreads/StoryGraph/Hardcover.

Requisitos del sistema

  • Docker & Docker Compose v2+
  • 2 GB - 4 GB RAM mínimo (muy ligero, Python app)
  • 5 GB - 50+ GB espacio disco (según librería + media)
  • Puerto TCP: 8000 (web Floppy)
  • CPU: 2+ cores (app Django ligera)
  • SQLite (bundled, por defecto)
  • Redis (sessions + background tasks)
  • Python 3.10+ (en imagen Docker)
  • Opcional: PostgreSQL (para escalabilidad)
  • Opcional: API keys (TMDB, TVDB, MAL, IGDB, Steam, BGG, Last.fm, Trakt, etc)
API keys opcionales pero recomendados: TMDB (movies/TV), TVDB (TV/anime), MAL (anime), IGDB (games), STEAM (game imports), Last.fm (music), Pocket Casts (podcasts sync). Sin ellos, metadata manual o vacía.
Performance: Django app muy ligera. SQLite suficiente hasta grandes librerías (50k+ items → considera PostgreSQL). Redis para sessions/background tasks esencial.

Instalación con Docker Compose

Paso 1: docker-compose.yml (SQLite + Redis)

version: '3.8' services: floppy: image: ghcr.io/dannyvfilms/floppy:latest container_name: floppy restart: unless-stopped depends_on: redis: condition: service_healthy environment: - SECRET=change_me_to_a_long_random_string - REDIS_URL=redis://redis:6379 - REGISTRATION=True - DEMO_ACCOUNT_ENABLED=False - TZ=Europe/Madrid - TMDB_API=your_tmdb_api_key volumes: - floppy_db:/floppy/db ports: - "8000:8000" redis: image: redis:8-alpine container_name: floppy-redis restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 10 volumes: - redis_data:/data volumes: floppy_db: redis_data:

Paso 2: Configurar variables importantes

# SECRET - REQUERIDO, cambiar a string aleatorio openssl rand -hex 32 # TMDB API - Gratis, recomendado # https://www.themoviedb.org/settings/api # TZ - Tu zona horaria # Europe/Madrid, America/New_York, Asia/Tokyo, etc # REGISTRATION - True primera vez, False después

Paso 3: Iniciar Floppy

# Guardar compose como docker-compose.yml docker compose up -d # Espera ~10 segundos para que inicie docker compose logs -f floppy # Debería ver "Starting Gunicorn" mensajes

Acceder a Floppy

🎬 Floppy Web UI: http://localhost:8000

Setup inicial (primer acceso)

  1. Abre http://localhost:8000
  2. Sign up → crear usuario (REGISTRATION=True)
  3. Setup librería (add movies, TV, anime, books, music, podcasts folders si aplica)
  4. Linkear integraciones (Plex, Last.fm, Pocket Casts, etc) en Settings → Integrations
  5. Configurar metadata providers (TMDB, TVDB, etc) en Settings
  6. ¡Empezar a trackear!
  7. Cuando acabes, cambiar REGISTRATION=False en compose y redeploy
💡 Desde otros dispositivos: Usa la IP de tu servidor:
http://192.168.1.100:8000
Para obtener tu IP: hostname -I

Primeros pasos y workflows

1. Crear cuenta y setup inicial

  1. Sign up con email/password (REGISTRATION debe ser True)
  2. Elijes username
  3. Settings → Preferences → customize home, stats defaults, display preferences

2. Agregar librerías

  1. Dashboard → Add Library (si tienes media local)
  2. Selecciona media type: Movies, TV Shows, Anime, Manga, Books, Comics, Games, Board Games, Music, Podcasts
  3. Path a directorio media (ejemplo: /mnt/media/movies)

3. Importar desde Trakt

  1. Settings → Integrations → Import → Trakt
  2. OAuth login Trakt (si perfil privado: configura OAuth primero)
  3. Elige qué importar: watchlist, history, ratings, lists
  4. Import corre en background

4. Linkear Plex

  1. Settings → Integrations → Plex
  2. Plex token (encuentra en Plex settings)
  3. Selecciona librerías Plex a syncear
  4. Full library import + watchlist + ratings sync automático

5. Linkear Last.fm

  1. Settings → Integrations → Last.fm
  2. API key Last.fm
  3. Live polling: historial Last.fm se sincroniza automático
  4. Ver music stats bonitas

6. Linkear Pocket Casts

  1. Settings → Integrations → Pocket Casts
  2. Email + password Pocket Casts
  3. Account sync: historial podcasts se sincroniza automático (not file import)

7. Empezar a trackear

  1. Dashboard → Search película/serie/manga/libro/música
  2. Add to watching/reading/playing/listening
  3. Mark as watched/read/played/listened
  4. Rate (1-10 stars)
  5. View en History, aparece en stats, en lists si creaste smart-lists

8. Crear listas

  1. Lists → Create List (manual) o Smart List (rules)
  2. Manual: agregar items manualmente
  3. Smart: criterios (collection status, release date, genre, author, tags, etc)
  4. Public/Private, custom slug, RSS feed automático

9. Estadísticas

  1. Stats → browse historial recap-style
  2. Custom date range, per-type splits, top talents, listening-time, pages-read
  3. Compare mode con otros usuarios (si multi-user)

Casos de uso

  • Reemplazo Trakt profesional: Librería unificada. Tracking automático. Stats bonitas. Listas compartidas.
  • Media enthusiasts multi-tipo: Movies + TV + anime + manga + books + music + podcasts + games en uno.
  • Sync automático homelabs: Plex sync + Last.fm + Pocket Casts + Radarr/Sonarr. Todo automático.
  • Descubrimiento personalizado: Recommendations mejoran con uso. Affinity genre/studio/cast/tags.
  • Homelabs multi-usuario: OIDC support. Perfiles públicos. Listas compartidas. Stats comparadas.

Gestión y mantenimiento

Ver estado

docker compose ps

Ver logs

docker compose logs -f floppy docker compose logs -f redis

Detener Floppy

docker compose down

Actualizar versión

docker compose pull docker compose up -d

Backup SQLite

docker cp floppy:/floppy/db/db.sqlite3 ./floppy-backup.sqlite3

Restore SQLite

docker cp ./floppy-backup.sqlite3 floppy:/floppy/db/db.sqlite3 docker compose restart floppy

Export datos (CSV)

# Settings → Scheduled backups # O Settings → Export Now # CSV compatible Yamtrack/Trakt

Monitorear consumo

docker stats floppy redis # Típicamente: # floppy: 200-600MB RAM (muy ligero) # redis: 50-200MB RAM

Comparativa con alternativas

vs Trakt (official)

Floppy gana: Self-hosted, open source, sin cloud, sin paywalls, features más ricas (sync automático, podcasts nativos). Trakt gana: UI pulida, features premium, comunidad grande (pero paywall y cierre API).

vs Yamtrack

Floppy: Fork de Yamtrack que divergió sustancialmente. Floppy agrega muchas features (music, podcasts natives, Plex sync, better anime). Datos CSV compatible. Old `/yamtrack/db` mounts aún resolven en image (backward compatible).

vs Simkl

Floppy gana: Self-hosted, open source. Simkl gana: Cloud (más cómodo), mobile apps, cloud features.

Mejor para: Enthusiasts total control. Multi-librería unified. Sync automático. Self-hosted. Open source. Stats bonitas. Cero suscripción.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.