atlas-os/docs/deployment.md
Chaib Aarab a90a428189 docs: comprehensive README with Mermaid architecture diagram
- Full service map (18 public services documented)
- Mermaid architecture diagram: Internet → Caddy → Authentik → Apps → AI
- AI stack diagram: local router tiers + cloud fallback chain
- Deployment guide: VPS spec, Caddy SSO pattern, env layout
- Security model: perimeter, auth gates, AI kill-switch, secrets policy
- Repo structure tree
- Atlas branding header + shields.io badges
2026-06-22 20:16:12 +02:00

58 lines
1.7 KiB
Markdown

# Deployment guide
## Stack overview
All services run as Docker containers on a single VPS, fronted by Caddy.
Authentik provides SSO with forward_auth — no per-service login required.
## Minimum VPS spec
| Resource | Minimum | Recommended |
|----------|---------|-------------|
| CPU | 4 vCPU | 8 vCPU |
| RAM | 8 GB | 16 GB |
| Disk | 80 GB SSD | 160 GB SSD |
| OS | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS |
## Directory layout on the VPS
```
/opt/atlas/
├── atlas-desktop/ # Atlas OS static files
├── brain/ # The Mind: brain.py, state files
├── cockpit/ # Cockpit API (Python FastAPI)
├── evolution/ # WhatsApp bridge config
├── forgejo/ # Forgejo docker-compose
├── nextcloud/ # Nextcloud docker-compose
└── secrets/ # NOT in git — env files, keys
```
## Caddy + Authentik SSO pattern
Every service uses the same forward_auth block:
```caddy
service.yourdomain.com {
forward_auth authentik-server:9000 {
uri /outpost.goauthentik.io/auth/caddy
copy_headers X-Authentik-Username X-Authentik-Name X-Authentik-Email
}
reverse_proxy localhost:PORT
}
```
## Starting order
1. Authentik (identity must be up first)
2. Caddy (depends on Authentik for forward_auth)
3. All other services (order-independent)
4. Atlas Brain / cockpit (depends on Odoo + Evolution)
## Environment variables
Create `/opt/atlas/secrets/` (not in git) with:
- `brain.env` — ANTHROPIC_API_KEY, LLM router URLs
- `odoo.env` — DB credentials
- `nextcloud.env` — DB credentials, admin password
- `evolution.env` — WhatsApp API key
- `router-secrets.env` — GROQ_API_KEY, CEREBRAS_API_KEY, OPENROUTER_API_KEY