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>
<VirtualHost *:443>
ServerName pcrm.perinco.de
ServerAlias crm.perinco.de
DocumentRoot /var/www/perinco_CRM/dist
<Directory /var/www/perinco_CRM/dist>
+6 -2
View File
@@ -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.
<VirtualHost *:80>
ServerName pcrm.perinco.de
ServerAlias crm.perinco.de
DocumentRoot /var/www/perinco_CRM/dist
<Directory /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]
</VirtualHost>
+4 -2
View File
@@ -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<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 -->|"/api"| E["Express :5006"]
E --> C[("perinco_CRM")]
+1 -1
View File
@@ -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,