feat: add tailscale, vault, k8s tool guides; onboarding + machines docs; fill out claude.md; sync README, llm.txt, manifest
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# Tailscale Network Guide
|
||||
|
||||
All machines in Jacob Mathison's environment are connected via Tailscale. This is the backbone of cross-machine access — SSH, kittens WebSocket bridges, Gitea, and local services all route over it.
|
||||
|
||||
---
|
||||
|
||||
## Tailscale Account
|
||||
|
||||
- **Account:** `silmaai2000@` (silmaai Tailscale account)
|
||||
- **Network name:** silmaai2000's tailnet
|
||||
|
||||
---
|
||||
|
||||
## Machine Inventory
|
||||
|
||||
| Hostname | Tailscale IP | OS | Role | Status |
|
||||
|----------|-------------|-----|------|--------|
|
||||
| `macbook-pro-3` (Tabitha) | `100.76.192.116` | macOS arm64 | Silma AI primary — OCPlatform, k8s | ✅ Online |
|
||||
| `orson` | `100.79.253.19` | macOS arm64 | Gitea host, CI runner (act_runner), Hagia attached | ✅ Online |
|
||||
| `orson-macbook-pro` | `100.108.57.113` | macOS arm64 | Orson second interface | ✅ Online |
|
||||
| `tabitha-macbook-pro` | `100.120.22.37` | macOS arm64 | Tabitha second interface | — |
|
||||
| `ozymandiass-macbook-pro` (Ozymandias) | `100.115.222.5` | macOS x86_64 | Travel laptop / coding box | — Offline |
|
||||
| `hunter-wsl2` | `100.118.15.20` | Linux (WSL2) | Hunter Albert's dev machine | — Offline |
|
||||
| `joseph-bro-windows` | `100.123.22.58` | Windows | Aaron Pressey's machine (GoatLord) | — Offline |
|
||||
| `mimir-mme3l` (Mimir) | `100.100.117.5` | Linux | Mimir server (Hunter's AI bridge box) | — Offline |
|
||||
|
||||
---
|
||||
|
||||
## Verify Connectivity
|
||||
|
||||
```bash
|
||||
# Check your own Tailscale IP and status
|
||||
tailscale ip
|
||||
tailscale status
|
||||
|
||||
# Ping a machine
|
||||
ping 100.79.253.19 # Orson/Hagia/Gitea host
|
||||
ping 100.76.192.116 # Tabitha (Silma primary)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Connecting to Machines
|
||||
|
||||
### Via kittens WebSocket bridge (preferred for remote exec)
|
||||
|
||||
All machines run `silma-kittens` — a WebSocket server that allows remote command execution without needing SSH keys.
|
||||
|
||||
```python
|
||||
import asyncio, json, websockets
|
||||
|
||||
async def remote(ip, cmd, token='silma-kittens-2026', timeout=20):
|
||||
url = f'ws://{ip}:8765/?token={token}'
|
||||
async with websockets.connect(url, open_timeout=5) as ws:
|
||||
await ws.recv()
|
||||
await ws.send(json.dumps({'type': 'exec', 'id': '1', 'cmd': cmd}))
|
||||
r = json.loads(await asyncio.wait_for(ws.recv(), timeout=timeout))
|
||||
return r.get('stdout', ''), r.get('stderr', '')
|
||||
|
||||
# Orson
|
||||
out, err = asyncio.run(remote('192.168.12.138', 'hostname'))
|
||||
|
||||
# Or via Tailscale IP
|
||||
out, err = asyncio.run(remote('100.79.253.19', 'whoami'))
|
||||
```
|
||||
|
||||
**Kittens token:** `silma-kittens-2026` (same on all machines)
|
||||
**Port:** `8765`
|
||||
|
||||
### Creon (Hunter's static ngrok tunnel)
|
||||
Hunter's machine uses a permanent ngrok domain:
|
||||
- **URL:** `wss://creon.ngrok.app/?token=3ClCIkJOCu1Gd5RO2PA4JHRD1ji_soHXcU4c3vMCbvEBFsKi`
|
||||
- Requires `ngrok-skip-browser-warning: true` header
|
||||
|
||||
---
|
||||
|
||||
## Key Service Endpoints (via Tailscale)
|
||||
|
||||
| Service | Address | Notes |
|
||||
|---------|---------|-------|
|
||||
| Gitea | `http://100.79.253.19:3000` | Self-hosted git on Orson/Hagia |
|
||||
| Tabitha k8s services | `localhost:*` when port-forwarded | See `tools/k8s.llm.md` |
|
||||
|
||||
---
|
||||
|
||||
## /etc/hosts Entries (Tabitha)
|
||||
|
||||
```
|
||||
100.79.253.19 Theodora Orson Hagia
|
||||
```
|
||||
|
||||
These aliases are set on Tabitha — `Orson`, `Hagia`, `Theodora` all resolve to `100.79.253.19`.
|
||||
|
||||
---
|
||||
|
||||
## Notes for AI Agents
|
||||
|
||||
- If Tailscale is not connected, cross-machine operations will fail silently — verify with `tailscale status` first
|
||||
- Gitea and kittens are both reachable via LAN IP (`192.168.12.x`) or Tailscale IP (`100.x.x.x`) when on the same network
|
||||
- Offline machines have kittens installed but the tunnel won't be up — check `tailscale status` before trying
|
||||
- GoatLord (`joseph-bro-windows`) also has a static ngrok URL: `exsufflicate-ineradicable-cortez.ngrok-free.app` (port 8765)
|
||||
Reference in New Issue
Block a user