5.1 KiB
5.1 KiB
2026-02-17
Password Manager Migration: Proton Pass → Vaultwarden
- Leaving Proton ecosystem (mail → Stalwart) means losing Proton Pass too
- Decision: migrate to Vaultwarden (already running at vault.inou.com)
- Steps:
- Johan creates account at https://vault.inou.com
- Export from Proton Pass (Settings → Export → CSV or JSON)
- Import into Vaultwarden (compatible with Bitwarden import format)
- Disable signups after account created (set SIGNUPS_ALLOWED=false in docker-compose)
- Install Bitwarden app on iPhone, Mac, browser extension — point server to https://vault.inou.com
- TODO: Set up rclone backup to GDrive (needs OAuth browser auth on Zurich)
- Fish Audio API key and other secrets should move here from plaintext files
Domain Registrar Migration Plan
- OpenProvider has ~€80 credits remaining
- As domains come up for renewal, transfer to Cloudflare Registrar instead
- URGENT: jongsma.me expires 2026-02-28 — transfer to CF before auto-renewal
- stpetersburgaquatics.com expires 2026-03-13
- Full renewal schedule: zavtra(May), inou(Jun), unbelievable(Jul), x4(Aug), e-consultants(Sep), muskepo.nl(Sep), busel(Oct), localbackup(Oct), johanjongsma(Nov), 851brightwaters(Dec), flourishevents(Jan27), muskepo.com(Jan27), harryhaasjes(Feb27)
DNS Migration
- Changed NS to Cloudflare for ALL 10 remaining domains via OpenProvider API
- OpenProvider API creds:
~/.config/openprovider.env - Cloudflare activation checks triggered, cron job at 4:55 AM to check + add remaining 6
Email Migration
- Added Tanya to Proton Bridge (account #2, pw: dxk6YlYpRgr3Z7fw3BhXDQ)
- Stalwart: all users recreated with
"roles":["user"]— needed for IMAP auth - imapsync working via SSH tunnel (localhost:9930 → zurich:993)
- Tanya sync running in background (/tmp/imapsync_tanya.log)
- K2.5 subagent spawned for Tanya inbox cleanup (envelope metadata only)
Stalwart Fixes
- Self-signed cert added but Stalwart not loading it (ACME override issue)
- SSH tunnel workaround for imapsync (bypasses TLS + firewall)
- UFW on Zurich: allowed all Tailscale traffic (
ufw allow in on tailscale0)
AgenticMail
- Discovered: github.com/agenticmail/agenticmail — MCP layer on Stalwart for AI agents
- 3 days old, 7 stars — too new for production. Bookmarked for later.
- Interesting: SMS/Google Voice integration, outbound PII scanning
BlueBubbles / iMessage
- Mac Mini M4 (2025) is Johan's daily driver, BYO network
- Can run BlueBubbles today — no need to wait for M4 Max laptop
- Setup deferred to tomorrow
M365 → Fully Tablet Alerts (afternoon session)
- Pipeline working: MC detects emails/Teams → K2.5 summarizes → POSTs to Fully dashboard
- K2.5 chat API is broken for formatting — thinking model narrates "The user wants..." instead of following instructions
- K2.5 completions API works perfectly — few-shot prompt with
\nAlert:completion pattern,stop:["\n"] - Johan's messages filtered out — fixed DisplayName check (was checking URL field before)
- Conversation-aware: Johan's replies auto-clear Fully alerts for that Teams conversation
- Group coloring: Teams messages from same conversation share background color (hue from conv ID hash)
- Fireworks API key mismatch fixed: MC had stale key
fw_TGADpSki7zak4K9JxPzbXU, updated to workingfw_RVcDe4c6mN4utKLsgA7hTm - OC m365 hook removed: Agent was unreliable (localhost web_fetch blocked), MC handles everything directly now
- HTML entity stripping added ( , &, etc.)
Fully Dashboard Improvements
- Budget pace indicator:
usage% / time%— shows how fast we're burning weekly Anthropic budget- Week runs Sat 2pm → Sat 2pm ET
-
100% = red (overspending), 90-100% = white (on pace), <90% = green
- Shows as
⚡ 108%with color
- Claude usage fixed: James dashboard API returns object not array — was showing "undefined"
- News streams: Each topic (markets, ai, nabl, news, netherlands) gets its own bar below alerts
- Fetches from James dashboard /api/news, grouped by topic field
News System
- Added
topicfield to James dashboard news API - Topics section on James dashboard groups news by topic with emoji headers
- Cron job: Grok 4.1 Fast runs every 4h (2,6,10,14,18,22 ET) for news scan
- Philosophy: X/Twitter is radar (what's happening), then go to PRIMARY SOURCE (Anthropic blog, SEC filings, whitehouse.gov, etc.). Never cite middlemen (CNBC, Guardian) when source exists.
- Johan wants raw signal, not editorial filter
Key Corrections
- "Best over fast, always" — Johan doesn't want fastest approach, wants best
- Don't bypass, fix root cause — removing LLM summarization was lazy; fix the prompt instead
- Test with curl before deploying — always get "curl proof" before pushing code changes
- Fireworks guarantees privacy; Grok (xAI) does not — use Fireworks for anything touching private data (emails, Teams). Grok OK for public news scanning.
- Claude Sonnet 4.6 released today — 1M context (beta), adaptive thinking, context compaction (beta), $3/$15 per M tokens
Sophia
- Blood draw at 12:00 PM, Health Link, 851 Brightwater Blvd NE, $65 (Karina)