- Rust 88.5%
- TypeScript 6.5%
- CSS 2.4%
- Perl 1.2%
- Fluent 0.7%
- Other 0.7%
Extracted from the installer monorepo at https://github.com/Toasterson/installer (under instcomd/). Self-contained — no external deps from the monorepo. The migration/ sub-crate is part of the same Loco-RS workspace. instcomd is the central server piece: it maintains the registry of machines and their MachineConfig blobs, exposes HTTP+JSON for operator tools, and is the off-target counterpart of machined. Stack is Loco-RS + SeaORM + Postgres/SQLite. Companion repos: https://code.aopc.cloud/CloudNebulaProject/machined https://code.aopc.cloud/CloudNebulaProject/installadm https://code.aopc.cloud/CloudNebulaProject/installer-ui https://code.aopc.cloud/CloudNebulaProject/sysconfig |
||
|---|---|---|
| .cargo | ||
| .github/workflows | ||
| .idea | ||
| assets | ||
| config | ||
| examples | ||
| frontend | ||
| migration | ||
| src | ||
| tests | ||
| .gitignore | ||
| .rustfmt.toml | ||
| Cargo.toml | ||
| docker-compose.yaml | ||
| LICENSE | ||
| README.md | ||
instcomd
Inventory and orchestration service for the illumos installer toolchain.
instcomd is the central server that the rest of the installer
ecosystem talks to:
- It maintains a registry of machines (target boxes that are about to be, or have been, installed).
- It stores per-machine
MachineConfigblobs (KDL configs describing the install: pool layout, image, sysconfig fragment). - It exposes an HTTP+JSON API for operators (via
installadmor a custom UI). - It backs onto Postgres or SQLite for persistence.
It is the off-target counterpart of
machined.
Where machined runs on the target and accepts a single install RPC,
instcomd lives long-term, holds inventory, and pushes work down to
machined instances.
Stack
Built on Loco-RS (web framework) + SeaORM (database). Familiar Rails-ish layout:
src/
├── app.rs Loco app definition + boot
├── controllers/ HTTP handlers (auth, machine, config)
├── models/ SeaORM entities + business logic
├── views/ JSON response shapes
├── workers/ background jobs
├── tasks/ CLI tasks (db migrate, seed, etc.)
└── bin/main.rs entry point
migration/ SeaORM migration crate
config/ environment-specific config files
frontend/ (optional) UI assets
Quick start
cargo install loco
cargo loco doctor # check tooling
cargo loco start # run the dev server
Config files live in config/. Pick one with LOCO_ENV=…. SQLite is
the default for development; Postgres for production (see
docker-compose.yaml for a stack).
Repository
Extracted from the
installer monorepo at
instcomd/. Self-contained — no external deps from the monorepo, the
migration/ sub-crate is part of the same workspace.
Related
- machined — the install-time daemon that target machines run
- installadm — operator CLI; talks to instcomd for inventory and to machined for installs
- installer-ui — operator web UI
- sysconfig — runtime provisioner for the installed BE
License
MPL-2.0.
Loco starter docs (legacy)
This project was scaffolded with the Loco SaaS starter; upstream docs at https://loco.rs and the upstream template at https://github.com/loco-rs/loco.