Files
harmony/docs
Jean-Gabriel Gill-Couture c7aead7532 feat: extract WebGuiConfigScore from bootstrap, document dependency use case
Split the OPNsense webgui port change from OPNsenseBootstrap into a
proper idempotent Score:

- WebGuiConfigScore reads current port via SSH before changing
- Returns NOOP if already on the target port
- Modifies config.xml via PHP and restarts webgui via configctl
- Runs before LoadBalancerScore to free port 443 for HAProxy

Also:
- Add Config::shell() accessor for SSH access from Scores
- Add WebGuiConfigScore to VM integration example (12 Scores now)
- Document the WebGuiConfig → LoadBalancer ordering dependency
  as a concrete use case in docs/architecture-challenges.md
  (ties into Challenge #2: Runtime Plan & Validation)

The implicit dependency (LoadBalancerScore needs 443 free, which
requires WebGuiConfigScore to run first) remains a convention-based
ordering. This is tracked in architecture-challenges.md alongside
the score_with_dep.rs design sketch.
2026-04-06 17:00:27 -04:00
..

Harmony Documentation Hub

Welcome to the Harmony documentation. This is the main entry point for learning everything from core concepts to building your own Score, Topologies, and Capabilities.

1. Getting Started

If you're new to Harmony, start here:

  • Getting Started Guide: A step-by-step tutorial that takes you from an empty project to deploying your first application.
  • Core Concepts: A high-level overview of the key concepts in Harmony: Score, Topology, Capability, Inventory, Interpret, ...

2. Use Cases & Examples

See how to use Harmony to solve real-world problems.

  • OPNsense VM Integration: Boot a real OPNsense firewall in a local KVM VM and configure it entirely through Harmony. Fully automated, zero manual steps — the flashiest demo. Requires Linux with KVM.
  • PostgreSQL on Local K3D: Deploy a production-grade PostgreSQL cluster on a local K3D cluster. The fastest way to get started.
  • OKD on Bare Metal: A detailed walkthrough of bootstrapping a high-availability OKD cluster from physical hardware.

3. Component Catalogs

Discover existing, reusable components you can use in your Harmony projects.

4. Developer Guides

Ready to build your own components? These guides show you how.

  • Writing a Score: Learn how to create your own Score and Interpret logic to define a new desired state.
  • Writing a Topology: Learn how to model a new environment (like AWS, GCP, or custom hardware) as a Topology.
  • Adding Capabilities: See how to add a Capability to your custom Topology.

5. Architecture Decision Records

Harmony's design is documented through Architecture Decision Records (ADRs). See the ADR Overview for a complete index of all decisions.