linuxctl

module
v0.0.0-...-443b9db Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2026 License: AGPL-3.0

README

linuxctl

Declarative, idempotent, auditable Linux host configuration — as a single static Go binary.

Go Report Card License CalVer Coverage

linuxctl converges a Linux host to the desired state described in a linux.yaml. It is the mutation counterpart to the read-only mcp-host monitoring server, and is designed to compose with proxctl, dbx, Ansible, and Terraform.

30-second demo

brew install itunified-io/tap/linuxctl

cat <<EOF > linux.yaml
kind: Linux
directories:
  - path: /tmp/linuxctl-demo
    owner: root
    group: root
    mode: "0755"
services:
  - name: cron
    enabled: true
    state: running
EOF

linuxctl config validate linux.yaml
linuxctl apply plan  linux.yaml --host localhost
linuxctl apply apply linux.yaml --host localhost --yes
linuxctl apply verify linux.yaml --host localhost   # zero drift

Features

  • 13 subsystem managersdisk, user, package, service, mount, sysctl, limits, firewall, hosts, network, ssh, selinux, dir.
  • Plan / Apply / Verify / Rollback on every manager and on the full DAG.
  • Distro-aware — RHEL 8/9, Oracle Linux, Rocky, Alma, Ubuntu 22.04/24.04, Debian 12, SLES 15 SP5+.
  • Agentless — only needs sshd on the target. No daemon, no runtime.
  • Auditable — every change persists to a local SQLite state DB.
  • License-gated tiers — Community is free forever; Business adds fleet ops, advanced presets, persistent rollback; Enterprise adds RBAC, audit export, SSO, policy lifecycle.

Status

Phase 6 stable — all 13 managers pass live idempotency tests on Tier-1 distros. Coverage >= 95% across every package. See CHANGELOG.md for the release timeline.

Documentation

Doc What
installation.md Install on every platform, license setup, shell completion
quick-start.md 5-minute walkthrough
user-guide.md Concepts, sessions, env registry, orchestrator, fleet ops
manager-reference.md Per-manager deep dive
config-reference.md Full YAML schema
cli-reference.md Auto-generated CLI pages
preset-guide.md Sysctl + limits presets
distro-guide.md Supported distros + per-distro behavior
integration-guide.md proxctl / mcp-host / dbx / Ansible / Terraform composition
licensing.md Tier matrix, JWT format, air-gap activation
troubleshooting.md Top 20 real-world issues
architecture.md Components, protocol, DAG, state, session
contributing.md Dev setup, tests, release process

Tier brief

Tier Price What you get
Community Free forever Single-host apply/verify/rollback, oracle-19c preset
Business Per seat Fleet ops, advanced presets, persistent rollback, cluster-SSH bootstrap
Enterprise Annual contract RBAC, audit export, SSO, policy lifecycle, air-gap activation

See licensing.md for the full matrix.

License

AGPL-3.0 — see LICENSE. Commercial / Enterprise licenses are available from itunified.io.

Directories

Path Synopsis
cmd
docgen command
Command docgen generates Markdown reference pages for every linuxctl subcommand using cobra/doc.
Command docgen generates Markdown reference pages for every linuxctl subcommand using cobra/doc.
linuxctl command
Command linuxctl is the entry point for the linuxctl CLI.
Command linuxctl is the entry point for the linuxctl CLI.
internal
root
Package root builds the linuxctl Cobra command tree.
Package root builds the linuxctl Cobra command tree.
pkg
apply
Package apply implements the cross-manager orchestrator that aggregates Plan / Apply / Verify / Rollback across all 13 managers in dependency order.
Package apply implements the cross-manager orchestrator that aggregates Plan / Apply / Verify / Rollback across all 13 managers in dependency order.
config
Package config contains the YAML contract consumed by linuxctl.
Package config contains the YAML contract consumed by linuxctl.
license
Package license provides the tool catalog and license-gate helpers for linuxctl.
Package license provides the tool catalog and license-gate helpers for linuxctl.
managers
Package managers defines the Manager interface and shared plan/apply/verify types used by each of the 13 linuxctl subsystem managers.
Package managers defines the Manager interface and shared plan/apply/verify types used by each of the 13 linuxctl subsystem managers.
presets
Package presets provides the embedded conventions library for linuxctl.
Package presets provides the embedded conventions library for linuxctl.
session
Package session abstracts command execution against local or remote hosts.
Package session abstracts command execution against local or remote hosts.
state
Package state owns the SQLite-backed run history used by apply / rollback.
Package state owns the SQLite-backed run history used by apply / rollback.
version
Package version exposes the linuxctl build metadata.
Package version exposes the linuxctl build metadata.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL