Documentation • Live Demo • Discord • Pro Features
Create a docker-compose.yml file:
services:
ryot-db:
restart: unless-stopped
image: postgres:18-alpine
environment:
- POSTGRES_PASSWORD=postgres
volumes:
- postgres_storage:/var/lib/postgresql
ryot:
image: ignisda/ryot:v10
restart: unless-stopped
ports:
- "8000:8000"
environment:
- SERVER_ADMIN_ACCESS_TOKEN=CHANGE_ME_TO_A_LONG_RANDOM_STRING
- DATABASE_URL=postgres://postgres:postgres@ryot-db:5432/postgres
volumes:
postgres_storage:Then run docker compose up -d and visit http://localhost:8000. For production setups, see the installation guide.
Ryot (Roll Your Own Tracker), pronounced "riot", is a self-hosted tracker for your media consumption and fitness activities. Track the books you read, shows you watch, games you play, and workouts you complete - all in one place with a clean interface and insightful statistics.
Try the live demo to explore the interface. Demo data resets every 24 hours.
- Track movies, TV shows, anime, manga, books, audiobooks, podcasts, music and video games
- Import from Goodreads, Trakt, MyAnimeList, Audiobookshelf and more
- Automatic tracking via Jellyfin, Plex, Kodi, Emby integrations
- Log workouts with a comprehensive exercise database
- Track body measurements over time
- Monitor progress with detailed graphs
- Self-hosted with full data ownership
- OpenID Connect authentication
- Notifications via Discord, Ntfy, Apprise
- GraphQL API for custom integrations
- PWA support for mobile use
- Written in Rust for performance
Ryot Pro adds profile sharing, personalized recommendations, supercharged collections and more. Learn more about the pro version.
Questions or feedback? Join the Discord server or open a GitHub issue.
- Inspired by MediaTracker
- Exercise data from Free Exercise DB
- Thanks to all contributors
Migrating from v9?
If you were using v9.* of Ryot, please read the migration guide for instructions to upgrade to v10.


