-
Notifications
You must be signed in to change notification settings - Fork 0
Builder Developer Information
Sven Ziegler edited this page Apr 28, 2026
·
8 revisions
To start developing, clone the repo and run nix develop to install all python requirements:
git clone https://iglu-sh/iglu
nix developThe Builder is written in Python using FastAPI, our Linter is Basedpyright and the files live in /builder.
The project structure is as follows:
-
main.py: main program -
static: all static pages live here -
app: in this directory are all needed components -
templates: all needed jinja2 templates will go here
We follow these route sturctures:
-
/api/v1/*: here are any REST-API and Websocket endpoints -
/: this is a small welcome page with a simple test interface -
/docs: from FastAPI generated api documentation
To start a build process you have to follow this short manual:
- start developing mode:
cd builderfastapi dev - connect to websocket via
http://localhost:8000/api/v1/build - send a builder config via this websocket
- wait until your build has fnished
| Key | Values | Description |
|---|---|---|
command |
<list<string>> |
Command to execute seperated as list. This command hast to start with nix or nix-build
|
repo.url |
<string> |
Url of the git repository |
repo.branch |
<string> |
Optional parameter to select a specific branch, if not set the default branch will be cloned |
cache.url |
<string> |
Url of the cachix compatible cache |
cache.auth_token |
<string> |
The authtoken of the cachix compatible cache |
cache.signing_key |
<string> |
The signingkey which is used to sign every derivation |
{
"command": ["nix", "build", ".#nixosConfigurations.SYSTEM.config.system.build.toplevel"],
"repo": {
"url": "https://github.com/your/repo",
"branch": "my-branch"
},
"cache": {
"url": "https://cache.example.com/cache",
"auth_token": "your_super_secret_token",
"signing_key": "your_super_secret_signing_key"
}
}