Skip to content

Installation

Dieser Guide behandelt alle Installationsmethoden für TCM365. Wählen Sie den Ansatz, der am besten zu Ihrer Umgebung und Ihrem Anwendungsfall passt.


Automatisches Setup

Die empfohlene Methode für die Erstinstallation von TCM365. Die automatisierten Setup-Skripte uebernehmen Umgebungskonfiguration, Abhaengigkeitsinstallation, Datenbankerstellung, Migration-Ausführung und Admin-User-Provisionierung.

Setup-Skript ausführen

chmod +x scripts/setup.sh
./scripts/setup.sh
.\scripts\setup.ps1

Setup-Modi

Beim Ausführen des Setup-Skripts werden Sie aufgefordert, einen von vier Modi zu wählen:

Modus Beschreibung Wann verwenden
1. Normal Setup Standardinstallation. Installiert Abhängigkeiten, erstellt Datenbank, führt Migrationen aus, erstellt Admin-User. Bestehende Daten bleiben erhalten. Erstinstallation oder Einrichtung auf einer neuen Maschine.
2. Upgrade Aktualisiert Abhängigkeiten (npm ci), führt ausstehende Migrationen aus und baut neu. Daten werden nicht gelöscht. Nach dem Pullen von neuem Code mit Schema-Änderungen.
3. Repair Loescht und erstellt die Datenbank neu, führt alle Migrationen erneut aus, erstellt Admin-User neu. Wenn die Datenbank in einem inkonsistenten Zustand ist.
4. Clean Install Entfernt node_modules, löscht die Datenbank und führt eine vollständige Neuinstallation von Grund auf durch. Wenn Sie einen komplett sauberen Ausgangszustand wuenschen.

Repair und Clean Install sind destruktiv

Modi 3 (Repair) und 4 (Clean Install) löschen alle bestehenden Daten in der Datenbank. Verwenden Sie diese nur bei Bedarf und stellen Sie sicher, dass Sie Backups wichtiger Daten haben.

Was das Skript ausfuehrt

  1. Prüft erforderliche Software (Node.js, npm, PostgreSQL)
  2. Erstellt die .env-Datei aus .env.example, falls nicht vorhanden
  3. Installiert Backend-Abhängigkeiten (npm ci in backend-js/)
  4. Installiert Frontend-Abhängigkeiten (npm ci in frontend/)
  5. Erstellt die PostgreSQL-Datenbank, falls nicht vorhanden
  6. Führt alle TypeORM-Migrationen aus
  7. Erstellt den Standard-Admin-User
  8. Zeigt Verbindungsdetails und Standard-Credentials an

Standard-Admin-Credentials

Nach Abschluss des Setups können Sie sich anmelden mit:

Feld Wert
E-Mail admin@tcm.local
Passwort Admin123!TCM
Rolle SUPER_ADMIN

Standard-Credentials ändern

Ändern Sie das Standard-Admin-Passwort sofort nach der ersten Anmeldung. Die Standard-Credentials sind nur für die Ersteinrichtung vorgesehen und sollten niemals in der Produktion verwendet werden.


Manuelles Setup

Für Umgebungen, in denen Sie volle Kontrolle über jeden Installationsschritt benötigen.

Schritt 1: Repository klonen

git clone <repository-url> tcm365
cd tcm365

Schritt 2: Datenbank konfigurieren

Erstellen Sie eine PostgreSQL-Datenbank und zwei Datenbankrollen:

-- Verbinden Sie sich als Superuser mit PostgreSQL
CREATE DATABASE tcm_db;

-- Anwendungsrollen erstellen
CREATE ROLE tcm_admin WITH LOGIN PASSWORD 'ihr_admin_passwort';
ALTER ROLE tcm_admin BYPASSRLS;

CREATE ROLE tcm_app WITH LOGIN PASSWORD 'ihr_app_passwort';
-- tcm_app respektiert Row-Level Security Policies

