118 lines
4.6 KiB
Markdown
118 lines
4.6 KiB
Markdown
# 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
|