Live infrastructure overview · Noaber.ai

De volledige stack,
in één oogopslag.

Alles wat draait, waar het draait, en waar het wringt. Bedoeld als single source of truth voor cross-asset besluitvorming, recovery-planning en migratie-prioriteiten.

last updated Dark theme · pro v2 · 2026-05-10 · Wave 0.5 + 0.7 done
22
CF zones
helsdingen, michelmedia, klant-domeinen
6
CF Pages
portfolio, klant-portalen, dashboards
47
Containers (plex)
Coolify-stack + losse services
11TB
Synology storage
4.1 TB used · 6.4 TB free
9
Hosts in beheer
2 VPS · 1 Proxmox · 1 NAS · 1 Mac mini · MBP · 2 Win · Homey
59d
Plex uptime
88d Proxmox · 142d Synology
512MB
claude-mem.db
jouw werkgeheugen — irreplaceable
2
SPOFs gevonden
Vaultwarden + Paperless op werk-VPS
Network topology

Hoe de drie lagen samenhangen. Cloudflare orchestreert al het verkeer; tunnels exposen lokale services veilig publiek; werk-VPS is dik maar afhankelijk.

graph TB
  classDef cloud fill:#1a1530,stroke:#a78bfa,stroke-width:2px,color:#e9d5ff
  classDef vps fill:#2a1a10,stroke:#f59e0b,stroke-width:2px,color:#fde68a
  classDef home fill:#0f1f1a,stroke:#10b981,stroke-width:2px,color:#a7f3d0
  classDef warn fill:#2a1010,stroke:#ef4444,stroke-width:2px,color:#fecaca
  classDef neutral fill:#161620,stroke:#6b6b76,stroke-width:1px,color:#a1a1aa

  subgraph CLOUD["☁️  Cloud · Managed"]
    CF["Cloudflare
23 zones · 8 Pages · 11 R2 · D1 · Workers"] M365["Microsoft 365
info@ · scan@"] MB["Moneybird"] GH["GitHub"] APPLE["Apple Developer"] end subgraph VPS["🖥 VPS · werk-eigendom"] PLEX["plex.helsdingen.com
37.97.202.216
47 containers"] DJEFF["djeffrey
37.97.148.97
Plesk · padelclippy.nl"] end subgraph HOME["🏠 Thuis-netwerk · 192.168.2.0/24"] MBP["MacBook Pro M4
primary · 26.4.1"] MINI["Mac mini
.214 · 26.4 arm64"] NUC["NUC Proxmox
.100 · PVE 9.1.1"] NAS["TeRRoR Synology
DS916+ · DSM 7.2"] RTX["Dikke3090
.142 · RTX 3090"] HOMEY["Homey Pro 2023
.176"] end subgraph PROX["⚙️ Proxmox subgrid"] CAMS["LXC 102 · cams
.228 · CamViewer"] TOPV["LXC 103 · topview-backup
.145"] CFLT["LXC 101 · cloudflared
.148"] HAOS["VM 100 · Home Assistant
4 GB RAM"] end CF -.->|tunnel b88e…| PLEX CF -.->|tunnel 1931…| CFLT CFLT --> HAOS CFLT --> NAS NUC --> CAMS NUC --> TOPV NUC --> CFLT NUC --> HAOS GH -->|code| MBP GH -->|code| MINI CF -->|DNS edge| MBP M365 -.- MBP MBP <==>|"Syncthing two-way
~/.claude only"| MINI MBP ==>|"restic nightly 03:30
SFTP encrypted · 16.7 GB"| MINI MBP ==>|"restic weekly zo 04:00
S3 R2 · 5.4 GB stored"| CF PLEX -. "❌ Vaultwarden SPOF
Wave 3" .-> MINI class CF,M365,MB,GH,APPLE cloud class PLEX,DJEFF vps class MBP,MINI,NUC,NAS,RTX,HOMEY home class CAMS,TOPV,CFLT,HAOS neutral
SafeEigen, redundant of vervangbaar zonder bedrijfsrisico
Managed cloudExterne leverancier, betaald, vendor-redundancy
DependentWerkgever-eigendom, gratis nu — strategisch risico
SPOFSingle point of failure — outage = direct bedrijfsstilstand
UnderusedAanwezig maar onderbenut — kandidaat voor herrol
Cloud · managed laag

Externe SaaS waar Michel betaalt of gratis-tier op leunt. Vendor zorgt voor redundancy. Risico = vendor-lockin + accountverlies.

Cloudflare
michel@helsdingen.com · acct 91a07c8e…
managed

Het zenuwstelsel. DNS, TLS, edge-routing, WAF, tunnels, Pages, Workers, R2, D1, Custom Hostnames. Alles tussen klant en service loopt hier doorheen.

Zones23 actief
Pages8 projecten
R2 buckets11 (incl. backup-buckets)
Tunnels2 actief
AuthGlobal API Key
Pages Workers R2 D1 Tunnels Custom Hostnames Access
Microsoft 365
michelmedia.nl · Exchange Online
managed

Zakelijke e-mail. info@ + scan@ shared mailbox. scan@ voert Paperless via mail-fetcher v2.

Mailboxesinfo@ shared
Forwardscan@ alias
SMTPMicrosoft
Backupvendor
Exchange Graph API
Moneybird
admin 484693210194510890
managed

Single source of truth voor administratie per 1-7-2026. Trial actief, eerste live factuur 1 juni. KOR-modus tot 30-6.

StatusTrial · live 1-6
APIREST v2 · Bearer
KORtot 30-6-2026
Backupvendor
REST API MCP optie
GitHub
michelhelsdingen / private repos
managed

Code SSOT. Alle klant-projecten en eigen tools. Migratie zou triviaal zijn (clone + push elders), dus laag risico.

Code Issues Actions
Apple Developer
Team 58PR8DAVZM · Individual
managed

Voor PadelClippy + CashSpot iOS. App Store Connect, push keys, signing certs.

App Store TestFlight Push
Sentry · TelemetryDeck · NVIDIA
monitoring + analytics + AI API
managed

Crash reporting (Sentry), usage analytics (TelemetryDeck), Llama-Nemotron API (gratis). Niet bedrijfskritiek — observability/experimenten.

Sentry TelemetryDeck NVIDIA
Supabase hosted
Frankfurt · 2 free-tier projecten
managed

LTC Event Planner + LTC Padel Planning. Free-tier — pauzeert na 7d inactiviteit, keep-alive cron via launch-agent.

Postgres Auth REST
VPS · werk-eigendom

Twee TransIP VPSen, beide via werkgever (Gemeente Oost Gelre) gratis beschikbaar. Je betaalt niets, maar je bezit ze ook niet — strategisch belangrijke nuance.

plex VPS
37.97.202.216 · plex.helsdingen.com · Ubuntu
werk · dik

De monoliet. 47 containers, 6 TB media, 700 GB Docker volume, 96 GB root. Coolify orchestreert alles. Draait 59 dagen. Te zwaar geladen voor één host die je niet bezit.

Root96 GB · 24% used
Docker700 GB · 24% used
Media6 TB · 47% used
Uptime59 dagen
Vaultwarden Paperless Coolify Supabase Immich Jellyfin Uptime Kuma n8n Portainer Watchtower Homepage Glances Happy server Cloudflared change-detection AI-news-bot MEXC bot
Vaultwarden (op plex)
vault.helsdingen.com · CF Access
SPOF

Bron-of-truth voor alle credentials, klanten, recovery. Als deze container of de host eronder uitvalt: lock-out van eigen leven én bedrijf.

credentials recovery key no off-site backup
Paperless-ngx (op plex)
docs.helsdingen.com · CF Access
SPOF

Alle Belastingdienst-relevante documenten. 5 containers (web, redis, gotenberg, tika, mail-fetcher). Lokaal cron-backup, NAS-sync nog niet ingericht.

7 jaar bewaarplicht backup lokaal NAS-sync TODO
djeffrey VPS
37.97.148.97 · Plesk Obsidian
werk · web+mail

PadelClippy.nl/.com hosting + SMTP relay. Ubuntu 24.04, Plesk-managed. Onafhankelijk van plex, eigen Cloudflare Origin Cert tot 2041.

Webpadelclippy.nl/.com
SMTPmail.padelclippy.nl:587
CertCF Origin · 2041
SSHport 2222
Plesk SMTP
Thuis-netwerk · eigen hardware

Wat hier draait, bezit je. Stroom kost iets, verder niets. Onderbenutting is hier de hoofdkans, niet capaciteit.

MacBook Pro M4
m4promichel.local · macOS 26.4.1
primary

Dagelijks werkstation. Mobiel. Alle klantwerk, deploys, schrijven. ~/.claude (7.4 GB) + claude-mem.db (5.3 GB) = jouw werkgeheugen. Backup-strategie sinds 2026-05-10: nightly restic naar Mac mini (SFTP, lokaal) + weekly restic naar Cloudflare R2 (offsite, EU). Realtime sync van Documents is bewust geschrapt — Syncthing alleen voor ~/.claude.

Storage460 GB · 92% free
Local backupTime Machine SSD
Backup primaryrestic → Mac mini SFTP nightly 03:30
Backup secondaryrestic → R2 offsite weekly zo 04:00
Live syncSyncthing ~/.claude → Mac mini
Claude Code Codex Xcode Vaultwarden CLI Syncthing v2.0.16 restic 0.18 · dual repo
Mac mini
192.168.2.214 · macOS 26.4 arm64 · M4 Pro 24 GB
hot standby

M4 Pro 24 GB, 12 cores. Primary backup target. Host van restic SFTP-repo voor nightly encrypted backups van MBP. Ontvangt ook Syncthing-sync van ~/.claude (claude-config). Bij MBP-uitval: open Mac mini, restic-restore vanaf SFTP-repo, ga door binnen 10 min. Documents-sync was geschrapt 2026-05-10 (case-conflicts, restic dekt het af).

Storage460 GB · 142 GB free
Restic repo~/restic-backups/main · 5 snapshots
Repo size~6 GB stored (16.7 GB raw)
Last snapshot2026-05-10 03:30 (auto)
Syncthing target~/.claude · 13037 files
Syncthing v2.0.16 restic SFTP target Docker.app (idle) Ollama (idle) Happy CLI Postgres@14/17
NUC · Proxmox
192.168.2.100 · PVE 9.1.1 · 88d up
stabiel

Hosting platform thuis. Draait CamViewer, TopView/QuickSlide zinker en Home Assistant. Veel ruimte voor extra LXCs (Vaultwarden mirror, Paperless mirror, Lurvink staging).

LXC 101cloudflared (.148)
LXC 102cams (.228)
LXC 103topview-backup (.145)
VM 100haos12.4 · 4 GB
CamViewer TopView zinker Home Assistant cloudflared tunnel
TeRRoR · Synology
DS916+ · DSM 7.2.0 · 142d up
underused

11 TB volume, 6.4 TB ongebruikt. Doet nu vooral Surveillance Station camerabeelden. Heeft ContainerManager, Node.js v16/18/20, CloudSync, Replication. Klaar om backup-target voor alles te worden.

Volume11 TB · 4.1 TB used
Free6.4 TB · 60% open
Dockerja (CM)
TailscaleSSH key gereed
Surveillance ContainerManager CloudSync Replication
Dikke3090
192.168.2.142 · Win11 · RTX 3090 24GB
on demand

ComfyUI op poort 8188. Lokale GPU-zware workflows: image gen, eventueel lokale LLMs. ~120 custom nodes geïnstalleerd.

ComfyUI RTX 3090 i9-11900K
Oude MacBook Pro
slaapt · macOS
unused

Doet nu niets. Voorgestelde rol: clean reference machine met maandelijkse image refresh, of cold standby met bootstrap-script. Geen sync nodig — alleen restorable basis.

cold standby
Homey Pro 2023
192.168.2.176 · firmware 13.1.2
smart home

Smart home hub. Eigen Tuya Local app v0.6.2 draait. Niet bedrijfskritiek maar wel persoonlijk waardevol.

Z-Wave Zigbee Tuya Local
Cam PC Kantoor
192.168.2.66 · Surface Win11
camera

Camera PC voor kantoor-monitoring. Beperkte rechten, alleen view. Niet voor zakelijke compute-taken.

cam viewer
Service-mapping · waar draait wat

Per service: huidige host, welke kolom moet veranderen in de eindsituatie. Sweet-spot voorstel.

ServiceNuSweet spotWaarom
Vaultwardenplex.helsdingen.comNUC LXC + R2 export SPOF wegnemen — credentials moeten op eigen hardware
Paperless-ngxplex (docs.helsdingen.com)Synology Docker + R2 Belastingdienst-relevant. NAS heeft 6.4 TB vrij + ContainerManager
Supabase self-hostplex (Coolify)blijven of CF D1 Alleen verhuizen als klantcode hier op gaat draaien
Immich · JellyfinplexblijvenNiet bedrijfskritiek, perfect daar
Coolify · PortainerplexblijvenEigen experimenteer-omgeving
Uptime Kuma · GlancesplexblijvenMonitoring zelf is niet kritiek
CamViewer · cams-lxcNUC LXC 102blijvenLokaal = laag latency, klant Lurvink-pad ook hier
TopView zinkerNUC LXC 103blijvenLokaal = onafhankelijk van werk-VPS
Home AssistantNUC VM 100blijvenSmart home, niet zakelijk
Surveillance StationSynologyblijvenNAS native
ComfyUIDikke3090blijvenGPU-bound
claude-mem.dbMacBook lokaal+ Mac mini sync + R2 nightly Werkgeheugen — onvervangbaar
~/.claude configMacBook lokaal+ private GitHub dotfiles repo Bootstrap nieuwe machine in 30 min
Time Machineexterne SSD+ Synology AFP/SMB SSD = lokaal verlies bij brand. NAS = thuis off-laptop
Klant-portalen (Pages)CF PagesblijvenLocatie-onafhankelijk, edge, gratis
PadelClippy webdjeffrey (Plesk)CF Pages + Workers Op termijn migreren weg van Plesk
🆘 Recovery zonder AI

Als ik geen Claude heb om mij te helpen — alle backup-info, restore-commando's en escape-procedures op één plek. Live sinds 2026-05-10.

flowchart LR
  subgraph SRC["📂 Bron · MacBook Pro"]
    HOME["~/.claude · 7.4 GB
~/.claude-mem · 5.3 GB
~/.ssh · keys
~/.config · settings
~/Documents/michelmedia"] end subgraph PRIM["🏠 Primary backup · Mac mini"] SFTP["SFTP repo
~/restic-backups/main
5 snapshots
16.7 GB raw → 6 GB"] end subgraph SEC["☁️ Secondary backup · Cloudflare R2"] R2["S3 bucket
noaber-restic-mbp · EU
1 snapshot
5.4 GB stored
~$0.08/mnd"] end HOME ==>|"NIGHTLY 03:30
LaunchAgent
com.michelmedia.restic-backup"| SFTP HOME ==>|"WEEKLY zo 04:00
LaunchAgent
com.michelmedia.restic-backup-r2"| R2 SFTP -.->|"Telegram notify
na elke run"| TG[("📱")] R2 -.->|"Telegram notify"| TG classDef bron fill:#1d1d28,stroke:#a78bfa,color:#f5f5f7 classDef prim fill:#0d2818,stroke:#10b981,color:#f5f5f7 classDef sec fill:#0d1f28,stroke:#06b6d4,color:#f5f5f7 class HOME bron class SFTP prim class R2 sec

🔑 Waar staat alles

Encryption passphraseVaultwarden item restic backup passphrase (folder Noaber.ai)
Lokaal: ~/.cache/restic-passphrase.txt (chmod 600)
R2 S3 keysVaultwarden item R2 restic-mbp-noaber S3 keys (folder Noaber.ai)
Lokaal: ~/.config/restic/r2-env (chmod 600)
SSH naar Mac mini~/.ssh/config alias macmini (192.168.2.214)
SSH-key in ~/.ssh/id_rsa
Backup scripts~/.local/bin/restic-backup.sh (Mini SFTP)
~/.local/bin/restic-backup-r2.sh (R2 offsite)
LaunchAgents~/Library/LaunchAgents/com.michelmedia.restic-backup.plist (nightly 03:30)
~/Library/LaunchAgents/com.michelmedia.restic-backup-r2.plist (zondag 04:00)
Logs~/.local/share/restic-backup.log · ~/.local/share/restic-r2-backup.log
Vaultwarden mastermacOS Keychain account bw-vault
Unlock: eval $(~/.local/bin/bw-unlock)

🚨 MBP is stuk — wat nu

  1. Open Mac mini (192.168.2.214) — heeft de meest recente snapshot
  2. Open Terminal en haal credentials uit Vaultwarden:
    bw login michel@helsdingen.com
    bw unlock --raw   # geeft session
    export BW_SESSION="..."
    bw get item "restic backup passphrase"
  3. Schrijf passphrase naar ~/.cache/restic-passphrase.txt (chmod 600)
  4. Restore alleen wat je nu nodig hebt:
    export RESTIC_REPOSITORY=/Users/michelhelsdingen/restic-backups/main
    export RESTIC_PASSWORD_FILE=~/.cache/restic-passphrase.txt
    restic snapshots --compact
    restic restore latest --target ~ --include /Users/michelhelsdingen/.claude
    restic restore latest --target ~ --include /Users/michelhelsdingen/.claude-mem
  5. Werk door op Mac mini. Tijd: ~10 minuten.

🌍 MBP + Mac mini stuk (brand/diefstal) — R2 restore

  1. Nieuwe Mac aanschaffen of huidige toestel met andere persoon
  2. Install: macOS, Homebrew, restic (brew install restic)
  3. Login Cloudflare dashboard via 2FA op telefoon → R2 → API tokens
    De bestaande restic-mbp-noaber token is gebonden aan keys die alleen wij hebben (in BW). Als BW-vault offline is: nieuwe token genereren met je Cloudflare-login.
  4. Set env vars uit BW (op telefoon mobiel-Vaultwarden) of via nieuwe token:
    export AWS_ACCESS_KEY_ID="..."
    export AWS_SECRET_ACCESS_KEY="..."
    export RESTIC_REPOSITORY="s3:https://91a07c8e79b284d2ec64e001fa28fdda.r2.cloudflarestorage.com/noaber-restic-mbp"
    export RESTIC_PASSWORD_FILE=~/.cache/restic-passphrase.txt
    restic snapshots
    restic restore latest --target ~/restored
  5. Tijd: ~30-60 min (afhankelijk van internet + omvang). 5.4 GB compressed, expand naar 16.7 GB.

🧪 Wave 0.7 — Kwartaal restore-drill

Onbewezen restore = geen backup. Elk kwartaal: pak random snapshot, restore naar /tmp/restore-test/, verify SHA256 match origineel.

# Vanaf Mini SFTP repo
source ~/.zshrc
export RESTIC_REPOSITORY=sftp:macmini:/Users/michelhelsdingen/restic-backups/main
export RESTIC_PASSWORD_FILE=~/.cache/restic-passphrase.txt
restic restore latest --target /tmp/drill --include /Users/michelhelsdingen/.zshrc
shasum ~/.zshrc /tmp/drill/Users/michelhelsdingen/.zshrc

# Vanaf R2 offsite repo
source ~/.config/restic/r2-env
restic restore latest --target /tmp/drill-r2 --include /Users/michelhelsdingen/.zshrc

# Integrity check (5% sample, snel)
restic check --read-data-subset=5%

Drill-log: schrijf datum + resultaat in infra/RESTORE-PLAYBOOK.md.

📅 Schedule + monitoring

Mini SFTP backupElke nacht 03:30 (LaunchAgent) · ~5-70 sec per run · Telegram notify
R2 offsite backupElke zondag 04:00 (LaunchAgent) · ~70 sec voor delta · Telegram notify
Retention Mini7 daily · 4 weekly · 6 monthly (forget --prune automatisch)
Retention R24 weekly · 6 monthly · 2 yearly (lange-termijn focus)
Health checkWekelijks: restic check --read-data-subset=5% beide repos
Manual runMini: bash ~/.local/bin/restic-backup.sh
R2: bash ~/.local/bin/restic-backup-r2.sh

⚠️ Wat NIET in backup zit (en waarom)

  • ~/Documents (behalve michelmedia/) — code zit in GitHub, niet-code is herbouwbaar of niet-essentieel. _archive/ = oude projecten, niet meer relevant.
  • node_modules, .next, build, dist, DerivedData — herbouwbaar uit package.json/Xcode
  • Photos library, iCloud Drive — die hebben hun eigen Apple-backup
  • Brave/Chrome cache, Time Machine zelf — niet zinvol

Filosofie: backup alleen wat onvervangbaar is. Voor de rest: GitHub voor code, package managers voor deps, vendor-cloud voor managed data.

Actie-prioriteiten

Volgorde van impact-per-uur. Niet alles tegelijk — eerst de SPOFs dichten, dan de hot standby, dan migraties.

✅ DONE · WAVE 0.6
Vaultwarden encrypted export → R2 (offsite, daily)
3-laags beveiliging: master pw + export pw (40 char random in Keychain) + R2 keys. Daily 02:30 LaunchAgent. R2 bucket noaber-vault-backups (EU). Format: encrypted_json passwordProtected, PBKDF2 600k iterations. Lokaal: ~/Backups/vaultwarden (laatste 7). Recovery playbook: infra/RESTORE-VAULTWARDEN.md (3 scenarios). Volgende stap: papieren master pw in offline kluis (eigen actie) + USB-snapshot kwartaal.
Live sinds 2026-05-10
✅ DONE · WAVE 0
Syncthing claude-config + restic SFTP nightly → Mac mini
~/.claude two-way Syncthing (13k files) + restic-encrypted nightly SFTP-backup naar Mac mini om 03:30. 5 snapshots, 16.7 GB raw → 6 GB stored. Documents-folder uit Syncthing geschrapt 2026-05-10 — case-conflicts onoplosbaar, restic dekt het af.
Live sinds 2026-05-07
✅ DONE · WAVE 0.5
restic weekly snapshot → Cloudflare R2 (offsite)
Tweede repo op R2 EU bucket noaber-restic-mbp. Initial 16.6 GB upload klaar in 70 sec. Weekly schedule (zondag 04:00). S3 keys in Vaultwarden item "R2 restic-mbp-noaber S3 keys" + ~/.config/restic/r2-env. Storage cost: ~$0.08/mnd.
Live sinds 2026-05-10
✅ DONE · WAVE 0.7
Restore-drill van beide repos
Test-restores uit zowel Mini SFTP als R2 — files SHA256-match origineel ✓. Restic check --read-data-subset=5%: no errors op beide repos. Quarterly drill ritueel ingericht.
Live sinds 2026-05-10
P3 · ARCHIEF
Paperless replication naar Synology
SSH key naar TeRRoR is al toegevoegd. Cron op plex: nightly rsync van /mnt/docker/paperless/ naar Synology share. Plus export naar R2 als off-site failsafe.
~1 uur
P3 · DOTFILES
Private GitHub dotfiles repo + bootstrap-script
~/.claude, ~/.zshrc, install-script die op nieuwe Mac alles inricht behalve secrets (die komen via Vaultwarden CLI). Recovery-tijd nieuwe Mac: 30 min.
~2 uur
P3 · DOC
Recovery doc in Vaultwarden + papier in kluis
"Mac is weg, wat nu?" met stap-voor-stap commando's. Master password + bootstrap-credentials in offline kluis.
~30 min
P4 · LANGE TERMIJN
Vaultwarden migratie naar NUC LXC
Nieuwe LXC op Proxmox, Vaultwarden Docker, restore vanuit plex backup, DNS swap (vault.helsdingen.com → nieuwe tunnel). Eindresultaat: credential-bron op eigen hardware, plex VPS los te koppelen zonder paniek.
~3 uur
P4 · ROL
Oude MBP als clean reference machine inrichten
Vers macOS install + bootstrap-script + Vaultwarden CLI. Maandelijks image-refresh ritueel. Cold standby als brand/diefstal/serieuze pech.
~2-3 uur