# Project pack: Ryot @ 77190a6 Facts about **Ryot** for an AI following the [BespokeAI handover guide](https://handoff.bespokeai.software/guide/v4.md). Pinned to one version; never changes after publication. > Ryot is a private diary for your free time. Log the films and shows you watch, the books you read, the games you play and the podcasts you hear, rate them and keep a "to watch" list. It also logs gym workouts and body measurements, with graphs to show your progress. It reminds you when a new episode of a show you follow comes out. It runs on your own computer or server, so your history stays yours. ## Setup path (checked 2026-11-03) - **Needs Docker.** Tell the person before any setup work; no light non-Docker route is documented upstream. Docker Desktop on Windows may need a computer restart and an admin-only Windows feature (virtualisation); say so and let the person decide. - Verdict source: https://docs.ryot.io - You may be unable to download source archives or run commands in this session. The person downloads and runs things; if you cannot fetch something, give any changed file in full in chat with its path. ## Version and source - Repository: https://github.com/IgnisDa/ryot - Pinned commit: `77190a6193f41d00c73f7776434f62ce92eb3309`. Use exactly this version. - Zip the person can download in a browser: https://github.com/IgnisDa/ryot/archive/77190a6193f41d00c73f7776434f62ce92eb3309.zip - Fresh checkout (only if you have a shell and git): use the commands below in an empty folder. If this exact source is already checked out, keep your branch and use the development command; do not clone again or reset local changes. - Official docs: https://docs.ryot.io - Live demo: https://demo.ryot.io/_s/acl_vUMPnPirkHlT. Official public demo linked from the README. Data resets every 24 hours. Don't enter anything private. - Licence: **GPL-3.0-only**. Free to use, change and share. If you give copies of the app (changed or not) to other people, you must also give them the source code under the same licence. Running it for yourself, or as a website for others, has no extra obligations. Some extra features ("Ryot Pro") need a paid key from the author; the free version works fully without it. ## Commands from the pinned source - Developer commands (they may use Docker): ```sh git clone https://github.com/IgnisDa/ryot bespoke-ryot cd bespoke-ryot git checkout --detach 77190a6193f41d00c73f7776434f62ce92eb3309 # Prepare development requirements and local configuration first. # Setup notes: backend; then in other terminals: caddy run --config 'ci/Caddyfile' and yarn turbo run dev --filter=@ryot/frontend (open :8000). Needs a .env, see apps/docs/src/contributing.md cargo run ``` - Separate trial of the current upstream release (not your changes; sample data and a separate data directory only): ```sh Create docker-compose.yml with two services: ryot-db (image postgres:18-alpine, POSTGRES_PASSWORD=postgres, volume postgres_storage:/var/lib/postgresql) and ryot (image ignisda/ryot:v10, ports "8000:8000", SERVER_ADMIN_ACCESS_TOKEN set to a long random string, DATABASE_URL=postgres://postgres:postgres@ryot-db:5432/postgres). Run `docker compose up -d` and open http://localhost:8000 to create your account. (Full file in the README's Quick Start and at docs.ryot.io.) ``` - Tools these commands use: Docker with Docker Compose, For development, Rust (version in rust-toolchain.toml), Node 24 with Yarn 4, Caddy 2.7+ and PostgreSQL 15+ - Develop: `cargo run # backend; then in other terminals: caddy run --config 'ci/Caddyfile' and yarn turbo run dev --filter=@ryot/frontend (open :8000). Needs a .env, see apps/docs/src/contributing.md` - Test: `cargo build --release && yarn turbo run test --filter=@ryot/tests # AGENTS.md asks agents to get the user's approval before running tests` - Check/lint: `cargo clippy && yarn turbo run typecheck` - Stack: rust, typescript (Axum, async-graphql, SeaORM, React Router 7, React 19, Mantine 8, Turborepo). Difficulty for a non-developer with an AI: **advanced**. Everyday changes (which media types you track, units, dashboard sections, notifications, imports) are settings in the app. Code changes mean a Rust backend (crates/**) plus a React frontend (apps/frontend/), joined by a GraphQL API with generated types, so builds are slow and need Rust, Node 24 and PostgreSQL. The author is rewriting Ryot in TypeScript on a separate branch, so code changes to this version will not carry over to the next major release. - The project's own AI instructions, in the repository: `AGENTS.md`, `apps/docs/src/contributing.md`. Personal data: **yes**. Stored in: PostgreSQL (the postgres_storage volume). Uploaded images go to S3-compatible storage if configured. Secrets are entered by the person, never in chat. --- Later, only when a step needs it: [reference.md](https://handoff.bespokeai.software/p/ryot/77190a6/r3/reference.md) (customisation points, must-keep-working, data and costs, coding conventions) · [hosting.md](https://handoff.bespokeai.software/p/ryot/77190a6/r3/hosting.md) (long-term hosting; hosts are paid third parties) · [bespoke.yaml](https://handoff.bespokeai.software/p/ryot/77190a6/r3/bespoke.yaml) · [SKILL.md](https://handoff.bespokeai.software/p/ryot/77190a6/r3/SKILL.md)