Initial commit: IT Nexus Web-App

This commit is contained in:
2026-06-01 20:49:07 +02:00
commit 8023765e6c
387 changed files with 106900 additions and 0 deletions

128
backend/seed-knowledge.js Normal file
View File

@@ -0,0 +1,128 @@
const db = require('./src/config/database').getDatabase();
const entries = [
['IT Nexus Server', `IP: 192.168.0.194
SSH: root@192.168.0.194
Projekt: /opt/it-nexus/
Container: fido-backend (Port 5000), fido-frontend (Port 443/80)
URL: https://it-nexus.cereda-systems.de
Agent-Script: /opt/it-nexus/agent/ (Volume-Mount ./agent:/app/agent:ro)
Deploy: scp → Server → docker compose build X && docker compose up -d X`, 'Infrastruktur'],
['Proxmox Host', `IP: 192.168.0.184
SSH: root@192.168.0.184
Node: hve-01
API Token: root@pam!monitoring=ca287965-3d33-49ec-a069-1bb80fd2e95d
Web UI: https://192.168.0.184:8006`, 'Proxmox'],
['LXC Container Übersicht', `CT 102 | IT Nexus | 192.168.0.194 | Hauptproduktion
CT 103 | Diverses | - | Docker-Container
CT 110 | CT-TBO-AI | 192.168.0.61 | AI-Projekt (Björn Enders)
CT 111 | Unbekannt | - | ?
CT-110 SSH: root@192.168.0.61
Key-Datei: C:/Users/gruessing/OneDrive - Cereda Systems GmbH/Desktop/ct110_key`, 'Proxmox'],
['Storage & Netzwerk', `Synology NAS: 192.168.0.60
iSCSI-LUN: 500GB → iscsi-synology auf Proxmox → iscsi-lvm (LVM on top)
IT Nexus CT: läuft auf local-lvm (NICHT auf NAS - wichtig!)
Gateway: 192.168.0.254
Domain: cereda-systems.de`, 'Infrastruktur'],
['Deploy-Workflow', `SCHNELL (einzelne Datei, kein Rebuild):
scp datei.js root@192.168.0.194:/opt/it-nexus/pfad/datei.js
docker cp /opt/it-nexus/pfad/datei.js fido-backend:/app/pfad/datei.js
docker restart fido-backend
VOLLSTÄNDIG (nach vielen Änderungen):
scp ... root@192.168.0.194:/opt/it-nexus/...
ssh root@192.168.0.194 "cd /opt/it-nexus && docker compose build backend frontend && docker compose up -d backend frontend"
WICHTIG: docker compose restart rebuildet NICHT → immer build + up -d
Agent-Dateien: Volume-Mount → kein Rebuild nötig`, 'IT Nexus'],
['IT Nexus Rollen & Architektur', `Rollen:
- super_admin, admin → Vollzugriff
- support, bearbeiter → Helpdesk + IT-Verwaltung
- benutzer, hr_personal, buchhaltung, produktion → eingeschränkt
WICHTIG: user.role_name im Frontend (NICHT user.role!)
Stack: Node.js + Express + SQLite + React (CRA) + nginx
KI: Claude claude-sonnet-4-6 via Anthropic API
Integrationen: Microsoft Graph API, Proxmox REST API, Azure AD`, 'IT Nexus'],
['Windows Agent v1.3.0', `Check-in: alle 1 Minute als Scheduled Task (SYSTEM)
Announcement Watcher: alle 15 Sekunden (separater Task)
Auto-Update: beim Check-in wenn agent_version in Response abweicht
Staged Rollout: per Gruppe (Test → Pilot → Produktion)
Endpunkte ohne JWT (nur X-Agent-Key):
POST /api/monitoring/checkin
POST /api/monitoring/announcements-poll
POST /api/patch/commands/result
POST /api/announcements/:id/ack-agent
GET /api/monitoring/agent-script
WICHTIG: Läuft als SYSTEM → Dialoge NIE direkt anzeigen!
Fix: ScheduledTask als eingeloggter User erstellen`, 'Agent'],
['Intune Agent-Deployment', `Erkennungsregel (Registry):
Pfad: HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{B3F7A2C1-4E8D-4F2A-9B1C-7D3E5F6A8B2C}
Wertname: DisplayVersion
Operator: Größer oder gleich (aktuelle Version)
32-Bit auf 64-Bit: JA (Pflicht!)
Fehler 0x87D1041C = Erkennungsregel-Pfad falsch (kein _is1 Suffix!)
Install: msiexec /i Agent.msi /quiet /norestart`, 'Agent'],
['Docker in LXC - Fix runc', `PROBLEM: Unprivileged LXC + Docker 29.x + runc 1.3.x = BRICHT
Fehler: open sysctl net.ipv4.ip_unprivileged_port_start: permission denied
FIX - runc 1.2.5 von GitHub installieren:
curl -L https://github.com/opencontainers/runc/releases/download/v1.2.5/runc.amd64 -o /usr/bin/runc
chmod +x /usr/bin/runc
CT-102: Docker 27.5.1 + Ubuntu 24.04 runc 1.2.5 → funktioniert
CT-110: Docker 29.4.2 + manuell runc 1.2.5 → funktioniert nach Fix
WICHTIG: unprivileged lässt sich nach Erstellung NICHT mehr ändern!
LXC Config für Docker: features: nesting=1 (nur das reicht!)`, 'Erkenntnisse'],
['Microsoft Graph & Azure', `Benötigte Application Permissions:
- Mail.ReadWrite (Postfach lesen/schreiben)
- SecurityAlert.Read.All (MDO Alerts)
- Group.Read.All, User.Read.All (Entra-Verwaltung)
- Team.ReadBasic.All (fehlt noch → Teams-Tab nicht voll funktionsfähig)
MDO: SecurityAlert.Read.All braucht Admin Consent!
Monitoring-Mailbox: helpdesk@cereda-systems.de`, 'Sicherheit'],
['Aktive Projekte Mai 2026', `✅ Monitoring (CheckMK-Style + Proxmox integriert)
✅ Patch Management (Staged Rollout Test→Pilot→Produktion)
✅ Windows Agent v1.3.0
✅ Ankündigungen (Desktop-Popup via Agent, 15-Sek Poll)
✅ Microsoft Defender / MDO Tab
✅ Docker CT-110 Fix (runc 1.2.5)
✅ KI Wissendatenbank
🔄 Agent v1.4.0: Software-Inventar, BitLocker, Defender-Status (geplant)
⏳ VM-Migrationen: CT102, CT103, VM109 noch auf CeredaNAS NFS`, 'Projekte'],
['API Keys & Zugänge', `Agent API Key: itx-4CPJPTHmCfdrL9D62WacCATEvuvULXcp7ECMpSaNUjsS344F6_L4Ug
Anthropic API: in docker-compose.yml als ANTHROPIC_API_KEY
Proxmox API Token: root@pam!monitoring=ca287965-3d33-49ec-a069-1bb80fd2e95d
Teams Bot App ID: bd39de7e
Teams Manifest-ID: b86adea3 (NIE ändern!)
CT-110 SSH: root@192.168.0.61 | Key: Desktop/ct110_key`, 'Zugänge'],
];
const existing = db.prepare('SELECT COUNT(*) as c FROM ai_knowledge').get().c;
if (existing > 0) {
console.log('Einträge bereits vorhanden:', existing);
process.exit(0);
}
const stmt = db.prepare('INSERT INTO ai_knowledge (title, content, category) VALUES (?, ?, ?)');
entries.forEach(([t, c, cat]) => stmt.run(t, c, cat));
console.log('Fertig - Einträge eingefügt:', entries.length);