floppy

floppy

Docker app from dannyvfilms' Repository

Overview

Floppy is a self-hosted, all-in-one media tracker: movies, TV, anime, manga, books, comics, games, board games, music, and podcasts in one library, history, and set of stats. A broader alternative to Trakt, Letterboxd, and TV Time. Requires a reachable Redis instance (used for caching and as the Celery broker). This is not bundled - run a Redis container on this same Unraid server (for example redis:8-alpine) with port 6379 published to the host. REDIS_URL defaults to host.docker.internal, which resolves to this server automatically, so no IP address needs to be entered - just make sure Redis' port is published to the host and matches the port in REDIS_URL. SQLite is used by default; PostgreSQL is supported via the DB_* variables. Set SECRET to a long random string before first run. Full environment variable list: https://github.com/dannyvfilms/Floppy/blob/latest/docs/deployment.md#environment-variables

Floppy — everything in one place

Your own private Trakt, Letterboxd, and Goodreads — in one app, on your own hardware.
Track movies, TV, anime, books, comics, manga, games, board games, music, and podcasts in one place.

Live demo · Install · Docs · Discord · Releases · Sponsor

Floppy is a self-hosted media tracker and diary for everything you watch, read, play, and listen to. Log what you finish, see what to pick up next, and get a yearly recap of how you spent your time. Connect Plex, Jellyfin, Emby, Pocket Casts, or Last.fm and your history fills itself in.

It is free and open source. You run it on a computer or server at home and open it from any browser, on desktop or phone. Your data never leaves your machine unless you connect a service that needs it.

A movie's detail page in Floppy, with backdrop, ratings, and check-in button

A look around

Home screen with In Progress and Planning rows
Home — what you're in the middle of, what's next, and rows you choose.
Statistics page with hours, streaks, and charts
Statistics — a recap of your year, by media type, day, and hour.
Lists page with shareable list covers
Lists — private, public, or smart lists that fill themselves.
Collection page of owned media
Collection — what you own, down to the format and resolution.
Release calendar for tracked shows and games
Calendar — upcoming episodes and releases for everything you track.
Floppy on a phone: home, a movie, and statistics
On your phone — built for mobile, and installable as an app.

Light and dark themes follow your device; switch with the moon icon or under Settings → Appearance.

What it does

  • One library for every kind of media. Movies and TV through to music albums, podcast episodes, board games, and comics — each with pages, progress, and ratings that fit it.
  • Knows what's next. In-progress shows show the next episode and time left; the calendar and optional notifications tell you when new ones arrive.
  • History that fills itself in. Plays from Plex, Jellyfin, Emby, Pocket Casts, and Last.fm are logged automatically. Manual check-ins take one tap.
  • Recaps worth reading. Hours by media type, streaks, top people, and year-over-year comparisons.
  • Lists you can share. Public pages, RSS feeds, and smart lists built from rules.
  • Your collection, too. Track physical and digital copies alongside what you've watched or read, with Plex collection sync.
  • Recommendations from your own taste. Discover rows learn from what you rate and finish, and you can send requests to Seerr in one click.
  • Bring your history with you. Import from Trakt, TV Time, Simkl, IMDb, MyAnimeList, AniList, Goodreads, StoryGraph, Steam, PlayStation, Xbox, and more. Export everything to CSV at any time.

The full feature tour on the wiki lists everything, including multi-user accounts, OIDC sign-in, a REST API, and an MCP server.

Try it

The live demo is open — sign in with username demo and password demodemo. It's one shared account, so what you add is visible to everyone else trying it.

Install

Floppy runs on a computer or server you leave on. You open it from any browser on your network. One guided installer covers the common setups. Paste the same line on Windows, macOS, or Linux; it selects the right installer.

Your system What the installer does
Windows 10 and 11 Uses Docker Desktop and offers to install it for you
macOS Uses Docker Desktop, or a native Homebrew install
Ubuntu and Debian Installs Docker for you, or runs natively with systemd
Other Linux Needs Docker already installed

The installer asks a few plain questions and asks before it installs anything. It never asks for a password or API key. It finishes with Floppy open in your browser.

Open PowerShell on Windows or Terminal on macOS/Linux. Paste this entire line and press Enter:

echo "\" | Out-Null; irm 'https://raw.githubusercontent.com/dannyvfilms/Floppy/latest/scripts/install.ps1' -ErrorAction Stop | iex; #" >/dev/null; bash -c 'p=$(mktemp) || exit; cleanup() { rm -f "$p"; }; trap cleanup EXIT; curl -fsSL https://raw.githubusercontent.com/dannyvfilms/Floppy/latest/scripts/install.sh -o "$p" && bash "$p"'

Phones and tablets

Once Floppy is running, open it in your phone's browser and add it to your home screen. Step-by-step guide.

If you know what you're doing

Privacy and trust

Your library, ratings, and activity stay in the database you run. Floppy has no analytics and no central update check. It does contact metadata providers (such as TMDB) to look up titles and artwork, and connected services receive what their features need. Run it for yourself or people you trust, and turn off sign-ups after creating your account. Details: security notes · reporting a vulnerability.

Coming from Yamtrack?

Floppy started as a fork of Yamtrack. Yamtrack CSV exports import directly under Settings → Import, and existing containers of this project keep working after the rename — just move to the ghcr.io/dannyvfilms/floppy image. Migration notes.

Building on Floppy

Floppy has a REST API at /api/v1 and an MCP server for AI assistants. Start with the API and MCP guide; your running instance serves its own API index at /api/docs/. Download tools can read lists and report owned media (FlexGet guide).

Community and support

  • Questions and ideas: Discord is the place to share setups and help each other out.
  • Bugs and feature requests: open an issue.
  • Contributing: code, docs, and polish are welcome — see the contributing guide.
  • Sponsoring: support Floppy on GitHub Sponsors.
  • Starring the repository helps more people find it.
  • The card refreshes daily from GitHub Sponsors public data.
Live GitHub Sponsors goal progress for Floppy

Thank you to everyone who has contributed to Floppy and to Yamtrack before it.

Contributors

Configuration and deployment

The full operator reference moved to docs/deployment.md. Links into the old sections of this page land here:

License

AGPL-3.0.

Origins and AI use

Floppy began as a fork of FuzzyGrim/Yamtrack and still shares its foundation and data model; this repository keeps the fork link. It has since grown into its own project. Thanks to FuzzyGrim and Yamtrack's contributors for the groundwork.

Floppy uses AI coding agents for implementation, tests, and documentation under maintainer direction. This describes Floppy's development, not all inherited Yamtrack history. PRs should disclose the model/workflow used and record human review only when it actually occurred. Agent reviews and passing checks are not independent security certification.

Requirements

A reachable Redis instance (cache + Celery broker). Not bundled - run a Redis container on this same Unraid server with port 6379 published to the host. REDIS_URL defaults to host.docker.internal:6379, which resolves to this server automatically.

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/dannyvfilms/floppy:latest
Last Updated2026-10-31
First Seen2026-08-03

Runtime arguments

Web UI
http://[IP]:[PORT:8000]
Network
bridge
Shell
bash
Privileged
false
Extra Params
--add-host=host.docker.internal:host-gateway

Template configuration

WebUI PortPorttcp

Port the Floppy web UI listens on.

Target
8000
Default
8000
Value
8000
App DataPathrw

Persistent storage for SQLite database and local app data.

Target
/floppy/db
Default
/mnt/user/appdata/floppy/db
Value
/mnt/user/appdata/floppy/db
SECRETVariable

Long random string used as the Django secret key. Required.

REDIS_URLVariable

URL of a reachable Redis instance, used for caching and as the Celery broker. Defaults to this same server via host.docker.internal - just run a Redis container here with port 6379 published to the host. Change the port if you published Redis on a different one. Required.

Default
redis://host.docker.internal:6379
Value
redis://host.docker.internal:6379
TZVariable

Timezone used for scheduling and displayed dates.

Default
America/Chicago
Value
America/Chicago
REGISTRATIONVariable

Allow new account sign-ups. Set to False after creating your account.

Default
True
Value
True
DEMO_ACCOUNT_ENABLEDVariable

Provision the public demo/demodemo account after migrations. Leave False unless you want it.

Default
False
Value
False
TMDB_APIVariable

TMDB API key for movie/TV metadata. Optional but recommended.

DB_HOSTVariable

PostgreSQL host. Leave blank to use SQLite instead.

DB_NAMEVariable

PostgreSQL database name (only used when DB_HOST is set).

Default
floppy
Value
floppy
DB_USERVariable

PostgreSQL user (only used when DB_HOST is set).

Default
floppy
Value
floppy
DB_PASSWORDVariable

PostgreSQL password (only used when DB_HOST is set).

DB_PORTVariable

PostgreSQL port (only used when DB_HOST is set).

Default
5432
Value
5432
URLSVariable

Public URL if using a reverse proxy, e.g. https://floppy.yourdomain.com

ADMIN_ENABLEDVariable

Enable the Django admin interface at /admin/.

Default
False
Value
False
WEB_CONCURRENCYVariable

Gunicorn worker processes. Leave blank - Floppy sizes this from the host's memory, CPU and swap. Each extra worker holds its own resident copy of the application. If this field already shows a number from an older template, clear it and apply.

GUNICORN_THREADSVariable

Gunicorn threads per worker. Leave blank - Floppy sizes this from the host. A fixed 4 is too many for a small host, where the detected profile would use 2.

DEBUGVariable

Enable Django debug mode. Leave False in production - it slows every request.

Default
False
Value
False
PUIDVariable

User ID to run the container as.

Default
1000
Value
1000
PGIDVariable

Group ID to run the container as.

Default
1000
Value
1000