Control Center

{{ overallStatus.icon }} {{ overallStatus.text }} mdi-refresh

Control Center

{{ currentTime }}

{{ overallStatus.icon }} {{ overallStatus.text }} mdi-refresh
{{ metrics.gpu }}%
GPU VRAM
{{ metrics.gpuUsedGB }}GB / {{ metrics.gpuTotalGB }}GB
{{ metrics.gpuTemp }}°C
GPU Temp
{{ metrics.gpuName }}
{{ gpuContainersRunning }}/{{ gpuContainers.length }}
GPU Services
{{ servicesHealthy }}/{{ totalServices }}
Services
{{ metrics.cpu }}%
CPU
{{ metrics.memory }}%
RAM
{{ tenants.length }}
Tenants
{{ tenants.filter(t => t.status === 'live' || t.status === 'active').length }} Live
{{ openIncidents }}
Incidents
{{ sslStatus.overview.healthy }}/{{ sslStatus.overview.total }}
SSL Certs
{{ sslStatus.overview.errors }} Fehler
{{ sslStatus.overview.expiring_soon }} ablaufend
mdi-palette-outline ZiaNeo Studio
mdi-open-in-new Öffnen
mdi-text-to-speech TTS Engine mdi-check Aktiv
mdi-account-voice Chatterbox 23 Sprachen
Multilingual TTS mit Voice Cloning
mdi-memory GPU Services mdi-refresh {{ gpuContainersRunning }} / {{ gpuContainers.length }}
{{ container.service === 'ollama' ? 'mdi-brain' : container.service === 'whisper' ? 'mdi-microphone' : container.service === 'chatterbox' ? 'mdi-account-voice' : 'mdi-chip' }} {{ container.service }}
mdi-play mdi-restart mdi-stop
{{ container.description }}
VRAM {{ (container.vram_mb / 1024).toFixed(1) }} GB ({{ container.vram_percent }}%)
Keine GPU-Container gefunden
mdi-domain Tenants mdi-refresh {{ tenantMetrics.filter(t => t.contract_status === 'active').length }} Aktiv
{{ tm.display_name }}
{{ tm.last_activity_text }}
{{ getContractLabel(tm) }} {{ tm.sessions_active }} online
{{ tm.documents?.count || 0 }}
Dokumente
{{ tm.chat?.today_messages || 0 }}
Chat heute
{{ tm.voice?.today_minutes || 0 }}m
Voice heute
{{ tm.storage?.total_gb_estimate || 0 }}GB
Speicher
{{ tm.widgets?.active || 0 }}/{{ tm.widgets?.total || 0 }} Widgets {{ formatTokens(tm.chat.total_tokens) }} Tokens ges.
mdi-rocket Production Setup
mdi-plus Tenant anlegen mdi-rocket-launch Website-Prototyp
mdi-server Services {{ servicesHealthy }}/{{ totalServices }}
{{ formatServiceName(name) }}
{{ service.response_time_ms.toFixed(0) }}ms
mdi-restart
mdi-memory Ressourcen CPU {{ metrics.cpu }}% | RAM {{ metrics.memory }}%
CPU {{ metrics.cpu }}%
RAM {{ metrics.memory }}% ({{ metrics.memoryUsedGB }}GB / {{ metrics.memoryTotalGB }}GB)
Disk {{ metrics.disk }}%
mdi-history Events {{ events.length }}
{{ event.time }} {{ getEventIcon(event.type) }} {{ event.message }}
Keine Events
mdi-test-tube Tests {{ e2eReport.rate || 100 }}%
E2E Report
mdi-file-document
{{ e2eReport.total || 12 }} Tests {{ e2eReport.passed || 12 }} OK {{ e2eReport.failed || 0 }} Fail
mdi-play Tests starten
mdi-web-check Website Review {{ websiteReviewResult.summary.passed }}/{{ websiteReviewResult.summary.total }}
oder
Letztes Review {{ getReviewStatusIcon(websiteReviewResult.overall_status) }}
{{ websiteReviewResult.summary.passed }} OK {{ websiteReviewResult.summary.warnings }} Warn {{ websiteReviewResult.summary.failed }} Fail
{{ websiteReviewResult.url }} • {{ Math.round(websiteReviewResult.duration_ms) }}ms
Details anzeigen
mdi-flash Quick Test (HTTP)
SSL, Response, Performance, SEO, Security Headers
mdi-magnify-scan Quick Review starten
mdi-robot Full Browser Test (Playwright)
JavaScript-Fehler, Klick-Tests, Screenshots, Interaktionen
In Claude Code Session:
review {{ selectedReviewTenant ? websiteReviewTenants.find(t => t.id === selectedReviewTenant)?.url || 'https://...' : customReviewUrl || 'https://...' }}
mdi-information Claude Code mit Playwright MCP navigiert zur Seite, prüft Console-Logs, klickt Elemente und erstellt einen Report.
mdi-web-sync Alle Tenants (Quick Test)
mdi-shield-check Server Security {{ securityServicesActive }}/3
{{ securityData.fail2ban?.total_banned || 0 }}
Gebannt
{{ securityData.crowdsec?.decisions || 0 }}
CrowdSec
mdi-shield Security Services
UFW Firewall
{{ securityData.ufw?.rules || 0 }} Regeln
fail2ban
{{ securityData.fail2ban?.jails?.length || 0 }} Jails
CrowdSec
{{ securityData.crowdsec?.scenarios || 0 }} Scenarios
mdi-clock-outline Recent Events
{{ event.ip }} {{ event.time }}
{{ event.message }}
mdi-refresh Aktualisieren
mdi-key-chain Secret Rotation Dual-Key OK
JWT Dual-Key aktiv
Alte Tokens funktionieren noch. Finalize nach 24h.
{{ Object.values(secretRotation.secrets_status || {}).filter(s => s === 'configured').length }}
Konfiguriert
{{ Object.values(secretRotation.secrets_status || {}).filter(s => s === 'missing').length }}
Fehlt
mdi-key Secrets Status
{{ name }}
{{ status === 'configured' ? 'OK' : 'Fehlt' }}
mdi-history Letzte Aktionen
{{ entry.message }}
mdi-refresh Refresh mdi-open-in-new Dashboard
mdi-bell-ring Alert-Station {{ alertStation.connected ? 'LIVE' : 'OFFLINE' }}
mdi-filter-off {{ cat.icon }} {{ alertSoundEnabled ? 'mdi-volume-high' : 'mdi-volume-off' }}
{{ getAlertCatIcon(alert.category) }}
{{ alert.title }} {{ getAlertCatLabel(alert.category) }}
{{ alert.message }}
{{ alert.metadata.tenant_id }} {{ alert.metadata.widget_name }} {{ alert.metadata.customer_name }}
{{ alert.source }} {{ formatTimeAgo(alert.timestamp) }} • Auto-resolved
mdi-consoleIn Claude Code öffnen mdi-view-dashboardDashboard
mdi-check
mdi-check-circle-outline
Keine Alerts
mdi-login Login-Aktivität {{ loginActivity?.stats?.logins_24h || 0 }} heute
{{ loginActivity?.stats?.logins_24h || 0 }}
24h
{{ loginActivity?.stats?.logins_7d || 0 }}
7 Tage
{{ loginActivity?.stats?.unique_users_7d || 0 }}
User
mdi-refresh mdi-account-off Ausgeblendet ({{ loginActivity?.excludedCount || 0 }})
{{ entry.user_name?.charAt(0) || entry.user_email?.charAt(0) || '?' }}
{{ entry.user_name || entry.user_email }}
{{ entry.tenant_id }} {{ formatLoginTime(entry.login_time) }}
mdi-eye-off
mdi-login-variant
Keine Logins im Zeitraum
mdi-chart-line GPU & System Trend LIVE
CPU: {{ metrics.cpu }}% RAM: {{ metrics.memoryUsedGB }}/{{ metrics.memoryTotalGB }} GB GPU: {{ metrics.gpuUsedGB }}/{{ metrics.gpuTotalGB }} GB
mdi-heart-pulse Self-Healing Monitor {{ selfHealingActive ? 'AKTIV' : 'AUS' }}
{{ selfHealingStats.autoHealedToday }}
Auto-Geheilt
{{ selfHealingStats.openIncidents }}
Offen
{{ selfHealingStats.totalIncidents }}
Gesamt
mdi-server Überwachte Services ({{ Object.keys(selfHealingServices).length }})
{{ name }} {{ status.response_time_ms?.toFixed(0) || '-' }}ms
mdi-cog-sync Heilung in Bearbeitung
mdi-cog-sync
{{ activity.service }}
{{ activity.message || 'Automatische Reparatur läuft...' }}
{{ activity.pattern }} {{ activity.step || 'Analysiere...' }}
mdi-history Letzte Aktivitäten
{{ activity.event === 'auto_healed' ? 'mdi-check-circle' : activity.event === 'detected' ? 'mdi-alert' : 'mdi-information' }}
{{ activity.service }} - {{ activity.pattern }}
{{ activity.message || activity.event }}
{{ formatTimeAgo(activity.time) }}
mdi-check-circle Keine Aktivitäten in den letzten 24h
{{ selfHealingActive ? 'mdi-pause' : 'mdi-play' }} {{ selfHealingActive ? 'Deaktivieren' : 'Aktivieren' }} mdi-refresh
mdi-alert Incidents {{ openIncidents }}
{{ incident.severity === 'critical' ? 'mdi-alert-circle' : 'mdi-alert' }}
{{ incident.pattern }}
{{ incident.service }} - {{ incident.status }}
Gelöst in {{ incident.resolution_time_seconds?.toFixed(0) || '?' }}s
{{ getIncidentStatusLabel(incident.status) }} mdi-check
mdi-check-circle Keine Incidents
mdi-headset Support {{ pendingSupportRequests }}
{{ request.status === 'pending' ? 'mdi-clock-outline' : 'mdi-check-circle' }}
{{ request.support_agent }}
mdi-check mdi-close
mdi-shield-check Keine Anfragen
mdi-robot KI-Agenten {{ aiModules.length }} Module
Konfiguriere KI-Module für jeden Tenant
mdi-cog KI-Agenten verwalten
mdi-microphone Call Capture {{ callCaptureConfig.enabled ? 'Aktiv' : 'Deaktiviert' }}
Module: {{ callCaptureModules.length }} verfügbar
mdi-backup-restore BORG Backup {{ borgStatus.status === 'success' ? 'OK' : borgStatus.status === 'running' ? 'Läuft...' : 'Unbekannt' }}
Letztes Backup: {{ lastBackupTime }} mdi-lock
Archive: {{ borgStatus.archive_count }}
Gesamt: {{ (borgStatus.total_size_mb / 1024).toFixed(1) }} GB
Dedupliziert: {{ (borgStatus.deduplicated_size_mb / 1024).toFixed(1) }} GB ({{ Math.round(100 - borgStatus.compression_ratio) }}% gespart)
Nächstes: {{ borgStatus.next_scheduled }} Uhr
Wake-on-LAN: mdi-check-circle {{ borgStatus.wol_target }} mdi-alert-circle Nicht konfiguriert
mdi-backup-restore Backup jetzt
mdi-power PC aufwecken (WoL)
mdi-download Download mdi-restore Restore
mdi-dns DNS Failover (Disaster Recovery)
mdi-history Historie ({{ borgHistory.length }})
{{ new Date(entry.timestamp).toLocaleDateString('de-DE') }} {{ entry.size_mb }} MB {{ entry.status === 'success' ? 'mdi-check' : 'mdi-alert' }}
mdi-bell-ring Alert-Station {{ alertStation.connected ? 'LIVE' : 'OFFLINE' }} {{ alertSoundEnabled ? 'mdi-volume-high' : 'mdi-volume-off' }}
{{ alertCategoryCount(cat.key) }}
{{ cat.label }}
{{ alertStation.alerts?.length || 0 }}
Gesamt
mdi-filter-off {{ cat.icon }}
{{ getAlertCatIcon(alert.category) }}
{{ alert.title }}
{{ getAlertCatLabel(alert.category) }} mdi-check
{{ alert.message }}
{{ alert.metadata.tenant_id }} {{ alert.metadata.widget_name }} {{ alert.metadata.customer_name }}
{{ alert.source }} {{ formatTimeAgo(alert.timestamp) }} ✓ Auto
mdi-consoleIn Claude Code öffnen mdi-view-dashboard
mdi-check-circle-outline
Keine Alerts
Alles läuft reibungslos
mdi-web-plus Website Wizard Schritt {{ wizardStep }}/5

1. Tenant auswählen

2. Website-Quelle

{{ t.icon }}
{{ t.name }}
{{ t.desc }}

3. Wissensbasis

4. Tools aktivieren

5. Zusammenfassung

Tenant {{ wizard.tenantMode === 'new' ? wizard.newTenantName : wizard.selectedTenant }} Website {{ wizard.websiteMode === 'template' ? wizard.selectedTemplate : wizard.scrapeUrl }} Tools {{ wizard.selectedTools.join(', ') }}

Basic Auth Zugangsdaten

mdi-chevron-left Zurück Weiter mdi-chevron-right mdi-rocket-launch Website erstellen
mdi-login Login-Aktivität mdi-refresh
{{ loginActivity?.stats?.logins_24h || 0 }}
24h
{{ loginActivity?.stats?.logins_7d || 0 }}
7 Tage
{{ loginActivity?.stats?.unique_users_7d || 0 }}
User
{{ loginActivity?.stats?.excluded_users_count || 0 }}
Ausgeblendet
mdi-account-off Ausgeblendet ({{ loginActivity?.excludedCount || 0 }})
mdi-login-variant
Keine Logins
Im gewählten Zeitraum keine Anmeldungen
mdi-account-off Ausgeblendete Benutzer
{{ user.user_email }}
Ausgeblendet von {{ user.excluded_by }} am {{ formatLoginTime(user.excluded_at) }}
mdi-eye Einblenden
mdi-account-check
Keine ausgeblendeten Benutzer
Schliessen
mdi-robot KI-Agenten Verwaltung mdi-refresh
mdi-puzzle Verfügbare KI-Module {{ aiModules.length }}
{{ getCategoryIcon(mod.category) }} {{ mod.display_name }} Aktiv
{{ mod.description || 'Keine Beschreibung' }}
mdi-robot-off
Keine KI-Module gefunden
mdi-domain
Bitte wählen Sie zuerst einen Tenant aus
{{ getCategoryIcon(selectedAIModuleStandalone.category) }} {{ selectedAIModuleStandalone.display_name }} {{ getSelectedTenantName() }} {{ selectedAIModuleStandalone.category }} mdi-script-text Basis-Prompt mdi-cog Tenant-Config mdi-eye Vorschau
Basis System-Prompt (Modul-Default - nur lesen)
mdi-thermometer Temperature: {{ selectedAIModuleStandalone.default_temperature }} mdi-database-search RAG: {{ selectedAIModuleStandalone.rag_collection }} mdi-translate {{ (selectedAIModuleStandalone.supported_languages || ['de']).join(', ') }}
mdi-information Konfiguration für {{ getSelectedTenantName() }} mdi-refresh Vorschau generieren {{ promptPreviewLengthStandalone }} Zeichen | ca. {{ Math.ceil(promptPreviewLengthStandalone / 4) }} Tokens
Abbrechen mdi-content-save Speichern
mdi-robot KI-Agenten Verwaltung mdi-close
mdi-puzzle Verfügbare KI-Module {{ aiModules.length }}
{{ getCategoryIcon(mod.category) }} {{ mod.display_name }} Aktiv
{{ mod.description || 'Keine Beschreibung' }}
mdi-robot-off
Keine KI-Module gefunden
mdi-domain
Bitte wählen Sie zuerst einen Tenant aus
mdi-plus Neuen Tenant anlegen Abbrechen mdi-check Erstellen mdi-rocket-launch Website-Prototyp Generator mdi-close
Gib die URL der bestehenden Kundenwebsite ein. Wir analysieren automatisch Logo, Farben, Schriften und Inhalte. mdi-magnify-scan Website analysieren
Analyse abgeschlossen! Bitte prüfe die gefundenen Daten und wähle ein Template. mdi-palette Design
Logo: Nicht gefunden
Farben:
Schriften: {{ scrapeResult.fonts.slice(0,3).join(', ') }}
mdi-card-account-details Kontaktdaten
Firma: {{ scrapeResult.company_name }}
Tel: {{ scrapeResult.phone }}
E-Mail: {{ scrapeResult.email }}
Adresse: {{ scrapeResult.address }}
Keine Kontaktdaten gefunden
mdi-format-list-bulleted Gefundene Leistungen ({{ scrapeResult.services.length }})
{{ service }} +{{ scrapeResult.services.length - 8 }} weitere
mdi-palette-swatch Template auswählen
{{ template.icon }}
{{ template.name }}
{{ template.branch }}
mdi-open-in-new Vorschau
mdi-puzzle Gebuchte Features
mdi-information Das Admin-Panel wird automatisch mit den gewählten Features erstellt. Der Kunde sieht nur Module für gebuchte Features.
mdi-check-circle

