Tra Trakt, Letterboxd, TV Time e app simili, è facile finire con la propria cronologia di film, serie, libri e podcast sparsa su più servizi. Floppy è un media tracker open source e self-hosted che permette di tenere traccia di tutto in un’unica istanza privata: film, serie, anime, libri, giochi, musica e podcast.

In questa guida vediamo come installare Floppy con Docker Compose, creare il primo account e collegare eventuali servizi esterni come Plex, Jellyfin, Audiobookshelf e Pocket Casts.

Cos’è Floppy

Floppy è un media tracker personale self-hosted: un’applicazione pensata per registrare ciò che guardi, leggi, ascolti e giochi. Puoi usarlo come diario dei media, come lista di cose da vedere e come collezione dei contenuti già consumati.

Oltre a film e serie, Floppy supporta anime, libri, fumetti, videogiochi, giochi da tavolo, musica e podcast. Include statistiche, cronologia unificata, liste pubbliche, integrazione con servizi esterni e strumenti per importare ed esportare i dati.

Prerequisiti

Per installare Floppy servono pochi elementi:

  • un server Linux, un VPS, un NAS compatibile oppure un mini PC con ad esempio Debian 13 installato;
  • Docker Engine e Docker Compose installati;
  • una chiave API gratuita di The Movie Database (TMDB);
  • facoltativamente, un dominio e un reverse proxy se vuoi accedere con HTTPS da Internet.

Floppy richiede due container: l’applicazione principale e un’istanza Redis per la cache. I dati vengono salvati in un volume Docker persistente.

1. Crea la cartella di lavoro

Collegati al server tramite terminale e crea una cartella dedicata al progetto:

mkdir -p ~/floppy
cd ~/floppy

All’interno di questa directory verrà salvato il file Compose e, se lo desideri, eventuali backup ed esportazioni.

2. Richiedi la chiave API TMDB

Floppy usa The Movie Database (TMDB) per ottenere metadati su film, serie e altri contenuti. La chiave API è gratuita e necessaria per il funzionamento dell’applicazione.

Accedi al sito di TMDB, crea un account e richiedi una API key dalla sezione impostazioni. Una volta ottenuta, copia la chiave: verrà inserita nel file di configurazione.

3. Crea il file docker-compose.yml

Crea il file Compose:

nano docker-compose.yml

Incolla questa configurazione, adattando le variabili alle tue esigenze:

services:
  floppy:
    image: ghcr.io/dannyvfilms/floppy:latest
    container_name: floppy
    restart: unless-stopped
    depends_on:
      redis:
        condition: service_healthy
    environment:
      - SECRET=CAMBIA_QUESTO_CON_UNA_STRINGA_LUNGA_E_CASUALE
      - REDIS_URL=redis://redis:6379
      - REGISTRATION=True
      - DEMO_ACCOUNT_ENABLED=False
      - TZ=Europe/Rome
      - TMDB_API=TUA_CHIAVE_API_TMDB
    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", "--save", "", "--maxmemory", "256mb", "--maxmemory-policy", "volatile-lru"]
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 3s
      retries: 10
    volumes:
      - redis_data:/data

volumes:
  floppy_db:
  redis_data:

La configurazione crea due servizi:

  • floppy: l’applicazione principale, esposta sulla porta 8000;
  • redis: il servizio di cache, con persistenza dei dati e controllo di salute.

La variabile SECRET deve essere sostituita con una stringa lunga e casuale. La variabile TMDB_API deve contenere la tua chiave API di The Movie Database.

4. Avvia Floppy

Dopo aver salvato il file, avvia lo stack in background:

docker compose up -d

Per verificare che entrambi i container siano attivi:

docker compose ps

Per leggere i log dell’applicazione:

docker compose logs -f floppy

5. Primo accesso a Floppy

Apri il browser e raggiungi Floppy all’indirizzo:

http://IP-DEL-SERVER:8000

Al primo avvio, con REGISTRATION=True, puoi creare il primo account amministratore. Inserisci un nome utente, un indirizzo email e una password robusta.

Dopo aver creato l’account, accedi con le credenziali appena registrate. Se non prevedi di aggiungere altri utenti, puoi disattivare la registrazione impostando REGISTRATION=False nel file Compose e riavviando lo stack.

6. Aggiungi i primi media

Floppy - Home
Floppy – Home

