Skip to main content

Getting Started for Developers

einky lives across 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

buildroot_os vendors Buildroot as a submodule, so after the clone:

git -C ../buildroot_os submodule update --init --recursive

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

3. Install the Ren'Py SDK (workstation)

Developer machines run the vanilla upstream SDK. The installer pins the version and verifies its SHA256 (both from meta/versions.env):

cd ../meta
./scripts/install-renpy-sdk.sh ~/renpy

The device itself does not use this tarball — InkyOS builds the same Ren'Py version from source (see Architecture → Engine model).

4. Bring up the local dev stack (server/web)

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

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

5. Run the device stack

Build and boot InkyOS in the emulator, and/or run the runtime pipeline against a Ren'Py game — see Setup & Running.

What goes where

You're touching…Repo
The boot menu UIlauncher/ (Ren'Py script)
Frame pipeline, input/keymap, SPI driver, ESP32 bridgeruntime/
The device OS image, boot session, packagingbuildroot_os/
Pinout, keymap, wire protocols (shared)meta/shared/
API endpoints, catalog DBserver/
Admin / store UIweb/