Retire shorashim.ch; Gitea brand becomes Bikoret
- service.yaml: the shorashim.ch host rule is gone from the Ingress; the no-host catch-all stays for http://185.19.28.170 - gitea-public-patch.yaml: APP_NAME "Shorashim" → "Bikoret" (title and brand on every Gitea page) - shorashim-ch-takedown.sh: the operator's apply (ingress, orphan mcp.shorashim.ch TLS secret, Gitea patch + rollout) with verification - KOHEN.md, AGENTS.md: examples and the endpoint table use bikoret.ch Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
53778f372e
commit
7117d57a52
6 files changed
+43
-19
No files matched your search
@@ -105,7 +105,7 @@ approve decisions, or supervise work. The specification does all of this.
|
|||||||
| Service | Location | Access |
|
| Service | Location | Access |
|
||||||
|---------|----------|--------|
|
|---------|----------|--------|
|
||||||
| Gitea | `http://185.19.28.170:3000` (SSH :22) — behind the shared ingress NLB | User: heaviness510 |
|
| Gitea | `http://185.19.28.170:3000` (SSH :22) — behind the shared ingress NLB | User: heaviness510 |
|
||||||
| Bikoret | `http://185.19.28.170` — behind the same ingress (catch-all; `shorashim.ch` once DNS points there) | keys: KOHEN.md "Issuing a key" |
|
| Bikoret | `https://bikoret.ch` (also `http://185.19.28.170`, the catch-all; `shorashim.ch` retired 2026-10-20) | keys: KOHEN.md "Issuing a key" |
|
||||||
| PostgreSQL | Exoscale DBaaS ch-gva-2 | `temple-council-db` |
|
| PostgreSQL | Exoscale DBaaS ch-gva-2 | `temple-council-db` |
|
||||||
| Kubernetes | Exoscale SKS ch-gva-2 | `~/.kube/exoscale-temple-council.yaml` |
|
| Kubernetes | Exoscale SKS ch-gva-2 | `~/.kube/exoscale-temple-council.yaml` |
|
||||||
|
|
||||||
|
|||||||
@@ -481,11 +481,11 @@ If any day failed: record what broke, fix the cause, restart from Day 1.
|
|||||||
```bash
|
```bash
|
||||||
# 1. Write today's manna provision (same format as Day 4, new date)
|
# 1. Write today's manna provision (same format as Day 4, new date)
|
||||||
# 2. Health check
|
# 2. Health check
|
||||||
curl https://shorashim.ch/kodesh/health | jq .
|
curl https://bikoret.ch/kodesh/health | jq .
|
||||||
# 3. Halt status
|
# 3. Halt status
|
||||||
curl https://shorashim.ch/kodesh/status | jq .halt_status
|
curl https://bikoret.ch/kodesh/status | jq .halt_status
|
||||||
# 4. Refuge list
|
# 4. Refuge list
|
||||||
curl https://shorashim.ch/kodesh/status | jq '.refuge_components'
|
curl https://bikoret.ch/kodesh/status | jq '.refuge_components'
|
||||||
```
|
```
|
||||||
|
|
||||||
### Issuing a key — *Mishmeret HaSha'ar*
|
### Issuing a key — *Mishmeret HaSha'ar*
|
||||||
@@ -750,7 +750,7 @@ The halt monitor detected one of three cardinal sins:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Inspect the halt
|
# Inspect the halt
|
||||||
curl https://shorashim.ch/kodesh/status | jq .halt_status
|
curl https://bikoret.ch/kodesh/status | jq .halt_status
|
||||||
kubectl logs -n shorashim deploy/bikoret -c vav-pipeline | grep HALT
|
kubectl logs -n shorashim deploy/bikoret -c vav-pipeline | grep HALT
|
||||||
|
|
||||||
# Investigate. Fix the root cause. Then resolve via the operator API.
|
# Investigate. Fix the root cause. Then resolve via the operator API.
|
||||||
|
|||||||
@@ -40,8 +40,9 @@ Kept in `deploy/k8s/`:
|
|||||||
- `gitea-mcp-ingress.yaml` — TLS ingress `mcp.bikoret.ch` for the MCP server
|
- `gitea-mcp-ingress.yaml` — TLS ingress `mcp.bikoret.ch` for the MCP server
|
||||||
- `gitea-mcp-secret.yaml` — template for a Gitea PAT (static-token mode only; kept for rollback)
|
- `gitea-mcp-secret.yaml` — template for a Gitea PAT (static-token mode only; kept for rollback)
|
||||||
- `gitea-ingress.yaml` — TLS ingress `git.bikoret.ch` for Gitea itself (namespace temple-council), required by OAuth mode
|
- `gitea-ingress.yaml` — TLS ingress `git.bikoret.ch` for Gitea itself (namespace temple-council), required by OAuth mode
|
||||||
- `gitea-public-patch.yaml` — patch that sets Gitea's ROOT_URL/DOMAIN/SSH_DOMAIN to `git.bikoret.ch`
|
- `gitea-public-patch.yaml` — patch that sets Gitea's ROOT_URL/DOMAIN/SSH_DOMAIN to `git.bikoret.ch` and APP_NAME to `Bikoret`
|
||||||
- `gitea-public-apply.sh` / `gitea-public-verify.sh` — the operator's apply and read-only check for the four above
|
- `gitea-public-apply.sh` / `gitea-public-verify.sh` — the operator's apply and read-only check for the four above
|
||||||
|
- `shorashim-ch-takedown.sh` — 2026-10-20: removes the shorashim.ch ingress rule and the orphan mcp.shorashim.ch secret, applies the Gitea brand patch
|
||||||
- `cert-manager-issuer.yaml` — Let's Encrypt ClusterIssuer
|
- `cert-manager-issuer.yaml` — Let's Encrypt ClusterIssuer
|
||||||
|
|
||||||
## Containers
|
## Containers
|
||||||
|
|||||||
@@ -26,3 +26,7 @@ spec:
|
|||||||
value: "git.bikoret.ch"
|
value: "git.bikoret.ch"
|
||||||
- name: GITEA__server__SSH_DOMAIN
|
- name: GITEA__server__SSH_DOMAIN
|
||||||
value: "git.bikoret.ch"
|
value: "git.bikoret.ch"
|
||||||
|
# [DEFAULT] APP_NAME — the title and brand on every Gitea page.
|
||||||
|
# Was "Shorashim"; the system is named Bikoret (PRD §0).
|
||||||
|
- name: GITEA____APP_NAME
|
||||||
|
value: "Bikoret"
|
||||||
+3
-13
@@ -38,8 +38,9 @@ spec:
|
|||||||
# believes that header only from TRUSTED_PROXIES (configmap.yaml).
|
# believes that header only from TRUSTED_PROXIES (configmap.yaml).
|
||||||
#
|
#
|
||||||
# Hosts (2026-10-13, the name): bikoret.ch is the place; www.bikoret.ch
|
# Hosts (2026-10-13, the name): bikoret.ch is the place; www.bikoret.ch
|
||||||
# and the old shorashim.ch are served too; bikoret.org (second Ingress
|
# is served too; bikoret.org (second Ingress
|
||||||
# below) only redirects. TLS from Let's Encrypt through cert-manager's
|
# below) only redirects. The old shorashim.ch rule was taken down on
|
||||||
|
# 2026-10-20 (the domain is retired). TLS from Let's Encrypt through cert-manager's
|
||||||
# letsencrypt-prod ClusterIssuer, HTTP-01 — so apply this ONLY after
|
# letsencrypt-prod ClusterIssuer, HTTP-01 — so apply this ONLY after
|
||||||
# `dig +short A bikoret.ch` answers 185.19.28.170: a certificate asked
|
# `dig +short A bikoret.ch` answers 185.19.28.170: a certificate asked
|
||||||
# for before the name resolves only burns the failed-validation limit.
|
# for before the name resolves only burns the failed-validation limit.
|
||||||
@@ -98,17 +99,6 @@ spec:
|
|||||||
name: shorashim
|
name: shorashim
|
||||||
port:
|
port:
|
||||||
number: 80
|
number: 80
|
||||||
# The old name, kept until its callers have moved; no certificate asked for it.
|
|
||||||
- host: shorashim.ch
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: shorashim
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
---
|
---
|
||||||
# bikoret.org: the stranger's guess, redirected to the place. No service
|
# bikoret.org: the stranger's guess, redirected to the place. No service
|
||||||
# of its own; nginx answers the redirect itself. Add its A records too.
|
# of its own; nginx answers the redirect itself. Add its A records too.
|
||||||
|
|||||||
Executable
+29
@@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Take shorashim.ch down from the cluster and rename Gitea's brand
|
||||||
|
# (2026-10-20). Run by the transmitter:
|
||||||
|
# ! bash ~/.local/bin/shorashim-ch-takedown
|
||||||
|
# Idempotent.
|
||||||
|
# 1. Ingress `shorashim`: the shorashim.ch host rule is gone (service.yaml).
|
||||||
|
# The no-host catch-all stays, so http://185.19.28.170/ still answers —
|
||||||
|
# the name itself dies when its A record is removed at Infomaniak.
|
||||||
|
# 2. The orphan TLS secret for mcp.shorashim.ch is deleted.
|
||||||
|
# 3. Gitea APP_NAME "Shorashim" → "Bikoret" (gitea-public-patch.yaml; one restart).
|
||||||
|
set -euo pipefail
|
||||||
|
REPO="${REPO:-$HOME/bikoret}"
|
||||||
|
cd "$REPO"
|
||||||
|
echo "== 1/3 ingress without the shorashim.ch rule"
|
||||||
|
kubectl apply -f deploy/k8s/service.yaml
|
||||||
|
echo "== 2/3 orphan certificate secret for mcp.shorashim.ch"
|
||||||
|
kubectl -n shorashim delete secret gitea-mcp-tls --ignore-not-found
|
||||||
|
echo "== 3/3 Gitea brand → Bikoret"
|
||||||
|
kubectl -n temple-council patch deploy gitea --patch-file deploy/k8s/gitea-public-patch.yaml
|
||||||
|
kubectl -n temple-council rollout status deploy/gitea --timeout=180s
|
||||||
|
echo "== verify"
|
||||||
|
fail=0
|
||||||
|
hosts=$(kubectl get ingress -A -o jsonpath='{range .items[*]}{range .spec.rules[*]}{.host}{" "}{end}{end}')
|
||||||
|
case " $hosts " in *" shorashim.ch "*) echo "FAIL ingress still lists shorashim.ch"; fail=1;; *) echo "ok no ingress rule for shorashim.ch";; esac
|
||||||
|
case "$(kubectl get secret -A -o name | grep -c 'gitea-mcp-tls$' || true)" in 0) echo "ok gitea-mcp-tls secret gone";; *) echo "FAIL gitea-mcp-tls secret remains"; fail=1;; esac
|
||||||
|
title=$(curl -sS -m 15 https://git.bikoret.ch/ | grep -o -m1 '<title>[^<]*</title>' || echo none)
|
||||||
|
case "$title" in *Bikoret*) echo "ok gitea title: $title";; *) echo "FAIL gitea title: $title"; fail=1;; esac
|
||||||
|
case "$(curl -sS -m 15 -o /dev/null -w '%{http_code}' https://bikoret.ch/kodesh/health || echo err)" in 200) echo "ok bikoret.ch still healthy";; *) echo "FAIL bikoret.ch health"; fail=1;; esac
|
||||||
|
exit $fail
|
||||||
Reference in new issue
Block a user