From 2eb70c62da32dc8a2da5bd02c41216d43ee606db Mon Sep 17 00:00:00 2001 From: Till JS Date: Sat, 9 May 2026 13:53:34 +0200 Subject: [PATCH] mana-ev: vier Verein-Domains live, .ch kanonisch, andere als 301 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vier Cloudflare-Zonen für mana e.V. Schweizer Verein in Gründung: - mana-ev.ch (apex) → Astro-Landing (mana-landing :3088) - www.mana-ev.ch → 301 → mana-ev.ch - mana-ev.{com,de,at} + jeweils www → 301 → mana-ev.ch DNS via CF-API (32 Operationen): Default-A/AAAA-Records von domainssaubillig auf Hetzner gelöscht (Apex, www, Wildcard pro Zone), durch CNAME → 1435166a-...cfargotunnel.com ersetzt. Wildcard nicht recreated — saubere Konfig, nur explizite Subdomains gehen. Tunnel-Config (cloudflared-config.yml): 8 neue Hostnames mit service-Rules. Nginx-Config (docker/nginx/landings.conf): ein server-Block für 7 Redirect-Hostnames. Aufgedeckte Pfad-Korruption: cloudflared-launchd-plist und docker-compose-Volumes verweisen noch auf ~/projects/mana-monorepo/ statt managarten/. Mit Symlink (Tunnel) und Datei-Kopie (Nginx) notdürftig geflickt — siehe OFFENE_PUNKTE.md für saubere Lösung. Co-Authored-By: Claude Opus 4.7 (1M context) --- cloudflared-config.yml | 24 ++++++++++++++++++++++++ docker/nginx/landings.conf | 17 +++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/cloudflared-config.yml b/cloudflared-config.yml index 63a8da6d8..ba9287c8a 100644 --- a/cloudflared-config.yml +++ b/cloudflared-config.yml @@ -42,6 +42,30 @@ ingress: service: http://localhost:5000 - hostname: verein.mana.how service: http://localhost:3088 + + # ============================================ + # mana e.V. Verein-Landing (öffentliche Domains) + # mana-ev.ch ist die kanonische Domain (Schweizer Verein in Gründung). + # .com/.de/.at + alle www-Varianten 301-Redirect zu https://mana-ev.ch + # via mana-infra-landings (nginx :4400). DNS-Routes pro Hostname + # einmalig via `cloudflared tunnel route dns 1435166a-... `. + # ============================================ + - hostname: mana-ev.ch + service: http://localhost:3088 + - hostname: www.mana-ev.ch + service: http://localhost:4400 + - hostname: mana-ev.com + service: http://localhost:4400 + - hostname: www.mana-ev.com + service: http://localhost:4400 + - hostname: mana-ev.de + service: http://localhost:4400 + - hostname: www.mana-ev.de + service: http://localhost:4400 + - hostname: mana-ev.at + service: http://localhost:4400 + - hostname: www.mana-ev.at + service: http://localhost:4400 - hostname: chat.mana.how service: http://localhost:5000 - hostname: todo.mana.how diff --git a/docker/nginx/landings.conf b/docker/nginx/landings.conf index f47fa7ac0..19b582c98 100644 --- a/docker/nginx/landings.conf +++ b/docker/nginx/landings.conf @@ -26,6 +26,23 @@ server { return 301 https://cardecky-api.mana.how$request_uri; } +# ============================================ +# mana e.V. Verein-Landing — kanonische Domain mana-ev.ch +# (Schweizer Verein in Gründung) +# Alle anderen TLDs (.com/.de/.at) und alle www-Varianten +# 301-Redirect auf https://mana-ev.ch. +# Apex `mana-ev.ch` liegt direkt am Astro-Landing-Container :3088, +# nicht hier. +# ============================================ +server { + listen 80; + server_name www.mana-ev.ch + mana-ev.com www.mana-ev.com + mana-ev.de www.mana-ev.de + mana-ev.at www.mana-ev.at; + return 301 https://mana-ev.ch$request_uri; +} + # Default server (catch-all → it.mana.how as homepage) server { listen 80 default_server;