Ala Malū Privacy (A.M.P.)
Your Private Path Home — Network Architecture & Fleet Ledger
Page 1 of 4 · Revised 2026-05-22
Hub-and-Spoke Tailscale Mesh — Live Architecture
PUBLIC INTERNET HAWAII SPOKES NODE 20 Leonard · Kent HQ FOUNDER NODE 21 Mom · Waimea FAMILY LAN NODE 22 Charla · Nanakuli FAMILY LAN NODE 23 Tammy · Waianae ── TAILSCALE MESH (WireGuard) ── BLUE TRIANGLE · NYC1 DigitalOcean · 2vCPU/4GB · $13.49/mo Nginx Proxy Mgr :80 / :443 / :81 Dashboard API Flask · :5000 → :8080 PostgreSQL amp-db · :5432 Telegram Bridge Ala-C + Ala-G · :5001 Alert Script cron */5 · Telegram Nessus Scanner host svc · :8834 (TS) NO FRONT DOOR 🔒 Leonard Laptop → 100.x Tailscale only · SSH / Nessus / NPM
Zero-Trust ACL Policy
  • Leonard (leonard.l.low@gmail.com) → unrestricted access to all nodes, all ports
  • tag:exit-node (spoke Pis) → can reach tag:exit-node:* and autogroup:internet:* only. No lateral cross-LAN access.
  • group:family (Mom, Charla, Tammy) → only tag:exit-node:* and internet egress. Cannot see BT or each other.
  • tag:blue-triangle → no public internet inbound. DigitalOcean firewall blocks all ports from public IP. Reachable only via Tailscale 100.113.114.32.
  • hoike.alamalu.com (NOC) → NPM drops non-Tailscale-IP connections instantly.
Fleet Registry — Beta Cohort (ʻOhana Nodes 20–22)
Node ID Location / Subscriber Hardware Tailscale Tag Status
Node 01 Kent Lab · AIKAI + burn-in gear Pi 4 (2GB) + Nintendo case (noisy fan) tag:private Lab Only
Node 20 Leonard · Kent HQ, Oʻahu Founder Pi 4 (4GB) + Argon NEO tag:exit-node Pending Deploy
Node 21 Mom · Waimea, Oʻahu Pi 4 (4GB) + Argon NEO tag:exit-node Pending Ship
Node 22 Charla · Nanakuli, Oʻahu Pi 4 (4GB) + Argon NEO tag:exit-node Pending Ship
Node 23 Tammy · Waianae, Oʻahu Pi 4 (4GB) + Argon NEO tag:exit-node Pending Ship
Node 50+ First Paid Commercial Unit Pi 4 (4GB) + Argon NEO tag:exit-node Future

Nodes 20–49: ʻOhana Beta Cohort — Lifetime Free ($0). Nodes 50+: Paid production fleet. Nodes 1–19: Internal lab / non-billing (never shipped).

Blue Triangle Key Addresses
ServiceAccess URL / AddressAuth Method
SSHroot@100.113.114.32Tailscale SSH
Dashboard APIhttp://100.113.114.32:5000Tailscale IP
NPM Adminhttp://100.113.114.32:81Tailscale IP
Nessushttps://100.113.114.32:8834Tailscale IP + login
NOC (Hōʻike)https://hoike.alamalu.comTailscale 100.x only
Subscriber Portalhttps://puka.alamalu.comIP-match / email PIN
Setup Portalhttps://setup.alamalu.comPublic (QR onboarding)
Telegram Bridge Healthhttp://100.113.114.32:5001Returns {"status":"up"}
Serial / Hostname Obfuscation Scheme
  • Format: AMP + [4-char salt] + [2-digit node ID] + [4-char suffix] = 13 characters
  • Salt = first 4 hex chars of HMAC-SHA256(mac, AMP_SALT_SECRET) — env var on BT, never on device
  • Suffix = last 4 hex chars of the hardware MAC address
  • Node ID assigned by Blue Triangle at provision time
  • Example: AMP56F020949F → salt=56F0, node=20, suffix=949F
  • Pi sends {mac, one-time-token} → BT validates token, computes serial, responds with serial + SSH keys + Tailscale key. Token deleted from SD card after use.
