Skip to main content

Getting Started for Developers

einky lives across ten sibling repositories. The meta repo is the only clone you start from — it provides bootstrap.sh, which fans out and clones everything else.

1. Clone meta

git clone https://github.com/einky/meta.git
cd meta

2. Run bootstrap.sh

meta/bootstrap.sh is the canonical entry point for the workspace. It clones every sibling repo into the parent directory, is idempotent (already-cloned repos are skipped), and prints a summary of what was cloned, skipped, or failed.

./bootstrap.sh # clones over HTTPS (default)
./bootstrap.sh --ssh # use SSH remotes instead

After it finishes, your tree should look like the Repo layout.

3. Install the Ren'Py SDK

The SDK is vanilla — we do not fork or patch it. meta/scripts/install_sdk.sh downloads the latest upstream release, strips Windows/macOS payloads, and leaves a ready-to-run SDK directory.

cd ../meta
./scripts/install_sdk.sh

4. Bring up the local dev stack

docker compose -f compose/docker-compose.dev.yml up

This boots Postgres and mounts ../server and ../web as live-reloading volumes.

5. Run the runtime against the launcher

From the workspace root, with Xvfb available:

Xvfb :1 -screen 0 800x480x24 &
DISPLAY=:1 python3 -m runtime --output socket

The runtime starts the launcher (../launcher) as a Ren'Py game. Frames are emitted to a Unix socket — point the dev viewer at it to see the e-ink simulation without hardware.

What goes where

You're touching…Repo
The boot menu UIlauncher/ (Ren'Py script)
Frame pipeline, input mapping, SDK supervisionruntime/
API endpoints, catalog DBserver/
Admin / store UIweb/
OS image, systemd unitsos/