diff --git a/README.md b/README.md index 2bc2494..bcbcead 100644 --- a/README.md +++ b/README.md @@ -1,335 +1,142 @@
+
|
|
+| **One partner for every system** — ERP, POS, webshop, hardware, AI as one seamless whole. | **The Atlas platform** — surfaces → workspace → data sources, one reviewed control layer. |
---
-## 📦 Service Catalog
+## 🗺️ Architecture
-### 🎯 Cockpit (live data panels)
-| App | Description | URL |
-|-----|-------------|-----|
-| Today | AI daily brief + accountability level | `command.atlascorporation.nl/os/` |
-| Money | Bank transactions via Enable Banking PSD2 | `command.atlascorporation.nl/os/` |
-| Inbox | Email + WhatsApp drafts, flagged items | `command.atlascorporation.nl/os/` |
-| Pipeline | Odoo CRM leads and deal status | `command.atlascorporation.nl/os/` |
-| Fleet | POS terminals, health, last-seen (MeshCentral) | `command.atlascorporation.nl/os/` |
-| Control | AI kill-switch, autonomy level, daily spend cap | `command.atlascorporation.nl/os/` |
-
-### 🛡️ Identity
-| App | Description | URL |
-|-----|-------------|-----|
-| Authentik | SSO, OIDC, MFA — gates all services | [auth.atlascorporation.nl](https://auth.atlascorporation.nl) |
-| Vaultwarden | Self-hosted Bitwarden (iOS Bitwarden app works) | [vault.atlascorporation.nl](https://vault.atlascorporation.nl) |
-
-### 🤖 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) |
-
-### 💼 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/apps/calendar](https://cloud.atlascorporation.nl/apps/calendar) |
-
-### 📁 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) |
-
-### ⚙️ 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` |
-| Architecture | Live system map | `/os/sitemap.html` |
-
-### 🌐 Managed Sites
-`atlasworks.nl` · `atlascorporation.nl` · `atlasagency.nl` · `atlasacademy.nl` · `atlaspos.nl` · `atlashub.nl` · `bicosagency.nl` · `budgetenergiecoach.nl` · `hkintercare.nl` · `jouwenergieadvies.nl` · `reclamemans.nl`
-
----
-
-## 🏗️ Architecture
+One box. One identity. Everything behind it.
```mermaid
-graph LR
- subgraph Internet
- U([User Browser])
- iOS([iOS / Mobile])
- end
+%%{init: {'theme':'base','themeVariables':{'primaryColor':'#0c1428','primaryTextColor':'#cfe2ff','primaryBorderColor':'#1F6FE0','lineColor':'#4EA0FF','fontFamily':'monospace'}}}%%
+graph TB
+ User([Any device]):::u --> Caddy[Caddy · TLS + edge]:::edge
+ Caddy --> Auth{{Authentik SSO}}:::id
+ Auth --> OS[Atlas OS desktop]:::os
+ Auth --> Apps[39 apps]:::os
+ OS --> Mind[The Mind · cockpit + spine]:::ai
+ Mind --> Brain[Atlas Brain · reviewed execution]:::ai
+ Brain --> Router[LLM router · local → Groq → Claude]:::ai
+ Apps --> Stack[Odoo · Nextcloud · Firefly · Paperless · n8n · Forgejo · Vault · Stalwart]:::svc
+ Caddy --> Fleet[Fleet · MeshCentral + Tailscale + NATS mesh]:::fleet
+ Caddy --> Sites[Client sites · WordPress · POS · Academy]:::site
- subgraph atlas-01["atlas-01 · Hetzner CPX32"]
- direction TB
- C[Caddy TLS]
- A[Authentik SSO]
- C -->|forward_auth| A
- A -->|verified| OS[Atlas OS Desktop]
- A -->|verified| OD[Odoo ERP]
- A -->|verified| NC[Nextcloud]
- A -->|verified| AI[AI Gateway LiteLLM]
- A -->|verified| FG[Forgejo Git]
- A -->|verified| N8[n8n]
- A -->|verified| MC[MeshCentral]
- A -->|verified| UP[Uptime Kuma]
-
- subgraph AI Stack
- AI --> OL[Ollama Local Models]
- AI --> GR[Groq Cloud]
- AI --> CL[Claude API]
- AB[Atlas Brain] -->|15min cycle| AI
- AB --> ST[atlas-state.json]
- ST --> OS
- end
-
- subgraph Mesh
- NATS[NATS Event Bus]
- NATS --> TS[Tailscale Devices]
- end
- end
-
- U -->|HTTPS| C
- iOS -->|Tailscale| TS
+ classDef u fill:#050810,stroke:#4EA0FF,color:#8EC2FF
+ classDef edge fill:#0c1428,stroke:#1F6FE0,color:#cfe2ff
+ classDef id fill:#145ED2,stroke:#4EA0FF,color:#fff
+ classDef os fill:#0c1428,stroke:#4EA0FF,color:#cfe2ff
+ classDef ai fill:#0c1428,stroke:#8EC2FF,color:#cfe2ff
+ classDef svc fill:#080c18,stroke:#1F6FE0,color:#9fb8e0
+ classDef fleet fill:#080c18,stroke:#1F6FE0,color:#9fb8e0
+ classDef site fill:#080c18,stroke:#145ED2,color:#9fb8e0
```
----
-
-## 🤖 AI Stack
-
-Atlas OS has a 4-tier AI routing stack — zero-cost local first, paid cloud only when needed:
-
-| Tier | Model / Alias | Backing | Use |
-|------|--------------|---------|-----|
-| 0 — Local | `atlas-fast` | LLaMA 1B (RTX A2000) | Classification, routing, labels |
-| 0 — Local | `atlas-free` | Hermes3 7B | Dutch copy, FAQ, product descriptions |
-| 0 — Local | `atlas-code` | Qwen Coder | Code completion, simple fixes |
-| 0 — Local | `atlas-auto` | Smart router | Picks best free local model |
-| 1 — Free Cloud | `groq/llama-3.3-70b` | Groq | Fast 70B reasoning, bulk tasks |
-| 1 — Free Cloud | `cerebras/llama-3.1-70b` | Cerebras | Fastest inference, free tier |
-| 1 — Free Cloud | `gemini-2.5-pro` | OpenRouter | 1M context, vision, PDF |
-| 2 — Paid | `claude-haiku-4-5` | Anthropic | Short copy, classification |
-| 2 — Paid | `claude-sonnet-4-6` | Anthropic | Code, multi-step reasoning |
-| 2 — Paid | `claude-opus-4-8` | Anthropic | Deep research, architecture |
-
-**Key AI services running 24/7:**
-
-| Service | What it does |
-|---------|-------------|
-| `atlas-brain` | Collects mail + CRM + bank every 15 min → synthesizes daily brief |
-| `atlas-loop` | Background signal loop — publishes nudges to NATS |
-| `atlas-meridian` | Autonomous decision engine / battle responder |
-| `atlas-litellm` | Unified LLM proxy (OpenAI-compat API for all above models) |
-| NATS mesh | Real-time event bus across all devices on the tailnet |
-| Langfuse | Full LLM observability — every call traced |
+Full write-up → **[ARCHITECTURE.md](./ARCHITECTURE.md)** · every container & service → **[SERVICES.md](./SERVICES.md)** · the AI layer → **[docs/ai-stack.md](./docs/ai-stack.md)**
---
-## 🚀 Quick Deploy
+## 🧩 The app catalog
-> **Requirements:** Debian 12 or Ubuntu 24.04, a domain with DNS pointed at the server, a Tailscale account.
+39 apps, live-verified (no dead tiles), grouped into a categorized launcher:
+
+| Group | Apps |
+|---|---|
+| **Cockpit** | Today · Money · Inbox · Pipeline · Fleet · Control |
+| **Identity** | Authentik SSO · Vaultwarden |
+| **AI** | Atlas Chat (Open WebUI) · AI Gateway · Mindmap · Leeragent |
+| **Work** | Odoo 19 · CFO · Bank (Firefly) · Paperless · Office · Calendar |
+| **Files & Comms** | Nextcloud · Mail Admin (Stalwart) · Relay |
+| **Ops** | Git (Forgejo) · n8n · Uptime Kuma · MeshCentral · Command · **Remote Desktop** · Architecture |
+| **Sites** | AtlasWorks · Atlas Corp · Agency · **Academy** · AtlasPOS · Hub + client sites |
+
+> **Remote Desktop** is a genuine Ubuntu XFCE desktop in the browser (Webtop) with Claude Code + Chromium pre-installed — boot Claude or any app, on a sovereign desktop. → [docs/remote-desktop.md](./docs/remote-desktop.md)
+
+---
+
+## 🛰️ Fleet, mesh & sovereignty
+
+- **MeshCentral** — remote management of every client POS terminal and device.
+- **Tailscale** — the private spine; internal services (`tailscale serve`) never touch the public internet.
+- **NATS mesh** — node-to-node messaging across the Atlas estate (round-trip proven).
+- **EU-sovereign** — Hetzner (NL/DE), no US Cloud Act exposure, MFA, nightly backups. → [docs/security.md](./docs/security.md)
+
+---
+
+## 🎓 Atlas Academy
+
+[atlasacademy.nl](https://atlasacademy.nl) — the training arm. BiSL, startup, AI and ESF-funded tracks, coaching and a course catalog, with leads relayed straight into Odoo CRM. Part of the same one-identity estate; surfaced as a desktop app.
+
+## 🕌 Atlas Islamic layer
+
+A personal-sovereignty layer for the operator: Adhan at El Feth (Tilburg) salah times, Qur'an at logon, AdGuard Family DNS + content filtering, and sunnah reminders — proof that "sovereign" includes values, not just data residency.
+
+---
+
+## 🚀 Deploy your own
```bash
-git clone https://git.atlascorporation.nl/chaib/atlas-os
+git clone https://git.atlascorporation.nl/chaib/atlas-os.git
cd atlas-os
-chmod +x deploy/install.sh
-./deploy/install.sh --domain yourdomain.com --email admin@yourdomain.com
+sudo bash deploy/install.sh # Debian/Ubuntu, Docker + Caddy
```
-The installer sets up Docker, Caddy, Tailscale, and the core compose stacks. After install, configure Authentik at `https://auth.yourdomain.com` to create your admin user, then log in to `https://command.yourdomain.com/os/`.
-
-See [deploy/README.md](./deploy/README.md) for full instructions.
+Bring your own domain; point it at the box; Caddy issues certs and Authentik gates everything. Core stack compose lives in [`deploy/compose/atlas-core.yml`](./deploy/compose/atlas-core.yml). Full guide → **[docs/deployment.md](./docs/deployment.md)**.
---
-## 📁 Repository Structure
+## 📚 Docs & wiki
-```
-atlas-os/
-├── assets/
-│ ├── header.svg # Animated space header (used in README)
-│ └── logo.svg # Atlas A logo
-├── web/
-│ ├── os/
-│ │ └── index.html # The browser OS desktop (production copy)
-│ ├── sitemap.html # Live architecture map
-│ ├── atlas-chat.html # Atlas Chat UI
-│ ├── atlas-command.html # Command dashboard
-│ └── atlas-hud.html # HUD overlay
-├── server/
-│ ├── atlas_brain.py # Signal collector + AI brief synthesizer
-│ ├── cockpit_shim.py # Feed API adapter
-│ ├── intelligence.py # Intelligence layer
-│ ├── meridian.py # Autonomous decision engine
-│ ├── atlas_router_api.py # Local model router (port 8888)
-│ ├── cli-atlas.py # Atlas CLI
-│ └── systemd/ # Service unit files
-├── scripts/
-│ ├── atlas_brain.py # Brain export scripts
-│ ├── atlas_self_prompting_loop.py
-│ ├── enis_monitor.py # WhatsApp auto-reply monitor
-│ └── ...
-├── deploy/
-│ ├── install.sh # One-command installer
-│ ├── compose/
-│ │ ├── atlas-core.yml # Core services (Authentik, Nextcloud, Mail, Git, Vault)
-│ │ └── atlas-ai.yml # AI stack (LiteLLM, Open-WebUI, Langfuse)
-│ ├── caddy/
-│ │ └── Caddyfile.template
-│ └── README.md
-├── docs/
-│ ├── getting-started.md
-│ ├── ai-stack.md
-│ ├── security.md
-│ ├── services.md
-│ └── system-of-record.md
-├── patterns/
-│ ├── ANTI_IMPULSE_RULES.md
-│ └── CLUSTER_THEN_POLISH.md
-├── ARCHITECTURE.md
-├── SERVICES.md
-├── CHANGELOG.md
-└── README.md # This file
-```
-
----
-
-## 🔒 Security Model
-
-| Layer | Implementation |
-|-------|---------------|
-| Identity | Authentik SSO — single source of truth for all services |
-| TLS | Caddy automatic HTTPS on every public endpoint |
-| Network | Public services behind SSO · internal services on Tailscale only |
-| Secrets | Vaultwarden (end-to-end encrypted) · age-encrypted vault for sync |
-| File permissions | 600 on all secret files on atlas-01 |
-| Remote desktop | Webtop is tailnet-only — never exposed to public internet |
-| Backups | `atlas-backup-*` systemd services for Forgejo, Nextcloud, Authentik |
-
-**Rule:** anything root-level (remote desktop, server SSH) stays tailnet-only. Public services must pass through Authentik `forward_auth`. No bare basic-auth on the public internet.
-
----
-
-## 🛠️ Tech Stack
-
-| Component | Technology |
-|-----------|------------|
-| Reverse proxy + TLS | [Caddy](https://caddyserver.com) |
-| Identity & SSO | [Authentik](https://goauthentik.io) |
-| Containers | Docker + Docker Compose |
-| Private mesh | [Tailscale](https://tailscale.com) |
-| Event bus | [NATS](https://nats.io) |
-| CRM / ERP | [Odoo 19](https://odoo.com) |
-| File storage | [Nextcloud 31](https://nextcloud.com) |
-| Finance | [Firefly III](https://firefly-iii.org) |
-| Documents | [Paperless-ngx](https://docs.paperless-ngx.com) |
-| Mail server | [Stalwart](https://stalw.art) |
-| Git hosting | [Forgejo](https://forgejo.org) |
-| Automation | [n8n](https://n8n.io) |
-| Password manager | [Vaultwarden](https://github.com/dani-garcia/vaultwarden) |
-| AI proxy | [LiteLLM](https://litellm.ai) |
-| AI chat UI | [Open-WebUI](https://openwebui.com) |
-| LLM observability | [Langfuse](https://langfuse.com) |
-| Remote desktop | [Webtop](https://docs.linuxserver.io/images/docker-webtop/) (KasmVNC + XFCE) |
-| Fleet management | [MeshCentral](https://meshcentral.com) |
-| Monitoring | [Uptime Kuma](https://uptime.kuma.pet) |
-| AI models (local) | [Ollama](https://ollama.com) on RTX A2000 |
-| Brain / orchestrator | Python 3.12 + httpx + NATS.py |
-| OS desktop | Vanilla JS (single HTML file, zero build step) |
+| | |
+|---|---|
+| [ARCHITECTURE.md](./ARCHITECTURE.md) | One-box philosophy, topology, data flows |
+| [SERVICES.md](./SERVICES.md) | All 55 containers + systemd services |
+| [docs/ai-stack.md](./docs/ai-stack.md) | The Mind, the Brain, the LLM router |
+| [docs/remote-desktop.md](./docs/remote-desktop.md) | Webtop desktop + Claude inside |
+| [docs/security.md](./docs/security.md) | SSO gate, sovereignty, secrets model |
+| [docs/deployment.md](./docs/deployment.md) | Stand up the whole stack |
+| **[Wiki ↗](https://git.atlascorporation.nl/chaib/atlas-os/wiki)** | Browsable, page-per-topic |
---