Ala Malū Privacy (A.M.P.)
Gateway Provisioning & First-Boot Sequence
Page 2 of 4 · Revised 2026-05-22
First-Boot Automated Provisioning — Step Sequence
🔌 Pi Powers On Reads /boot/amp-tailscale.key on SD card ⏱ Wait for Internet Ping 8.8.8.8 · up to 30 retries · 2s each 🔑 SSH Keys + Hardening Installs Leonard + BT keys · disables password auth 📋 Read MAC + Provision Token eth0 MAC · /boot/amp-provision.token (one-time) 📡 Provision via Blue Triangle POST /api/provision {mac, token} → BT salts + assigns node ← serial · SSH keys · Tailscale key · token deleted 🏷 Set Hostname hostnamectl → AMP56F020949F · writes /etc/amp-serial 🌐 Connect Tailscale tailscale up --advertise-exit-node --advertise-tags=tag:exit-node ⏰ Install Heartbeat Cron */5 → api.ipify.org → POST /api/heartbeat · IP forward ON ✅ touch /etc/amp-firstboot-done RUNS ONCE ONLY — guard file prevents re-execution
SD Card Prep — Before Shipping
  • Flash generic Raspberry Pi OS Bullseye image (no pre-staging, no hardcoding)
  • Enable SSH: create empty ssh file in /boot
  • Place Tailscale auth key: /boot/amp-tailscale.key
  • Ensure first-boot.sh is installed as a systemd one-shot service
  • Insert SD card into Argon NEO case — run Nessus burn-in scan
  • After Nessus passes: apply stickers, pack in Kraft mailer, ship
Nessus Burn-In Scan Protocol
SeverityDecisionAction
Critical / High Auto-Fail Must remediate before shipment. Re-scan required.
Medium Case-by-Case Leonard reviews. Document decision in audit log.
Low / Info Accept Log and proceed. No remediation required.

Access Nessus at https://100.113.114.32:8834 · Account: amp_nessie (see password manager)

