Declarative fleet control-plane for NixOS. Proof of concept - contributors wanted.
  • Go 80.8%
  • HTML 12.1%
  • Nix 2.9%
  • Rust 2.2%
  • JavaScript 1%
  • Other 0.8%
Find a file
Bram Buijs 2d8e7c61e1
Some checks are pending
ci / test (push) Waiting to run
release: 0.65.10
2026-07-20 23:55:44 +02:00
.forgejo/workflows release: rootless podman needs /run/wrappers/bin on the PATH 2026-07-17 01:54:47 +02:00
agent provisioning: stop reading /etc/crypttab - it does not exist on NixOS 2026-07-17 12:09:57 +02:00
cmd upstream: phase two - the staged core CR gets its content 2026-07-18 09:20:17 +02:00
deploy release: 0.65.10 2026-07-20 23:55:44 +02:00
docs docs: console UI/UX audit - 40 findings, 3 systemic patterns 2026-07-20 00:59:05 +02:00
examples/overlay catalog: human labels for settings 2026-07-20 13:41:39 +02:00
internal integrations: per-card save; batch handler diffs only present keys 2026-07-20 23:50:43 +02:00
nix catalog: human labels for settings 2026-07-20 13:41:39 +02:00
scripts rollout: expedited runs - short soak, full evidence 2026-07-18 00:19:39 +02:00
vendor feat(directory): LDAP group browse behind a Directory port 2026-07-10 17:39:36 +02:00
.dockerignore audit batch 1: token authz hardening, loud rollbacks, CI gates 2026-07-16 10:08:03 +02:00
.env.example Scaffold: hexagonal skeleton, platform layer, quality gates 2026-07-09 18:09:40 +02:00
.gitattributes Stop tracking Rust build artefacts; fix forge language stats 2026-07-13 14:48:14 +02:00
.gitignore audit wave 2: governance boundary, secret leaks, agent unit, and a broad fix sweep 2026-07-14 22:09:02 +02:00
.golangci.yml ci: exclude catalog.go from misspell (Dutch translations trip the English dict) 2026-07-15 03:10:48 +02:00
.govulncheck-exceptions ci: vulnerability gate on the pinned toolchain, with audited exceptions 2026-07-16 21:06:53 +02:00
CONTRIBUTING.md audit batch 1: token authz hardening, loud rollbacks, CI gates 2026-07-16 10:08:03 +02:00
docker-compose.yml Scaffold: hexagonal skeleton, platform layer, quality gates 2026-07-09 18:09:40 +02:00
Dockerfile chart: optional simulated-fleet deployment for demo instances 2026-07-18 09:51:14 +02:00
Dockerfile.docs docs: architecture overview with diagrams (system, change flow, imaging) 2026-07-16 13:23:16 +02:00
Dockerfile.gate-runner gate-runner: name the container group too 2026-07-17 15:21:44 +02:00
flake.lock ci: vulnerability gate on the pinned toolchain, with audited exceptions 2026-07-16 21:06:53 +02:00
flake.nix ci: vulnerability gate on the pinned toolchain, with audited exceptions 2026-07-16 21:06:53 +02:00
fleetsim rollout: expedited runs - short soak, full evidence 2026-07-18 00:19:39 +02:00
go.mod harden: complete pre-publication audit (feedback loop, atomicity, coverage) 2026-07-13 13:46:48 +02:00
go.sum harden: complete pre-publication audit (feedback loop, atomicity, coverage) 2026-07-13 13:46:48 +02:00
justfile audit batch 1: token authz hardening, loud rollbacks, CI gates 2026-07-16 10:08:03 +02:00
LICENSE chore: add EUPL-1.2 licence 2026-07-10 17:34:40 +02:00
README.md harden: complete pre-publication audit (feedback loop, atomicity, coverage) 2026-07-13 13:46:48 +02:00
THIRD-PARTY-NOTICES.md chore: drop unused htmx bundle + dead metrics accessor 2026-07-12 10:56:39 +02:00

Sextant

Declarative fleet control-plane for NixOS. Config-as-data in git, built by nix, deployed by comin. Sextant is the human and API surface that edits fleet configuration safely, proves it builds, stages the rollout, and reports what each device actually runs. Not MDM: declarative pull, no remote wipe.

Status: Alpha - not for production use

This is an alpha release: a ground-up rebuild of the Sextant proof of concept with a production architecture, published early and openly. It is not yet intended for production use - APIs, schemas and behaviour may still change.

Help wanted: developers, testers and maintainers. If you would like to collaborate, please contact Bram Buijs at b.buijs@bb-open.com.

See docs/adr/ for the decisions and docs/architecture.md for the design. Contributors welcome - see CONTRIBUTING.md.

Architecture (short)

Hexagonal: pure domain, use-case services, ports, adapters, thin transport.

internal/domain    pure model + scope/policy resolution (no I/O)
internal/app       use-case services
internal/ports     interfaces the app depends on
internal/adapters  git, nix, postgres, ldap, oidc, integrations
internal/http      SSR web (html/template, form-POST) and /api/v1 JSON
internal/platform  config, logging, metrics, server lifecycle

Build and test

just ci      # fmt-check, vet, lint, test -race, build
just run     # run the server locally

Or without just: go test -race ./... && go build ./....

License

See LICENSE.