Prototyp erfolgreich erstellt!

Die Website ist jetzt unter folgender URL erreichbar:

mdi-lock Basic Auth Zugangsdaten
Benutzer:
{{ prototypeResult.basic_auth_user }}
Passwort:
{{ prototypeResult.basic_auth_password }}
mdi-cog Admin-Panel
Hier können Wissensbasis, KI-Verhalten und mehr konfiguriert werden.
mdi-brain {{ prototypeResult.knowledge_base_entries }} Knowledge Base Einträge wurden automatisch erstellt
mdi-arrow-left Zurück mdi-rocket-launch Prototyp erstellen Schließen mdi-open-in-new Website öffnen mdi-rocket GO LIVE
{{ goLiveStep === 3 ? 'mdi-check-decagram' : 'mdi-cog' }} {{ goLiveStep === 3 ? 'LIVE!' : 'Production Setup' }} mdi-close
mdi-information
Production Setup
Hier richtest du Domain, E-Mail und DNS ein. Die Website bleibt passwortgeschützt bis du den finalen "Go Live" Button drückst.
mdi-information Aktueller Status
Tenant:
{{ goLiveForm.tenantId }}
Prototyp-URL:
https://{{ goLiveForm.tenantId }}.zianeo.de
mdi-check-circle Setup abgeschlossen! Die Website ist unter der neuen Domain erreichbar, aber noch passwortgeschützt. mdi-email E-Mail Zugangsdaten
E-Mail
{{ goLiveResult.email_address }}
Passwort
{{ goLiveResult.email_password }}
Webmail
https://mail.zianeo.de/SOGo/
mdi-dns DNS-Records eintragen mdi-content-copy Kopieren mdi-alert Diese Records müssen beim Domain-Provider eingetragen werden, bevor du live gehst! Typ Name Wert Info mdi-checkbox-marked-outline Checkliste vor Go Live
mdi-rocket
Wenn alles getestet ist und funktioniert, drücke den Button um den Passwortschutz zu entfernen.
mdi-rocket-launch GO LIVE - Website öffentlich machen
Bitte alle Checkboxen abhaken
mdi-party-popper

