atlas-academy/caddy/academy.caddyfile
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

68 lines
2.7 KiB
Caddyfile

# Caddy configuration snippet — atlasacademy.nl
# Full config lives on atlas-01 at /etc/caddy/Caddyfile
# Reload: ssh atlas-01 "caddy reload --config /etc/caddy/Caddyfile"
atlasacademy.nl, www.atlasacademy.nl {
root * /var/www/atlasacademy.nl
encode gzip
# Odoo eLearning — proxy course engine + auth paths to Odoo
# CRITICAL: X-Forwarded-Host required for Odoo multi-website routing (proxy_mode=True)
@odoo_elearning path /slides /slides/* /web/assets/* /web/image/* /web/static/* \
/website_slides/* /website/static/* /web/session/* \
/web/dataset/call_kw* /web/webclient/locale* \
/web/login* /web/signup* /web/reset_password*
route @odoo_elearning {
reverse_proxy 100.93.16.81:8069 {
header_up Host {host}
header_up X-Forwarded-Host {host}
header_up X-Forwarded-Proto https
header_up X-Real-IP {remote_host}
}
}
# Identity = Odoo (static auth retired)
redir /login /web/login?redirect=%2Fslides 302
redir /login/ /web/login?redirect=%2Fslides 302
redir /login.html /web/login?redirect=%2Fslides 302
redir /register /web/signup?redirect=%2Fslides 302
redir /register/ /web/signup?redirect=%2Fslides 302
redir /register.html /web/signup?redirect=%2Fslides 302
# Catalog cutover — old static URLs → Odoo eLearning
redir /cursussen /slides 302
redir /cursussen/ /slides 302
redir /cursussen.html /slides 302
redir /cursussen/sales.html /slides/sales-vanaf-nul-2 302
redir /cursussen/netwerken.html /slides/netwerken-relaties-3 302
redir /cursussen/strategie.html /slides/strategisch-denken-4 302
redir /cursussen/ai.html /slides/alles-automatiseren-met-ai-5 302
redir /cursussen/it-basis.html /slides/it-basis-manier-van-denken-6 302
redir /cursussen/business.html /slides/business-juridisch-7 302
redir /cursussen/marketing.html /slides/marketing-funnels-8 302
redir /cursussen/startup.html /slides/startup-groei-9 302
# ESF tracker — personal ITMG log, keep out of search engines
@esf_priv path /esf /esf.html
header @esf_priv X-Robots-Tag "noindex, nofollow"
# Clean URL rewrites for static pages
@bisl path /bisl /bisl/
rewrite @bisl /bisl.html
@esf path /esf /esf/
rewrite @esf /esf.html
# Lead relay (Odoo CRM + email fallback)
route /academy-lead {
reverse_proxy 127.0.0.1:7793
}
file_server
header {
X-Frame-Options DENY
X-Content-Type-Options nosniff
Referrer-Policy strict-origin-when-cross-origin
Strict-Transport-Security max-age=31536000
}
}