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) <noreply@anthropic.com>
This commit is contained in:
Sascha Wolf
2026-09-16 17:13:05 +02:00
co-authored by Claude Opus 5
parent d35e089a4c
commit 0ad7b32dbf
4 changed files with 12 additions and 5 deletions
+1
View File
@@ -1,6 +1,7 @@
<IfModule mod_ssl.c> <IfModule mod_ssl.c>
<VirtualHost *:443> <VirtualHost *:443>
ServerName pcrm.perinco.de ServerName pcrm.perinco.de
ServerAlias crm.perinco.de
DocumentRoot /var/www/perinco_CRM/dist DocumentRoot /var/www/perinco_CRM/dist
<Directory /var/www/perinco_CRM/dist> <Directory /var/www/perinco_CRM/dist>
+6 -2
View File
@@ -5,12 +5,15 @@
# Reihenfolge beim Aufsetzen: # Reihenfolge beim Aufsetzen:
# 1. DNS A-Record pcrm.perinco.de -> 212.227.135.41 # 1. DNS A-Record pcrm.perinco.de -> 212.227.135.41
# 2. Diese Datei aktivieren (HTTP-Teil), Apache neu laden # 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 bei anderer Subdomain hier UND im certbot-Aufruf anpassen.
<VirtualHost *:80> <VirtualHost *:80>
ServerName pcrm.perinco.de ServerName pcrm.perinco.de
ServerAlias crm.perinco.de
DocumentRoot /var/www/perinco_CRM/dist DocumentRoot /var/www/perinco_CRM/dist
<Directory /var/www/perinco_CRM/dist> <Directory /var/www/perinco_CRM/dist>
@@ -30,6 +33,7 @@
ErrorLog ${APACHE_LOG_DIR}/perinco_crm_error.log ErrorLog ${APACHE_LOG_DIR}/perinco_crm_error.log
CustomLog ${APACHE_LOG_DIR}/perinco_crm_access.log combined CustomLog ${APACHE_LOG_DIR}/perinco_crm_access.log combined
RewriteEngine on 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] RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost> </VirtualHost>
+4 -2
View File
@@ -13,13 +13,15 @@ SQL:
Der Browser spricht **nie** direkt mit MariaDB - deshalb überhaupt ein Backend. 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 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 ## Topologie
```mermaid ```mermaid
flowchart LR flowchart LR
U(("Browser")) -->|"HTTPS"| A["Apache :443<br/>pcrm.perinco.de"] U(("Browser")) -->|"HTTPS"| A["Apache :443<br/>pcrm.perinco.de<br/>crm.perinco.de"]
A -->|"/"| D["dist/<br/>SPA, FallbackResource"] A -->|"/"| D["dist/<br/>SPA, FallbackResource"]
A -->|"/api"| E["Express :5006"] A -->|"/api"| E["Express :5006"]
E --> C[("perinco_CRM")] E --> C[("perinco_CRM")]
+1 -1
View File
@@ -18,7 +18,7 @@ Ein CRM für die Projektvermittlung. Es beantwortet vier Fragen:
## Anmelden ## 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. Passwort. Die Sitzung hält 12 Stunden, danach fragt die Anwendung erneut.
Sagt die Meldung „Benutzername oder Passwort ist falsch", bleibt bewusst offen, Sagt die Meldung „Benutzername oder Passwort ist falsch", bleibt bewusst offen,