docs: sync infrastructure docs with actual running state

- Fix direnv path typo in AGENTS.md (servers/servers → servers)
- Correct Prometheus/Alertmanager as internal-only (no public ingresses)
- Add Alloy public URL (alloy.neuralplatform.ai)
- Add external-secrets namespace to namespaces table
- Add contexthub org to Gitea orgs list
- Document Gitea SSH config (Host gitea → 192.168.68.77:30022)
- Specify GPU model: GTX 1660 Ti 6GB
- Add devpi to Legion README services table
This commit is contained in:
Will Anderson
2026-03-25 15:59:12 -05:00
parent b7f8d70fd3
commit e19cadf971
2 changed files with 22 additions and 7 deletions
+20 -6
View File
@@ -26,7 +26,7 @@ Legion runs all production services: k3s, Postgres, Redis, Ollama (GPU), Docker
set -a; source ~/Secrets/credentials/infrastructure.env; set +a set -a; source ~/Secrets/credentials/infrastructure.env; set +a
# Or with direnv (auto-loads in legion/ directory): # Or with direnv (auto-loads in legion/ directory):
cd ~/Development/infrastructure/servers/servers/legion/ cd ~/Development/infrastructure/servers/legion/
# direnv auto-sources infrastructure.env # direnv auto-sources infrastructure.env
# Friendly alias (after sourcing infrastructure.env): # Friendly alias (after sourcing infrastructure.env):
@@ -156,9 +156,9 @@ Push to main → Argo CD syncs within ~30 seconds.
| Registry UI | https://docker.neuralplatform.ai | Docker registry browser | | Registry UI | https://docker.neuralplatform.ai | Docker registry browser |
| Headscale VPN | https://vpn.neuralplatform.ai | Tailscale control plane (direct TLS, not CF-proxied) | | Headscale VPN | https://vpn.neuralplatform.ai | Tailscale control plane (direct TLS, not CF-proxied) |
| Grafana | https://grafana.neuralplatform.ai | Metrics + logs dashboards | | Grafana | https://grafana.neuralplatform.ai | Metrics + logs dashboards |
| Prometheus | https://prometheus.neuralplatform.ai | Metrics (kube-prometheus-stack) | | Prometheus | | Metrics (kube-prometheus-stack, internal only) |
| Alertmanager | https://alertmanager.neuralplatform.ai | Alert routing → Slack | | Alertmanager | | Alert routing → Slack (internal only) |
| Alloy | | OTLP ingest for Loki/Tempo (internal only) | | Alloy | https://alloy.neuralplatform.ai | OTLP ingest for Loki/Tempo |
### VPN (Headscale / Tailscale) ### VPN (Headscale / Tailscale)
@@ -168,9 +168,21 @@ Headscale runs at `vpn.neuralplatform.ai` (DNS-only, no CF proxy — required fo
| Service | Port | Notes | | Service | Port | Notes |
|---------|------|-------| |---------|------|-------|
| Gitea SSH | 30022 | `git@192.168.68.77:30022` | | Gitea SSH | 30022 | `git@gitea:org/repo.git` (via `Host gitea` SSH config) |
| Ollama API | 31434 | `http://192.168.68.77:31434` | | Ollama API | 31434 | `http://192.168.68.77:31434` |
### Gitea SSH config (Mac `~/.ssh/config`)
```
Host gitea
HostName 192.168.68.77
Port 30022
User git
IdentityFile ~/.ssh/id_ed25519
```
Use for git remotes: `git@gitea:will/infrastructure.git`. Works on LAN and over Headscale VPN.
--- ---
## Access Patterns ## Access Patterns
@@ -234,10 +246,11 @@ ssh legion "curl -s -H 'Authorization: token $TOKEN' http://10.43.1.53:3000/api/
**GitHub** (`github.com/harmonic-framework`) — open-source, CI runners, public-facing **GitHub** (`github.com/harmonic-framework`) — open-source, CI runners, public-facing
**Gitea** (`git.neuralplatform.ai`) — private/infra, three orgs: **Gitea** (`git.neuralplatform.ai`) — private/infra, four orgs:
- `will` — personal infra (`will/infrastructure`) - `will` — personal infra (`will/infrastructure`)
- `neural-platform` — platform projects (`neural-platform/neuron`, `neural-platform/prism`) - `neural-platform` — platform projects (`neural-platform/neuron`, `neural-platform/prism`)
- `harmonic-framework` — org site/assets (`harmonic-framework/harmonic-framework.com`) - `harmonic-framework` — org site/assets (`harmonic-framework/harmonic-framework.com`)
- `contexthub` — archived reference repos (ContextHub, shut down 2021)
Runner labels: `self-hosted,linux,x64,legion` Runner labels: `self-hosted,linux,x64,legion`
@@ -260,6 +273,7 @@ Runner labels: `self-hosted,linux,x64,legion`
| `vault` | HashiCorp Vault | | `vault` | HashiCorp Vault |
| `argocd` | Argo CD | | `argocd` | Argo CD |
| `cert-manager` | cert-manager (Let's Encrypt via HTTP-01) | | `cert-manager` | cert-manager (Let's Encrypt via HTTP-01) |
| `external-secrets` | External Secrets Operator — syncs Vault secrets → k8s Secrets |
--- ---
+2 -1
View File
@@ -16,6 +16,7 @@ Ubuntu 24.04 home server running k3s. Hosts all personal and platform infrastruc
| Gitea | https://git.neuralplatform.ai | Self-hosted Git — all repos live here | | Gitea | https://git.neuralplatform.ai | Self-hosted Git — all repos live here |
| GitHub Actions Runner | — | Runs CI jobs from harmonic-framework org | | GitHub Actions Runner | — | Runs CI jobs from harmonic-framework org |
| Verdaccio | https://npm.neuralplatform.ai | Private npm registry | | Verdaccio | https://npm.neuralplatform.ai | Private npm registry |
| devpi | https://pypi.neuralplatform.ai | Private PyPI registry |
### Platform ### Platform
| Service | URL | What it does | | Service | URL | What it does |
@@ -90,7 +91,7 @@ ddclient keeps the `dot.nook.family` A record updated if the home IP changes.
## GPU ## GPU
Legion has an NVIDIA GPU. k3s is configured to use it as the default container runtime. Ollama uses it for local inference. Legion has an NVIDIA GeForce GTX 1660 Ti (6GB VRAM). k3s is configured to use it as the default container runtime. Ollama uses it for local inference.
```bash ```bash
kubectl describe node legion | grep nvidia.com/gpu kubectl describe node legion | grep nvidia.com/gpu