Website ist LIVE! 🎉

Der Passwortschutz wurde entfernt. Die Website ist jetzt öffentlich erreichbar.

Abbrechen mdi-cog Setup starten Später fortfahren mdi-check Fertig
{{ editingTenant ? 'mdi-pencil' : 'mdi-plus' }} {{ editingTenant ? 'Tenant bearbeiten' : 'Neuen Tenant anlegen' }} {{ editingTenant.domain || editingTenant.slug }} mdi-puzzleModule mdi-webWebsite mdi-message-videoConnect mdi-cellphoneMobile App mdi-shield-lockSicherheit mdi-paletteDesign mdi-card-account-detailsGrunddaten mdi-note-textNotizen
Vorschau
{{ fullTenant.name ? fullTenant.name.charAt(0).toUpperCase() : 'T' }}
{{ fullTenant.name || 'Firmenname' }}
{{ fullTenant.domain || 'subdomain' }}.zianeo.de
{{ fullTenant.status }}
mdi-puzzle Module aktivieren/deaktivieren
Keine Alle Standard
{{ category.icon }} {{ category.name }} {{ getModulesByCategory(category.id).filter(m => fullTenant.modules[m.id]).length }}/{{ getModulesByCategory(category.id).length }}
{{ fullTenant.modules[mod.id] ? 'mdi-check-circle' : 'mdi-circle-outline' }} {{ mod.icon }} {{ mod.name }} mdi-crown
mdi-web Website-Verwaltung
{{ tenantWebsite.status === 'live' ? 'mdi-earth' : 'mdi-lock' }} {{ tenantWebsite.status === 'live' ? 'Live' : tenantWebsite.status === 'development' ? 'Development' : 'Nicht eingerichtet' }}
URL: {{ getWebsiteUrl(editingTenant) }} mdi-content-copy
mdi-shield-lock Basic Auth (Passwortschutz)
mdi-content-save Passwort speichern
mdi-rocket-launch Veröffentlichungs-Anfragen {{ tenantWebsite.publishRequests.filter(r => r.status === 'pending').length }} offen
{{ request.message || 'Veröffentlichung angefragt' }} {{ new Date(request.timestamp).toLocaleString('de-DE') }} von {{ request.requested_by }} mdi-checkbox-marked-circle-outline
Keine offenen Anfragen
mdi-palette-swatch Website-Template
Ausgewähltes Template
{{ getTemplateById(tenantWebsite.template)?.icon || 'mdi-web' }}
{{ getTemplateById(tenantWebsite.template)?.name }}
{{ getTemplateById(tenantWebsite.template)?.branch }}
mdi-open-in-new Live-Beispiel
{{ getTemplateById(tenantWebsite.template)?.description }}
mdi-chart-line Statistiken
{{ tenantWebsite.stats?.visitors || 0 }}
Besucher (30d)
{{ tenantWebsite.stats?.chatSessions || 0 }}
Chat-Sessions
{{ tenantWebsite.stats?.lastUpdate || '-' }}
Letzte Änderung
mdi-message-video Connect Features freigeben
Keine Alle Standard
Diese Features sind im Connect Widget für den Tenant verfügbar. Der Tenant-Admin kann sie dann im Connect Control Center weiter konfigurieren.
{{ category.icon }} {{ category.name }} {{ getConnectFeaturesByCategory(category.id).filter(f => fullTenant.connectFeatures[f.id]).length }}/{{ getConnectFeaturesByCategory(category.id).length }}
{{ fullTenant.connectFeatures[feature.id] ? 'mdi-check-circle' : 'mdi-circle-outline' }} {{ feature.icon }} {{ feature.name }} mdi-star
mdi-speedometer Limits
mdi-cellphone Mobile App Features freigeben
Keine Alle Standard
Diese Features sind in der nativen Android/iOS App für den Tenant verfügbar. Nur gebuchte Features werden dem Benutzer angezeigt.
{{ category.icon }} {{ category.name }} {{ getMobileFeaturesByCategory(category.id).filter(f => fullTenant.mobileFeatures[f.id]).length }}/{{ getMobileFeaturesByCategory(category.id).length }}
{{ fullTenant.mobileFeatures[feature.id] ? 'mdi-check-circle' : 'mdi-circle-outline' }} {{ feature.icon }} {{ feature.name }} mdi-star
mdi-robot Zia Assistent
mdi-brush White-Label (Premium)
Primary Color
Accent Color
mdi-download App-Verteilung
APK Download
{{ fullTenant.mobileSettings.whiteLabel && fullTenant.mobileSettings.appName ? `https://${fullTenant.domain || 'tenant'}.zianeo.de/app/download` : 'https://mapp.zianeo.de/download.html' }}
mdi-open-in-new Öffnen
Aktuelles Design:
{{ editingTenant.theme?.primary_color || '#1a365d' }}
Neu:
{{ fullTenant.primaryColor }}
Geändert
mdi-web Design von Website importieren
mdi-import
Extrahierte Farben (klicken zum Übernehmen)
Extrahierte Verlaeufe
Extrahiertes Icon Übernehmen
mdi-palette-swatch Farbschema-Vorlagen
{{ preset.name }}
Eigene Farben
Primaer
Sekundaer
Akzent
mdi-image Logo
mdi-cloud-upload
Logo hochladen
mdi-close
mdi-camera Farben aus Screenshot extrahieren
mdi-image-search
Screenshot hochladen
Analysieren mdi-close
mdi-eye Live-Vorschau
Design wird analysiert...
{{ fullTenant.name ? fullTenant.name.substring(0, 2).toUpperCase() : 'ZN' }}
{{ themeImportStatus.type === 'success' ? 'mdi-check-circle' : 'mdi-alert' }} {{ themeImportStatus.message }}
mdi-note-text Interne Notizen
mdi-information Tenant-Informationen
Erstellt am
{{ editingTenant.created_at ? new Date(editingTenant.created_at).toLocaleDateString('de-DE') : '-' }}
Letzte Änderung
{{ editingTenant.updated_at ? new Date(editingTenant.updated_at).toLocaleDateString('de-DE') : '-' }}
mdi-shield-account Sicherheitsstufe
High-Security Modus
• Alle sensiblen Daten werden AES-256-GCM verschluesselt
• Tenant muss bei jedem Login das Encryption-Passwort eingeben
• Audio-Cache wird deaktiviert (keine Klartext-Dateien)
• Crypto-Shred: Key löschen = Daten permanent unlesbar
mdi-shield-lock Tenant-Verschluesselung
Verschluesselung aktiv
Dokumente und KI-Chat sind E2E-verschluesselt. ZiaNeo kann diese Daten nicht einsehen.
Verschluesselung nicht eingerichtet
Der Tenant-Admin muss die Verschluesselung einrichten.
Was wird verschluesselt?
mdi-check-circle Dokumente
mdi-check-circle KI-Chat History
mdi-check-circle Calls/Video (WebRTC)
mdi-minus-circle Person-Chat
(für KI-Features)
mdi-account-group Vertrauenspersonen (Recovery)
mdi-account
{{ contact.name || contact.email }}
{{ contact.email }}
{{ contact.is_confirmed ? 'Bestaetigt' : 'Ausstehend' }}
Keine Vertrauenspersonen konfiguriert
Key-Fingerprint: {{ tenantEncryption.keyFingerprint || '-' }}
Key-Version: {{ tenantEncryption.keyVersion || 1 }}
Eingerichtet: {{ tenantEncryption.setupCompletedAt ? new Date(tenantEncryption.setupCompletedAt).toLocaleDateString('de-DE') : '-' }}
mdi-lock Verschluesselung wird vom Tenant-Admin eingerichtet mdi-history Audit-Log anzeigen
mdi-rocket-launch Deployen mdi-open-in-new Öffnen Abbrechen mdi-content-save Speichern
mdi-restore-alert BORG Backup Wiederherstellen WARNUNG! Dies wird alle aktuellen Daten unwiderruflich überschreiben! Abbrechen mdi-restore Wiederherstellen mdi-rocket-launch Website Wizard Schritt {{ wizardStep }}/5 mdi-close

