atlas-academy/README.md
Atlas Developer 03829a38b2 feat: Atlas Academy — Odoo eLearning platform, full fusion
9-course Dutch e-learning platform fused onto atlasacademy.nl via Caddy
reverse proxy. Odoo 19 Community as course engine (website_slides), static
HTML for marketing front. Single Odoo account system.

- static/: 8 marketing pages (index, pricing, coaching, leerpad, over, shop, bisl, esf)
- backend/odoo_relay.py: lead relay Flask service (POST /academy-lead → Odoo CRM)
- caddy/academy.caddyfile: full Caddy config with Odoo proxy + auth rewrites
- docs/: ARCHITECTURE, USERFLOW, COURSES, DEPLOYMENT, SECURITY, ODOO

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 00:48:45 +02:00

8.9 KiB

Atlas Academy

Atlas Academy

Online leerplatform voor ondernemers die bouwen

Live Courses Platform Host License

atlasacademy.nl  ·  Cursussen  ·  Coaching  ·  Prijzen


Wat is dit?

Atlas Academy is een Odoo eLearning-platform volledig gefused met een statische marketingsite onder één domein. Geen aparte subdomains, geen dubbele login — één URL, één account, één cursusengine.

Kernidee: statische marketingpagina's voor branding + Odoo /slides als volledige cursusmotor, getranspareerd via Caddy reverse proxy op atlasacademy.nl.

Browser → atlasacademy.nl (Caddy)
              ├── /           →  static index.html  (marketing homepage)
              ├── /pricing    →  static pricing.html
              ├── /coaching   →  static coaching.html
              ├── /slides     →  Odoo 19 eLearning (9 cursussen)
              ├── /web/login  →  Odoo auth (single login)
              └── /web/signup →  Odoo signup (open, b2c)

Architectuur

