Anmeldung gilt 7 Tage statt 12 Stunden

JWT-Laufzeit (JWT_EXPIRES_IN) standardmaessig auf 7d gesetzt, damit
Benutzer nicht mehr taeglich neu anmelden muessen. Doku (Betrieb,
Benutzeranleitung, Glossar) und .env.example angepasst.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-23 22:10:46 +02:00
co-authored by Claude Opus 5.5
parent cbac02a96a
commit 4adf48f336
5 changed files with 439 additions and 439 deletions
+54 -54
View File
@@ -1,54 +1,54 @@
# ICON CRM Backend
# Als .env kopieren und Werte setzen. .env gehoert nicht ins Repository.
PORT=5007
# Nur lokal binden - von aussen erreichbar ist die Anwendung ausschliesslich
# ueber den Apache-Reverse-Proxy auf icrm.icon-experts.de.
HOST=127.0.0.1
DB_HOST=localhost
DB_PORT=3306
DB_USER=iconcrm
DB_PASSWORD=changeme
DB_NAME=icon_CRM
# Signiert die JWT-Sitzungen. Langer Zufallswert, z. B.:
# node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))"
JWT_SECRET=changeme-langer-zufallswert
JWT_EXPIRES_IN=12h
# Wird beim ersten Start angelegt, solange noch kein Benutzer existiert.
# Ohne ADMIN_PASSWORD erzeugt das Backend eines und schreibt es einmalig ins Log.
ADMIN_USERNAME=Admin
ADMIN_NAME=Administrator
ADMIN_EMAIL=admin@icon-experts.de
ADMIN_PASSWORD=
# Erlaubte Herkunft fuer den lokalen Vite-Dev-Server.
CORS_ORIGINS=http://localhost:3101,http://127.0.0.1:3101
# Ablage der hochgeladenen Lebenslaeufe. Leer = <server>/../uploads.
UPLOAD_DIR=/var/www/icon_CRM/uploads
# ---------------------------------------------------------------------------
# KI (CV-Auslesung und Schreibhilfe fuer Ausschreibungen)
# ---------------------------------------------------------------------------
# Der Schluessel bleibt auf dem Server - der Browser spricht nie direkt mit
# OpenAI. Fehlt er, laeuft das CRM normal weiter und blendet die KI-Knoepfe aus.
#
# Hinweis zum Modell: gpt-5.6-luna akzeptiert KEIN eigenes "temperature";
# ai.js schickt deshalb nur den Standardwert.
OPENAI_API_KEY=
OPENAI_MODEL=gpt-5.6-luna
# ---------------------------------------------------------------------------
# Lesender Zugriff auf die Kontakte des perinco CRM
# ---------------------------------------------------------------------------
# Das ICON CRM zeigt die perinco-Kontakte zusaetzlich an - gekennzeichnet und
# ausschliesslich lesend. Gespeichert wird nichts.
#
# Der Token steht drueben in server/.env als ICON_API_TOKEN und muss
# uebereinstimmen. Fehlt einer der beiden Werte, bleibt der Schalter in der
# Oberflaeche aus und das CRM laeuft normal weiter.
PERINCO_API_URL=https://pcrm.perinco.de
PERINCO_API_TOKEN=
# ICON CRM Backend
# Als .env kopieren und Werte setzen. .env gehoert nicht ins Repository.
PORT=5007
# Nur lokal binden - von aussen erreichbar ist die Anwendung ausschliesslich
# ueber den Apache-Reverse-Proxy auf icrm.icon-experts.de.
HOST=127.0.0.1
DB_HOST=localhost
DB_PORT=3306
DB_USER=iconcrm
DB_PASSWORD=changeme
DB_NAME=icon_CRM
# Signiert die JWT-Sitzungen. Langer Zufallswert, z. B.:
# node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))"
JWT_SECRET=changeme-langer-zufallswert
JWT_EXPIRES_IN=7d
# Wird beim ersten Start angelegt, solange noch kein Benutzer existiert.
# Ohne ADMIN_PASSWORD erzeugt das Backend eines und schreibt es einmalig ins Log.
ADMIN_USERNAME=Admin
ADMIN_NAME=Administrator
ADMIN_EMAIL=admin@icon-experts.de
ADMIN_PASSWORD=
# Erlaubte Herkunft fuer den lokalen Vite-Dev-Server.
CORS_ORIGINS=http://localhost:3101,http://127.0.0.1:3101
# Ablage der hochgeladenen Lebenslaeufe. Leer = <server>/../uploads.
UPLOAD_DIR=/var/www/icon_CRM/uploads
# ---------------------------------------------------------------------------
# KI (CV-Auslesung und Schreibhilfe fuer Ausschreibungen)
# ---------------------------------------------------------------------------
# Der Schluessel bleibt auf dem Server - der Browser spricht nie direkt mit
# OpenAI. Fehlt er, laeuft das CRM normal weiter und blendet die KI-Knoepfe aus.
#
# Hinweis zum Modell: gpt-5.6-luna akzeptiert KEIN eigenes "temperature";
# ai.js schickt deshalb nur den Standardwert.
OPENAI_API_KEY=
OPENAI_MODEL=gpt-5.6-luna
# ---------------------------------------------------------------------------
# Lesender Zugriff auf die Kontakte des perinco CRM
# ---------------------------------------------------------------------------
# Das ICON CRM zeigt die perinco-Kontakte zusaetzlich an - gekennzeichnet und
# ausschliesslich lesend. Gespeichert wird nichts.
#
# Der Token steht drueben in server/.env als ICON_API_TOKEN und muss
# uebereinstimmen. Fehlt einer der beiden Werte, bleibt der Schalter in der
# Oberflaeche aus und das CRM laeuft normal weiter.
PERINCO_API_URL=https://pcrm.perinco.de
PERINCO_API_TOKEN=