mdi-domain 1. Tenant auswählen

mdi-web 2. Website-Quelle

{{ t.icon }}
{{ t.name }}
{{ t.desc }}
Die KI analysiert Design, Farben und Inhalte der Website und erstellt eine moderne Kopie.

mdi-brain 3. Wissensbasis für KI

mdi-tools 4. KI-Tools aktivieren

{{ tool.icon }}
{{ tool.name }}
{{ tool.desc }}

mdi-check-circle 5. Zusammenfassung

Tenant: {{ wizard.tenantMode === 'new' ? wizard.newTenantName : (wizardTenants.find(t => t.id === wizard.selectedTenant)?.name || '—') }}
Website: {{ wizard.websiteMode === 'template' ? wizardTemplates.find(t => t.id === wizard.selectedTemplate)?.name + ' Template' : 'Scrape: ' + wizard.scrapeUrl }}
Wissensbasis: {{ wizard.knowledgeMode === 'skip' ? 'Später' : wizard.knowledgeText?.substring(0, 30) + '...' }}
Tools: {{ wizard.selectedTools.length }} aktiviert
Nach dem Klick auf "Website erstellen":
Die KI generiert die Website (ca. 30-60 Sekunden) und deployt sie automatisch.
mdi-chevron-left Zurück Weiter mdi-chevron-right mdi-rocket-launch Website erstellen
mdi-dns DNS Failover (Disaster Recovery) NUR IM NOTFALL!
Dies ändert ALLE zianeo.de DNS-Eintraege auf eine neue Server-IP. Nur verwenden wenn der aktuelle Server nicht mehr erreichbar ist!

