Updated to version 1.2.6

This commit is contained in:
2026-04-28 09:41:56 +02:00
parent c5a5356a0d
commit c951185cdc
12 changed files with 707 additions and 145 deletions
+49 -4
View File
@@ -20,11 +20,11 @@
<button type="button" class="tab-btn" id="stab-caldav" onclick="switchSettingsTab('caldav')">DAV</button>
<button type="button" class="tab-btn" id="stab-pushover" onclick="switchSettingsTab('pushover')">Pushover</button>
<button type="button" class="tab-btn" id="stab-inbox" onclick="switchSettingsTab('inbox')">Inbox</button>
<button type="button" class="tab-btn" id="stab-emailaccounts" onclick="switchSettingsTab('emailaccounts')">Email Accounts</button>
<button type="button" class="tab-btn" id="stab-emailaccounts" onclick="switchSettingsTab('emailaccounts')">Email</button>
<button type="button" class="tab-btn" id="stab-telegram" onclick="switchSettingsTab('telegram')">Telegram</button>
<button type="button" class="tab-btn" id="stab-system" onclick="switchSettingsTab('system')">Personality</button>
<button type="button" class="tab-btn" id="stab-brain" onclick="switchSettingsTab('brain')">2nd Brain</button>
<button type="button" class="tab-btn" id="stab-mcp" onclick="switchSettingsTab('mcp')">MCP Servers</button>
<button type="button" class="tab-btn" id="stab-mcp" onclick="switchSettingsTab('mcp')">MCP</button>
<button type="button" class="tab-btn" id="stab-security" onclick="switchSettingsTab('security')">Security</button>
<button type="button" class="tab-btn" id="stab-branding" onclick="switchSettingsTab('branding')">Branding</button>
<button type="button" class="tab-btn" id="stab-webhooks" onclick="switchSettingsTab('webhooks')">Webhooks</button>
@@ -36,10 +36,10 @@
<button type="button" class="tab-btn active" id="ustab-apikeys" onclick="switchUserTab('apikeys')">API Keys</button>
<button type="button" class="tab-btn" id="ustab-personality" onclick="switchUserTab('personality')">Personality</button>
<button type="button" class="tab-btn" id="ustab-inbox" onclick="switchUserTab('inbox')">Inbox</button>
<button type="button" class="tab-btn" id="ustab-emailaccounts" onclick="switchUserTab('emailaccounts')">Email Accounts</button>
<button type="button" class="tab-btn" id="ustab-emailaccounts" onclick="switchUserTab('emailaccounts')">Email</button>
<button type="button" class="tab-btn" id="ustab-caldav" onclick="switchUserTab('caldav')">CalDAV / CardDAV</button>
<button type="button" class="tab-btn" id="ustab-telegram" onclick="switchUserTab('telegram')">Telegram</button>
<button type="button" class="tab-btn" id="ustab-mcp" onclick="switchUserTab('mcp')">MCP Servers</button>
<button type="button" class="tab-btn" id="ustab-mcp" onclick="switchUserTab('mcp')">MCP</button>
<button type="button" class="tab-btn" id="ustab-brain" onclick="switchUserTab('brain')">2nd Brain</button>
<button type="button" class="tab-btn" id="ustab-pushover" onclick="switchUserTab('pushover')">Pushover</button>
<button type="button" class="tab-btn" id="ustab-webhooks" onclick="switchUserTab('webhooks')">Webhooks</button>
@@ -1110,6 +1110,33 @@
</div>
</section>
<!-- File Upload Policy -->
<section style="margin-bottom:32px">
<h2 class="settings-section-title">File Upload Policy</h2>
<p style="font-size:12px;color:var(--text-dim);margin-bottom:16px">
Controls what users can upload via the Files page. Extensions are checked on both client and server.
Separate extensions with commas or spaces (without dots). Leave unchanged to use the system default
(common text, code, image, and PDF formats). Extensionless files are controlled by a fixed server-side
allowlist (<code>known_hosts</code>, <code>authorized_keys</code>, <code>config</code>, <code>.gitignore</code>, etc.) and cannot be overridden here.
</p>
<div class="form-group" style="margin-bottom:12px">
<label>Allowed extensions</label>
<textarea id="sec-upload-extensions" class="form-input" rows="3"
placeholder="txt, md, pdf, jpg, png, py, js …"
style="font-family:var(--mono);font-size:12px;resize:vertical"></textarea>
</div>
<div style="display:flex;gap:12px;flex-wrap:wrap;max-width:400px">
<div class="form-group" style="flex:1;min-width:140px;margin-bottom:0">
<label>Max file size <span style="color:var(--text-dim);font-size:11px">(MB, default 50)</span></label>
<input type="number" id="sec-upload-max-mb" class="form-input" min="1" max="2000" step="1">
</div>
<div class="form-group" style="flex:1;min-width:140px;margin-bottom:0">
<label>Max files per upload <span style="color:var(--text-dim);font-size:11px">(default 20)</span></label>
<input type="number" id="sec-upload-max-files" class="form-input" min="1" max="200" step="1">
</div>
</div>
</section>
<button type="submit" class="btn btn-primary">Save security settings</button>
</form>
@@ -1232,6 +1259,15 @@
<span id="data-folder-hint" style="font-size:12px;color:var(--text-dim)">Loading…</span>
</section>
<section style="max-width:480px;margin-top:32px;padding-top:32px;border-top:1px solid var(--border)">
<h3 class="settings-section-title">SSH Key</h3>
<p style="font-size:12px;color:var(--text-dim);margin-bottom:16px;line-height:1.5">
Generate an ed25519 SSH key pair stored in your data folder. The private key never leaves the server.
Copy the public key to remote servers' <code>~/.ssh/authorized_keys</code> to allow agents to connect.
</p>
<div id="ssh-key-area">Loading…</div>
</section>
</div><!-- /spane-mfa -->
<!-- ══════════════════════════════════════════════════════════
@@ -1827,6 +1863,15 @@
<span id="data-folder-hint" style="font-size:12px;color:var(--text-dim)">Loading…</span>
</section>
<section style="max-width:480px;margin-top:32px;padding-top:32px;border-top:1px solid var(--border)">
<h3 class="settings-section-title">SSH Key</h3>
<p style="font-size:12px;color:var(--text-dim);margin-bottom:16px;line-height:1.5">
Generate an ed25519 SSH key pair stored in your data folder. The private key never leaves the server.
Copy the public key to remote servers' <code>~/.ssh/authorized_keys</code> to allow agents to connect.
</p>
<div id="ssh-key-area">Loading…</div>
</section>
</div><!-- /uspane-mfa -->
{% endif %}