Initial commit: IT Nexus Web-App
This commit is contained in:
128
backend/seed-knowledge.js
Normal file
128
backend/seed-knowledge.js
Normal 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);
|
||||
Reference in New Issue
Block a user