MarioGLealPandClaude Opus 5.5 f5cabd735c
ci / checks (push) Skipped
ci / build (push) Skipped
feat: nuwa-python, the template for a Meru app's repo
A Gitea template repo (D76, option A): Shikigami generates a new app's
repo from it with one API call. .gitea/template names the files and
paths where Gitea expands $REPO_NAME (and _SNAKE for the package);
unknown $names - CI's ${{ }} and shell variables - are left alone.

A FastAPI app with /heartbeat, check.sh (ruff, ty, uv lock, pytest),
Thoth's CI minus the database, Echo's Dockerfile, and deploy/values.yaml
without the deploy/meru.yaml marker: Shikigami adds that last, once the
app's fence, key and build credentials exist, so the template itself is
never deployed. The template repo's own CI is skipped (no runner).

Checked by rendering it as golem and my-app with a stand-in for Gitea's
expansion: check.sh passes on both; golem's image builds and answers
/heartbeat read-only as user 10001.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MdS1HcT3JpVno881Z46fei
2026-10-31 11:25:36 +00:00

$REPO_NAME

$REPO_DESCRIPTION

A Meru app, made from the Meru/nuwa-python template: a FastAPI service with one endpoint, GET /heartbeat -> ok, to grow from.

Run locally

uv sync
uv run uvicorn --app-dir src $REPO_NAME_SNAKE.app:app --port 8080
curl localhost:8080/heartbeat

Development

scripts/check.sh   # lint, format, types, lockfile, tests - exactly what CI runs

Deploy

deploy/meru.yaml makes this repo a Meru app: Meru/meru finds it and deploys it into namespace $REPO_NAME. Shikigami adds it once the app's fence, signing key and build credentials exist. deploy/values.yaml is the app's whole deployment, rendered with the nuwa-app chart from Meru/nuwa. Merging to main runs the checks, builds the image, signs it and rolls it out; builds run in namespace $REPO_NAME-build on the runner from Meru/sindri. No secrets live in this repo: they come from OpenBao, through the External Secrets Operator or the build's own login.

License

MIT - see LICENSE.

S
Description
No description provided
Readme MIT
45 KiB
0 Stars 2 Watchers 0 Forks
Languages
Dockerfile 39.4%
Python 37.3%
Shell 23.3%