Dalla dashboard puoi cercare film, serie, libri, giochi, musica e podcast tramite The Movie Database e altri provider. Aggiungi un elemento alla tua libreria, segna lo stato (ad esempio “in visione”, “completato”, “abbandonato”) e registra episodi, capitoli o brani ascoltati.

Floppy mostra cronologia, statistiche e progressi in modo unificato, permettendoti di vedere quanto tempo hai dedicato a ciascun media e quali elementi sono in corso.

7. Sincronizzazione con Plex, Jellyfin e altri servizi

Uno dei punti di forza di Floppy è la capacità di integrare servizi già in uso. Il progetto supporta sincronizzazione e importazione da:

  • Plex: import della libreria, sincronizzazione watchlist e note;
  • Jellyfin ed Emby: carte “in lettura” tramite webhook;
  • Audiobookshelf: sincronizzazione libri audio;
  • Pocket Casts: sincronizzazione podcast;
  • Last.fm: tracciamento musica;
  • Radarr e Sonarr: sincronizzazione pianificata;
  • Seerr: aggiunta automatica tramite webhook.

Le integrazioni si configurano dalla sezione dedicata dell’interfaccia. Ogni servizio ha i propri campi: URL, token API, webhook e opzioni di sincronizzazione.

8. Esporre Floppy con HTTPS

Se vuoi raggiungere Floppy da Internet, è consigliato non esporre direttamente la porta 8000. Puoi invece esporre il servizio dietro reverse proxy usando Nginx Proxy Manager, Caddy o Traefik.

Con Nginx Proxy Manager, crea un Proxy Host con questi valori:

  • Domain Names: media.example.com;
  • Scheme: http;
  • Forward Hostname / IP: l’IP locale del server Floppy oppure il nome del container;
  • Forward Port: 8000.

Dalla sezione SSL puoi richiedere un certificato Let’s Encrypt e attivare Force SSL. Se il servizio viene esposto su Internet, usa una password forte e mantieni Docker e l’immagine Floppy aggiornati.

9. Backup ed esportazione

Floppy salva i dati in un volume Docker persistente. Per un backup completo puoi:

  • fermare temporaneamente lo stack;
  • copiare la directory dei volumi Docker o usare comandi specifici per esportare i volumi;
  • riavviare lo stack dopo il backup.

In alternativa, Floppy include strumenti di esportazione CSV e JSON per salvare cronologia, liste e statistiche. Queste esportazioni sono utili per migrazioni, copie di sicurezza aggiuntive o analisi esterne.

Considerazioni finali

Floppy è un progetto interessante per chi vuole riprendere il controllo della propria cronologia di media. Invece di affidare film, serie, libri e podcast a servizi cloud esterni, puoi tenere tutto su un’istanza self-hosted, con dati sotto il tuo controllo.

L’installazione con Docker Compose è semplice: due container, una chiave API TMDB e un po’ di configurazione. Se usi già Plex, Jellyfin, Audiobookshelf o Pocket Casts, Floppy può diventare il punto di incontro per tutta la tua attività di visione, lettura e ascolto.

FAQ

Cos’è Floppy?

Floppy è un media tracker open source e self-hosted per film, serie, anime, libri, giochi, musica e podcast.

Floppy richiede un database esterno?

No. Floppy usa un volume Docker persistente per il database interno e un’istanza Redis per la cache.

Cosa serve per installare Floppy?

Sono necessari Docker, Docker Compose e una chiave API gratuita di The Movie Database (TMDB).

Floppy può sincronizzarsi con Plex o Jellyfin?

Sì. Floppy supporta integrazioni con Plex, Jellyfin, Emby, Audiobookshelf, Pocket Casts, Last.fm, Radarr, Sonarr e Seerr.

Posso usare Floppy fuori dalla rete domestica?

Sì, ma è consigliato esporlo dietro reverse proxy con dominio e HTTPS, invece di esporre direttamente la porta 8000 su Internet.

Floppy supporta più utenti?

Sì. Floppy permette di creare più account e gestire utenti registrati. Puoi abilitare o disabilitare la registrazione tramite variabile ambiente.

Come si esegue il backup di Floppy?

Puoi fermare lo stack e copiare i volumi Docker, oppure usare gli strumenti di esportazione CSV e JSON inclusi nell’applicazione.

Rispondi