# reuse-surface Service — Kubernetes Deployment Companion to **RAILIANCE-WP-0007** (`railiance-apps` Helm release). ## Image Repository: `gitea.coulomb.social/coulomb/reuse-surface` (Gitea org `coulomb`, repo `reuse-surface`). ```bash docker build -t gitea.coulomb.social/coulomb/reuse-surface: . docker push gitea.coulomb.social/coulomb/reuse-surface: ``` ## Required environment | Variable | Purpose | |---|---| | `REUSE_SURFACE_TOKEN` | Bearer token for write API | | `REUSE_SURFACE_DB` | SQLite path (default `/data/reuse.db`) | | `REUSE_SURFACE_CACHE_DIR` | Remote index cache (default `/data/cache`) | Mount a PVC at `/data` for persistence. Inject secrets via Kubernetes Secret `reuse-surface-env`. ## Probes - Liveness/readiness: `GET /health` on port `8000` ## Browser landing page Production ingress routes HTTPS `/` to a static landing Deployment (`reuse-surface-landing`, **RAILIANCE-WP-0008**). API paths are unchanged: - `/health` and `/v1/*` → hub service container - `/` → informational HTML for browser visitors (no login, no secrets) Agents and CLI clients should target `/health` and `/v1/*` only, not `/`. ## Public URL and DNS | Item | Value | |---|---| | URL | `https://reuse.coulomb.social` | | DNS A record | **`92.205.62.239`** (Railiance01 production) | CoulombCore (`92.205.130.254`) held a bootstrap deploy; production release uses `KUBECONFIG=~/.kube/config-hosteurope`. Verify propagation: ```bash dig +short reuse.coulomb.social A # must return 92.205.62.239 ``` ## Client configuration ```bash export REUSE_SURFACE_URL=https://reuse.coulomb.social export REUSE_SURFACE_TOKEN= reuse-surface hub status ```