Documentation

Prepare, review, and explicitly apply Linux host configuration with Richt.

Richt is a standalone Go CLI for executable host configuration plans. Describe hosts and reusable services in YAML, inspect the resolved inventory, prepare changes against the targets, then review and explicitly apply them. Services combine RPM packages, templated files, and systemd processes. Config-only, package-only, and process-only services are also supported.

Start with the config-only quickstart , then use installation and platform requirements and the CLI reference for your environment. The examples include ready-package vmango, SSH, local secrets, and deliberate failure/continuation scenarios. Validation separates recorded Linux acceptance from illustrative configurations.

The focused contracts are:

  • Inventory : strict YAML, tag assignments and variable order, paths, ordering, ownership, and filters.
  • Files and saved plans : templates, attributes, SELinux, confirmation, executable JSON, and locking.
  • RPM and systemd : exact versions, reactions, timeouts, unit files, and removal.
  • SSH and sudo : client configuration, authentication, privileges, and parallel hosts.
  • Secrets : source lookup, sensitive display, and real saved bytes.
  • Continuation : task progress, partial failure, and explicit retry using the same plan.

Read limitations before using a saved plan as an operational artifact. Plans contain prepared executable inputs, potentially including secrets; apply does not recompute changes or check targets for drift.

For contributors, CI and releases explains the shared checks, binary archives, manual publication, and required repository protection settings.


Config-only quickstart

Create, review, apply, update, and remove a templated file without root privileges.

Installation and requirements

Install a release archive or build Richt, choose controller and target platforms, and configure privileges.

CLI reference

Commands, flags, selection, confirmation, concurrency, and exit status.

YAML inventory

Define services and hosts, merge tag variables, resolve paths, and select assignments.

Files and saved plans

Render templates, manage file attributes, and execute protected JSON plans.

RPM and systemd services

Manage exact package requests, process reactions, unit files, and explicit removal.

SSH, sudo, and parallel apply

Reuse OpenSSH configuration, apply explicit privileges, and bound host concurrency.

YAML secrets and sensitive files

Resolve local secret sources during preparation and protect executable saved inputs.

Progress and manual continuation

Understand partial failure and explicitly retry unfinished saved-plan tasks.

Examples and walkthroughs

Choose a config-only, ready-package, SSH, secrets, or continuation scenario.

Example walkthroughs

Runnable examples, rendered directly from their repository README files.

CI and releases

Run the shared checks and archive build, publish a manual release, and configure required CI.

Limitations and plan boundaries

Understand supported backends, frozen-input boundaries, and deferred capabilities.

Linux validation

Recorded Linux acceptance results, environment, commands, and limits.