## Summary - Adds `scripts/install.sh` : a curl-pipe-bash installer for foundryctl, served from `signoz.io/signoz.sh` (Vercel rewrite to this repo's `main`). - Detects OS/arch (darwin, linux, windows shells; amd64, arm64), resolves the latest version via the GitHub `/releases/latest` redirect (no API rate-limit), downloads the tarball + verifies SHA-256 against the published checksums file, installs into `$FOUNDRY_INSTALL_DIR` → `$XDG_BIN_HOME` → `~/.local/bin`, and runs the binary as a post-install smoke test. - Idempotent: same-version re-runs short-circuit early; different-version runs prompt interactively, auto-proceed when piped (curl-pipe-bash, CI). `-y` / `FOUNDRY_ASSUME_YES` bypasses the prompt explicitly. - Wires `sh-fmt` and `sh-lint` jobs into `ci.yaml` (via `signoz/primus.workflows`) so the script is enforced against shellcheck and shfmt on every PR. Related: SigNoz/platform-pod#2065, https://github.com/SigNoz/foundry/issues/96, https://github.com/SigNoz/foundry/issues/97
168 lines
6.0 KiB
Go Template
168 lines
6.0 KiB
Go Template
<p align="center">
|
|
<a href="https://signoz.io" target="_blank">
|
|
<img alt="Foundry" src="https://github.com/user-attachments/assets/ef9a33f7-12d7-4c94-8908-0a02b22f0c18" width="100" height="100">
|
|
</a>
|
|
</p>
|
|
|
|
<h1 align="center" style="border-bottom: none">Foundry</h1>
|
|
|
|
<p align="center">
|
|
<img alt="GitHub Release" src="https://img.shields.io/github/v/release/signoz/foundry?include_prereleases">
|
|
<a href="https://golang.org"><img src="https://img.shields.io/badge/Go-1.25+-blue.svg" alt="Go Version"></a>
|
|
|
|
<p align="center">Foundry is a centralized hub for <a href="https://signoz.io">SigNoz</a> installation configurations and deployments: <strong>integrations for install</strong>. Select yours, configure, and run SigNoz.</p>
|
|
|
|
## Overview
|
|
|
|
Just as a metalworking foundry turns raw materials into finished products, Foundry forges your deployment from a single configuration and casts SigNoz to fit your environment.
|
|
|
|
Foundry abstracts away the complexities of the installation process so you can spend time *using* SigNoz rather than *installing* it.
|
|
|
|
<p align="center">
|
|
<img
|
|
src="docs/assets/cli.gif"
|
|
alt="Foundry CLI demo"
|
|
width="900"
|
|
loading="lazy"
|
|
style="border-radius: 8px; border: 1px solid #30363d;"
|
|
/>
|
|
</p>
|
|
|
|
## Features
|
|
|
|
- **Multi-platform support**: Deploy SigNoz using Docker Compose, Systemd (bare metal), or Render for flexible installation across environments.
|
|
- **Single configuration file**: Configure your entire SigNoz stack with one concise file.
|
|
- **Automatic dependency management**: Handles inter-service dependencies
|
|
- **Tool validation**: Verify prerequisites before deployment
|
|
|
|
## Quick start
|
|
|
|
**1. Install foundryctl**
|
|
|
|
```bash
|
|
curl -fsSL https://signoz.io/foundry.sh | bash
|
|
```
|
|
|
|
See [Getting Started](docs/getting-started.md) for manual install options and PATH setup.
|
|
|
|
**2. Create a casting**
|
|
|
|
```yaml
|
|
apiVersion: v1alpha1
|
|
metadata:
|
|
name: signoz
|
|
spec:
|
|
deployment:
|
|
mode: docker
|
|
flavor: compose
|
|
```
|
|
|
|
**3. Deploy**
|
|
|
|
```bash
|
|
foundryctl cast -f casting.yaml
|
|
```
|
|
|
|
## How it works
|
|
|
|
```
|
|
+-------------------------------------------------------------+
|
|
| casting.yaml |
|
|
| your single deployment config |
|
|
+-----------------------------+-------------------------------+
|
|
|
|
|
+---------------+---------------+
|
|
| | |
|
|
v v v
|
|
+-----------+ +-----------+ +----------------+
|
|
| gauge | | forge | | cast |
|
|
|-----------| |-----------| |----------------|
|
|
| validate | | generate | | gauge + forge |
|
|
| prereqs | | files | | + deploy |
|
|
+-----------+ +-----+-----+ +-------+--------+
|
|
| |
|
|
v |
|
|
+----------------------------------+ |
|
|
| pours/ | |
|
|
|----------------------------------| |
|
|
| compose.yaml manifests/ | |
|
|
| values.yaml configs/ | |
|
|
| render.yaml *.tf.json | |
|
|
+-----------------+----------------+ |
|
|
| |
|
|
+----------+---------+
|
|
v
|
|
+-------------------------------------------------------------+
|
|
| SigNoz Running |
|
|
|-------------------------------------------------------------|
|
|
| Docker Compose - Swarm - Systemd - Kubernetes - ECS |
|
|
| Render - Railway - Coolify |
|
|
+-------------------------------------------------------------+
|
|
```
|
|
|
|
`foundryctl cast` runs the full pipeline (gauge + forge + deploy) in one step.
|
|
|
|
| Term | What it means |
|
|
| --- | --- |
|
|
| **Casting** | Your deployment config. One YAML file describing what you want. [Learn more](docs/concepts/casting.md) |
|
|
| **Moldings** | The SigNoz components (ClickHouse, PostgreSQL, OTel Collector, etc.) that Foundry configures for you. [Learn more](docs/concepts/moldings.md) |
|
|
| **Pours** | The generated output files in `pours/`. Structure varies by deployment mode. See [examples](docs/examples/) |
|
|
|
|
## Examples
|
|
|
|
| Platform | Mode | Flavor | Example |
|
|
| --- | --- | --- | --- |
|
|
{{- range .Castings }}
|
|
| {{ or .platform "-" }} | {{ or .mode "-" }} | {{ or .flavor "-" }} | [{{ .example }}](docs/examples/{{ .example }}/) |
|
|
{{- end }}
|
|
|
|
## CLI reference
|
|
|
|
```
|
|
foundryctl [command]
|
|
|
|
Commands:
|
|
gauge Validate required tools for your deployment mode
|
|
forge Generate deployment and configuration files
|
|
cast Full pipeline: gauge + forge + deploy
|
|
gen Generate example casting files for all modes
|
|
|
|
Flags:
|
|
-d, --debug Enable debug logging
|
|
-f, --file string Casting file path (default "casting.yaml")
|
|
-p, --pours string Output directory (default "./pours")
|
|
```
|
|
|
|
```bash
|
|
# Validate tools
|
|
foundryctl gauge -f casting.yaml
|
|
|
|
# Generate files only
|
|
foundryctl forge -f casting.yaml
|
|
|
|
# Full deploy
|
|
foundryctl cast -f casting.yaml
|
|
|
|
# Generate examples for all deployment modes
|
|
foundryctl gen
|
|
```
|
|
|
|
See [CLI Reference](docs/reference/cli.md) for the full command reference with all flags and examples.
|
|
|
|
## What's next
|
|
|
|
- [Getting Started](docs/getting-started.md) - install and deploy your first SigNoz instance
|
|
- [Concepts](docs/concepts/) - understand castings, moldings, and patches
|
|
- [Examples](docs/examples/) - deployment configurations for all supported platforms
|
|
- [Reference](docs/reference/) - CLI commands and casting file spec
|
|
- [SigNoz documentation](https://signoz.io/docs/) - learn more about SigNoz
|
|
- [SigNoz Slack](https://signoz.io/slack) - community and support
|
|
|
|
## How can I get help?
|
|
|
|
- **Issues**: [GitHub Issues](https://github.com/signoz/foundry/issues)
|
|
- **Documentation**: [SigNoz Docs](https://signoz.io/docs/)
|
|
- **Community**: [SigNoz Slack](https://signoz.io/slack)
|
|
|
|
**Made with ❤️ for the SigNoz community**
|