From 3f25355a6df3b546f65d3d15fb0dd1c504c48476 Mon Sep 17 00:00:00 2001 From: Sascha Date: Mon, 14 Sep 2026 16:56:39 +0200 Subject: [PATCH] crm.icon-experts.de zeigt auf das neue CRM --- deploy/icrm.icon-experts.de.conf | 90 +++++++++++++++++--------------- docs/01-architektur.md | 4 +- docs/07-betrieb.md | 21 ++++++++ 3 files changed, 70 insertions(+), 45 deletions(-) diff --git a/deploy/icrm.icon-experts.de.conf b/deploy/icrm.icon-experts.de.conf index 2b63fe4..2746341 100644 --- a/deploy/icrm.icon-experts.de.conf +++ b/deploy/icrm.icon-experts.de.conf @@ -1,43 +1,47 @@ -# ICON CRM - Apache Vhost -# Ablage: /etc/apache2/sites-available/icrm.icon-experts.de.conf -# Aktivieren: a2ensite icrm.icon-experts.de && systemctl reload apache2 -# -# Reihenfolge beim Aufsetzen: -# 1. DNS A-Record icrm.icon-experts.de -> 31.70.144.60 -# 2. Diese Datei aktivieren (HTTP-Teil), Apache neu laden -# 3. certbot --apache -d icrm.icon-experts.de (legt den :443-Block selbst an) - - - ServerName icrm.icon-experts.de - DocumentRoot /var/www/icon_CRM/dist - - - Options -Indexes +FollowSymLinks - AllowOverride None - Require all granted - # Single Page Application: alle unbekannten Pfade auf index.html - FallbackResource /index.html - - - # Die mit Hash benannten Build-Dateien aendern sich nie - die darf der - # Browser dauerhaft behalten. index.html dagegen nie, sonst sieht ein - # Benutzer nach dem Rollout weiter die alte Anwendung. - - ExpiresActive On - - ExpiresDefault "access plus 1 year" - - - - Header set Cache-Control "no-cache, must-revalidate" - - - # Die API laeuft lokal auf 127.0.0.1:5007 und ist von aussen - # ausschliesslich hierueber erreichbar. - ProxyPreserveHost On - ProxyPass /api http://127.0.0.1:5007/api - 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 - +# ICON CRM - Apache Vhost +# Ablage: /etc/apache2/sites-available/icrm.icon-experts.de.conf +# Aktivieren: a2ensite icrm.icon-experts.de && systemctl reload apache2 +# +# Reihenfolge beim Aufsetzen: +# 1. DNS A-Record icrm.icon-experts.de -> 31.70.144.60 +# 2. Diese Datei aktivieren (HTTP-Teil), Apache neu laden +# 3. certbot --apache -d icrm.icon-experts.de -d crm.icon-experts.de +# (legt den :443-Block selbst an und deckt beide Namen ab) + + + ServerName icrm.icon-experts.de + # Der alte Name des CRM. Er zeigt seit dem 14.09.2026 auf dieselbe + # Anwendung - Lesezeichen und verschickte Links laufen weiter. + ServerAlias crm.icon-experts.de + DocumentRoot /var/www/icon_CRM/dist + + + Options -Indexes +FollowSymLinks + AllowOverride None + Require all granted + # Single Page Application: alle unbekannten Pfade auf index.html + FallbackResource /index.html + + + # Die mit Hash benannten Build-Dateien aendern sich nie - die darf der + # Browser dauerhaft behalten. index.html dagegen nie, sonst sieht ein + # Benutzer nach dem Rollout weiter die alte Anwendung. + + ExpiresActive On + + ExpiresDefault "access plus 1 year" + + + + Header set Cache-Control "no-cache, must-revalidate" + + + # Die API laeuft lokal auf 127.0.0.1:5007 und ist von aussen + # ausschliesslich hierueber erreichbar. + ProxyPreserveHost On + ProxyPass /api http://127.0.0.1:5007/api + 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 + diff --git a/docs/01-architektur.md b/docs/01-architektur.md index 3f4493f..5105b71 100644 --- a/docs/01-architektur.md +++ b/docs/01-architektur.md @@ -22,7 +22,7 @@ samt Passwort-Hashes eingeschlossen. ```mermaid flowchart LR - U(("Browser")) -->|"HTTPS"| A["Apache :443
icrm.icon-experts.de"] + U(("Browser")) -->|"HTTPS"| A["Apache :443
icrm + crm.icon-experts.de"] A -->|"/"| D["dist/
SPA, FallbackResource"] A -->|"/api"| E["Express :5007"] 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`) | | 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 diff --git a/docs/07-betrieb.md b/docs/07-betrieb.md index a9f19bd..26dfa48 100644 --- a/docs/07-betrieb.md +++ b/docs/07-betrieb.md @@ -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 ``` +## 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 | Symptom | Erster Griff |