Files
stack/.env.example
kert 4a50009445 add reef: parameterized service framework with Go sprig templates
Single registry drives Traefik routing, Prometheus scraping, and
the dashboard. FQDN pattern: {service}.{DOMAIN}. Adding a service
= one line in the reef dict + a compose block.

- Parameterize .env (DOMAIN, HOST_IP, S3_*, etc.) and compose.yml
- Zero-trust: remove host port exposure from postgres, rustfs, jaeger
- Traefik Go template replaces 193-line hand-written routing config
- Fold middlewares.yml into the template, delete separate file
- Prometheus switches to file_sd_configs with targets registry
- Dashboard uses JS domain resolution (zero hardcoded FQDNs)
- Grafana provisioning: datasources for Prometheus, Loki, Jaeger
- Vendor rewrite-body plugin (remove nested .git, track as files)
- Trino catalog uses ${ENV:...} for S3 settings
- CI: split traefik validation (yamllint static + template render)
- Add .env.example documenting all deployment knobs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 17:06:49 -05:00

48 lines
1.6 KiB
Plaintext

# ── Secrets (required) ──────────────────────────────
POSTGRES_PASSWORD=changeme
RUSTFS_ROOT_USER=admin
RUSTFS_ROOT_PASSWORD=changeme
RUSTFS_ACCESS_KEY=changeme
RUSTFS_SECRET_KEY=changeme
GITEA_S3_ACCESS_KEY=changeme
GITEA_S3_SECRET_KEY=changeme
GITEA_DB_PASSWORD=changeme
GITEA_TOKEN=changeme
WOODPECKER_DB_PASSWORD=changeme
WOODPECKER_AGENT_SECRET=changeme
WOODPECKER_GITEA_CLIENT=changeme
WOODPECKER_GITEA_SECRET=changeme
# Nessie Data Lake
NESSIE_DB_PASSWORD=changeme
NESSIE_S3_ACCESS_KEY=changeme
NESSIE_S3_SECRET_KEY=changeme
# Polaris Iceberg Catalog
POLARIS_DB_PASSWORD=changeme
POLARIS_ROOT_SECRET=changeme
POLARIS_S3_ACCESS_KEY=changeme
POLARIS_S3_SECRET_KEY=changeme
# Databricks (optional)
DATABRICKS_HOST=
DATABRICKS_TOKEN=
# ── Deployment ──────────────────────────────────────
# Base domain — all services get {name}.DOMAIN FQDNs.
# DNS must resolve *.DOMAIN to HOST_IP.
DOMAIN=homelab.fhirworx.io
HOST_IP=192.168.1.192
DOCKER_SOCK=/run/user/1000/docker.sock
# ── S3 / Object Storage ────────────────────────────
S3_ENDPOINT=http://rustfs:9000
S3_REGION=us-east-1
S3_WAREHOUSE=s3://lakehouse/
# ── Grafana ─────────────────────────────────────────
GF_ADMIN_PASSWORD=admin
# ── Woodpecker ──────────────────────────────────────
WOODPECKER_ADMIN=kert