Betroffen: api, app, mapp, tools, docs, sfu, ollama + alle Tenant-Subdomains

Abbrechen mdi-dns DNS Umstellen
mdi-certificate SSL Zertifikate mdi-refresh {{ sslStatus.overview.total }} Domains
{{ sslStatus.overview.healthy }}
OK
{{ sslStatus.overview.warning }}
Warnung
{{ sslStatus.overview.expiring_soon }}
Ablaufend
{{ sslStatus.overview.errors }}
Fehler
mdi-certificate-outline Alle Zertifikate erneuern {{ domain.domain }} {{ domain.error }} {{ domain.days_left }} Tage | {{ domain.issuer }}
Letzter Check: {{ new Date(sslStatus.last_check).toLocaleString('de-DE') }}
Schliessen
mdi-web-check Website Review {{ websiteReviewResult.summary.passed }}/{{ websiteReviewResult.summary.total }} Checks
URL
{{ websiteReviewResult.url }}
Dauer: {{ Math.round(websiteReviewResult.duration_ms) }}ms • {{ new Date(websiteReviewResult.started_at).toLocaleString('de-DE') }}
{{ websiteReviewResult.summary.passed }}
OK
{{ websiteReviewResult.summary.warnings }}
Warnungen
{{ websiteReviewResult.summary.failed }}
Fehler
{{ check.name }} {{ check.message }}
mdi-lightbulb Fix-Vorschläge
{{ check.name }}: {{ check.fix_suggestion }}
mdi-information Tipp: Für vollständige Browser-Tests (JavaScript-Fehler, Klick-Tests) nutze review [URL] in der Claude Code Session.
mdi-refresh Erneut prüfen Schliessen
{{ snackbar.text }}
Dashboard
Alerts {{ unackedAlertCount }}
Services
Tenants
Tools
Logins
Website
KI-Agenten