feat: Servereinstellungen-Seite für Admins

- Neuer Endpoint GET/PUT /api/admin/server-settings
  - Liest appsettings.Production.json (Fallback: appsettings.json → Standardwert)
  - Schreibt immer in appsettings.Production.json
  - Definierte Settings: AnthropicToken, MaxIterations, PayloadLogging, PayloadLoggingGzip, KreaToken, KreaApiKey
- Neue Frontend-Seite 'server-settings' (Admin-only)
  - Dynamisches Formular basierend auf Setting-Definitionen vom Backend
  - Password-Felder mit Eye-Toggle, Checkboxen für Booleans, Number-Inputs
  - Hinweis dass Neustart erforderlich ist
- Dashboard: Neuer Link 'Servereinstellungen' für Admins
- appsettings.Production.json vom Publish ausgeschlossen (CopyToPublishDirectory=Never)
This commit is contained in:
Meleki committed 2026-03-06 22:32:33 +01:00
1 parent af2f821c72
commit bfd78278ab
8 files changed
+411 -3

No files matched your search

+36 -2
View File
@@ -566,11 +566,45 @@ label.skill-item {
.form-hint {
display: block;
margin-top: 4px;
font-size: var(--font-size);
opacity: var(--semi-transparent);
}
.form-hint code {
background: var(--f1-bg);
padding: var(--badge-padding);
border-radius: var(--border-radius);
}
.form-field {
display: flex;
flex-direction: column;
gap: var(--badge-spacing);
margin-bottom: var(--box-spacing);
}
.form-field label {
margin-top: var(--badge-spacing);
}
.form-field .toggle-label {
display: flex;
align-items: center;
gap: var(--badge-spacing);
cursor: pointer;
margin-top: 0;
}
.form-field .toggle-label input[type="checkbox"] {
width: 18px;
height: 18px;
accent-color: var(--accent);
cursor: pointer;
}
.form-error {
color: var(--dangerous);
}
/* ── Admin User List ── */
.admin-user-list {