Files
kontra/.pi/memory-vault/packs/kontra-day/80-sessions/rich-discovery-admin-kontra-lab-audasmedia-com-au-2026-09-08.md
sam 0876512f1c feat: employer-showcase README with architecture map + publish to maps.lab; Mermaid + Archify project diagrams
- docs/kontra-architecture.mmd (mermaid source) + rendered PNG/SVG
- docs/kontra-architecture-map.html (interactive Archify, validated + visual-checked)
- docs/architecture.md (doc with embedded mermaid)
- README.md (showcase: stack, content model, design system, deploy, security)
- published docs/ to https://maps.lab.audasmedia.com.au/kontra_day/docs/

[secret-scan: skip - false positive on generated mermaid SVG path data]
2026-09-09 11:49:52 +10:00

3.8 KiB

type: session id: session.kontra-day.rich-discovery-admin-kontra-lab-audasmedia-com-au-2026-09-08 title: Rich discovery: admin.kontra.lab.audasmedia.com.au 2026-09-08 21:22:57 status: active source_of_truth: false freshness: current last_reviewed: 2026-09-08 tags: - pack/kontra-day - agent-memory/session - autolearn - rich-discovery - repo/admin-kontra-lab-audasmedia-com-au

Rich discovery: admin.kontra.lab.audasmedia.com.au 2026-09-08 21:22:57

Sanitized rich discovery snapshot captured automatically from the completed turn.

Source paths observed

  • 2026/09/08
  • var/www/kontra_day/content
  • web/assets/kontra.css
  • .env/token/secret
  • admin.kontra.lab.audasmedia.com.au/web/admin
  • Obsidian/Neovim/Decap
  • etc/systemd/system
  • home/sam/obsidian/kontra_content

Final answer snapshot

Kontra is fully deployed and live on your home network. Here's the complete picture.

✅ Live now

URL What
https://kontra.lab.audasmedia.com.au The site — front page, articles, subjects, all 200
https://admin.kontra.lab.audasmedia.com.au/web/admin/ Decap CMS editor (content management)

Architecture (final, matching your conventions)

Gitea (sam/kontra-content, .35) ← push from Obsidian/Neovim/Decap
        │  30s pull loop (git pull) inside container
        ▼
Kontra Docker container (.13, :8600) ← sam:users content at /var/www/kontra_day/content
        ▲
master Caddy (.35) → reverse_proxy 192.168.20.13:8600  (direct, no .13-Caddy hop)

What was handled (including the messy middle)

  • NixOS lesson: .13's /etc/systemd/system is read-only (Nix-managed) — I initially added systemd units + Caddy vhosts to configuration.nix, but you correctly pushed back. We reverted it cleanly (backup configuration.nix.bak-kontra-20260908-195305 restored) and moved to Docker, matching where-woof/outline.
  • Autosync bugs found & fixed (all verified locally first):
    1. /bin/bash missing on NixOS → moved to Docker
    2. build: ./Dockerfile compose mistake → {context, dockerfile}
    3. git "dubious ownership" on mounted repo → safe.directory
    4. Restart killed wrong PID → nested subshell; rewrote entrypoint so exec makes $! the real binary
    5. Stale-HEAD gate skipped pulls → always pull, compare PREV/CUR
  • Verified live on .13: pushed a new article → live in 30s (200); deleted it → 404 in 30s. Clean restarts, no port-bind errors.

Housekeeping

  • Gitea deploy token is in the gitignored .env — confirmed nothing sensitive is in any repo.
  • Test articles removed from content; home page serving your real subjects.
  • Obsidian vault ready: /home/sam/obsidian/kontra_content → content repo (opens as a small vault; Obsidian Git plugin for push).

Remaining from the original plan (optional follow-ups)

  • Phase 5: DNS/email — kontra.lab.audasmedia.com.au resolves via existing wildcard; public DNS (kontra.com?) + email later per that plan.
  • Decap git-gateway auth (currently config is present; git-gateway OAuth on Gitea would be the login step).
  • Backups integration (Phase 6) — the content repo is already in Git (Gitea-backed); .13 Docker volumes/Borg are separate.

Want me to keep going (Decap login setup, or Phase 5 DNS), or rest here?

Evidence

  • Confidence: 86%
  • Reason: Preserve full sanitized discovery detail from a rich investigation turn