Skip to main content

Decisions

Decisions

Newest first. Date, decision, rejected alternatives, reason, consequences.

2026-11-05 — Machine brain is a files-first Markdown vault

Decision: Journals, system facts, settings and reference notes live as plain Markdown files in this git repo. Obsidian is the browsing layer. LLMs read and write the files directly. BookStack (pdb.seabee.me) becomes a published mirror, not the source of truth.

Rejected:

  • BookStack-first — already has 230 pages and a web UI, but content is trapped in MySQL; every LLM edit needs a token and an API call, and agents cannot rg or git diff it.
  • Dedicated PKM app (TriliumNext/SiYuan/Anytype) — richer features, but another service to run and back up, still database-backed, still API-shaped for LLMs.

Reason: The bottleneck was findability and LLM access, not note features. Files solve both with zero glue: Obsidian for humans, plain paths for agents.

Consequences:

  • Vault lives at /home/conor/Documents/brain (text only). Moved there from Sync/brain on 2026-11-05; git history came with it.
  • Not synced by Syncthing and no remote yet — Conor will add it to his own git server. Until then the only copy is this machine's disk.
  • 230 BookStack pages migrate here; images stay referenced, not embedded.
  • Sync/Stuff stays as the heavy-file vault; not merged.
  • One-way publish back to pdb.seabee.me is optional and later.

2026-11-05 — vps2 replaces the old vps as the public edge

Decision: Everything the old vps (203.57.114.42 / 100.64.0.2) did moves to vps2 (187.52.126.150 / 100.64.0.16), and the old box is retired: public Caddy edge, HAProxy mail ingress, outbound Postfix relay, and headscale. The Ansible repo now treats the vps2 Caddyfile as the authoritative edge.

Why: One VPS instead of two, and the replacement already carries the workloads (marketdata, strata, Orca) that were spread across cbfarm and cbcore.

Alternatives rejected:

  • Keep the old vps as the mail edge only: two boxes to patch, and the vps was already scheduled for deletion.
  • Leave mail on the residential connection: cbcore's route (125.253.46.252) is on the Abusix blocklist, which is why the relay exists at all.

Consequences:

  • Every A record that pointed at 203.57.114.42 moves to 187.52.126.150; mail.seabee.me needs a PTR set in the Hostinger panel.
  • mailcow's relayhost becomes [100.64.0.16]:25 at cutover, and dovecot's haproxy_trusted_networks trusts both tailnet addresses through the transition.
  • Certificate issuance starts over on the new IP (Caddy re-requests on first request per hostname).