No description
  • Rust 88.5%
  • TypeScript 6.5%
  • CSS 2.4%
  • Perl 1.2%
  • Fluent 0.7%
  • Other 0.7%
Find a file
Till Wegmueller c260336a45
Some checks failed
CI / Check Style (push) Has been cancelled
CI / Run Clippy (push) Has been cancelled
CI / Run Tests (push) Has been cancelled
Initial instcomd: inventory and orchestration service for the installer
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
2026-04-28 16:27:41 +02:00
.cargo Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
.github/workflows Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
.idea Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
assets Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
config Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
examples Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
frontend Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
migration Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
src Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
tests Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
.gitignore Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
.rustfmt.toml Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
Cargo.toml Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
docker-compose.yaml Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00
LICENSE Initial commit 2026-04-28 14:16:51 +00:00
README.md Initial instcomd: inventory and orchestration service for the installer 2026-04-28 16:27:41 +02:00

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 MachineConfig blobs (KDL configs describing the install: pool layout, image, sysconfig fragment).
  • It exposes an HTTP+JSON API for operators (via installadm or 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.

  • 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.