Ryot
Self-hosted tracker for media consumption and fitness activities
Alternative to: trakt, goodreads, myanimelist
Ryot ("Roll Your Own Tracker") is a self-hosted app for tracking the books you read, the movies, shows, and anime you watch, the video games and manga you consume, and the workouts and body measurements you log. It brings all of this into one place with a clean interface and statistics, pulling metadata from providers like TMDB, MusicBrainz, and Metron.
Ryot Docker Compose example
Self-host Ryot on your own server, homelab, or VPS starting from this Docker Compose example.
It runs Ryot in Docker containers using the official postgres:18-alpine, ignisda/ryot:latest images, with persistent volumes and automatic restarts preconfigured.
Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.
services:
ryot-db:
image: postgres:18-alpine
restart: unless-stopped
environment:
# Password for the bundled PostgreSQL instance (internal to the compose network).
POSTGRES_PASSWORD: "postgres"
volumes:
- postgres_storage:/var/lib/postgresql
ryot:
image: ignisda/ryot:latest
depends_on:
- ryot-db
restart: unless-stopped
environment:
# Long random string that secures the admin/API access token for the server.
SERVER_ADMIN_ACCESS_TOKEN: "changeme"
# PostgreSQL connection string pointing at the bundled ryot-db service.
DATABASE_URL: "postgres://postgres:postgres@ryot-db:5432/postgres"
volumes:
postgres_storage:
Values set to changeme are required — replace them with your own
values before starting Ryot.
Prefer a managed setup? WinterFlow installs, configures, and updates Ryot for you using this same Docker Compose configuration.