[2026-05-23] wiki curation: kraken-network, wireguard-vpn, research queue, log, index
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
---
|
||||
date: 2026-05-23
|
||||
status: complete
|
||||
---
|
||||
# Proactive Research — 2026-05-23
|
||||
|
||||
## Researched
|
||||
- **Topic:** WireGuard VPN — Eagle to Kraken
|
||||
- **Page:** [[wiki/tech/wireguard-vpn]]
|
||||
- **Confidence:** high
|
||||
- **Key finding:** kraken-network.md had only 3 lines on WireGuard; the actual
|
||||
topology is a two-interface VPS relay with SNAT, a LaunchDaemon auto-connect
|
||||
script on Eagle (StartInterval, not WatchPaths — avoids a DNS race condition),
|
||||
and a scoped /etc/resolver/kraken for Time Machine hostname resolution.
|
||||
|
||||
## Validation fixes
|
||||
- none
|
||||
|
||||
## Gaps found
|
||||
- 3 new items added to research-queue.md (queue was missing — created today)
|
||||
1. Executor Architecture v2 (executor-runner.sh + executor-analyzer.sh)
|
||||
2. Executor Security Incident 2026-05-11 (Asana boundary crossing)
|
||||
|
||||
## Stats
|
||||
- Web searches: 0 (all source material in vault)
|
||||
- Wiki page: created (tech/wireguard-vpn.md)
|
||||
- Pages updated: 1 (tech/kraken-network.md — WireGuard section expanded + link)
|
||||
- Queue remaining: 2
|
||||
- Validation issues fixed: 0
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: Wiki Index
|
||||
updated: '2026-05-23'
|
||||
---
|
||||
|
||||
# Wiki Index
|
||||
|
||||
> Content catalog. Every wiki page listed with a one-line summary.
|
||||
> Read this first to find relevant pages for any query.
|
||||
> Last updated: 2026-05-23 | Total pages: 28
|
||||
|
||||
## Personal OS — Core
|
||||
|
||||
- [[personal-os-purpose]] — Why the system exists; design principles; the four agents
|
||||
- [[personal-os-architecture]] — Full technical architecture: agents, data flow, file locations, DB tables
|
||||
- [[personal-os-agent-rules]] — Eagle's operating rules, knowledge sources, allowed writes, cron schedule
|
||||
- [[personal-os-self-modification]] — How Eagle and Alex can safely evolve the system
|
||||
- [[personal-os-sync-pipeline]] — sync.js + generate-status.js: how Asana data flows into status.md
|
||||
- [[personal-os-schema]] — PostgreSQL schema: tasks, stories, task_edges, wiki_pages, memory_store
|
||||
|
||||
## Work / DDG
|
||||
|
||||
- [[ddg-asana-workflow]] — DDG Asana conventions: task sources, types, status labels, weekly rhythms
|
||||
|
||||
## Vault & Knowledge Infrastructure
|
||||
|
||||
- [[vault-filling-guide]] — Directory map, file naming, frontmatter conventions, Eagle write protocol
|
||||
- [[wiki-ingest-process]] — Hash-based incremental synthesis: how raw/ files become wiki pages
|
||||
- [[obsidian-mcp-wrapper]] — Proxy wrapper fixing 4 obsidian-mcp bugs (ZodError, race, UTF-8, watchdog)
|
||||
|
||||
## Infrastructure
|
||||
|
||||
- [[htpc-bazzite-proton]] — HTPC Bazzite: Windows game Proton compatibility status and fix recipes
|
||||
|
||||
## Infrastructure — tech/
|
||||
|
||||
- [[tech/wireguard-vpn]] — WireGuard split-tunnel: Eagle↔VPS↔Kraken topology, auto-connect, Time Machine, DNS
|
||||
- [[tech/kraken-network]] — Kraken SSH (192.168.1.15), WireGuard topology, media volume paths
|
||||
- [[tech/gitea-config]] — Gitea URL, user, API endpoint, token (eagle-reflect)
|
||||
- [[tech/vault-namespace]] — Rules for where notes live: namespace assignments, directory map
|
||||
- [[tech/media-pipeline-pitfalls]] — Torrent rename pitfall, torrent-set-location usage
|
||||
- [[tech/htpc-steam-emulators]] — Bazzite HTPC Steam shortcuts, emulator save paths, gamepad config
|
||||
- [[tech/truenas-inpxer]] — Books at /mnt/RED_2TB/storage/books/, inpxer setup
|
||||
- [[tech/jellyfin-config]] — Jellyfin URL, users (alex/lisa), API key, DB stop-first rule
|
||||
- [[tech/arr-stack-kraken]] — Prowlarr→Radarr+Sonarr→Transmission→Jellyfin pipeline + API keys
|
||||
- [[tech/hermes-docker-kraken]] — Hermes runs via docker run (not compose), launch pattern
|
||||
- [[tech/htpc-kodi-layout]] — Kodi layout, WoL MAC, NFS sources
|
||||
- [[tech/reflect-skip-fuse]] — New SwiftUI View requires manual Kotlin stub in 2 places
|
||||
- [[tech/arr-stack-taiga]] — Taiga arr stack (2026-05-20), config, router.py location
|
||||
|
||||
## Personal Projects
|
||||
|
||||
- (none yet — Reflect app to be added)
|
||||
|
||||
## Concepts
|
||||
|
||||
- [[concepts/vault-agent-integration]] — How Eagle, wiki-ingest, and obsidian-mcp work as a unified vault layer
|
||||
|
||||
## Meta
|
||||
|
||||
- [[SCHEMA]] — Domain rules, tag taxonomy, frontmatter conventions
|
||||
- [[vault-filling-guide]] — Listed above; also describes vault structure
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: Wiki Log
|
||||
updated: '2026-05-23'
|
||||
type: meta
|
||||
---
|
||||
|
||||
# Wiki Log
|
||||
|
||||
> Chronological record of all wiki actions. Append-only.
|
||||
> Format: `## [YYYY-MM-DD] action | subject`
|
||||
> Actions: ingest, update, query, lint, create, archive, delete, bootstrap
|
||||
> Rotate when this file exceeds 500 entries: rename to log-YYYY.md, start fresh.
|
||||
|
||||
## [2026-04-27] bootstrap | Initial wiki pages from Personal OS docs
|
||||
- Created from raw/ symlinks: personal-os-architecture, personal-os-purpose,
|
||||
personal-os-agent-rules, personal-os-self-modification, personal-os-sync-pipeline,
|
||||
personal-os-schema, ddg-asana-workflow, vault-filling-guide, wiki-ingest-process
|
||||
|
||||
## [2026-05-09] create | obsidian-mcp-wrapper
|
||||
- Documented obsidian-mcp-wrapper.js: 4 bugs fixed, architecture, config
|
||||
|
||||
## [2026-05-13] bootstrap | wiki-curation cron job started on Eagle
|
||||
- Eagle Hermes cron: daily 02:00, skill llm-wiki
|
||||
- WIKI_PATH=~/obsidian/wiki configured
|
||||
|
||||
## [2026-05-23] research | WireGuard VPN topology
|
||||
- Created: tech/wireguard-vpn.md — split-tunnel Eagle↔VPS↔Kraken, auto-connect, Time Machine, DNS
|
||||
- Source: family/how-to/wireguard-vpn.md
|
||||
- Created: research-queue.md with 3 gap items detected
|
||||
- Updated: index.md (count 27→28, added wireguard-vpn entry)
|
||||
|
||||
## [2026-05-23] bootstrap | SCHEMA.md, index.md, log.md created
|
||||
- Navigation files were missing; created with 12 existing pages catalogued
|
||||
- Files created: SCHEMA.md, index.md, log.md
|
||||
- Created: htpc-bazzite-proton.md (from family/projects/htpc-windows-games-fix.md)
|
||||
- Created: concepts/vault-agent-integration.md (synthesis)
|
||||
- Lint: no conflicts, no inbox items, no sessions to crystallize
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Research Queue
|
||||
updated: '2026-05-23'
|
||||
type: meta
|
||||
---
|
||||
|
||||
# Research Queue
|
||||
|
||||
> Topics detected as gaps in the wiki — mentioned in vault but no wiki page.
|
||||
> Ordered by priority. Completed items move to ## Completed with link + date.
|
||||
|
||||
## Queue
|
||||
|
||||
- [ ] Executor Architecture v2 — executor-runner.sh + executor-analyzer.sh + state machine + DB schema
|
||||
- [ ] Executor Security Incident — 2026-05-11 Asana boundary crossing, control failure, credential inventory
|
||||
|
||||
## Completed
|
||||
|
||||
- [x] WireGuard VPN → [[tech/wireguard-vpn]] (2026-05-23)
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: Kraken Network & Infra
|
||||
created: '2026-05-23'
|
||||
updated: '2026-05-23'
|
||||
type: tech
|
||||
namespace: personal
|
||||
tags: [infra, kraken, ssh, wireguard, network]
|
||||
related: "[[arr-stack-kraken]]"
|
||||
---
|
||||
|
||||
# Kraken Network & Infra
|
||||
|
||||
## SSH Access
|
||||
|
||||
```
|
||||
ssh kraken
|
||||
```
|
||||
|
||||
IP: `192.168.1.15` (wlan0, primary). SSH alias `kraken` resolves via `~/.ssh/config`.
|
||||
|
||||
## WireGuard Topology
|
||||
|
||||
Split-tunnel: Eagle ↔ VPS ↔ Kraken. Full details: [[tech/wireguard-vpn]].
|
||||
|
||||
- Eagle: `10.99.0.2`, Kraken: `10.99.1.2`, VPS relay: `10.99.0.1`/`10.99.1.1`
|
||||
- `wg-auto.sh` on Eagle (LaunchDaemon) — up when off home Wi-Fi, down at home
|
||||
- VPS as relay; two interfaces (wg0/wg1) avoid hairpin forwarding
|
||||
|
||||
## Media Volume Mount Paths
|
||||
|
||||
Docker containers on Kraken mount media from NAS over NFS/SMB.
|
||||
Paths were documented here — check docker-compose files in
|
||||
`/opt/media-toolbox-kraken` for current mount config.
|
||||
@@ -0,0 +1,120 @@
|
||||
---
|
||||
title: WireGuard VPN — Eagle to Kraken
|
||||
created: '2026-05-23'
|
||||
updated: '2026-05-23'
|
||||
type: tech
|
||||
namespace: personal
|
||||
tags: [infra, kraken]
|
||||
sources: [family/how-to/wireguard-vpn.md]
|
||||
confidence: high
|
||||
---
|
||||
|
||||
# WireGuard VPN — Eagle to Kraken
|
||||
|
||||
Split-tunnel VPN connecting Eagle (Mac M4, home) to Kraken (RPi5, home) via
|
||||
a VPS relay. Enables SSH to Kraken from anywhere and routes Time Machine
|
||||
backups over the tunnel. Two VPS interfaces avoid hairpin forwarding.
|
||||
|
||||
## Topology
|
||||
|
||||
```
|
||||
Eagle (10.99.0.2) ←→ wg0 VPS (10.99.0.1) ←→ wg1 VPS (10.99.1.1) ←→ Kraken (10.99.1.2)
|
||||
:51820 :51821
|
||||
```
|
||||
|
||||
SNAT rewrites source address: Eagle packets arrive at Kraken with src
|
||||
`10.99.1.1` (VPS wg1), not Eagle's `10.99.0.2`. FORWARD runs wg0→wg1
|
||||
on the VPS with nftables.
|
||||
|
||||
## VPN Addresses
|
||||
|
||||
| Node | VPN IP |
|
||||
|------|--------|
|
||||
| VPS wg0 | 10.99.0.1 |
|
||||
| VPS wg1 | 10.99.1.1 |
|
||||
| Eagle | 10.99.0.2 |
|
||||
| Kraken | 10.99.1.2 |
|
||||
|
||||
`kraken` hostname resolves via dnsmasq on VPS (`DNS = 10.99.0.1` in Eagle's
|
||||
wg0.conf). DNS is scoped to the `kraken` domain only (see DNS section).
|
||||
|
||||
## Persistence
|
||||
|
||||
| Component | Node | How it survives reboot |
|
||||
|-----------|------|------------------------|
|
||||
| wg-quick@wg0 + wg-quick@wg1 | VPS | systemd enabled |
|
||||
| PostUp FORWARD + SNAT rules | VPS | embedded in `/etc/wireguard/wg0.conf` |
|
||||
| nftables (10.99.0.0/16 forward) | VPS | `/etc/nftables.conf`, systemd enabled |
|
||||
| dnsmasq (`kraken` → 10.99.1.2) | VPS | `/etc/dnsmasq.d/vpn-hosts.conf`, systemd enabled |
|
||||
| wg-quick@wg0 | Kraken | systemd enabled |
|
||||
| wg-auto LaunchDaemon | Eagle | `/Library/LaunchDaemons/top.eagle.wg-auto.plist` |
|
||||
|
||||
## Auto-Connect on Eagle
|
||||
|
||||
`/usr/local/bin/wg-auto.sh` polls every 30 seconds via launchd
|
||||
(`StartInterval`, **not** WatchPaths):
|
||||
|
||||
- At home (router MAC `f0:79:59:77:9b:70` visible on ARP) → `wg-quick down`
|
||||
- Off home network → `wg-quick up`
|
||||
|
||||
**Why StartInterval and not WatchPaths:** WatchPaths triggered a race —
|
||||
`wg-quick down` changes DNS via `networksetup`, which writes to
|
||||
`/Library/Preferences/SystemConfiguration/`, which re-fires launchd,
|
||||
tearing the tunnel down immediately after connecting.
|
||||
|
||||
## DNS (Scoped Resolver)
|
||||
|
||||
wg0.conf uses **no global `DNS =`**. PostUp/PostDown manage a
|
||||
macOS scoped resolver for the `kraken` domain only:
|
||||
|
||||
```
|
||||
PostUp = mkdir -p /etc/resolver && \
|
||||
echo "nameserver 10.99.0.1" > /etc/resolver/kraken && \
|
||||
killall -HUP mDNSResponder
|
||||
PostDown = rm -f /etc/resolver/kraken && killall -HUP mDNSResponder
|
||||
```
|
||||
|
||||
Result: only `kraken` resolves via VPS dnsmasq. Global DNS and Wi-Fi IP
|
||||
are untouched — prevents address-bar breakage during tunnel transitions.
|
||||
|
||||
## Time Machine
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Old destination (broken) | `smb://timemachine@kraken._smb._tcp.local./TimeMachine` |
|
||||
| New destination (working) | `smb://timemachine@kraken/TimeMachine` |
|
||||
|
||||
mDNS (`_smb._tcp.local`) doesn't work off the local LAN. VPN DNS (`kraken`
|
||||
→ 10.99.1.2 via dnsmasq) works from anywhere. Container on Kraken:
|
||||
`mbentley/timemachine:smb`, `restart: unless-stopped`.
|
||||
|
||||
## Public Keys
|
||||
|
||||
| Node | Public Key |
|
||||
|------|------------|
|
||||
| VPS wg0 | `6W6hSw0JFLm0BbyeNp1g7wF7dKKTZmGvPRdir68mz0w=` |
|
||||
| VPS wg1 | `ssRV2497NQ3Lfzvx/FLO0jDlcCXdK/RReJQ36i0yuR8=` |
|
||||
| Eagle | `dDgIjBUNguodOHWoz7iFsImvKhteodHcFWM8mMe4UiE=` |
|
||||
| Kraken | `8kIdCKMIoMsW09/aQX6+pU0SS/rN4PysJL59w17eGRg=` |
|
||||
|
||||
## Diagnostics
|
||||
|
||||
```bash
|
||||
# Eagle — check tunnel state
|
||||
sudo wg show
|
||||
ping kraken
|
||||
|
||||
# VPS
|
||||
ssh root@91.207.28.205 "wg show all"
|
||||
|
||||
# Kraken
|
||||
ssh kraken "sudo wg show"
|
||||
|
||||
# Eagle auto-connect log
|
||||
cat /var/log/wg-auto.log
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [[tech/kraken-network]] — Kraken SSH access, media volume paths
|
||||
- [[personal-os-architecture]] — Eagle hardware, home infra overview
|
||||
Reference in New Issue
Block a user