Registration API — Conflict Handling
ScenarioResponseMeaning
New MAC 201 CREATED Normal first boot. Node registered, serial assigned.
Same MAC + same serial 200 OK Idempotent — Pi rebooted. No action needed.
Same MAC + different serial 409 CONFLICT SD card was re-flashed. Check audit_logs. Manual resolution.
Node 50+ Pre-Shipment Security Checklist (Paid Fleet Only)
  • ☐ Raspberry Pi Secure Boot (OTP fuse signing — only Leonard's firmware boots)
  • ☐ Encrypted root filesystem (dm-crypt/LUKS on root partition)
  • ☐ Consider eMMC compute module over SD card (harder to remove/clone)
  • ☐ Read-only overlay root filesystem (no runtime OS modification)
  • ☐ Physical tamper evidence (epoxy or tamper-evident seal over SD slot)

Beta nodes 20–49 are exempt from these requirements. These are pre-conditions for first paid shipment.

Key Files on Spoke Node
PathPurpose
/etc/amp-serialStores obfuscated serial (e.g., AMP56F020949F)
/etc/amp-firstboot-doneGuard flag — prevents first-boot from re-running
/var/log/amp-firstboot.logFirst boot execution log
/var/log/amp-heartbeat.logHeartbeat cron output log
/usr/local/bin/amp-heartbeat.shHeartbeat script (runs every 5 min)
/boot/amp-tailscale.keyTailscale auth key (deleted after successful auth)
Ala Malū Privacy (A.M.P.)
Monitoring Pipeline, Alert System & Telegram War Room
Page 3 of 4 · Revised 2026-05-22
Heartbeat & Alert Pipeline — Every 5 Minutes
SPOKE cron */5 api.ipify.org Get WAN IP POST /api/heartbeat {serial, wan_ip} → 100.113.114.32:5000 Blue Triangle Updates gateways table last_telemetry_seen = NOW() ALERT CRON Every 5 min · alert.py last_seen > 10 min? 🔴 Telegram Alert 🟢 Recovery Alert
Telemetry Alert Thresholds
Metric● Green● Yellow● Red (Alert)
Heartbeat Interval < 5 min lag 5–10 min > 10 min → Telegram 🔴
CPU Temp < 65°C 65–75°C > 75°C (thermal throttle risk)
CPU Load < 60% 60–85% > 85% (service freeze risk)
RAM Usage < 50% 50–85% > 85% (OOM kill hazard)

Alert fires once when node goes offline; clears on recovery. alerted_offline_at tracks state in gateways table to prevent spam.

Heartbeat Log Location (On Spoke)
tail -f /var/log/amp-heartbeat.log # Sample output: # 2026-05-22T10:05:01Z serial=AMP56F020949F wan=1.2.3.4 response={"status":"ok"} # 2026-05-22T10:10:01Z serial=AMP56F020949F wan=1.2.3.4 response={"status":"ok"}
Telegram War Room — 3-Way AI Bridge
A.M.P. WAR ROOM GROUP CHAT Leonard Project Owner Ala-C Coding / Debugging Claude Haiku 4.5 Ala-G Architecture / Strategy Claude Haiku 4.5 Both bots respond by default · @mention routes to specific bot only Health check: curl http://100.113.114.32:5001 → {"status":"up"}
War Room Slash Commands
CommandAction
/clear Wipes in-memory conversation transcript. Both bots start fresh. Use when switching topics or if context gets confused.
/save Asks Claude to summarize the session decisions, appends them with timestamp to war-room-decisions.md, commits, and git-pushes to GitHub. Both bots always read this file on startup.
@Ala_C_bot Direct message to Ala-C only (implementation, code, debugging). Ala-G stays silent.
@Ala_G_bot Direct message to Ala-G only (architecture, planning, strategy). Ala-C stays silent.
Telegram Bridge — Where It Lives
  • Runs as Docker container on Blue Triangle (docker ps | grep bridge)
  • Uses two separate Telegram bot tokens: TELEGRAM_CLAUDE_TOKEN (Ala-C) and TELEGRAM_GEMINI_TOKEN (Ala-G)
  • War room decisions saved to /opt/amp/war-room-decisions.md on Blue Triangle, synced to GitHub
  • Anthropic API key billed to Leonard's account — model is claude-haiku-4-5-20251001
  • Shared in-memory transcript between both bots — /clear resets both simultaneously
  • Health server always at http://100.113.114.32:5001 — if this returns non-200, bridge is down
Database — gateways Table (Key Columns)
ColumnDescription
obfuscated_serialThe 13-char hostname (e.g., AMP56F020949F)
hardware_macPhysical MAC address — unique per board
node_id2-digit ID (20=Mom, 21=Charla, 22=Tammy)
current_wan_ipLatest WAN IP from heartbeat
last_telemetry_seenTimestamp of last heartbeat — drives alert logic
alerted_offline_atWhen offline alert was sent (NULL = online)
locationHuman-readable location string
Ala Malū Privacy (A.M.P.)
Branding & Label Specs · Subscriber Portal Architecture · Pricing Tiers
Page 4 of 4 · Revised 2026-05-22
Under-Case Label & Device Logo — Actual Assets
Under-Case Label (generated)
AMP Label AMP56F020949F
White polyester · Oracal 651
QR → setup.alamalu.com?serial=AMP56F020949F
Argon NEO Lid — Vinyl Decal
AMP Logo
Custom printed · Amazon order
2" W × 2.5" H · Pi unit + box
Subscriber Portal (puka.alamalu.com) — 3-Tab Architecture
TabNameContent
1 A.M.P. Info Network overview, client download links (Tailscale app), device asset card with serial/MAC
2 Hōʻike Real-time vitals: CPU temp, uptime, throughput, WAN latency/packet loss. SYSTEM OPTIMAL vs FAILOVER ACTIVE state banner.
3 Hoʻouku Nodes 20–49: "Founder's Beta Circle — $0.00 Lifetime Free" card. Nodes 50+: Stripe Customer Portal (cards, Apple Pay, Google Pay).

Auth: Automatic IP-match login (device WAN IP = gateway heartbeat IP). Fallback: 4-digit email PIN. NOC blocked to Tailscale 100.x.y.z only.

Packaging — Mailer Box
  • Box: Eupako 4" × 4" × 2" white corrugated cardboard mailer (50-pack)
  • Inner wrap: 4" × 6" clear self-seal bubble pouch
  • Lid branding: AMP logo sticker (2"×2.5") on box lid — Guardian rocker stamp deferred for beta
  • QR sticker (1"×1.5"): Links to setup.alamalu.com — no hardware info, clean onboarding entry point
  • Logo sticker (2"×2.5"): AMP logo on Pi unit + box
  • No quickstart card — QR code is the entire onboarding UX
Subscription Pricing Tiers (Node 50+ Paid Fleet)
TierSetup FeeMonthlyCommitment
Annual Pre-Pay $150 $12.50/mo
($150 upfront)
12 months, paid in full at start
12-Month Contract $150 $17.00/mo 12-month card auto-billing lock
Month-to-Month $200 $20.00/mo 3-month minimum to offset deployment overhead

ʻOhana Beta Cohort (Nodes 20–49): Lifetime Free — $0.00. No billing, no Stripe integration needed for these nodes.

Full Database Schema (Blue Triangle PostgreSQL)
-- gateways: one row per physical Pi id | obfuscated_serial | hardware_mac (UNIQUE) node_id | salt | suffix | current_wan_ip last_telemetry_seen | alerted_offline_at location | registered_at -- subscribers: one row per customer/family member id | gateway_id (FK→gateways) | name primary_email (UNIQUE) | street_address | city | state | zip subscription_status ('beta'|'active'|'cancelled') stripe_customer_id | registered_at -- activation_vouchers: pre-provisioned tokens id | voucher_token (UNIQUE 64-char) assigned_gateway_id (FK→gateways) | is_redeemed | created_at -- audit_logs: forensic trail + collision detection id | timestamp | event_type hardware_mac | obfuscated_serial | status | notes
Phase Roadmap
PhaseMilestoneStatus
1 Blue Triangle — DO droplet, Docker, Tailscale, NPM, Postgres, API Done
1 Telegram War Room bridge (Ala-C + Ala-G) Done
1 First-boot script (SSH, serial, registration, Tailscale, heartbeat) Done
1 Alert system (Telegram offline/recovery notifications) Done
1 Nessus burn-in scan setup + device label generator Done
2 setup.alamalu.com subscriber registration portal Pending
2 Flash + burn-in 3 Pi kits; ship to Hawaii Awaiting Argon NEO
3 puka.alamalu.com subscriber portal (3 tabs) Future
3 WiFi captive portal — Pi broadcasts AMP-XXXX hotspot on first boot; customer enters home WiFi; hotspot goes dark; provisioning continues Future
3 Node 50+ — first paid commercial unit + Stripe integration Future
3 Node 50+ security hardening (Secure Boot, LUKS, eMMC) Future
Ala Malū Privacy (A.M.P.)
Bill of Materials · Accounts Registry · Cost Summary
Page 5 of 5 · Revised 2026-05-22
Hardware — Per-Node Build (Nodes 20–23)
ItemSourceUnit CostQtyTotal Paid
Raspberry Pi 4 Model B (4GB) Pi Shop ↗ $113.58 4 $454.31
Argon NEO Case (aluminum, fanless) Amazon · Argon Forty Store ↗ $18.66 4 $74.64 · Ordered
Argon NEO Case (aluminum, fanless) DF Robot ↗ $15.00 est. 4 $60.00 · On Backorder — 4 spare if arrives
MicroSD Card (5-pack) Target ↗ $26.93 5 (1 spare) $134.63
USB-C Power Supply (5V 3A) Adafruit ↗ $8.74 4 $34.96
Estimated Per-Node Build Cost ~$167.91
Total Hardware Spend (Nodes 20–23) $758.54

Argon NEO: Amazon · Argon Forty Store ($18.66/unit, 4 ordered). DF Robot $60 paid but backordered — 4 spare units if it arrives. MicroSD 5-pack — 4 deployed, 1 spare. All other hardware received.

Hardware — Lab Only (Kent HQ, Never Shipped)
ItemSourceCostNotes
Nintendo-style Pi Case (GeekPi) Amazon · GeekPi ↗ $13.24 Large noisy fan — burn-in only, never shipped
Raspberry Pi 4 Model B (2GB) — AIKAI Amazon · CanaKit ↗ $143.27 Kit w/ accessories · lab staging node · tag:private
MicroSD Card Reader (USB) Included w/ SD cards $0.00 For flashing SD cards at Kent HQ
Total Lab Hardware Spend $156.51
Consumables & Branding (Per-Unit)
ItemSourceUnit CostNotes
QR Code sticker · 1" × 1.5" Amazon ↗ ~$8.93 order Links to setup.alamalu.com · applied to Pi unit · ORDER #111-8833813-4447424
AMP Logo sticker · 2" × 2.5" Amazon ↗ ~$8.93 order AMP logo · applied to Pi unit + box · ORDER #111-8833813-4447424
Eupako mailer box (4" × 4" × 2", white, 50-pack) Eupako Direct / Amazon $19.49 / 50 = $0.39 ea White corrugated cardboard, ordered May 25 2026
Clear bubble pouch (4" × 6", 50-pack) SEUNGCH / Amazon · ORDER #113-4570189-9037030 $8.82 / 50 = $0.18 ea Clear self-seal bubble cushioning, ordered May 25 2026
Branding — One-Time Setup Costs
ItemSourceCostNotes
Rocker Mount Rubber Stamp (Guardian logo, ~4" wide) TBD TBD One-time; stamps box lids
Archival black pigment ink pad (oil-based) TBD TBD Fast-drying, premium finish
Oracal 651 vinyl roll (navy blue, 12") TBD / Amazon TBD Shared roll; yields many decals
Accounts & Services Registry
ServicePlan / TierCostLogin / Notes
Cloudflare
alamalu.com + DNS
Paid · via PayPal $11.55/mo Domain registration + DNS for all subdomains (setup, puka-au, hoike). Proxy OFF for Tailscale-only routes.
Tailscale
kentWA tailnet
Free $0/mo leonard.l.low@gmail.com · Auth keys in password manager · up to 100 devices
DigitalOcean
Blue Triangle droplet
Paid · 2vCPU / 4GB / 120GB $13.49/mo + tax NYC1 · Firewall: amp-no-front-door · WA state + Covington city tax (~$0.78/mo)
GitHub
ala-malu-privacy repo
Free $0/mo Deploy key on BT: amp-blue-triangle (read-only)
Anthropic API
Telegram bridge
Pay-as-you-go ~$1–5/mo console.anthropic.com · Model: claude-haiku-4-5 · Key in BT .env
Telegram
Ala-C + Ala-G bots
Free $0/mo Bot tokens via @BotFather · Stored in BT .env
Nessus Essentials
Burn-in scanning
Free (≤16 IPs) $0/mo https://100.113.114.32:8834 · Account: amp_nessie
Stripe
Node 50+ billing
Pay-as-you-go 2.9% + $0.30/txn No monthly fee · Customer portal for invoices, card mgmt · Apple/Google Pay included
Cricut Design Space
Vinyl decal cutting
Free (wife's acct) $0/mo May transition to bulk pre-cut stickers (packs of 10). Simple cut guide on file for wife.
Monthly Operating Cost Summary (Current State)
ItemMonthlyAnnual
DigitalOcean — Blue Triangle droplet (+ WA/Covington tax) ~$14.27 ~$171.24
Cloudflare (alamalu.com + DNS) · via PayPal $11.55 $138.60
Anthropic API (Haiku — war room usage) ~$1–5.00 ~$12–60.00
Tailscale $0 $0
GitHub $0 $0
Estimated Total (before revenue) ~$27–30/mo ~$324–360/yr
Break-even (Node 50+ @ $17/mo) 2 paid nodes covers all cloud overhead

Telegram, Nessus Essentials, Tailscale, GitHub, and Stripe (no monthly fee) are $0. Stripe fees only apply when revenue starts.

Credentials & Secrets — Where They Live
SecretLocation
Tailscale auth keysPassword manager · /boot/amp-tailscale.key on SD (deleted post-auth)
BT .env (all API keys)/opt/amp/.env on Blue Triangle · never commit to git
Anthropic API keyconsole.anthropic.com + BT .env
Telegram bot tokensBotFather + BT .env
Nessus loginPassword manager · account: amp_nessie
DigitalOcean accountPassword manager · 2FA enabled recommended
Stripe secret keyStripe dashboard + BT .env (when Node 50+ is ready)
GitHub deploy key (private)~/.ssh/id_ed25519 on Blue Triangle