No description
| .forgejo/workflows | ||
| deploy | ||
| docs | ||
| infra/terraform/hetzner | ||
| node_modules | ||
| projects/unrip | ||
| scripts | ||
| .gitignore | ||
| README.md | ||
near-intents-monitor platform repo
This repository now serves two roles:
- shared platform/infrastructure for the Hetzner + k3s cluster
- the embedded
unripproject, isolated underprojects/unrip/so it can later become its own repository
Repo layout
infra/
terraform/
hetzner/
scripts/
hetzner/
deploy/
hetzner/
k8s/
platform/
overlays/
hetzner-single-node/
projects/
unrip/
src/
package.json
Dockerfile
compose.yml
deploy/
k8s/
base/
docs/
Shared platform at repo root
Shared/root-owned parts include:
- Hetzner Terraform
- cloud-init + bootstrap scripts
- cluster/platform Kubernetes manifests
- Forgejo
- Forgejo runner
- registry
- cert-manager
- Traefik integration
- Grafana
- Loki
- Promtail
- Headlamp
- shared operator docs and runbooks
Embedded project: unrip
The trading-system code and project-specific deployment assets now live in:
projects/unrip/
That directory contains:
- app source
- Node package files
- Docker build files
- local Compose setup
- project-specific Kubernetes manifests
- project-specific docs
Start there for project work:
projects/unrip/README.mdprojects/unrip/docs/contracts.mdprojects/unrip/docs/spec.md
Canonical production path
The canonical production path is the repo-driven Hetzner + k3s bootstrap flow.
cp scripts/hetzner/bootstrap-secrets.env.example scripts/hetzner/bootstrap-secrets.env
source scripts/hetzner/bootstrap-secrets.env
bash scripts/hetzner/bootstrap.sh
Bootstrap now:
- provisions/updates Hetzner infra with Terraform
- optionally manages DNS through Cloudflare or Porkbun
- fetches kubeconfig from the node into
.state/hetzner/kubeconfig.yaml - renders
.state/hetzner/generated-overlay/ - applies shared platform manifests plus the selected project manifests
- bootstraps Forgejo admin, runner, repo, and Actions config
- seeds this repo into Forgejo
- lets Forgejo Actions perform the default image build + deploy path
Runtime surfaces
- Forgejo:
https://git.doran.133011.xyz/ - Registry:
https://registry.doran.133011.xyz/ - Grafana:
https://grafana.doran.133011.xyz/ - Headlamp:
https://headlamp.doran.133011.xyz/
Local project development
For the trading system itself:
cd projects/unrip
npm install
cp .env.example .env
# edit .env
docker compose up -d --build
Operator docs
Current operator/platform docs:
docs/hetzner-k3s-bootstrap.mddocs/hetzner-self-hosted-ci-runbook.mddocs/k8s-observability.mddocs/hetzner-rebuild-pipeline.mddeploy/hetzner/README.mddeploy/k8s/README.mddeploy/k8s/overlays/hetzner-single-node/README.md
Notes
- Ingress is Traefik-based. The old ingress-nginx path is obsolete.
- Grafana is for historical log search.
- Headlamp is for cluster/pod browsing and pod logs.
- Use
pass-backed*_PASSvalues for secrets whenever possible.