mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-10 12:47:04 +00:00
Turn a NAT/edge node into a full Tor v3 onion node: DOMAIN_PRIMARY becomes the node's .onion, so the whole stack (web, SSO, LDAP, CA) resolves onion domains and is reachable over Tor without a public IP, port forwarding, VPS or DynDNS. - utils/tor_onion.py: offline v3 key mint (address + HiddenServiceDir key files), verified against a known key->address test vector. - cli .../inventory/onion: `init-env` pre-mints the node onion, writes INFINITO_DOMAIN(+_RE) into .env and authoritative key files into .onion-identity/hs (idempotent). The onion is a deploy-time input; no in-deploy random minting (that would not match the pre-set domain). - roles/svc-net-tor: Tor sidecar (Debian-built, network_mode: host), installs the minted keys, torrc with one node HiddenService + a SOCKS proxy restricted to loopback/DiD ranges. files/test.sh probes every served onion domain over the Tor SOCKS. - tls: .onion -> TLS off (onion v3 crypto is the transport auth; LE cannot sign .onion) + app-level flavor override. - harness/DNS: coredns resolves the onion zone via INFINITO_DOMAIN; skip the clearnet DNS sanity check for onion; raise nginx server_names_hash_bucket_size to 128 for long onion server_names. - test-e2e-playwright: gated browser SOCKS proxy (PLAYWRIGHT_PROXY) + navigation/action timeouts so specs reach .onion over Tor and fail fast; the onion node points it at the Tor SOCKS. - docs/requirements/031: full design. Verified: dashboard + SSO (Keycloak) + 9 apps reachable over Tor (HTTP 200 through the node hidden service). make test green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cross-role tasks
This folder contains the cross role tasks