┌─────────────────────────────────────────────────────────────────────┐
│                        atlasacademy.nl                              │
│                    Caddy (atlas-01 Hetzner)                         │
│                                                                     │
│   ┌──────────────────────┐    ┌──────────────────────────────────┐  │
│   │  Static Marketing    │    │  Odoo 19 Community (eLearning)   │  │
│   │  /var/www/academy/   │    │  http://100.93.16.81:8069        │  │
│   │                      │    │                                  │  │
│   │  index.html          │    │  /slides        → cursuscatalog  │  │
│   │  pricing.html        │    │  /slides/<slug> → cursuspagina   │  │
│   │  coaching.html       │    │  /web/login     → inloggen       │  │
│   │  leerpad.html        │    │  /web/signup    → registreren    │  │
│   │  over.html           │    │  /web/assets/*  → JS/CSS         │  │
│   │  shop.html           │    │                                  │  │
│   │  bisl.html           │    │  Website 3: "Atlas Academy"      │  │
│   │  esf.html            │    │  domain = atlasacademy.nl        │  │
│   └──────────────────────┘    └──────────────────────────────────┘  │
│                                                                     │
│   ┌──────────────────────────────────────────────────────────────┐  │
│   │  Lead Relay  /academy-lead → 127.0.0.1:7793 (odoo_relay.py) │  │
│   │  (POST JSON → Odoo CRM lead + email fallback)                │  │
│   └──────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────┘

Cursuscatalogus

# Cursus URL Lessen Quizvragen
1 Praktijktraining Lean /slides/praktijktraining-lean-1 7 21
2 Sales vanaf Nul /slides/sales-vanaf-nul-2 10 30
3 Netwerken & Relaties /slides/netwerken-relaties-3 5 12
4 Strategisch Denken /slides/strategisch-denken-4 9 26
5 Alles Automatiseren met AI /slides/alles-automatiseren-met-ai-5 5 15
6 IT-Basis & Manier van Denken /slides/it-basis-manier-van-denken-6 3 9
7 Business & Juridisch /slides/business-juridisch-7 3 9
8 Marketing & Funnels /slides/marketing-funnels-8 4 12
9 Startup & Groei /slides/startup-groei-9 7 19

Totaal: 53 lessen · 153 quizvragen

Elke cursus = theorie per les → kennischeck (multiple choice, 1 correct, met uitleg).


Tech stack

Laag Technologie Rol
Domein Caddy 2 TLS, routing, static serve, reverse proxy
Frontend Vanilla HTML/CSS/JS Marketingpagina's
eLearning Odoo 19 Community (website_slides) Cursussen, accounts, voortgang
Database PostgreSQL (Odoo intern) Users, cursussen, leads
CRM Odoo CRM (crm.lead) Leads van lead-relay
Lead relay Python Flask (odoo_relay.py) POST /academy-lead → Odoo + email
VPS Hetzner CPX32 (atlas-01) Alle services
Tailscale Tailnet 100.93.16.81 Interne Odoo bereikbaarheid

User journey

[Bezoeker] → atlasacademy.nl
    │
    ├── leest marketingpagina's (pricing, coaching, over)
    │
    ├── klikt "Bekijk de cursussen →"
    │       → /slides (Odoo cursuscatalogus)
    │
    ├── opent cursuspagina → lees les → maak quiz
    │       (anoniem: preview mogelijk)
    │
    ├── wil voortgang opslaan → "Aanmelden"
    │       → /web/signup (Odoo, b2c open registratie)
    │       → account aangemaakt (email bevestiging via atlasacademy.nl)
    │
    └── ingelogd → cursus volgen → voortgang opgeslagen

Deployment

Vereisten

  • atlas-01 Hetzner VPS (SSH alias in ~/.ssh/config)
  • Odoo 19 Community draait in Docker (atlas-odoo container)
  • Caddy draait met Caddyfile in /etc/caddy/Caddyfile

Static marketingpagina aanpassen

scp coaching.html atlas-01:/var/www/atlasacademy.nl/coaching.html
curl -so /dev/null -w '%{http_code}' https://atlasacademy.nl/coaching.html

Cursus bouwen in Odoo

# Upload script naar atlas-01, run in Odoo ORM shell
scp my_course.py atlas-01:/tmp/
ssh atlas-01 "docker exec -i atlas-odoo odoo shell -d atlas --no-http < /tmp/my_course.py"

Zie docs/COURSES.md voor het volledige cursusformaat.

Caddy herladen

ssh atlas-01 "caddy reload --config /etc/caddy/Caddyfile"

Lead relay herstarten

ssh atlas-01 "systemctl restart atlas-academy-relay && systemctl status atlas-academy-relay"

Security

  • Secrets: alle credentials in /etc/atlas/academy-relay.env (root 600), niet in source
  • Odoo backend: /web niet geproxied → admin-panel enkel via tailnet/SSO
  • Signup: website.auth_signup_uninvited = 'b2c' alleen op website 3 (academy). Corp website 1 = b2b (gesloten)
  • Headers: X-Frame-Options DENY, X-Content-Type-Options nosniff, Strict-Transport-Security
  • ESF tracker: X-Robots-Tag: noindex, nofollow (persoonlijk ITMG-studieoverzicht)

Zie docs/SECURITY.md voor het volledige security-model.


Projectstructuur

atlas-academy/
├── README.md
├── docs/
│   ├── ARCHITECTURE.md    # Volledige systeemarchitectuur
│   ├── USERFLOW.md        # User journeys & swimlane diagrammen
│   ├── COURSES.md         # Cursusstructuur & ERD
│   ├── DEPLOYMENT.md      # Deployment runbook
│   ├── SECURITY.md        # Security model
│   └── ODOO.md            # Odoo eLearning setup & gotcha's
├── static/                # Marketingpagina's (index, pricing, coaching…)
├── backend/
│   └── odoo_relay.py      # Lead relay service (Flask)
└── caddy/
    └── academy.caddyfile  # Caddy-configuratie voor atlasacademy.nl

Licentie & eigendom

Proprietary — Atlas Corporation, Tilburg NL. Alle rechten voorbehouden.

Operator: Chaib Aarab — info@atlascorporation.nl


Built with Odoo 19 Community · Caddy · Hetzner · Atlas Corporation 2026