crm.icon-experts.de zeigt auf das neue CRM

This commit is contained in:
2026-09-14 16:56:39 +02:00
parent bd810fa608
commit 3f25355a6d
3 changed files with 70 additions and 45 deletions
+47 -43
View File
@@ -1,43 +1,47 @@
# ICON CRM - Apache Vhost # ICON CRM - Apache Vhost
# Ablage: /etc/apache2/sites-available/icrm.icon-experts.de.conf # Ablage: /etc/apache2/sites-available/icrm.icon-experts.de.conf
# Aktivieren: a2ensite icrm.icon-experts.de && systemctl reload apache2 # Aktivieren: a2ensite icrm.icon-experts.de && systemctl reload apache2
# #
# Reihenfolge beim Aufsetzen: # Reihenfolge beim Aufsetzen:
# 1. DNS A-Record icrm.icon-experts.de -> 31.70.144.60 # 1. DNS A-Record icrm.icon-experts.de -> 31.70.144.60
# 2. Diese Datei aktivieren (HTTP-Teil), Apache neu laden # 2. Diese Datei aktivieren (HTTP-Teil), Apache neu laden
# 3. certbot --apache -d icrm.icon-experts.de (legt den :443-Block selbst an) # 3. certbot --apache -d icrm.icon-experts.de -d crm.icon-experts.de
# (legt den :443-Block selbst an und deckt beide Namen ab)
<VirtualHost *:80>
ServerName icrm.icon-experts.de <VirtualHost *:80>
DocumentRoot /var/www/icon_CRM/dist ServerName icrm.icon-experts.de
# Der alte Name des CRM. Er zeigt seit dem 14.09.2026 auf dieselbe
<Directory /var/www/icon_CRM/dist> # Anwendung - Lesezeichen und verschickte Links laufen weiter.
Options -Indexes +FollowSymLinks ServerAlias crm.icon-experts.de
AllowOverride None DocumentRoot /var/www/icon_CRM/dist
Require all granted
# Single Page Application: alle unbekannten Pfade auf index.html <Directory /var/www/icon_CRM/dist>
FallbackResource /index.html Options -Indexes +FollowSymLinks
</Directory> AllowOverride None
Require all granted
# Die mit Hash benannten Build-Dateien aendern sich nie - die darf der # Single Page Application: alle unbekannten Pfade auf index.html
# Browser dauerhaft behalten. index.html dagegen nie, sonst sieht ein FallbackResource /index.html
# Benutzer nach dem Rollout weiter die alte Anwendung. </Directory>
<IfModule mod_expires.c>
ExpiresActive On # Die mit Hash benannten Build-Dateien aendern sich nie - die darf der
<FilesMatch "\.(js|css|woff2|png|jpg|svg|ico)$"> # Browser dauerhaft behalten. index.html dagegen nie, sonst sieht ein
ExpiresDefault "access plus 1 year" # Benutzer nach dem Rollout weiter die alte Anwendung.
</FilesMatch> <IfModule mod_expires.c>
</IfModule> ExpiresActive On
<FilesMatch "index\.html$"> <FilesMatch "\.(js|css|woff2|png|jpg|svg|ico)$">
Header set Cache-Control "no-cache, must-revalidate" ExpiresDefault "access plus 1 year"
</FilesMatch> </FilesMatch>
</IfModule>
# Die API laeuft lokal auf 127.0.0.1:5007 und ist von aussen <FilesMatch "index\.html$">
# ausschliesslich hierueber erreichbar. Header set Cache-Control "no-cache, must-revalidate"
ProxyPreserveHost On </FilesMatch>
ProxyPass /api http://127.0.0.1:5007/api
ProxyPassReverse /api http://127.0.0.1:5007/api # Die API laeuft lokal auf 127.0.0.1:5007 und ist von aussen
# ausschliesslich hierueber erreichbar.
ErrorLog ${APACHE_LOG_DIR}/icon_crm_error.log ProxyPreserveHost On
CustomLog ${APACHE_LOG_DIR}/icon_crm_access.log combined ProxyPass /api http://127.0.0.1:5007/api
</VirtualHost> ProxyPassReverse /api http://127.0.0.1:5007/api
ErrorLog ${APACHE_LOG_DIR}/icon_crm_error.log
CustomLog ${APACHE_LOG_DIR}/icon_crm_access.log combined
</VirtualHost>
+2 -2
View File
@@ -22,7 +22,7 @@ samt Passwort-Hashes eingeschlossen.
```mermaid ```mermaid
flowchart LR flowchart LR
U(("Browser")) -->|"HTTPS"| A["Apache :443<br/>icrm.icon-experts.de"] U(("Browser")) -->|"HTTPS"| A["Apache :443<br/>icrm + crm.icon-experts.de"]
A -->|"/"| D["dist/<br/>SPA, FallbackResource"] A -->|"/"| D["dist/<br/>SPA, FallbackResource"]
A -->|"/api"| E["Express :5007"] A -->|"/api"| E["Express :5007"]
E --> C[("icon_CRM")] E --> C[("icon_CRM")]
@@ -117,7 +117,7 @@ Spracherkennung auf seinem eigenen Gerät ein, mit seinem eigenen Download.
| --- | --- | | --- | --- |
| 5007 | ICON CRM Backend (nur `127.0.0.1`) | | 5007 | ICON CRM Backend (nur `127.0.0.1`) |
| 3101 | Vite-Dev-Server (nur lokal beim Entwickeln) | | 3101 | Vite-Dev-Server (nur lokal beim Entwickeln) |
| 80/443 | Apache: `icrm.icon-experts.de`, `icon-experts.de`, `www.icon-experts.de` | | 80/443 | Apache: `icrm.icon-experts.de` (+ Alias `crm.icon-experts.de`), `icon-experts.de`, `www.icon-experts.de` |
## Was wo liegt ## Was wo liegt
+21
View File
@@ -98,6 +98,27 @@ mariadb-dump --single-transaction icon_CRM | gzip > icon_CRM-$(date +%F).sql.gz
tar czf uploads-$(date +%F).tar.gz -C /var/www/icon_CRM uploads tar czf uploads-$(date +%F).tar.gz -C /var/www/icon_CRM uploads
``` ```
## Der alte Name crm.icon-experts.de
Das erste ICON CRM lief unter **crm.icon-experts.de** auf `212.227.135.41`
(`/var/www/ICON`, Supabase als Datenbank). Seit dem 14.09.2026 zeigt der Name
auf diesen Server und wird vom Vhost `icrm.icon-experts.de` als `ServerAlias`
mitbedient – dasselbe Zertifikat deckt beide Namen ab. Verschickte Links und
Lesezeichen laufen damit weiter, es gibt keinen zweiten Stand zu pflegen.
Der alte Aufbau ist zurückgebaut: Vhosts (`icon`, `icon-le-ssl`) abgeschaltet,
`/var/www/ICON` gelöscht, das dortige Zertifikat für `crm.icon-experts.de`
entfernt (sonst hätte die Erneuerung ab sofort täglich Fehler gemeldet).
Gesichert ist er als `icon-crm-alt-2026-09-14.zip` – Quellcode, Build, `.env`
und beide Vhost-Dateien, ohne `node_modules`. Die Datei liegt **auf beiden
Servern** unter `/root/backups/`, Prüfsumme
`252f7fa3226c2df7c4020a0234c3095c`.
> Die Supabase-Instanz `icondb.perinco.de` läuft weiter. Sie war die Datenbank
> des alten CRM und ist die Quelle der Migration (`server/src/migrate.js`) –
> abzuschalten wäre eine eigene Entscheidung, nicht Teil dieses Rückbaus.
## Störungssuche ## Störungssuche
| Symptom | Erster Griff | | Symptom | Erster Griff |