MCPcopy
hub / github.com/IgnisDa/ryot

github.com/IgnisDa/ryot @v10.3.16 sqlite

repository ↗ · DeepWiki ↗ · release v10.3.16 ↗
1,013 symbols 3,515 edges 244 files 0 documented · 0%
README

Ryot

A self hosted platform for tracking various facets of your life - media, fitness and more.

GitHub Repo stars GitHub release License Docker pulls Discord

<a href="https://docs.ryot.io" target="_blank">Documentation</a> •
<a href="https://demo.ryot.io/_s/acl_vUMPnPirkHlT" target="_blank">Live Demo</a> •
<a href="https://discord.gg/D9XTg2a7R8" target="_blank">Discord</a> •
<a href="https://ryot.io/features" target="_blank">Pro Features</a>

Ryot Dashboard

Quick Start

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.

What is Ryot?

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.

Demo

Try the live demo to explore the interface. Demo data resets every 24 hours.

Media Tracking

  • 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

Fitness

  • Log workouts with a comprehensive exercise database
  • Track body measurements over time
  • Monitor progress with detailed graphs

Workout tracking Measurements

Technical

  • 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

Pro Version

Ryot Pro adds profile sharing, personalized recommendations, supercharged collections and more. Learn more about the pro version.

Community

Questions or feedback? Join the Discord server or open a GitHub issue.

Acknowledgements

Migrating from v9?

If you were using v9.* of Ryot, please read the migration guide for instructions to upgrade to v10.

Extension points exported contracts — how you extend this code

RawMediaData (Interface)
(no doc)
apps/browser-extension/src/lib/extension-types.ts
ModalsProps (Interface)
(no doc)
apps/frontend/app/components/routes/fitness.action/modals.tsx
StringIdAndNamedObject (Interface)
(no doc)
apps/docs/src/includes/export-schema.ts
WebhookResponse (Interface)
(no doc)
apps/website/app/routes/paddle-webhook.tsx
StartedServices (Interface)
(no doc)
tests/src/setup/test-orchestrator.ts
ProgressDataWithMetadata (Interface)
(no doc)
apps/browser-extension/src/lib/extension-types.ts
HeaderProps (Interface)
(no doc)
apps/frontend/app/components/routes/fitness.action/header.tsx
UserToCollectionExtraInformation (Interface)
(no doc)
apps/docs/src/includes/export-schema.ts

Core symbols most depended-on inside this repo

log
called by 61
apps/browser-extension/src/lib/logger.ts
cn
called by 51
libs/ts-utils/src/index.ts
changeCase
called by 48
libs/ts-utils/src/index.ts
getGraphqlClient
called by 46
tests/src/utils.ts
useCoreDetails
called by 38
apps/frontend/app/lib/shared/hooks/index.ts
openConfirmationModal
called by 36
apps/frontend/app/lib/shared/ui-utils.tsx
useCurrentWorkout
called by 32
apps/frontend/app/lib/state/fitness.ts
useUserPreferences
called by 31
apps/frontend/app/lib/shared/hooks/index.ts

Shape

Function 826
Interface 89
Enum 64
Method 25
Class 9

Languages

TypeScript99%
Python1%

Modules by API surface

apps/frontend/app/lib/shared/hooks/index.ts58 symbols
libs/generated/src/graphql/backend/graphql.ts49 symbols
apps/docs/src/includes/export-schema.ts40 symbols
apps/browser-extension/src/entrypoints/content.ts25 symbols
apps/frontend/app/routes/_dashboard.settings.security.tsx21 symbols
apps/frontend/app/lib/state/fitness.ts20 symbols
apps/frontend/app/lib/utilities.server.ts19 symbols
apps/frontend/app/routes/_dashboard.settings.integrations.tsx18 symbols
tests/src/setup/test-orchestrator.ts15 symbols
apps/frontend/app/routes/_dashboard.analytics.tsx15 symbols
tests/src/utils.ts14 symbols
apps/browser-extension/src/lib/logger.ts14 symbols

Dependencies from manifests, versioned

@aws-sdk/client-s33.989.0 · 1×
@biomejs/biome2.3.15 · 1×
@conform-to/react1.17.0 · 1×
@conform-to/zod1.17.0 · 1×
@faker-js/faker10.3.0 · 1×
@graphql-codegen/cli6.1.1 · 1×
@graphql-codegen/client-preset5.2.2 · 1×
@graphql-typed-document-node/core3.2.0 · 1×
@hello-pangea/dnd18.0.1 · 1×
@isaacs/ttlcache2.1.4 · 1×
@lukemorales/query-key-factory1.3.4 · 1×

Datastores touched

postgresDatabase · 1 repos

For agents

$ claude mcp add ryot \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact