Skip to content

Repository files navigation

Self-hosted media & fitness tracker. All your data stays on your server.

Ryot is a self-hosted platform for tracking movies, shows, books, games, anime, manga, and fitness activities.

Features:

  • Track movies, TV shows, books, video games, anime, manga, and music
  • Log workouts, measurements, and nutritional data
  • Import from Trakt, MAL, Goodreads, Plex, Jellyfin, and more
  • Automatic AI-powered tagging and recommendations
  • Clean, responsive web UI with PWA support
  • Export your data anytime
  • REST API for integrations

Deploy and Host

Deploy on Railway

Deployment Dependencies

  • PostgreSQL: Railway provisions a managed PostgreSQL database automatically. No manual configuration needed.
  • Server Admin Access Token: A long random string that authenticates you as the administrator on first login.

Why Deploy Ryot on Railway?

Running Ryot on Railway eliminates server management entirely. With one click you get a production-ready Ryot instance with a managed PostgreSQL database, auto-deploys from GitHub, automatic HTTPS, and global CDN. No VPS setup, no Docker Compose wrangling, no database administration.

Common Use Cases

  • Media enthusiasts: Track every movie, show, book, and game you consume with ratings, reviews, and detailed metadata
  • Fitness tracking: Log workouts, body measurements, and nutrition — all in one place alongside your media habits
  • Data hoarders: Import years of history from Trakt, MyAnimeList, Goodreads, Plex, and Jellyfin into a single searchable database
  • Self-hosters: Replace SaaS tracking services with a private instance where you control every byte of your personal data
  • Small groups: Share a Ryot instance with family or friends — multi-user support with separate tracking per person

Dependencies for Deployment

Required

  • PostgreSQL: Railway provisions a managed PostgreSQL database automatically. No manual configuration needed.
  • Server Admin Access Token: A long random string that authenticates you as the administrator on first login.

Environment Variables

Variable Description Required
DATABASE_URL PostgreSQL connection string (auto-filled by Railway) Yes
SERVER_ADMIN_ACCESS_TOKEN Admin authentication token — set to a random string Yes
FRONTEND_URL Public URL of your Ryot instance (leave empty to auto-detect) No
TZ Timezone in IANA format (e.g., America/New_York) No
DISABLE_TELEMETRY Set to true to disable telemetry No
MOVIES_AND_SHOWS_TMDB_ACCESS_TOKEN TMDB access token for movie/TV metadata No
VIDEO_GAMES_TWITCH_CLIENT_ID Twitch client ID for game metadata No
VIDEO_GAMES_TWITCH_CLIENT_SECRET Twitch client secret for game metadata No

Volumes

Ryot stores all data in PostgreSQL. No persistent volume is required for the application service — your data lives in the managed database.

About Hosting

Ryot runs on a single container with the backend API and frontend served together on port 8000. On Railway, the app is fronted by automatic HTTPS via the Railway edge network, with DDoS protection and global CDN. Sleep after inactivity is disabled by default to keep the instance always available.

FAQ

Q: How do I get my admin access token? A: Set SERVER_ADMIN_ACCESS_TOKEN to any long, randomly generated string (e.g., openssl rand -base64 36). Use this token to log in on the first visit.

Q: How do I set up media tracking? A: Get a free API key from TMDB (for movies/TV) and/or Twitch (for video games) and set the corresponding environment variables. See the Ryot documentation for details.

Q: Can I import my existing data? A: Yes! Ryot supports importing from Trakt, MyAnimeList, Goodreads, Plex, Jellyfin, ListenBrainz, and CSV exports.

Q: Is there a mobile app? A: Ryot is a Progressive Web App (PWA). You can install it on your phone's home screen from the browser.

About

Deploy Ryot — the self-hosted media & fitness tracker — on Railway in one click

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages