From 0ad7b32dbf417e35e1641b37bfe9aad4be31d378 Mon Sep 17 00:00:00 2001 From: Sascha Wolf Date: Wed, 16 Sep 2026 17:12:36 +0200 Subject: [PATCH] feat(deploy): CRM auch unter crm.perinco.de erreichbar ServerAlias in beiden Vhosts, HTTP->HTTPS-Redirect fuer beide Namen, Zertifikat um crm.perinco.de erweitert. Co-Authored-By: Claude Opus 5 (1M context) --- deploy/pcrm.perinco.de-le-ssl.conf | 1 + deploy/pcrm.perinco.de.conf | 8 ++++++-- docs/01-architektur.md | 6 ++++-- docs/07-anleitung-benutzer.md | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/deploy/pcrm.perinco.de-le-ssl.conf b/deploy/pcrm.perinco.de-le-ssl.conf index 60d7eb8..1140cbd 100644 --- a/deploy/pcrm.perinco.de-le-ssl.conf +++ b/deploy/pcrm.perinco.de-le-ssl.conf @@ -1,6 +1,7 @@ ServerName pcrm.perinco.de + ServerAlias crm.perinco.de DocumentRoot /var/www/perinco_CRM/dist diff --git a/deploy/pcrm.perinco.de.conf b/deploy/pcrm.perinco.de.conf index d52006a..83fa5c2 100644 --- a/deploy/pcrm.perinco.de.conf +++ b/deploy/pcrm.perinco.de.conf @@ -5,12 +5,15 @@ # Reihenfolge beim Aufsetzen: # 1. DNS A-Record pcrm.perinco.de -> 212.227.135.41 # 2. Diese Datei aktivieren (HTTP-Teil), Apache neu laden -# 3. certbot --apache -d pcrm.perinco.de (legt den :443-Block selbst an) +# 3. certbot --apache -d pcrm.perinco.de -d crm.perinco.de (legt den :443-Block selbst an) +# +# crm.perinco.de ist seit 16.09.2026 zweiter Name (ServerAlias, gleiches Zertifikat). # # ServerName bei anderer Subdomain hier UND im certbot-Aufruf anpassen. ServerName pcrm.perinco.de + ServerAlias crm.perinco.de DocumentRoot /var/www/perinco_CRM/dist @@ -30,6 +33,7 @@ ErrorLog ${APACHE_LOG_DIR}/perinco_crm_error.log CustomLog ${APACHE_LOG_DIR}/perinco_crm_access.log combined RewriteEngine on -RewriteCond %{SERVER_NAME} =pcrm.perinco.de +RewriteCond %{SERVER_NAME} =pcrm.perinco.de [OR] +RewriteCond %{SERVER_NAME} =crm.perinco.de RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] diff --git a/docs/01-architektur.md b/docs/01-architektur.md index 207b6cb..426590e 100644 --- a/docs/01-architektur.md +++ b/docs/01-architektur.md @@ -13,13 +13,15 @@ SQL: Der Browser spricht **nie** direkt mit MariaDB - deshalb überhaupt ein Backend. Das Backend bindet ausschließlich auf `127.0.0.1` und ist von außen nur über -den Apache-Reverse-Proxy erreichbar. +den Apache-Reverse-Proxy erreichbar. Das CRM hört auf `pcrm.perinco.de` und +seit 16.09.2026 auch auf `crm.perinco.de` (`ServerAlias` im selben Vhost, beide +Namen im selben Let’s-Encrypt-Zertifikat). ## Topologie ```mermaid flowchart LR - U(("Browser")) -->|"HTTPS"| A["Apache :443
pcrm.perinco.de"] + U(("Browser")) -->|"HTTPS"| A["Apache :443
pcrm.perinco.de
crm.perinco.de"] A -->|"/"| D["dist/
SPA, FallbackResource"] A -->|"/api"| E["Express :5006"] E --> C[("perinco_CRM")] diff --git a/docs/07-anleitung-benutzer.md b/docs/07-anleitung-benutzer.md index ad5649b..86c861a 100644 --- a/docs/07-anleitung-benutzer.md +++ b/docs/07-anleitung-benutzer.md @@ -18,7 +18,7 @@ Ein CRM für die Projektvermittlung. Es beantwortet vier Fragen: ## Anmelden -`https://pcrm.perinco.de`. Anmelden geht mit **Benutzername oder E-Mail** plus +`https://crm.perinco.de` (alternativ `https://pcrm.perinco.de`). Anmelden geht mit **Benutzername oder E-Mail** plus Passwort. Die Sitzung hält 12 Stunden, danach fragt die Anwendung erneut. Sagt die Meldung „Benutzername oder Passwort ist falsch", bleibt bewusst offen,