141 lines
No EOL
8.2 KiB
HTML
141 lines
No EOL
8.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>全局配置 - CaddyDash</title>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
|
<link rel="stylesheet" href="css/style.css">
|
|
</head>
|
|
|
|
<body>
|
|
<div class="app-container">
|
|
<!-- 侧边栏 (保持不变) -->
|
|
<aside class="sidebar" id="sidebar">
|
|
<header class="sidebar-header"><i class="fa-solid fa-rocket"></i>
|
|
<h1>CaddyDash</h1>
|
|
</header>
|
|
<nav class="sidebar-nav">
|
|
<ul>
|
|
<li><a href="/" data-nav-id="configs"><i class="fa-solid fa-sitemap"></i> <span>站点配置</span></a></li>
|
|
<li><a href="/global.html" data-nav-id="global"><i class="fa-solid fa-globe"></i>
|
|
<span>全局配置</span></a></li>
|
|
<li><a href="/settings.html" data-nav-id="settings"><i class="fa-solid fa-gears"></i>
|
|
<span>面板设置</span></a></li>
|
|
</ul>
|
|
</nav>
|
|
<div class="sidebar-bottom">
|
|
<div class="theme-switcher"><i class="fa-solid fa-sun"></i><label class="switch"><input type="checkbox"
|
|
id="theme-toggle-input"><span class="slider"></span></label><i class="fa-solid fa-moon"></i>
|
|
</div>
|
|
<div class="caddy-control-panel">
|
|
<div id="caddy-status-indicator" class="caddy-status"><span class="status-dot checking"></span><span
|
|
class="status-text">检查中...</span></div>
|
|
<div id="caddy-action-button-container"></div>
|
|
</div>
|
|
<div class="logout-section"><button id="logout-btn" class="btn btn-secondary"><i
|
|
class="fa-solid fa-right-from-bracket"></i><span>退出登录</span></button></div>
|
|
</div>
|
|
</aside>
|
|
|
|
<main class="main-content">
|
|
<header class="main-header">
|
|
<button class="btn-icon" id="menu-toggle-btn"><i class="fa-solid fa-bars"></i></button>
|
|
<h2>全局 Caddyfile 配置</h2>
|
|
</header>
|
|
|
|
<div id="view-container">
|
|
<section class="card-panel">
|
|
<p class="text-secondary" style="margin-top:-1rem; margin-bottom: 2rem;">修改这些配置将会重写您的主 Caddyfile 并触发
|
|
Caddy 重载。</p>
|
|
|
|
<form id="global-caddy-form">
|
|
<fieldset>
|
|
<legend>通用选项</legend>
|
|
<div class="form-grid">
|
|
<div class="form-group"><label for="admin_port">管理API端口 (只读)</label><input type="text"
|
|
id="admin_port" name="admin_port" value=":2019" readonly></div>
|
|
<div class="form-group"><label for="http_port">HTTP 端口</label><input type="number"
|
|
id="http_port" name="http_port" min="1" max="65535"></div>
|
|
<div class="form-group"><label for="https_port">HTTPS 端口</label><input type="number"
|
|
id="https_port" name="https_port" min="1" max="65535"></div>
|
|
</div>
|
|
<div class="checkbox-grid">
|
|
<label class="custom-checkbox"><input type="checkbox" id="debug" name="debug"><span
|
|
class="checkmark"></span> 启用Debug模式</label>
|
|
<label class="custom-checkbox"><input type="checkbox" id="metrics" name="metrics"><span
|
|
class="checkmark"></span> 启用Prometheus指标</label>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<fieldset>
|
|
<legend>主日志配置</legend>
|
|
<div class="form-grid">
|
|
<div class="form-group"><label>日志级别</label>
|
|
<div id="select-log-level" class="custom-select"></div>
|
|
</div>
|
|
<div class="form-group"><label for="log_rotate_size">滚动大小</label><input type="text"
|
|
id="log_rotate_size" name="log_rotate_size" placeholder="例如: 10MB"></div>
|
|
<div class="form-group"><label for="log_rotate_keep">保留文件数</label><input type="text"
|
|
id="log_rotate_keep" name="log_rotate_keep" placeholder="例如: 10"></div>
|
|
<div class="form-group"><label for="log_rotate_keep_for_time">保留时间</label><input
|
|
type="text" id="log_rotate_keep_for_time" name="log_rotate_keep_for_time"
|
|
placeholder="例如: 24h"></div>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<fieldset>
|
|
<legend>全局TLS配置 (ACME)</legend>
|
|
<label class="custom-checkbox"><input type="checkbox" id="enable_dns_challenge"
|
|
name="enable_dns_challenge"><span class="checkmark"></span> 启用全局 DNS
|
|
Challenge</label>
|
|
<div id="global-tls-config-group" class="hidden" style="margin-top:16px;">
|
|
<div class="form-grid">
|
|
<div class="form-group"><label>DNS 提供商</label>
|
|
<div id="select-tls-provider" class="custom-select"></div>
|
|
</div>
|
|
<div class="form-group"><label for="tls_email">ACME 邮箱</label><input type="email"
|
|
id="tls_email" name="tls_email" placeholder="用于证书申请和续订通知"></div>
|
|
<div class="form-group"><label for="tls_token">API Token (或等效凭证)</label><input
|
|
type="password" id="tls_token" name="tls_token" autocomplete="new-password">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<!-- 新增: ECH 配置区域 -->
|
|
<fieldset>
|
|
<legend>加密客户端问候 (ECH)</legend>
|
|
<label class="custom-checkbox"><input type="checkbox" id="enable_ech"
|
|
name="enable_ech"><span class="checkmark"></span> 启用 ECH (实验性功能)</label>
|
|
<div id="ech-config-group" class="hidden" style="margin-top:16px;">
|
|
<div class="form-group">
|
|
<label for="tls_ech_sni">ECH Outer SNI</label>
|
|
<input type="text" id="tls_ech_sni" name="tls_ech_sni"
|
|
placeholder="例如: ech.example.com">
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<div class="form-actions">
|
|
<button type="submit" class="btn btn-primary"><i class="fa-solid fa-save"></i>
|
|
保存并重载</button>
|
|
</div>
|
|
</form>
|
|
</section>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
<div id="toast-container" class="toast-container"></div>
|
|
<div id="dialog-container"></div>
|
|
|
|
<script type="module" src="js/common.js"></script>
|
|
<script type="module" src="js/global.js"></script>
|
|
</body>
|
|
|
|
</html> |