-- Berechtigungen vergeben
GRANT ALL PRIVILEGES ON DATABASE tcm_db TO tcm_admin;
GRANT CONNECT ON DATABASE tcm_db TO tcm_app;

Zwei-Rollen-Architektur

TCM365 verwendet zwei Datenbankrollen für die Sicherheit. tcm_admin umgeht Row-Level Security für administrative Operationen (Migrationen, Schema-Verwaltung). tcm_app respektiert RLS-Policies für tenant-isolierten Datenzugriff.

Schritt 3: Umgebungsvariablen konfigurieren

cd backend-js
cp .env.example .env

Bearbeiten Sie .env mit Ihren Datenbank-Credentials und anderen Einstellungen. Siehe die Konfigurationsreferenz für alle verfügbaren Variablen.

Setzen Sie mindestens diese Werte:

# Datenbank
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USERNAME=tcm_admin
DATABASE_PASSWORD=ihr_admin_passwort
DATABASE_NAME=tcm_db

# Anwendung
APP_SECRET_KEY="generieren-sie-einen-mindestens-32-zeichen-secret-hier"
PORT=8000

# Storage (lokal für Entwicklung verwenden)
STORAGE_BACKEND=local
LOCAL_STORAGE_PATH=./data

Schritt 4: Backend-Abhängigkeiten installieren

cd backend-js
npm ci

Schritt 5: Datenbank-Migrationen ausführen

npm run migration:run

Dies führt alle 32 TypeORM-Migrationen aus und erstellt Tabellen, Indizes, RLS-Policies und Tenant-Schemas.

Schritt 6: Admin-User erstellen

npm run db:seed

Dies erstellt den Standard-Admin-User (admin@tcm.local / Admin123!TCM).

Schritt 7: Frontend-Abhängigkeiten installieren

cd ../frontend
npm ci

Schritt 8: Entwicklungsserver starten

Öffnen Sie zwei Terminalfenster:

Terminal 1 -- Backend:

cd backend-js
npm run start:dev

Das Backend startet auf http://localhost:8000 mit Hot-Reload.

Terminal 2 -- Frontend:

cd frontend
npm run dev

Das Frontend startet auf http://localhost:5173 mit dem Vite Dev Server. API-Anfragen werden an das Backend auf Port 8000 weitergeleitet.

Schritt 9: Installation verifizieren

  1. Öffnen Sie http://localhost:5173 in Ihrem Browser
  2. Melden Sie sich an mit admin@tcm.local / Admin123!TCM
  3. Prüfen Sie den Health-Endpoint: http://localhost:8000/health
  4. Sehen Sie die API-Dokumentation: http://localhost:8000/api/docs

Docker Setup

TCM365 stellt Docker Compose-Konfigurationen für Entwicklung und Produktion bereit.

Entwicklungs-Setup (nur Datenbank)

Für lokale Entwicklung führen Sie PostgreSQL und Redis in Containern aus, während Backend und Frontend nativ laufen:

cd infrastructure/docker
docker compose -f docker-compose.local.yml up -d

Dies startet:

  • PostgreSQL 15 auf Port 5432
  • Redis 7 auf Port 6379

Starten Sie dann Backend und Frontend wie im Abschnitt Manuelles Setup beschrieben.

Full-Stack Setup (Produktion)

Führen Sie den gesamten Stack in Containern aus:

cd infrastructure/docker
docker compose up --build

Dies startet:

Container Port Beschreibung
backend 8000 NestJS API Server
frontend 80 Vue 3 App über Nginx
postgres 5432 PostgreSQL 15 Datenbank
redis 6379 Redis 7 Cache

Docker Compose-Umgebung

Erstellen Sie eine .env-Datei im Verzeichnis infrastructure/docker/:

# Datenbank
POSTGRES_DB=tcm_db
POSTGRES_USER=tcm_admin
POSTGRES_PASSWORD=sicheres_passwort_hier

