2026-02-05 01:54:58 +05:30
2026-01-24 00:49:14 +05:30
2026-04-01 14:23:05 -07:00
2026-04-01 14:23:05 -07:00

Foundry
Foundry

GitHub Release Go Version

Foundry is a centralized hub for Hanzo O11y installation configurations and deployments: integrations for install. Select yours, configure, and run Hanzo O11y.

Overview

Just as a metalworking foundry turns raw materials into finished products, Foundry forges your deployment from a single configuration and casts Hanzo O11y to fit your environment.

Foundry abstracts away the complexities of the installation process so you can spend time using Hanzo O11y rather than installing it.

Foundry CLI demo

Features

  • Multi-platform support: Deploy Hanzo O11y using Docker Compose, Systemd (bare metal), or Render for flexible installation across environments.
  • Single configuration file: Configure your entire Hanzo O11y stack with one concise file.
  • Automatic dependency management: Handles inter-service dependencies
  • Tool validation: Verify prerequisites before deployment

Quick start

1. Install foundryctl

You can install foundryctl by downloading a release from GitHub Releases.

To quickly get the correct binary for your architecture via the command line, run

Linux:

curl -L "https://github.com/Hanzo O11y/foundry/releases/latest/download/foundry_linux_$(uname -m | sed 's/x86_64/amd64/g' | sed 's/aarch64/arm64/g').tar.gz" -o foundry.tar.gz
tar -xzf foundry.tar.gz

macOS:

curl -L "https://github.com/Hanzo O11y/foundry/releases/latest/download/foundry_darwin_$(uname -m | sed 's/x86_64/amd64/g' | sed 's/arm64/arm64/g').tar.gz" -o foundry.tar.gz
tar -xzf foundry.tar.gz

Windows (PowerShell):

$ARCH = if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { "arm64" } else { "amd64" }
Invoke-WebRequest -Uri "https://github.com/Hanzo O11y/foundry/releases/latest/download/foundry_windows_${ARCH}.tar.gz" -OutFile foundry.tar.gz -UseBasicParsing
tar -xzf foundry.tar.gz

After extracting, use foundryctl from the unpacked directory:

./foundry/bin/foundryctl <COMMAND> <OPTIONS>

2. Create a Casting

Create a casting.yaml file (see How to write a casting for the full guide). Minimal example:

apiVersion: v1alpha1
metadata:
  name: o11y
spec:
  deployment:
    mode: docker
    flavor: compose

3. Deploy

foundryctl cast -f casting.yaml

The Foundry Model

Foundry uses a metalworking metaphor: you define a Casting, which contains Moldings (components), and Foundry forges them into Pours (generated files).

graph LR
    A[📋 casting.yaml<br/>Single Config File] --> B[🔧 foundryctl gauge<br/>Validate Tools]
    B --> C[⚒️ foundryctl forge<br/>Generate Deployment Files]
    C --> D[🏺 pours/<br/>compose.yaml + configs]

    D --> E[🔥 foundryctl cast<br/>Deploy]
    E --> F[⚙️ Docker Compose /<br/>Systemd /<br/>Cloud Platform]
    F --> G[✨ Hanzo O11y Running<br/>ClickHouse, PostgreSQL,<br/>OTel Collector, Hanzo O11y UI]

    style A fill:#FF9900,stroke:#E68A00,stroke-width:3px,color:#000
    style D fill:#FDB44B,stroke:#E68A00,stroke-width:3px,color:#000
    style G fill:#4E9FFF,stroke:#2A7FD8,stroke-width:3px,color:#fff
    style B fill:#1F1F1F,stroke:#FF9900,stroke-width:2px,color:#fff
    style C fill:#1F1F1F,stroke:#FF9900,stroke-width:2px,color:#fff
    style E fill:#1F1F1F,stroke:#FF9900,stroke-width:2px,color:#fff
    style F fill:#2D2D2D,stroke:#4E9FFF,stroke-width:2px,color:#fff

Casting

A Casting is a complete Hanzo O11y deployment definition: one YAML file that Foundry merges with built-in defaults. For a step-by-step guide (metadata, deployment target, moldings, config, and examples), see How to write a casting.

Examples

Deployment Example
Docker Compose examples/docker/compose/
Systemd (binary) examples/systemd/binary/
Render Blueprint examples/render/blueprint/

Moldings

Moldings are the individual components that make up a Hanzo O11y deployment:

Molding Implementation
TelemetryStore ClickHouse
TelemetryKeeper ClickHouse Keeper
MetaStore PostgreSQL, SQLite
Ingester Hanzo O11y OTel Collector
Hanzo O11y Hanzo O11y

Pours

Pours are the generated deployment and configuration files. When you run forge, Foundry creates the pours/ directory containing everything needed to run Hanzo O11y.

pours/
└── deployment/
    ├── compose.yaml
    └── configs/
        ├── ingester/
        │   ├── ingester.yaml
        │   └── opamp.yaml
        ├── telemetrykeeper/
        │   └── keeper-0.yaml
        └── telemetrystore/
            ├── config.yaml
            └── functions.yaml

CLI reference

Usage:
  foundryctl [command]

Available Commands:
  gauge       Gauge whether required tools are available
  forge       Forge configuration and deployment files
  cast        Cast to the target environment
  gen         Generate example files for all supported deployments
  help        Help about any command

Flags:
  -d, --debug          Enable debug mode
  -f, --file string    Path to the Casting configuration file (default "casting.yaml")
  -p, --pours string   Directory for Pours (default "./pours")
  -h, --help           Help for foundryctl

gauge

Validates that all required tools are installed for your deployment mode:

foundryctl gauge -f casting.yaml

forge

Generates deployment and configuration files based on your Casting:

foundryctl forge -f casting.yaml -p ./pours

cast

Deploys Hanzo O11y to your target environment. Runs gauge and forge automatically unless skipped:

foundryctl cast -f casting.yaml

# Skip gauge check
foundryctl cast --no-gauge

# Skip forge (use existing Pours)
foundryctl cast --no-forge

gen

Generates example Casting configurations for all supported deployment modes:

foundryctl gen

What's next

How can I get help?

Made with ❤️ for the Hanzo O11y community

S
Description
Hanzo tenant service — sourced from hanzoai/o11y-foundry
Readme AGPL-3.0
5.9 MiB
Languages
Go 55.2%
Go Template 42.8%
Shell 1.8%
Makefile 0.2%