Ryot logo

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.