# Backend
APP_SECRET_KEY=ihr-32-zeichen-secret-key
DATABASE_HOST=postgres
DATABASE_PORT=5432
DATABASE_USERNAME=tcm_admin
DATABASE_PASSWORD=sicheres_passwort_hier
DATABASE_NAME=tcm_db
REDIS_URL=redis://redis:6379/0
STORAGE_BACKEND=local

Container-Netzwerk

Bei der Ausführung in Docker verwenden Sie Container-Namen als Hostnamen (z.B. postgres statt localhost, redis statt localhost).

Coolify Deployment

Für Coolify Self-Hosted PaaS-Bereitstellungen:

cd infrastructure/docker
docker compose -f docker-compose.coolify.yml up --build

Individuelle Docker Builds

Einzelne Container bauen:

# Backend
docker build -f infrastructure/docker/Dockerfile.backend-js -t tcm365-backend .

# Frontend
docker build -f infrastructure/docker/Dockerfile.frontend -t tcm365-frontend .

Nach der Installation

1. Standard-Passwort ändern

Melden Sie sich mit admin@tcm.local / Admin123!TCM an und ändern Sie das Passwort sofort.

2. Azure AD konfigurieren (für Microsoft 365)

Für Microsoft 365-Features setzen Sie die Azure AD-Umgebungsvariablen:

AZURE_AD_TENANT_ID="ihre-tenant-id"
AZURE_AD_CLIENT_ID="ihre-client-id"
AZURE_AD_CLIENT_SECRET="ihr-client-secret"

TCM365 enthält einen Setup Wizard (/api/v1/setup), der Sie durch die M365- und Zscaler-Konfiguration führt.

3. Benachrichtigungen konfigurieren (Optional)

Richten Sie SMTP für E-Mail-Benachrichtigungen ein:

SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USERNAME=notifications@example.com
SMTP_PASSWORD=ihr-smtp-passwort
SMTP_FROM_EMAIL=tcm@example.com
SMTP_FROM_NAME="TCM Notifications"

4. KI-Analyse konfigurieren (Optional)

Aktivieren Sie KI-gestützte Konfigurationsanalyse:

OPENAI_API_KEY=sk-ihr-openai-api-key
OPENAI_MODEL=gpt-4

5. Diagnostik ausführen

Verifizieren Sie Ihre Installation mit dem integrierten Diagnostics-Endpoint:

curl http://localhost:8000/api/v1/diagnostics

Dies prüft Datenbankverbindung, Redis-Verfügbarkeit, Storage-Konfiguration und Azure AD-Konfiguration.


TCM365 aktualisieren

Mit dem Setup-Skript

git pull origin main
./scripts/setup.sh   # Modus 2 (Upgrade) wählen

Manuelles Update

git pull origin main

cd backend-js
npm ci
npm run migration:run
npm run build

cd ../frontend
npm ci
npm run build

Docker Update

git pull origin main
cd infrastructure/docker
docker compose down
docker compose up --build

Fehlerbehebung bei der Installation

Problem Lösung
npm ci schlägt mit Berechtigungsfehlern fehl Stellen Sie sicher, dass Sie Schreibzugriff auf das Projektverzeichnis haben. Unter Linux vermeiden Sie die Ausführung als root.
Datenbankverbindung verweigert Verifizieren Sie, dass PostgreSQL läuft und die Credentials in .env korrekt sind.
Migration schlägt fehl Prüfen Sie den Migration Troubleshooting Guide.
Port 8000 bereits belegt Ändern Sie PORT in .env oder stoppen Sie den konfliktierenden Prozess.
Frontend kann Backend nicht erreichen Stellen Sie sicher, dass der vite.config.js-Proxy auf den korrekten Backend-Port zeigt.
Redis-Verbindung verweigert Redis ist optional. Setzen Sie REDIS_URL auf leer oder entfernen Sie es, um den In-Memory-Fallback zu nutzen.

Für detailliertere Fehlerbehebung siehe den Troubleshooting Guide.