# SkillMate Installation und Einrichtung ## 📋 Systemvoraussetzungen ### Minimum: - **Node.js**: Version 18.0.0 oder höher - **NPM**: Version 8.0.0 oder höher (wird mit Node.js installiert) - **Speicherplatz**: Mindestens 500 MB freier Speicher - **RAM**: Mindestens 4 GB RAM - **Betriebssystem**: Windows 10/11, macOS 10.15+, Linux (Ubuntu 20.04+) ### Empfohlen: - **Node.js**: Version 20.x LTS - **RAM**: 8 GB oder mehr - **CPU**: Dual-Core oder besser ## 🚀 Schnellstart ### Windows 1. **Laden Sie Node.js herunter und installieren Sie es:** - Besuchen Sie https://nodejs.org/ - Laden Sie die LTS-Version herunter - FĂŒhren Sie den Installer aus 2. **FĂŒhren Sie den SkillMate Installer aus:** ```powershell # PowerShell als Administrator öffnen (nicht erforderlich, aber empfohlen) cd C:\Pfad\zu\SkillMate # Installer ausfĂŒhren .\install.ps1 ``` 3. **Starten Sie SkillMate:** - Doppelklicken Sie auf die Desktop-VerknĂŒpfung "SkillMate" - Oder fĂŒhren Sie aus: `.\start-skillmate.bat` ### Linux/macOS 1. **Installieren Sie Node.js:** ```bash # Ubuntu/Debian curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs # macOS mit Homebrew brew install node ``` 2. **FĂŒhren Sie den Installer aus:** ```bash cd /pfad/zu/SkillMate chmod +x install.sh ./install.sh ``` 3. **Starten Sie SkillMate:** ```bash ./start-skillmate.sh ``` ## 📁 Projektstruktur nach Installation ``` SkillMate/ ├── backend/ │ ├── .env # Backend-Konfiguration │ ├── data/ │ │ └── skillmate.db # SQLite Datenbank │ ├── uploads/ # Hochgeladene Dateien │ └── logs/ # Log-Dateien ├── frontend/ │ └── .env # Frontend-Konfiguration ├── admin-panel/ │ └── .env # Admin-Panel-Konfiguration ├── shared/ # Gemeinsame TypeScript-Definitionen ├── start-skillmate.bat # Windows Start-Script ├── start-skillmate.sh # Linux/Mac Start-Script └── start-skillmate.ps1 # PowerShell Start-Script ``` ## ⚙ Konfiguration ### Backend (.env) Die wichtigsten Einstellungen in `backend/.env`: ```env # Server-Port (Standard: 3001) PORT=3001 # Umgebung (development/production) NODE_ENV=production # Datenbank-Pfad DATABASE_PATH=./data/skillmate.db # JWT Secret (automatisch generiert, NICHT TEILEN!) JWT_SECRET=ihr-geheimer-schlĂŒssel # JWT Ablaufzeit JWT_EXPIRES_IN=7d # CORS URLs (Frontend und Admin-Panel) CORS_ORIGIN=http://localhost:5173,http://localhost:5174 # Upload-Einstellungen UPLOAD_DIR=./uploads MAX_FILE_SIZE=5242880 # 5MB in Bytes # Sync-Einstellungen fĂŒr Netzwerk NODE_ID=eindeutige-node-id NODE_TYPE=local # oder "admin" fĂŒr Admin-Server # Logging LOG_LEVEL=info # debug, info, warn, error LOG_DIR=./logs ``` ### Frontend/Admin-Panel (.env) ```env # Backend API URL VITE_API_URL=http://localhost:3001/api # App-Name und Version VITE_APP_NAME=SkillMate VITE_APP_VERSION=1.0.0 ``` ## 🔐 Erster Login **Standard-Zugangsdaten:** - Benutzername: `admin` - Passwort: `admin123` ⚠ **WICHTIG**: Ändern Sie das Passwort sofort nach dem ersten Login! ## 🌐 Netzwerk-Konfiguration ### Admin-Server einrichten 1. Setzen Sie in `backend/.env`: ```env NODE_TYPE=admin ``` 2. Öffnen Sie das Admin-Panel 3. Navigieren Sie zu "Netzwerk & Synchronisation" 4. FĂŒgen Sie lokale Knoten hinzu ### Lokalen Knoten einrichten 1. Setzen Sie in `backend/.env`: ```env NODE_TYPE=local ``` 2. Verwenden Sie den API-Key vom Admin-Server ### Firewall-Einstellungen Öffnen Sie folgende Ports falls nötig: - **3001**: Backend API - **5173**: Frontend (nur fĂŒr Entwicklung) - **5174**: Admin-Panel (nur fĂŒr Entwicklung) ## đŸ› ïž Fehlerbehebung ### "Node.js ist nicht installiert" - Installieren Sie Node.js von https://nodejs.org/ - Starten Sie Ihr Terminal/PowerShell neu ### "Port bereits belegt" - Ein anderer Dienst nutzt bereits den Port - Beenden Sie den Dienst oder Ă€ndern Sie den Port in der .env ### "Datenbank-Fehler" - Löschen Sie `backend/data/skillmate.db` - FĂŒhren Sie den Installer erneut aus ### "Build-Fehler bei SQLite" **Linux/macOS:** ```bash sudo apt-get install build-essential python3 # oder brew install python ``` **Windows:** ```powershell npm install --global windows-build-tools ``` ## 📊 Datenbank-Verwaltung ### Backup erstellen ```bash # Linux/macOS cp backend/data/skillmate.db backend/data/skillmate_backup_$(date +%Y%m%d).db # Windows copy backend\data\skillmate.db backend\data\skillmate_backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%.db ``` ### Datenbank zurĂŒcksetzen 1. Stoppen Sie alle SkillMate-Dienste 2. Löschen Sie `backend/data/skillmate.db` 3. Starten Sie SkillMate neu (Datenbank wird automatisch erstellt) ## 🔄 Updates ### Automatisches Update (wenn Git installiert) ```bash git pull origin main npm install # im Hauptverzeichnis cd backend && npm install && npm run build cd ../frontend && npm install cd ../admin-panel && npm install ``` ### Manuelles Update 1. Laden Sie die neueste Version herunter 2. Sichern Sie Ihre .env Dateien und die Datenbank 3. Überschreiben Sie die Dateien 4. FĂŒhren Sie den Installer erneut aus ## 🆘 Support Bei Problemen: 1. ÜberprĂŒfen Sie die Logs in `backend/logs/` 2. Stellen Sie sicher, dass alle AbhĂ€ngigkeiten installiert sind 3. FĂŒhren Sie den Installer erneut aus ## 🔒 Sicherheitshinweise 1. **Ändern Sie das Standard-Passwort** sofort nach der Installation 2. **Sichern Sie die .env Dateien** - sie enthalten sensible Daten 3. **Verwenden Sie HTTPS** in Produktionsumgebungen 4. **BeschrĂ€nken Sie den Zugriff** auf die Admin-Panel URL 5. **RegelmĂ€ĂŸige Backups** der Datenbank durchfĂŒhren ## 📈 Performance-Optimierung ### FĂŒr Produktionsumgebungen: 1. **Frontend/Admin-Panel bauen:** ```bash cd frontend && npm run build cd ../admin-panel && npm run build ``` 2. **Nginx als Reverse Proxy verwenden** 3. **PM2 fĂŒr Prozess-Management:** ```bash npm install -g pm2 pm2 start backend/dist/index.js --name skillmate-backend pm2 save pm2 startup ``` ## 📝 Lizenz SkillMate ist fĂŒr den internen Gebrauch in Sicherheitsbehörden entwickelt. Weitergabe und kommerzielle Nutzung nur mit ausdrĂŒcklicher Genehmigung.