- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
22 KiB
AMOS Development Workcamp 2026
Volume 3: Infrastructure and Operations History
Period: 11 maj – 7 juni 2026
Genererat: 2026-06-07 | Klassifikation: INTERN – KONFIDENTIELL
1. AWS-INFRASTRUKTUR ÖVERSIKT
1.1 AWS-konto och Region
| Parameter | Värde |
|---|---|
| AWS-konto | 155407238699 |
| Primär region | eu-north-1 (Stockholm) |
| Sekundär region | eu-west-1 (Irland) – Mac Build Server |
| IAM-profil (agent) | platform-ai-agent |
| Instans-roll | platform-ec2-ssm-role (AmazonSSMManagedInstanceCore) |
1.2 EC2-instanser
server-2 (primär produktionsserver)
| Parameter | Värde |
|---|---|
| Instance ID | i-09b2204a52c2f33c9 |
| Typ | ARM64 (aarch64) |
| Region/AZ | eu-north-1b |
| Elastic IP | 16.170.83.169 |
| Hostname | bernt.wavult.com / bernt.aamos.systems |
| OS | Amazon Linux 2023 (ARM64), kernel 6.18.30-61.116.amzn2023.aarch64 |
| RAM | 6.0GB (Node.js) |
| SSM | Online (AmazonSSMManagedInstanceCore) |
| SG | sg-070aca8fc94a5a91b |
host-2 / server-3 (redundanshost, RES-004)
| Parameter | Värde |
|---|---|
| Instance ID | i-0fc20ddba6bb17ead (v2, DNS-fix) |
| Privat IP | 172.31.20.206 |
| Region/AZ | eu-north-1a |
| AMI-origin | ami-0fc5c75dc45812df9 (server-2 baseline snapshot) |
| Skapad | 2026-06-05 03:09 UTC |
| SSM | Online |
| DNS-fix | /etc/resolv.conf: nameserver 172.31.0.2, chattr +i |
GPU-box / gpu-training (ALETHEIA-träning)
| Parameter | Värde |
|---|---|
| Instance ID | i-04239ef03d26b218b |
| Typ | A10G 23GB VRAM |
| Publik IP | 13.61.176.142 |
| Privat IP | 172.31.36.61 |
| SSH-nyckel | gpu_deploy_key |
| EJ SSM-styrd | SSH-baserad åtkomst |
| Status | STANNAR igång (Erik: fortsatt träning) |
| Serverar | vLLM :8000 (ALETHEIA) |
p4d.24xlarge SPOT (DDP-träning, TERMINERAD)
| Parameter | Värde |
|---|---|
| Instance ID | i-0e9e845b6d85af5a0 |
| Typ | p4d.24xlarge (8x A100-SXM4-40GB) |
| Region/AZ | eu-north-1c |
| Publik IP | 13.48.129.246 |
| Privat IP | 172.31.1.199 |
| Kostnad | $8/h SPOT (cap $12/h) |
| DLAMI | PyTorch 2.7 |
| Status | TERMINERAD efter v5-träning (ALETHEIA klar) |
Mac Build Server (eu-west-1)
| Parameter | Värde |
|---|---|
| Instance ID | i-0fde74767ebfcbdd8 |
| AMI | ami-02ab2839514384495 |
| Dedicated Host | h-0298aacec652d75b3 (eu-west-1a) |
| Snapshot | snap-00d2f39d8775caa67 (completed) |
| Publik IP | 3.249.41.127 |
| SSH | ssh -i ~/.openclaw/workspace/mac-build-key.pem ec2-user@3.249.41.127 |
| macOS | 26.4.1 (BuildVersion: 25E253) |
| Runner | wavult-mac-build-eu-01, Runner ID: 2 |
1.3 RDS (PostgreSQL)
platform-identity-core (primär produktions-DB)
| Parameter | Värde |
|---|---|
| Endpoint | platform-identity-core.cvi0qcksmsfj.eu-north-1.rds.amazonaws.com |
| DB-namn | amos (schema: quixzoom, wavult_identity, m.fl.) |
| Initial klass | db.t4g.small (2GB RAM) |
| Klass efter RES-003 | db.r6g.large (16GB RAM) – 8x ökning |
| Multi-AZ | TRUE (aktiverat RES-001, 2026-06-04) |
| Backup retention | 35 dagar + daglig auto-snapshot |
| SG | sg-0feb828ee1ff94071 |
| SSM-access | Instansroll saknar secrets-access → använd platform-ai-agent |
KRITISK LÄRDOM: DNS-resolution av RDS sker via Tailscale MagicDNS (100.100.100.100) på server-2. host-2 saknade Tailscale → ENOTFOUND. Löst med statisk VPC-resolver (172.31.0.2) via chattr.
aamos-postgres (K8s/EKS DB)
- Endpoint: aamos-postgres/aamos_prod (intern EKS-resurs)
- OBS: Skiljer sig från identity-core – restaurangtjänster använder identity-core/amos
1.4 Application Load Balancer (ALB)
| Parameter | Värde |
|---|---|
| Namn | aamos-prod-alb |
| DNS | aamos-prod-alb-709257248.eu-north-1.elb.amazonaws.com |
| AZ:er | eu-north-1a, eu-north-1b, eu-north-1c |
| Target Group | aamos-prod-tg |
| Targets | server-2 (1b, HEALTHY) + host-2 (1a, HEALTHY) |
| Health check | HTTP:3209/health/ready (djup DB-check) |
| HTTPS listener | *.wavult.com + quixzoom.com cert (SNI) |
| HTTP redirect | 301 → HTTPS |
| ALB-SG | sg-0cac842012eae85dd |
| DNS live | quixzoom-api.wavult.com → ALB alias |
1.5 S3
| Bucket | Användning |
|---|---|
quixzoom-landing-prod |
Statisk sajt (CloudFront EE30B9WM5ZYM7) |
platform-ouroboros-models |
AI-modeller. aletheia-eslm-v5-20260607/ (14 objekt) |
1.6 EKS-kluster
| Parameter | Värde |
|---|---|
| Klusternamn | wavult |
| Version | v1.31 |
| Auth-mode | API_AND_CONFIG_MAP |
| Noder | 3 Ready (graviton r6g/r8g, arm64) |
| x86-pool | c6i (desired=0, vilande) |
| ECR | 155407238699.dkr.ecr.eu-north-1.amazonaws.com |
Installerade controllers/operators:
- ArgoCD (GitOps)
- cert-manager
- external-dns
- external-secrets (ClusterSecretStore:
aws-ssm-store→ AWS SSM) - Kong gateway (NLB k8s-gateway-konggate)
- aws-load-balancer-controller
- Karpenter (graviton-spot nodepool)
- metrics-server
- Kafka (KRaft, 3-broker StatefulSet
wavult-kafka, wavult ns)
Namespaces:
rust– Rust-workloads (7 ClusterIP-services definierade)gateway– Kong Ingresswavult– Kafka + bakgrundsinfraargocd– GitOpsaamos– aamos-event-bus-svc :3383
Migrationsstatus 2026-06-07:
- tickets-tjänst: KLAR i EKS (2 pods, arm64, Kong-route, RDS-verifierad)
- ledger: ECR-repo skapad, EJ migrerad
- 15 övriga restaurant-tjänster: EJ migrerade
1.7 AWS Secrets Manager
| Secret | ARN-suffix | Innehåll |
|---|---|---|
/wavult/prod/core |
— | Core-nycklar |
/wavult/prod/identity |
— | Identity-nycklar |
/wavult/prod/amos-db-url |
— | RDS URL |
/wavult/prod/ledger-db-url |
— | Ledger DB URL |
wavult/codebuild/gitea-token |
— | Gitea CI-token |
aamos/prod/mail-accounts |
...NCx2TX | 21 Mailu-kontolösenord |
/aamos/prod/restaurant/DATABASE_URL |
— | Restaurant-tjänsters DB |
OBS: Instansroll saknar secrets-access. Åtkomst VIA profil
platform-ai-agent.
1.8 Cloudfront
| Distribution | Origin | Domäner |
|---|---|---|
| EE30B9WM5ZYM7 | S3 quixzoom-landing-prod | quixzoom.com, www.quixzoom.com |
1.9 CodeBuild
- build-wavult-core
- build-amos-core
- mirror-gitea
- hypbit-build-landvex-api
2. NÄTVERKSARKITEKTUR
2.1 VPC och Subnets
- VPC: eu-north-1 (Standard AWS VPC)
- Subnets: eu-north-1a, eu-north-1b, eu-north-1c
- DNS: AmazonProvidedDNS (172.31.0.2) – CANONICAL resolver för prod
- Tailscale: MagicDNS 100.100.100.100 – server-2 primär resolver (BRÄCKLIGT för multi-host)
2.2 Tailscale
- server-2 är Tailscale-ansluten (100.100.100.100)
- ARKITEKTUR-FLAGGA: Prod DB-resolution beror på Tailscale MagicDNS – bräckligt
- ÅTGÄRD (2026-06-05): VPC-resolver som fallback via systemd-resolved.conf.d/99-vpc-fallback.conf på server-2. FallbackDNS=172.31.0.2 + Domains ~rds.amazonaws.com.
2.3 Security Groups
| SG | Roll | Kritiska regler |
|---|---|---|
| sg-070aca8fc94a5a91b | server-2 + host-2 (hosts) | Self-reference inlagd 2026-06-05 (443/3100/3209 från sig själv) |
| sg-0cac842012eae85dd | ALB | — |
| sg-0feb828ee1ff94071 | RDS | Tillåter host-SG (070a) på 5432 |
KRITISK FIX (2026-06-05 02:38 UTC): sg-070aca8fc94a5a91b saknade self-reference → host→host (och host→egen-priv-IP) blockerat. Tillagd: inbound 443/3100/3209 från egen SG. host-2 fick omedelbart RDS-access på 3209.
2.4 DNS (Route53)
| Zon | Zone ID |
|---|---|
| aamos.systems | Z03908683A2AIMRZR85BQ |
| wavult.com | 5bed27e91d719b3f9d82c234d191ad99 (Cloudflare, avvecklat 2026-05-16) |
| quixzoom.com | e9a9520b64cd67eca1d8d926ca9daa79 (Cloudflare) |
DNS-migrationsstatus (2026-06-05/06):
- 66 Route53-zoner inventerade (C1 2026-06-06)
- Kategori EU: 38 zoner (hanteras av teamet)
- Kategori övriga marknader: 13 zoner (partner-modell, hold tills Erik beslutar)
- Dubbletter/döda: 4 zoner
3. TJÄNSTER OCH PORTAR
3.1 Systemd-tjänster (Rust – ARM64)
| Tjänst | Port | Kategori |
|---|---|---|
| aamos-api-gateway | 3206 | Core |
| aamos-rule-engine | 3201 | Core |
| aamos-tolkserver | 3204 | Core (Primal Charter §1.1-1.8) |
| aamos-stammregister | 3205 | Core |
| aamos-gecl-chain | 3263 | Core (Governed Evidence Chain Ledger) |
| aamos-health-aggregator | 3299 | Core (hårdkodad port) |
| aamos-financial-engine | 3203 | Finance |
| aamos-ledger | 3250 | Finance (dubbel bokföring, BAS, SIE4) |
| aamos-sie-import | 3254 | Finance |
| aamos-bank-import | 3253 | Finance |
| aamos-billing-engine | 3392 | Finance |
| aamos-payroll-rust | 3285 | Finance/HR |
| aamos-invoice-rust | 3286 | Finance |
| aamos-people-core | 3271 | HR |
| aamos-hr-rust | 3284 | HR |
| aamos-operations-core | 3272 | Ops |
| aamos-commerce-rust | 3280 | Commerce |
| aamos-crm-rust | 3282 | Commerce |
| aamos-campaign-rust | 3283 | Commerce |
| aamos-compliance-rust | 3287 | Compliance |
| aamos-dynasty-engine | 3210 | Governance (hårdkodad port) |
| aamos-venture | 3316 | Governance |
| aamos-analytics-engine | 3211 | Analytics |
| aamos-analytics-rust | 3281 | Analytics |
| aamos-meeting-service | 3308 | Collab |
| aamos-quixzoom-engine | 3390 | quiXzoom |
| aamos-landvex-engine | 3391 | LandveX |
| aamos-dissg-engine | 3360 | Gov/Intel (DISSG – Kolada) |
| aamos-seep | 3350 | Gov/Intel (SEEP – Kvittovalvet Pan-EU) |
| aamos-mlcs-engine | 3370 | Intelligence |
| amos-core | 3100 | Core (AI Brain, LLM-router) |
Restaurant-systemd (Rust – ARM64, server-2)
| Tjänst | Port |
|---|---|
| aamos-restaurant-pos | 3300 |
| aamos-restaurant-inventory | 3301 |
| aamos-restaurant-hr | 3302 |
| aamos-restaurant-ops | 3303 |
| aamos-restaurant-onboarding | 3304 |
| aamos-restaurant-menu | 3305 |
| aamos-restaurant-compliance | 3306 |
| aamos-restaurant-analytics | 3307 |
| aamos-restaurant-delivery | 3309 |
| aamos-restaurant-licensing | 3310 |
| aamos-restaurant-kiosk | 3311 |
| aamos-restaurant-estax | 3312 |
| aamos-restaurant-eslocal | 3313 |
| aamos-restaurant-screens | 3314 |
| aamos-restaurant-designer | 3315 |
| aamos-restaurant-tickets | 3318 → EKS (rust ns, 2 pods) |
3.2 Systemd-tjänster (Node.js)
| Tjänst | Port |
|---|---|
| ouroboros-finance | 3202 |
| ouroboros-identity | 3207 |
| ouroboros-payroll | 3231 |
| ouroboros-expenses | 3226 |
| aamos-audit-engine | 3251 |
3.3 PM2-processer (Node.js)
| Namn | Port | Roll |
|---|---|---|
| quixzoom-api | 3209 | quiXzoom API (bakom ALB) |
| ai-gateway | 3270 | LLM-routing (6 providers, auto-failover) |
| provider-monitor | — | Kredit/health-bevakning |
| audit-proxy | — | Audit-proxy (bryggar 3251→3260) |
| ouroboros-multiorg | — | Multi-org orchestration |
| ouroboros-finance-proxy | — | Finance proxy |
| ouroboros-identity-proxy | — | Identity proxy |
| ouroboros-people-proxy | — | People proxy |
| ouroboros-commerce-proxy | — | Commerce proxy |
| ouroboros-time | — | Time tracking |
| mail-admin | — | Mailadmin |
3.4 Externa tjänster (vLLM, NATS)
| Tjänst | Host | Port | Status |
|---|---|---|---|
| vLLM (ALETHEIA) | 172.31.36.61 (gpu-training) | 8000 | LIVE, nohup (EJ systemd) |
| NATS | server-2 | — | Systemd |
| Kafka | EKS wavult ns | — | 3/3 brokers healthy |
4. DOMÄNMIGRATION wavult.com → aamos.systems
4.1 Bakgrund
Erik (2026-06-05): "Vi driver affären Aamos i Aamos. wavult ska ALDRIG synas i domäner."
4.2 Migreringsstatus (2026-06-05/06)
Live på aamos.systems (200+):
- os, pro, ai, api, analytics, commerce, amos, bernt, git, gitea, grafana/monitor, watchman, sales, tasks, identity, payments, gfiae, audit
Produktdomäner (live):
- aamos.ai (+www +api)
- api.quixzoom.com
301-redirects (gammal wavult.com → ny):
- ouroboros→os, argus→watchman, staff→team, jira/plane→tasks, quixzoom-api→api.quixzoom.com, gate/kong-admin→api.aamos.systems
Maintenance (503):
- team (port 3510 ej deployad)
- vault (172.31.42.221 nedlagd)
4.3 nginx-konfiguration
Huvudfil: /etc/nginx/sites-available/aamos.systems
Subdomäner i aamos.systems-filen:
os.aamos.systems→ proxy 127.0.0.1:3100pro.aamos.systems→ proxy 127.0.0.1:3100ai.aamos.systems→ proxy 127.0.0.1:3100api.aamos.systems→ microservices gateway
Egna dedikerade vhost-filer:
- audit.aamos.systems, gfiae.aamos.systems, git.aamos.systems, gitea.aamos.systems
- grafana.aamos.systems, identity.aamos.systems, payments.aamos.systems, watchman.aamos.systems
NGINX-PRIVKEY-BUGG (fixad): Alla certs i /etc/letsencrypt/archive//privkey.pem hade 640 (ec2-user) → nginx-worker (uid 101) kunde ej läsa → krasch vid reload. Fixat till 644. Viktigt vid framtida cert-skapande.
5. MAILINFRASTRUKTUR (MAILU)
5.1 Stack
| Komponent | Detalj |
|---|---|
| Stack | Mailu 2.0 (postfix/dovecot/rspamd/admin/webmail) |
| Mailserver | mail.wavult.com @ 16.170.83.169 |
| Utgående relay | Resend (resend.com) |
| TLS-cert | mail.wavult.com (EJ mail.aamos.systems – SAN saknas) |
| Admin | Mailu admin-panel |
| Docker | Docker-stack live |
5.2 Brevlådor (17 st)
aamos.systems (10):
- erik, winston, dennis, johan, leon (RADERAD 2026-06-06), bernt
- info, support, hr, no-reply
- Roll-brevlådor: ceo, cfo, coo, cto (+ cmo-alias)
landvex.com (3): info, support, no-reply
quixzoom.com (4): info, support, no-reply, zoomers
5.3 Alias-routing (24 alias, multi-hop)
Funktionsadress → ROLL → Person-arkitektur:
- sales/marketing@aamos.systems → cmo → cto (CMO vakant, temporärt)
- billing/finance/invoice@aamos.systems → cfo → winston
- legal@aamos.systems → coo → dennis
- security/cto@aamos.systems → cto → johan
- ceo@aamos.systems → ceo → erik
LIVE-test (verifierat):
- sales@aamos.systems → cmo → ceo → erik: status=sent ✅
- billing@landvex.com → cfo → winston: status=sent ✅
5.4 DNS-konfiguration (Route53)
| Record | Värde |
|---|---|
| MX | 10 mail.wavult.com |
| SPF | v=spf1 mx a:mail.wavult.com include:spf.resend.com ~all |
| DKIM | wavult._domainkey.aamos.systems (RSA 2048, chunkad 255-bitar) |
| DMARC | p=none (mjuk start, rua→postmaster@aamos.systems) |
5.5 Kvarstående Mailuppgifter
- TLS-cert: lägg till mail.aamos.systems som SAN
- DMARC: höj p=none → p=quarantine/reject (efter 1-2v verifiering)
- ~60 övriga domäner: partner-modell eller catch-all-redirect, väntar Eriks beslut
6. AI-INFRASTRUKTUR
6.1 AI-Gateway (ai-gateway, PM2, port 3270)
Fil: /opt/amos/data/ai-gateway/gateway.mjs
Failover-kedjor (Grok exkluderad tills påfylld):
| Task | Primär → Fallback 1 → Fallback 2 |
|---|---|
| reasoning | openai(o3) → anthropic(opus) → deepseek |
| fast | groq → gemini → openai(4o-mini) |
| search | perplexity (ingen fallback) |
| creative | openai(gpt-4o) → anthropic(sonnet) → gemini |
| financial | anthropic(claude) → openai(o3) → groq |
| default | anthropic(sonnet) → openai(4o) → groq |
Endpoints: POST /v1/chat, GET /health, /metrics, /providers Circuit-breaker: Per provider (öppnas efter N fel, halvöppen efter cooldown)
6.2 Provider-monitor (PM2)
Fil: /opt/amos/data/ai-gateway/monitor.mjs
- Pollar 7 providers var 5:e min
- Auto-larm CRITICAL: Winston (kredit) + Johan (nedtid) via HomoDeus
- Output: provider-status.json
6.3 AWS Bedrock
| Modell | Status |
|---|---|
| Qwen3-32B (aws) | LIVE – primär för /api/aamos/chat |
| Claude Sonnet 4.5 (Bedrock eu-north-1) | UPPLÅST (FTU-formulär inskickat 2026-06-06 via API, root) |
| Claude Opus 4.6 (Bedrock eu-north-1) | UPPLÅST |
| Claude Opus 4.8 (direkt Anthropic-nyckel) | LIVE – poliskontroll/domare |
OBS: Bedrock-Claude var gated (use-case-formulär ej ifyllt). Lösning: PutUseCaseForModelAccess API anropades direkt med root-access. Nu upplåst för konto 155407238699 eu-north-1.
6.4 ALETHEIA (ESLM v5)
| Parameter | Värde |
|---|---|
| Basmodell | Qwen2.5-7B-Instruct (unsloth/Qwen2.5-7B-Instruct-bnb-4bit) |
| Träningsdata | v5: 20807 train / 2319 val, 0 företagstermer |
| LoRA config | r=16, alpha=32, dropout=0.05, 7 target_modules |
| Träningsresultat | train_loss 0.35, token-accuracy 94%, 3 epoker, 57 min (8x A100) |
| Serving | vLLM fp16, VRAM 21GB, served-name: aletheia |
| Endpoint | 172.31.36.61:8000/v1 |
| Bugfix | VLLM_USE_FLASHINFER_SAMPLER=0 + --enforce-eager |
| Säkrad | server-2 /opt/amos/models/aletheia-v5/ (15GB) + S3 + A10G |
Versionshistorik:
- v1 (amos-r2 original): 33473 ex, fel org-nr (559316-3881), LandveX=bostad → BLOCKED 33%
- v2: 33352 ex, org-nr fixat, ej omtränats
- v3: 33352 ex (canon-datafix), Leon/Vincento kvar → KASSERAD (kontaminerad)
- v4: 33178 ex (Leon/Vincento droppade) → KASSERAD (v4 hade fortf. företagstermer)
- v5 (KLAR): 20807 ex, 0 företagstermer, generell evidensmotor → DEPLOYAD
7. SÄKERHETSHÄNDELSER OCH ÅTGÄRDER
7.1 Kritiska Säkerhetssårbarheter – Reparerade
| CVSS | Sårbarhet | Status | Datum |
|---|---|---|---|
| 10.0 | JWT Algorithm Confusion – jwt.decode() istf jwt.verify() i 6 filer | ✅ Fixad | 2026-05-06 |
| Kritisk | POST /api/qz/payments/credits/add – INGEN auth (obegränsad credits-minting) | ✅ Fixad | 2026-06-05 |
| Kritisk | Stripe-webhook – ingen idempotens (dubbel kreditering vid retry/multi-host) | ✅ Fixad | 2026-06-05 |
| Hög | /api/qz/assistant – öppen LLM-endpoint (AI-kostnadsabuse) | ✅ Rate-limited | 2026-06-05 |
| Medel | quiXzoom.submissions saknade approval-endpoint (zoomers aldrig betalade) | ✅ Fixad | 2026-06-05 |
7.2 Latenta SSL-buggar (Fixade)
Alla .mjs-filer med new Pool({connectionString: ...}) utan SSL:
- tool-registry.mjs → FIXED (ssl:{rejectUnauthorized:false})
- ouroboros-notifications-routes.mjs → FIXED
- timetrack/analytics-engine.mjs → FIXED
- scaffold/generator.mjs + transitions.mjs → Skippade (code templates, ej mot RDS)
7.3 nginx privkey chmod-bugg (Fixad)
Privkey-filer i /etc/letsencrypt/archive//privkey.pem hade chmod 640 (ec2-user:ec2-user) → nginx-worker (uid 101) kraschade vid reload. Fixat till 644.
8. INCIDENTER MED RCA
INC-001: xAI/Grok kredit-haveri (2026-06-04 21:43 UTC)
Symptom: AI-orkestrering #1c stoppade utan förvarning
Rotorsak: xAI/Grok API-nyckel hade 0 kr kvar, ingen auto-failover
Impact: Strategisk AI-orkestrering stoppades (ej kundpåverkande)
Fix: AI-Gateway med auto-failover + circuit-breaker. Provider-monitor med CRITICAL-larm.
Permanent åtgärd: ABSOLUT REGEL – varje provider = primärt Revolut-kort + fallback-kort + auto-topup + buffert (Tickets: Johan PROV-001..006, Winston PROV-W1..6)
INC-002: LandveX-systemkunskap-haveri (2026-06-06)
Symptom: AI-systemet trodde LandveX = "bostad/mäklare"
Rotorsak (4 lager):
- RAG-index existerade inte på disk
- rag.mjs indexerade bara 3 filer (ej styrningspaketet)
- Stubs svarade ok:true (dolde att RAG var dött)
- 39 konkurrerande truth-filer (ingen enskild sanningskälla)
Impact: Felaktig produktdefinition i AI-assistenten (produktionschat)
Fix: AAMOS_CANON.md skapad, rag.mjs patchad, RAG-index byggt om (94 chunks), wavult-facts.mjs fixad, orphan-fil neutraliserad
Permanent åtgärd: AAMOS_CANON.md = ENDA kanoniska sanningskällan (E4). Separation: wavult-facts.mjs (manuell) + CANON/RAG separata källor.
INC-003: host-2 DNS/RDS-fel (2026-06-05 03:00 UTC)
Symptom: host-2 (server-3) fick ENOTFOUND på RDS-endpoint
Rotorsak: AMI-snapshot fångade server-2:s resolv.conf med 100.100.100.100 (Tailscale). host-2 utan Tailscale → resolvern ej nåbar → RDS-DNS ouppslag
Impact: host-2 hölls automatiskt ur ALB-rotation (djup health-check 503 → korrekt beteende)
Fix: Terminerade trasig klon, ny host-2 v2 med user-data som skriver resolv.conf + chattr +i (nameserver 172.31.0.2)
Permanent åtgärd: server-2 fick FallbackDNS via systemd-resolved.conf.d/99-vpc-fallback.conf. ARKITEKTUR: Lägg VPC-resolver som primär/fallback på ALLA prod-hostar.
INC-004: amos-core OOM via SocialAuto restart-storm (2026-06-05)
Symptom: Alla domäner mot port 3100 timeout. amos-core: 5.2G/6.0G RAM, 1850 tasks, NATS 503-flod
Rotorsak: SocialAuto (social-account-automation.mjs) relanserade vid varje restart ALLA QUEUED/FAILED-jobb utan concurrency-tak → 137 stealth-Chromium-instanser (13.4 GB) → OOM → event-loop svalt
Fix: Cancellerade 274 skenande jobb. PATCH: global semafor SOCIALAUTO_MAX_CONCURRENT=3 runt runAutomation()
Lärdom: Vid amos-core-strul – kolla ALLTID pgrep -fc chrome och social-account-jobs.json status-counts FÖRST.
INC-005: Kafka degraderad 8 dagar (2/3 brokers) (Uppdagad 2026-06-07)
Symptom: kafka-1 saknad, 2/3 brokers i ≥8 dagar
Rotorsak 1: kafka-1 init-container fix-volume saknade resource limits → ResourceQuota wavult-quota blockerade (FailedCreate x721 över 8 dagar)
Rotorsak 2: kafka-1:s PVC bunden till raderad EBS-volym vol-0891ca1531dc90def (InvalidVolume.NotFound)
Fix: Patchade initContainer med resource limits. Raderade orphaned PVC + pod. EBS-CSI provisionerade ny 20Gi gp3. Broker rejoinade via RF=3-replikation.
Permanent åtgärd: Broker-hälso-monitoring saknas → observability-gap att åtgärda.
9. CERTIFIKAT
| Domän | CA | Giltig t.o.m. | Nyckeltyp |
|---|---|---|---|
| landvex.com + www | ZeroSSL | 2026-09-02 | EC |
| *.wavult.com | Let's Encrypt | Rollande | RSA |
| mail.wavult.com | Let's Encrypt | Rollande | RSA |
| quixzoom.com | ACM (ALB) | Hanteras av AWS | RSA |
Volume 3 av 7 | AMOS Development Workcamp Reconstruction Package