No description
| .github | ||
| api | ||
| apic | ||
| config | ||
| db | ||
| deploy | ||
| frontend | ||
| gen | ||
| gtmpl | ||
| licenses | ||
| tmpl | ||
| user | ||
| .gitignore | ||
| Caddyfile | ||
| config.toml | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| README.md | ||
| VERSION | ||
CaddyDash - 现代化 Caddy Web 管理面板
CaddyDash 是一个现代化、用户友好的 Web 界面,用于管理和配置您的 Caddy 服务器。它提供了一个直观的图形界面,让您能够轻松地管理站点配置、调整全局设置,并监控 Caddy 实例的状态。
✨ 特性
- 直观的站点配置: 通过表单轻松创建、编辑和删除站点配置,支持反向代理和文件服务模式。
- 全局 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.js、js/locale.js、js/notifications.js、js/ui.js、js/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(输入框提示) 的文本进行翻译。 - 切换语言: 在登录页、初始化页或面板设置页,您可以通过界面上的语言切换选项来改变语言。
如何添加新的翻译条目:
- 在
locales/en.json和locales/zh-CN.json中添加新的键值对。请遵循现有的点分隔命名约定(例如pages.feature.new_text)。 - 在 HTML 中使用
data-i18n="your.new.key"、data-i18n-title="your.new.key"或data-i18n-placeholder="your.new.key"属性。 - 在 JavaScript 代码中,使用
t('your.new.key', { replacements })函数来获取翻译文本。
🤝 贡献
我们欢迎并鼓励任何形式的贡献!如果您有任何功能建议、bug 报告或代码改进,请随时通过 Issues 或 Pull Requests 提交。
📜 许可证
Copyright © 2025 WJQSERVER
本项目 CaddyDash 在 Mozilla Public License 2.0 (MPL 2.0) 许可证下授权