From e43664a83ad11a72be8fd45c1e2b940d392c0a8e Mon Sep 17 00:00:00 2001
From: Atlas Developer
Date: Mon, 22 Jun 2026 22:28:51 +0200
Subject: [PATCH] =?UTF-8?q?refactor:=20generalize=20into=20a=20distributab?=
=?UTF-8?q?le=20template=20=E2=80=94=20remove=20operator=20infra?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- delete internal infra docs: system-of-record.md, sitemap.html status board
(exposed live attack surface: subdomains, up/down status, client names)
- parameterize OS desktop: derive DOMAIN from location.hostname, u() helper
builds service URLs so a friend deploying at their domain just works
- scrub all live service links to service.{DOMAIN} placeholders
- remove client domains (bicos, hkintercare, etc.) everywhere
- collapse brand/client site tiles to one generic Website tile
- single public CTA -> atlascorporation.nl (Get a workspace)
- relative SSO sign-out; sanitized server scripts to example.com
Co-Authored-By: Claude Opus 4.8
---
ARCHITECTURE.md | 10 +-
README.md | 54 ++++----
SERVICES.md | 49 ++++----
assets/architecture.svg | 4 +-
docs/academy.md | 4 +-
docs/remote-desktop.md | 2 +-
docs/system-of-record.md | 86 -------------
server/atlas_brain.py | 4 +-
server/cockpit_shim.py | 2 +-
web/os.html | 258 ---------------------------------------
web/os/index.html | 60 ++++-----
web/sitemap.html | 49 --------
12 files changed, 87 insertions(+), 495 deletions(-)
delete mode 100644 docs/system-of-record.md
delete mode 100644 web/os.html
delete mode 100644 web/sitemap.html
diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md
index ac8c9e4..4bf341f 100644
--- a/ARCHITECTURE.md
+++ b/ARCHITECTURE.md
@@ -47,8 +47,8 @@ redundancy for access even if Caddy is down.
## Service Layers
### Tier 0 — Identity & Security
-- **Authentik** (`auth.atlascorporation.nl`) — OIDC/SSO, MFA, app proxies
-- **Vaultwarden** (`vault.atlascorporation.nl`) — end-to-end encrypted password vault
+- **Authentik** (`auth.{DOMAIN}`) — OIDC/SSO, MFA, app proxies
+- **Vaultwarden** (`vault.{DOMAIN}`) — end-to-end encrypted password vault
- **Caddy** — automatic TLS, reverse proxy, the sole public entry point
### Tier 1 — Core Business
@@ -91,12 +91,6 @@ All served via Caddy. WordPress sites run in isolated Docker stacks:
| `atlasagency.nl` | Docker: agency-wordpress | Agency services |
| `atlasacademy.nl` | TransIP nginx (static HTML) | Academy landing |
| `atlaspos.nl` | TransIP | AtlasPOS product site |
-| `atlashub.nl` | Docker: atlashub | Hub platform |
-| `bicosagency.nl` | Docker: bicos-wordpress | Client site |
-| `budgetenergiecoach.nl` | Docker | Client site |
-| `hkintercare.nl` | Docker: hkincare-wordpress | Client site |
-| `jouwenergieadvies.nl` | Docker | Client site |
-| `reclamemans.nl` | Docker | Client site |
---
diff --git a/README.md b/README.md
index aaedc3a..a2605ba 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
# Atlas OS
-[](https://command.atlascorporation.nl/os/)
+[](https://atlascorporation.nl)
[](./SERVICES.md)
[](./SERVICES.md)
[](./ARCHITECTURE.md)
@@ -14,7 +14,7 @@
**Your entire business running on one hardened Linux server.**
**One SSO identity. One browser login. One OS.**
-[🚀 Live Desktop](https://command.atlascorporation.nl/os/) · [📐 Architecture](./ARCHITECTURE.md) · [📦 Services](./SERVICES.md) · [🛠 Deploy](./deploy/) · [🤖 AI Stack](./docs/ai-stack.md) · [📖 Wiki](https://git.atlascorporation.nl/chaib/atlas-os/wiki)
+[🚀 Get a workspace](https://atlascorporation.nl) · [📐 Architecture](./ARCHITECTURE.md) · [📦 Services](./SERVICES.md) · [🛠 Deploy](./deploy/) · [🤖 AI Stack](./docs/ai-stack.md) · [📖 Wiki](https://git.atlascorporation.nl/chaib/atlas-os/wiki)
@@ -28,11 +28,13 @@ It's the operational spine of **Atlas Corporation** (Tilburg, NL) — built by a
> Think of it as a Citrix-style desktop, but it's your own server, your own identity, your own data.
+> **Want your own?** Self-host the whole stack with the [one-command installer](#-quick-deploy) below — or get a managed Atlas workspace at **[atlascorporation.nl](https://atlascorporation.nl)**.
+

-The Atlas OS desktop — categorized launcher, live cockpit panels, drag-and-drop windows. Served at command.atlascorporation.nl/os/ behind SSO.
+The Atlas OS desktop — categorized launcher, live cockpit panels, drag-and-drop windows. Served at command.{DOMAIN}/os/ behind SSO.
@@ -51,11 +53,11 @@ It's the operational spine of **Atlas Corporation** (Tilburg, NL) — built by a
## 🖥️ The Desktop
-Open `https://command.atlascorporation.nl/os/` on any device. You get a space-themed boot screen → Authentik SSO login → a live desktop with your real data: a categorized launcher (Cockpit · Identity · AI · Work · Files · Ops · Sites), drag-and-drop windows, a taskbar, and cockpit panels that auto-refresh.
+Open ``command.{DOMAIN}/os/`` on any device. You get a space-themed boot screen → Authentik SSO login → a live desktop with your real data: a categorized launcher (Cockpit · Identity · AI · Work · Files · Ops · Sites), drag-and-drop windows, a taskbar, and cockpit panels that auto-refresh.
**Remote Linux desktop** (tailnet-only):
```
-http://atlas-01.tailab40ed.ts.net:8497
+`desktop.{DOMAIN}` (tailnet-only)
```
A real XFCE desktop in the browser. Claude Code and Chromium are pre-installed — OAuth login works because the browser is *inside* the desktop. Requires Tailscale to be active on your device.
@@ -127,45 +129,45 @@ Full detail in [ARCHITECTURE.md](./ARCHITECTURE.md).
### 🛡️ Identity
| App | Description | URL |
|-----|-------------|-----|
-| Authentik | SSO, OIDC, MFA — gates all services | [auth.atlascorporation.nl](https://auth.atlascorporation.nl) |
-| Vaultwarden | Self-hosted Bitwarden (iOS app works) | [vault.atlascorporation.nl](https://vault.atlascorporation.nl) |
+| Authentik | SSO, OIDC, MFA — gates all services | `auth.{DOMAIN}` |
+| Vaultwarden | Self-hosted Bitwarden (iOS app works) | `vault.{DOMAIN}` |
### 🤖 AI
| App | Description | URL |
|-----|-------------|-----|
-| Atlas Chat | Open-WebUI — ChatGPT-style on local + cloud models | [chat.atlascorporation.nl](https://chat.atlascorporation.nl) |
-| AI Gateway | LiteLLM proxy — unified OpenAI-compat API | [llm.atlascorporation.nl](https://llm.atlascorporation.nl) |
-| Mindmap | AI-powered visual thinking | [mindmap.atlascorporation.nl](https://mindmap.atlascorporation.nl) |
-| Leeragent | Learning & knowledge agent | [leeragent.atlascorporation.nl](https://leeragent.atlascorporation.nl) |
+| Atlas Chat | Open-WebUI — ChatGPT-style on local + cloud models | `chat.{DOMAIN}` |
+| AI Gateway | LiteLLM proxy — unified OpenAI-compat API | `llm.{DOMAIN}` |
+| Mindmap | AI-powered visual thinking | `mindmap.{DOMAIN}` |
+| Leeragent | Learning & knowledge agent | `leeragent.{DOMAIN}` |
See the full AI routing stack (local → free cloud → paid) in [docs/ai-stack.md](./docs/ai-stack.md).
### 💼 Work
| App | Description | URL |
|-----|-------------|-----|
-| Odoo | ERP + CRM (leads, invoices, customers) | [odoo.atlascorporation.nl](https://odoo.atlascorporation.nl) |
-| CFO / Firefly III | Double-entry bookkeeping + budget intelligence | [cfo.atlascorporation.nl](https://cfo.atlascorporation.nl) |
-| Bank / Enable Banking | PSD2 bank sync (ING, Knab, etc.) | [fidi.atlascorporation.nl](https://fidi.atlascorporation.nl) |
-| Paperless-ngx | Document management + OCR | [paperless.atlascorporation.nl](https://paperless.atlascorporation.nl) |
-| OnlyOffice | Full office suite (Writer, Sheets, Slides) | [office.atlascorporation.nl](https://office.atlascorporation.nl) |
-| Calendar | Nextcloud Calendar (DAV sync to iOS) | [cloud.atlascorporation.nl](https://cloud.atlascorporation.nl) |
+| Odoo | ERP + CRM (leads, invoices, customers) | `odoo.{DOMAIN}` |
+| CFO / Firefly III | Double-entry bookkeeping + budget intelligence | `cfo.{DOMAIN}` |
+| Bank / Enable Banking | PSD2 bank sync (ING, Knab, etc.) | `fidi.{DOMAIN}` |
+| Paperless-ngx | Document management + OCR | `paperless.{DOMAIN}` |
+| OnlyOffice | Full office suite (Writer, Sheets, Slides) | `office.{DOMAIN}` |
+| Calendar | Nextcloud Calendar (DAV sync to iOS) | `cloud.{DOMAIN}` |
### 📁 Files & Comms
| App | Description | URL |
|-----|-------------|-----|
-| Nextcloud | File storage, DAV, photos | [cloud.atlascorporation.nl](https://cloud.atlascorporation.nl) |
-| Stalwart Mail | Self-hosted email (SMTP/IMAP/JMAP) | [stalwart.atlascorporation.nl](https://stalwart.atlascorporation.nl) |
-| Relay | Internal message relay service | [relay.atlascorporation.nl](https://relay.atlascorporation.nl) |
+| Nextcloud | File storage, DAV, photos | `cloud.{DOMAIN}` |
+| Stalwart Mail | Self-hosted email (SMTP/IMAP/JMAP) | `stalwart.{DOMAIN}` |
+| Relay | Internal message relay service | `relay.{DOMAIN}` |
### ⚙️ Ops
| App | Description | URL |
|-----|-------------|-----|
| Forgejo | Self-hosted Git — this very repo | [git.atlascorporation.nl](https://git.atlascorporation.nl) |
-| n8n | Workflow automation | [n8n.atlascorporation.nl](https://n8n.atlascorporation.nl) |
-| Uptime Kuma | Service health monitoring | [uptime.atlascorporation.nl](https://uptime.atlascorporation.nl) |
-| MeshCentral | Fleet management + remote access | [mesh.atlascorporation.nl](https://mesh.atlascorporation.nl) |
-| Command | Atlas command dashboard | [command.atlascorporation.nl](https://command.atlascorporation.nl) |
-| Remote Desktop | Webtop full Linux desktop (tailnet-only) | `atlas-01.tailab40ed.ts.net:8497` |
+| n8n | Workflow automation | `n8n.{DOMAIN}` |
+| Uptime Kuma | Service health monitoring | `uptime.{DOMAIN}` |
+| MeshCentral | Fleet management + remote access | `mesh.{DOMAIN}` |
+| Command | Atlas command dashboard | `command.{DOMAIN}` |
+| Remote Desktop | Webtop full Linux desktop (tailnet-only) | `desktop.{DOMAIN} (tailnet-only)` |
### 🎓 Atlas Academy
A full education arm running on the same box — courses, coaching, and an ESF/BiSL/AI curriculum at [atlasacademy.nl](https://atlasacademy.nl). Lead capture posts straight into Odoo CRM via the `atlas-academy-relay` service (creates `crm.lead` records), with an email fallback. Product feed is wired to WooCommerce. See [docs/academy.md](./docs/academy.md).
@@ -174,7 +176,7 @@ A full education arm running on the same box — courses, coaching, and an ESF/B
A first-class part of the OS, not an add-on: family-safe DNS (AdGuard Family), Quran at logon, Adhan playback + screen lock at El Feth Tilburg salah times, and recurring sunnah reminders across the device fleet. See [docs/islamic-layer.md](./docs/islamic-layer.md).
### 🌐 Managed Sites
-`atlasworks.nl` · `atlascorporation.nl` · `atlasagency.nl` · `atlasacademy.nl` · `atlaspos.nl` · `atlashub.nl` · `bicosagency.nl` · `budgetenergiecoach.nl` · `hkintercare.nl` · `jouwenergieadvies.nl` · `reclamemans.nl`
+Your own brand sites and any client WordPress sites — each in an isolated Docker stack behind Caddy.
---
diff --git a/SERVICES.md b/SERVICES.md
index a829de5..9090801 100644
--- a/SERVICES.md
+++ b/SERVICES.md
@@ -1,7 +1,7 @@
# Atlas OS — Full Service Catalog
55 containers, 39 browser-accessible apps, 20+ background systemd services.
-Live status: https://uptime.atlascorporation.nl
+Live status: `uptime.{DOMAIN}`
---
@@ -20,53 +20,52 @@ Live status: https://uptime.atlascorporation.nl
| Service | URL |
|---------|-----|
-| Authentik | auth.atlascorporation.nl |
-| Vaultwarden | vault.atlascorporation.nl |
+| Authentik | auth.{DOMAIN} |
+| Vaultwarden | vault.{DOMAIN} |
## AI
| Service | URL |
|---------|-----|
-| Atlas Chat (Open-WebUI) | chat.atlascorporation.nl |
-| AI Gateway (LiteLLM) | llm.atlascorporation.nl |
-| Mindmap | mindmap.atlascorporation.nl |
-| Leeragent | leeragent.atlascorporation.nl |
+| Atlas Chat (Open-WebUI) | chat.{DOMAIN} |
+| AI Gateway (LiteLLM) | llm.{DOMAIN} |
+| Mindmap | mindmap.{DOMAIN} |
+| Leeragent | leeragent.{DOMAIN} |
## Work
| Service | URL |
|---------|-----|
-| Odoo 19 ERP | odoo.atlascorporation.nl |
-| Firefly III (CFO) | cfo.atlascorporation.nl |
-| Enable Banking | fidi.atlascorporation.nl |
-| Paperless-ngx | paperless.atlascorporation.nl |
-| OnlyOffice | office.atlascorporation.nl |
-| Nextcloud Calendar | cloud.atlascorporation.nl/apps/calendar |
+| Odoo 19 ERP | odoo.{DOMAIN} |
+| Firefly III (CFO) | cfo.{DOMAIN} |
+| Enable Banking | fidi.{DOMAIN} |
+| Paperless-ngx | paperless.{DOMAIN} |
+| OnlyOffice | office.{DOMAIN} |
+| Nextcloud Calendar | cloud.{DOMAIN}/apps/calendar |
## Files & Communications
| Service | URL |
|---------|-----|
-| Nextcloud | cloud.atlascorporation.nl |
-| Stalwart Mail | stalwart.atlascorporation.nl |
-| Relay | relay.atlascorporation.nl |
+| Nextcloud | cloud.{DOMAIN} |
+| Stalwart Mail | stalwart.{DOMAIN} |
+| Relay | relay.{DOMAIN} |
## Ops & Infrastructure
| Service | URL |
|---------|-----|
| Forgejo | git.atlascorporation.nl |
-| n8n | n8n.atlascorporation.nl |
-| Uptime Kuma | uptime.atlascorporation.nl |
-| MeshCentral | mesh.atlascorporation.nl |
-| Command | command.atlascorporation.nl |
-| Remote Desktop (tailnet-only) | atlas-01.tailab40ed.ts.net:8497 |
+| n8n | n8n.{DOMAIN} |
+| Uptime Kuma | uptime.{DOMAIN} |
+| MeshCentral | mesh.{DOMAIN} |
+| Command | command.{DOMAIN} |
+| Remote Desktop (tailnet-only) | desktop.{DOMAIN} (tailnet-only) |
## Managed Sites
atlasworks.nl, atlascorporation.nl, atlasagency.nl, atlasacademy.nl, atlaspos.nl,
-atlashub.nl, bicosagency.nl, budgetenergiecoach.nl, hkintercare.nl,
-jouwenergieadvies.nl, reclamemans.nl
+your-site-1.example, your-site-2.example
## Background systemd Services
@@ -97,8 +96,8 @@ jouwenergieadvies.nl, reclamemans.nl
| Service | URL |
|---------|-----|
| Academy site | atlasacademy.nl |
-| Lead relay (Odoo) | /academy-lead -> 127.0.0.1:7793 (atlas-academy-relay) |
-| Product feed | atlasworks.nl/academy-feed.php |
+| Lead relay (Odoo) | /academy-lead -> 127.0.0.1: (atlas-academy-relay) |
+| Product feed | /academy-feed.php |
## Islamic Layer
diff --git a/assets/architecture.svg b/assets/architecture.svg
index fd839b5..f60bce0 100644
--- a/assets/architecture.svg
+++ b/assets/architecture.svg
@@ -86,8 +86,8 @@
11 MANAGED SITES
- atlasworks.nl · atlascorporation.nl · atlasagency.nl · atlasacademy.nl · atlaspos.nl · atlashub.nl
- bicosagency.nl · budgetenergiecoach.nl · hkintercare.nl · jouwenergieadvies.nl · reclamemans.nl — all via Caddy
+ Your own brand sites + any client WordPress sites you host
+ each in an isolated Docker stack — all fronted by Caddy
diff --git a/docs/academy.md b/docs/academy.md
index a939c26..9192206 100644
--- a/docs/academy.md
+++ b/docs/academy.md
@@ -22,14 +22,14 @@ atlas-academy-relay (systemd on atlas-01, port 7793)
└─► email fallback → info@atlascorporation.nl
```
-The relay is exposed via Caddy at `/academy-lead` (proxied to `127.0.0.1:7793`). It caches the Odoo UID so it doesn't re-authenticate on every lead.
+The relay is exposed via Caddy at `/academy-lead` (proxied to `127.0.0.1:`). It caches the Odoo UID so it doesn't re-authenticate on every lead.
## Product feed
Courses and hardware bundles are pulled from WooCommerce via a JSON feed, so the Academy shop stays in sync with the live store without duplicating product data.
```
-GET https://www.atlasworks.nl/academy-feed.php
+GET https://www./academy-feed.php
→ { ts, count, products[] } # each: { id, title, price, type, img, url, cats }
```
diff --git a/docs/remote-desktop.md b/docs/remote-desktop.md
index d37c65a..3c5a1b3 100644
--- a/docs/remote-desktop.md
+++ b/docs/remote-desktop.md
@@ -4,7 +4,7 @@ A **real Linux desktop in the browser** — not a web app. Full XFCE on Ubuntu 2
streamed via Selkies/WebRTC, where you can run any application: Claude Code, Chromium,
a terminal, editors, anything you apt-install.
-**URL:** https://desktop.atlascorporation.nl (login at the Caddy edge)
+**URL:** `desktop.{DOMAIN}` (login at the Caddy edge)
## Why a real desktop
Unlike a headless server, a desktop has a browser — so the Claude Code OAuth login
diff --git a/docs/system-of-record.md b/docs/system-of-record.md
deleted file mode 100644
index 62fbf56..0000000
--- a/docs/system-of-record.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# Atlas — System of Record (verified)
-
-> Auto-generated from a read-only infrastructure audit (9 dimensions, 324 items, 106 agents). Every URL below was live-checked directly from the box. This is the single source of truth for *what exists and whether it works*.
-
-
-## Tools & services (atlas-01)
-
-| Service | Status | Access |
-|---|---|---|
-| **ai.atlascorporation.nl** — AI gateway (litellm) — backend gone | 🔴 404 dead | |
-| **auth.atlascorporation.nl** — Authentik SSO (identity provider) | 🟢 live | |
-| **cfo.atlascorporation.nl** — CFO finance panel | 🔐 SSO-gated | |
-| **chat.atlascorporation.nl** — Open WebUI (AI chat) | 🔐 SSO-gated | |
-| **cloud.atlascorporation.nl** — Nextcloud (files, calendar) | 🟢 live | |
-| **command.atlascorporation.nl** — Command center + Atlas OS | 🔐 SSO-gated | |
-| **fidi.atlascorporation.nl** — Firefly III data importer / bank | 🟢 live | |
-| **git.atlascorporation.nl** — Forgejo (git) | 🟢 live | |
-| **leeragent.atlascorporation.nl** — Leeragent | 🔐 SSO-gated | |
-| **llm.atlascorporation.nl** — AI gateway | 🟢 live | |
-| **mail.atlascorporation.nl** — Webmail — DOWN (bad gateway) | 🔴 502 down | |
-| **mesh.atlascorporation.nl** — MeshCentral (remote desktop) | 🟢 live | |
-| **mindmap.atlascorporation.nl** — STEEPLE mindmap | 🔐 SSO-gated | |
-| **n8n.atlascorporation.nl** — n8n automation | 🔐 SSO-gated | |
-| **odoo.atlascorporation.nl** — Odoo 19 CRM/ERP | 🔐 SSO-gated | |
-| **office.atlascorporation.nl** — Office suite | 🟢 live | |
-| **paperless.atlascorporation.nl** — Paperless-ngx (documents) | 🟢 live | |
-| **proxy.atlascorporation.nl** — Proxy gateway | 🟢 live | |
-| **relay.atlascorporation.nl** — Relay service | 🟢 live | |
-| **stalwart.atlascorporation.nl** — Stalwart mail admin | 🔐 SSO-gated | |
-| **twenty.atlascorporation.nl** — Twenty CRM — DOWN (no container) | 🔴 502 down | |
-| **uptime.atlascorporation.nl** — Uptime Kuma | 🔐 SSO-gated | |
-| **vault.atlascorporation.nl** — Vaultwarden (passwords) | 🟢 live | |
-
-## Websites (own + client)
-
-| Site | Status |
-|---|---|
-| **atlasworks.nl** — WooCommerce store (LIVE revenue) | 🟢 live |
-| **atlascorporation.nl** — Corporate site | 🟢 live |
-| **atlasagency.nl** — Agency site | 🟢 live |
-| **atlasacademy.nl** — Academy | 🟢 live |
-| **atlaspos.nl** — AtlasPOS landing (primary product) | 🟢 live |
-| **atlashub.nl** — Atlas Hub (login) | 🟢 live |
-| **bicosagency.nl** — Client — Bicos | 🟢 live |
-| **budgetenergiecoach.nl** — Client — Budget Energie Coach | 🟢 live |
-| **hkintercare.nl** — Client — HKinterCare | 🟢 live |
-| **jouwenergieadvies.nl** — Client — Jouw Energie Advies | 🟢 live |
-| **reclamemans.nl** — Client — ReclameMans | 🟢 live |
-| **hkinternationalcare.nl** — Client — DOWN/unreachable (DNS?) | 🔴 unreachable |
-
-## Needs attention (found by audit)
-
-- 🔴 **ai.atlascorporation.nl** → 404. The LiteLLM gateway container is gone; `litellm-db` runs orphaned. Either redeploy the gateway or remove the DNS + DB.
-- 🔴 **mail.atlascorporation.nl** → 502 (webmail bad gateway). Stalwart core is up; the webmail front-end is down.
-- 🔴 **twenty.atlascorporation.nl** → 502. Twenty CRM has a compose file + saved creds but **no running container**.
-- 🔴 **hkinternationalcare.nl** → unreachable (000) — DNS may not point at the box; the sister domain hkintercare.nl is live.
-- 🟠 **arena-trevor** — idle `python:3.11-slim` running `sleep infinity`, no mounts/source. Abandoned sandbox; safe to remove.
-- 🟠 **atlas-dms-db** — orphaned Postgres with no DMS app container.
-- 🟠 Several mariadb/wordpress images pin old tags (php8.1, :latest) — patch/staleness risk.
-
-## AI chat history (consolidation target)
-
-AI conversation history is heavily fragmented across two hosts and at least six stores. The dominant volume is local Claude Code session transcripts: 2,867 *.jsonl files under C:\Users\Gebruiker\.claude\projects (28+ distinct project folders). atlas-01 holds a small secondary set of 25 Claude *.jsonl files under /root/.claude/projects. The open-webui chat DB (webui.db, 7.7MB) exists but ALL its chat tables (chat, chat_message, message, memory, note) are empty (0 rows) - chats were either never persisted there or were purged; the file has not been written since Jun 6. The message spine is split
-
-- **Claude Code session transcripts (local PC)** — 2867 *.jsonl files - by far the largest AI-chat corpus. No central archive; lives only on this PC. Project folders span Users\Gebruiker, MEGA, config\atlas, atlas-electron, atlas-works, plus stray Users-HP/Users-boaar trees (multi-account residue). Primary consolidation source.
-- **Claude Code session transcripts (atlas-01)** — 25 *.jsonl files. Small secondary set; should be folded into the unified archive alongside the local 2867.
-- **open-webui chat database** — 7.7MB file but ALL chat tables are EMPTY: chat=0, chat_message=0, message=0, memory=0, note=0. No conversation content retained. Last modified Jun 6 - effectively stale/unused for chat history. Schema is rich (folders, knowledge, tools) but no chats persisted.
-- **Message-spine kernel (live)** — decisions=458, events=3415. ~1.99MB, written today (Jun 22 20:20). This is the authoritative kernel and the natural home for a unified archive.
-- **Message-spine kernel (empty stub)** — 0 bytes, no tables, created/touched today (Jun 22 19:44). Conflicts with /opt/atlas/mind/kernel.sqlite. Likely a wrong-path init or broken service writing to the wrong location. Delete or repoint to eliminate dual-kernel ambiguity.
-- **atlas-assistant triage log** — 271 lines. Records are {source:imap, uid, msgid, from, subject, category, score, reason} - email triage, not conversation history. Stale: last write Jun 8 (~97KB). Keep OUT of the AI-chat archive; it belongs to the mail pipeline.
-- **'evolution' store (WhatsApp Baileys auth)** — Contains creds.json, integration.json ({instanceName:atlas}), ~28 pre-key-*.json and ~17 session-*.json libsignal files (last write today). This is messaging-channel auth material, not AI conversation history. Misnamed relative to the audit's 'evolution store' expectation. Do NOT archive as chat; treat as sensitive credentials. (No secret values inspected/printed.)
-
-## Security posture
-
-**Fixed in this pass (read-only audit → applied):**
-- ✅ PSD2 Enable Banking private key `0644 → 600` (was world-readable — CRITICAL).
-- ✅ `odoo-selfhost-creds.env` `0644 → 600`.
-- ✅ Enable Banking session/auth/app JSONs `0644 → 600`.
-- ✅ Forgejo password stripped from the git remote URL; `.git/config` `→ 600`.
-
-**Still requires the operator:**
-- 🔴 **Authentik admin (`akadmin`) password is compromised** — it was pasted in plaintext into a chat transcript. Rotate it (and ideally enable MFA on the admin account). This is the master key to every SSO service.
-- 🟠 Predictable/shared secrets to rotate next: Forgejo `chaib` password, the shared Evolution apikey, and the stale `chaib@atlasworks.nl` IMAP password (email ingestion has been failing).
-
----
-*Generated by the Atlas system-of-record audit. Re-run anytime to refresh.*
diff --git a/server/atlas_brain.py b/server/atlas_brain.py
index 6b72ba9..c8278cc 100644
--- a/server/atlas_brain.py
+++ b/server/atlas_brain.py
@@ -43,14 +43,14 @@ CAL_CFG = ATLAS / "calendar-feeds.json"
CAL_CACHE = CACHE / "calendar-last.json"
LOG = ATLAS / "atlas-brain.log"
-ATLAS01 = os.environ.get("ATLAS01_URL", "http://atlas-01.tailab40ed.ts.net")
+ATLAS01 = os.environ.get("ATLAS01_URL", "http://localhost")
A01_USER = "atlas"
A01_PASS = os.environ.get("ATLAS_BASIC_PASS", "")
SERVICES = [
{"name": "Command Center", "url": "https://atlascorporation.nl/command"},
{"name": "Nextcloud", "url": "http://atlas-01:8443"},
- {"name": "MeshCentral", "url": "https://mesh.atlascorporation.nl/"},
+ {"name": "MeshCentral", "url": "https://mesh.example.com/"},
{"name": "Odoo", "url": "http://:8069"},
{"name": "Atlas Portal", "url": "http://atlas-01/portal.html"},
{"name": "n8n", "url": "http://:5678"},
diff --git a/server/cockpit_shim.py b/server/cockpit_shim.py
index 3bc54d4..6520e39 100644
--- a/server/cockpit_shim.py
+++ b/server/cockpit_shim.py
@@ -3,7 +3,7 @@
Atlas cockpit feed shim — serves the command-ui SPA's /v1/* and /api/* feed
endpoints from existing on-disk data, so the Reach cockpit's "0/5 feeds" goes
live. Unknown paths proxy through to control-room (:5057) so nothing regresses.
-Sits behind Caddy + Authentik on command.atlascorporation.nl; trusts upstream.
+Sits behind Caddy + Authentik on command.example.com; trusts upstream.
"""
import json, os, subprocess, urllib.request
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
diff --git a/web/os.html b/web/os.html
deleted file mode 100644
index f0f1993..0000000
--- a/web/os.html
+++ /dev/null
@@ -1,258 +0,0 @@
-
-
-
-
-
-
-Atlas OS
-
-
-
-
-
-
-
ATLAS OS
-
-
initializing kernel…
-
-
-
-
—
-
—
-
··
-
…
-
Atlas Corporation · connecting to Authentik SSO…
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Atlas OS 1.0 · your business on one box · live behind your identity login
One server (atlas-01, Hetzner) · 24 public services · generated 2026-06-22 · green = verified up, amber = needs attention
-
-
-Where your logins live: all credentials belong in your vault — vault.atlascorporation.nl (Vaultwarden). On iOS: install the Bitwarden app, set the server URL to vault.atlascorporation.nl, sign in. Identity for the OS and services = Authentik SSO.
-Known issue: email ingestion (IMAP credentials need refreshing — update /etc/atlas/assistant.env to restore inbox + calendar auto-detect.
-