Help us shape the future of Go! Take the 2026 Go Developer Survey

baseharbor

module
v0.4.26 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2026 License: Apache-2.0

README

BaseHarbor

One application contract. Replaceable infrastructure.

GitHub Release GitHub Pages BaseHarbor Demo App BaseHarbor Console BaseHarbor Node Connector Contributing License

The problem

You want to build an app. First, you have to configure databases, networking, secrets, TLS, login, backups and monitoring.

BaseHarbor is a CLI that provisions, connects and verifies the infrastructure your app needs — on your own machines, using standard protocols and libraries.

If you know Terraform, you already understand BaseHarbor

Terraform describes infrastructure resources. BaseHarbor describes application needs: SQL, cache, secrets, storage, login or HTTPS.

Declare the needs, review the plan, apply it and verify the result. Provider choices live in Target bindings, keeping application intent portable.

version: 1
app:
  name: my-app
  environment: dev
services:
  sql: true

What you get

  • Start or adopt an app — use existing repositories and normal ecosystem tooling.
  • Only the services you need — selected capabilities plus genuine dependencies.
  • Connected services — databases, cache, messaging, storage, secrets, identity and observability.
  • Protected access — TLS, scoped credentials and explicit trust boundaries.
  • Verified lifecycle — plan, apply, inspect, stop, recover and remove with ownership checks and concrete consequences.
  • Your infrastructure — Docker and rootless Podman (Quadlet); optional Console and Node Connector.
  • Standard application interfaces — database drivers, S3, OIDC and OTLP; no BaseHarbor SDK.

A CLI first — agent-ready if you want it

BaseHarbor works deterministically without AI. Use it directly, or let an agent use the same structured operations through JSON and MCP.

baha init
baha up
baha status

The optional Console adds a web interface. The Node Connector provides protected access to remote hosts.

Install

curl -fsSL https://raw.githubusercontent.com/mcpdev80/baseharbor/main/scripts/install.sh | bash
baha version

Learn more

Getting started · Documentation · Releases

Project status

BaseHarbor is pre-v1. Published versions and installation binaries are available in the GitHub releases. Docker and Podman runtimes are implemented; Kubernetes and OpenShift runtimes are planned. See the documentation for supported paths and current limits.

License

Apache License 2.0. See LICENSE.

Directories

Path Synopsis
cmd
baha command
conformance
provider/v1
Package provider exposes the existing Provider Integration Contract harness to external Go modules.
Package provider exposes the existing Provider Integration Contract harness to external Go modules.
Package contracts provides the offline registry of shipped public JSON Schemas.
Package contracts provides the offline registry of shipped public JSON Schemas.
internal
cli
coreinstallation
Package coreinstallation owns the repository-independent Core lifecycle.
Package coreinstallation owns the repository-independent Core lifecycle.
coreupdate
Package coreupdate defines the provider-neutral, fail-closed Core update plan.
Package coreupdate defines the provider-neutral, fail-closed Core update plan.
machinereadmodels
Package machinereadmodels derives consumer artifacts from actual Core result types.
Package machinereadmodels derives consumer artifacts from actual Core result types.
providerbinding
Package providerbinding connects reviewed provider adapters to the existing Core runtime and recovery seams.
Package providerbinding connects reviewed provider adapters to the existing Core runtime and recovery seams.
providertopology
Package providertopology binds provider member intent to retained native state.
Package providertopology binds provider member intent to retained native state.
runtime/terminal
Package terminal defines the bounded terminal transport supplied by runtimes.
Package terminal defines the bounded terminal transport supplied by runtimes.
targetenrollment
Package targetenrollment binds one-use enrollment to an existing Core issuer.
Package targetenrollment binds one-use enrollment to an existing Core issuer.
targetsession
Package targetsession transports already selected Core operations.
Package targetsession transports already selected Core operations.
scripts
tools/machine-control-fixtures command
Command machine-control-fixtures emits synthetic public contract examples.
Command machine-control-fixtures emits synthetic public contract examples.
tools/machine-read-models command
Command machine-read-models emits public schemas or synthetic examples from Core semantic result types.
Command machine-read-models emits public schemas or synthetic examples from Core semantic result types.
sdk
provider
Package provider exposes the stable Capability Provider authoring boundary.
Package provider exposes the stable Capability Provider authoring boundary.
spec

Jump to

Keyboard shortcuts

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