clawd/memory/2026-01-27.md

4.6 KiB

2026-01-27

Swiss VPS Setup Continued

DNS Record Added

  • Created A record: zurich.inou.com → 82.22.36.202
  • Added via Openprovider control panel (browser automation)
  • TTL: 1 hour
  • Propagated immediately (verified with dig)

VPS Details (from earlier session)

  • Hostname: hostkey50304 / zurich.inou.com
  • IP: 82.22.36.202
  • Location: Zürich, Switzerland (likely Equinix ZH, Josefstrasse 225)
  • Upstream: Cogent Communications
  • Specs: 4 vCore, 6GB RAM, 120GB SSD
  • OS: Fresh Debian install
  • Purpose: Security infrastructure - geographic diversity for monitoring, SOC2 compliance
  • NOT for hosting inou.com (that stays on Johan's home IP 47.197.93.62)

Uptime Kuma Setup

  • Installed Docker + Docker Compose on zurich.inou.com
  • Deployed Uptime Kuma at http://zurich.inou.com:3001
  • Created admin account (johan / standard password)
  • Webhook Integration:
    • Configured Clawdbot hooks to receive Kuma alerts
    • Webhook URL: http://100.123.216.65:18789/hooks/kuma?token=kuma-alert-token-2026
    • Alerts forwarded to Signal (+31634481877)
    • Template: 🚨 **Uptime Kuma Alert**\n\n{{body.msg}}
  • First monitor: inou.com (HTTPS, 60s interval)
  • All alerts configured to auto-enable for new monitors

Webhook Template Fix (09:47 UTC)

  • Initial alert at 09:43 came through with empty body.msg (monitor resume event)
  • Updated Clawdbot hook template with fallback logic:
    • Shows body.msg if present
    • Falls back to "Monitor: {name} | Status: UP/DOWN" otherwise
  • inou.com confirmed UP at 100%

Updated Files

  • TOOLS.md - added zurich.inou.com hostname and location details
  • Clawdbot config - added hooks.mappings for Kuma webhook → Signal delivery

Task Queue Created (09:58 UTC)

Johan assigned major work queue. Written to memory/tasks-queue.md.

Immediate Tasks:

  1. X/Twitter Go Scraper - Build headless browser tool in Go (chromedp/rod) for timeline reading, search. Read-only. Browser approach failed (bot detection).
  2. Port scan Zurich → Home - nmap from 82.22.36.202 → 47.197.93.62
  3. OpenVAS SOC2 - Container running on Zurich, needs config + scans
  4. Flutter work - Project at /home/johan/dev/inou/app/:
    • Separate header/footer components
    • Login flow with biometric
    • Static pages: landing, privacy, security, FAQ, DPA, connect, invite
    • Framework for deep pages (dashboard, dossier)
    • Critical: Mandatory login on every app activation, biometric at start

Work Strategy:

  • Use Johan's sleep windows (5:15am-10am ET, 7:30pm-10:15pm ET)
  • Async progress, only ping for blockers/completions
  • Every minute counts

Config Updates:

  • Added Brave API key to Clawdbot config
  • Claude Code updated 2.1.19 → 2.1.20

Work Session: 10:00-10:17 UTC (Johan sleeping)

Port Scan Complete

  • Full TCP scan from Zurich → Home (47.197.93.62)
  • Results saved to memory/portscan-home-20260127.md
  • Open ports: 80 (Caddy), 443 (Caddy TLS), 2283 (Immich), 8123 (Home Assistant)
  • SOC2 flag: Home Assistant publicly exposed on 8123

OpenVAS Ready

  • Container running on zurich.inou.com:9392
  • Credentials: admin/admin
  • Ready for vulnerability scans

Flutter Work (Major Progress)

New files created (all compile with 0 errors):

Layout/Scaffolding:

  • lib/design/widgets/inou_header.dart - Responsive header with nav, auth, mobile menu
  • lib/design/widgets/inou_footer.dart - Footer with link groups
  • lib/design/widgets/inou_page.dart - Three page scaffolds (public, auth, auth-flow)
  • lib/core/router.dart - Central routing setup

Auth Pages:

  • lib/features/auth/login_page.dart - Login with biometric support skeleton
  • lib/features/auth/signup_page.dart - Full signup flow with DOB, sex, terms

Static Pages (all 7 complete):

  • lib/features/static/landing_page.dart - Marketing landing page
  • lib/features/static/security_page.dart - Security features
  • lib/features/static/privacy_page.dart - Privacy policy
  • lib/features/static/faq_page.dart - FAQ with expandable items
  • lib/features/static/dpa_page.dart - Data Processing Agreement
  • lib/features/static/connect_page.dart - Contact form
  • lib/features/static/invite_page.dart - Invite friends flow

Updated:

  • lib/design/widgets/inou_input.dart - Added validator, suffixIcon, autofillHints, maxLines
  • lib/design/widgets/widgets.dart - Updated exports
  • lib/main.dart - Now uses central router

Still TODO:

  • X/Twitter Go scraper (not started - lower priority)
  • OpenVAS scans (container ready, need to run)
  • Integrate Flutter auth with Go backend
  • Add local_auth for real biometric
  • Dashboard/Dossier pages