caddydash/README.md
2025-07-01 12:06:20 +08:00

3.6 KiB
Raw Blame History

CaddyDash - 现代化 Caddy Web 管理面板

CaddyDash 是一个现代化、用户友好的 Web 界面,用于管理和配置您的 Caddy 服务器。它提供了一个直观的图形界面,让您能够轻松地管理站点配置、调整全局设置,并监控 Caddy 实例的状态。

English | 简体中文

特性

  • 直观的站点配置: 通过表单轻松创建、编辑和删除站点配置,支持反向代理和文件服务模式。
  • 全局 Caddyfile 管理: 直接在 Web 界面中修改和保存 Caddy 的全局配置文件。
  • Caddy 实例控制: 一键启动、停止和重载 Caddy 服务。
  • 多语言支持: 内置国际化 (i18n) 功能,支持中英文切换,未来可扩展更多语言。
  • 响应式设计: 界面适配桌面和移动设备,提供一致的用户体验。
  • 主题切换: 支持明亮与暗色主题,满足不同用户偏好。
  • 用户认证: 提供安全的登录和初始化流程,保障面板访问安全。
  • 预设管理: 支持从预设填充常用的请求头配置,提高配置效率。

🚀 技术栈

前端:

  • 纯原生 HTML5/CSS3/JavaScript (ESM): 完全基于浏览器原生技术构建,响应式设计, 移动端友好

后端:

  • Go 语言: 高性能、并发友好的后端服务
  • Touka 框架: 基于 Go 构建的 HTTP 框架,用于处理 Web 请求
  • SQLite: 轻量级嵌入式数据库,用于存储用户和配置数据
  • CaddyServer: 作为核心组件

💡 架构概览

CaddyDash 前端采用多页面应用 (MPA) 架构,每个主要功能模块都对应一个独立的 HTML 页面,并由其专属的 JavaScript 入口文件驱动。

  • 高度模块化: 所有 JavaScript 代码都以 ESM (ECMAScript Modules) 形式组织,通过 import/export 机制实现代码复用和职责分离。
  • 共享组件: js/common.jsjs/locale.jsjs/notifications.jsjs/ui.jsjs/api.js 等模块封装了跨页面共享的功能如页面初始化、国际化、通知、UI操作和后端 API 调用。
  • 独立页面逻辑: js/app.js (站点配置), js/global.js (全局配置), js/settings.js (面板设置), js/login.js (登录), js/init.js (初始化) 分别处理各自页面的特定业务逻辑。

🌐 国际化 (i18n)

CaddyDash 前端支持多语言显示。

  • 语言包: 翻译文本存储在 locales/en.json (英文) 和 locales/zh-CN.json (简体中文) 文件中。
  • 动态翻译: js/locale.js 模块负责加载正确的语言包,并动态地将 HTML 元素中带有 data-i18n (内容)、data-i18n-title (标题属性) 和 data-i18n-placeholder (输入框提示) 的文本进行翻译。
  • 切换语言: 在登录页、初始化页或面板设置页,您可以通过界面上的语言切换选项来改变语言。

如何添加新的翻译条目:

  1. locales/en.jsonlocales/zh-CN.json 中添加新的键值对。请遵循现有的点分隔命名约定(例如 pages.feature.new_text)。
  2. 在 HTML 中使用 data-i18n="your.new.key"data-i18n-title="your.new.key"data-i18n-placeholder="your.new.key" 属性。
  3. 在 JavaScript 代码中,使用 t('your.new.key', { replacements }) 函数来获取翻译文本。

🤝 贡献

我们欢迎并鼓励任何形式的贡献如果您有任何功能建议、bug 报告或代码改进,请随时通过 Issues 或 Pull Requests 提交。

📜 许可证

Copyright © 2025 WJQSERVER

本项目 CaddyDash 在 Mozilla Public License 2.0 (MPL 2.0) 许可证下授权