快速开始¶
本页面将指导您完成 Castellum 的环境准备、构建和运行。
环境要求¶
| 依赖 | 版本要求 | 说明 |
|---|---|---|
| Go | 1.25+ | 后端编译 |
| Node.js | 20+ | 前端构建 |
| Nginx | 任意版本 | 需包含 auth_request 模块 |
关于 Nginx
Nginx 的 auth_request 模块是 Castellum 的核心依赖。该模块允许 Nginx 在转发请求之前,先向 Castellum 发起子请求以验证用户身份。大多数主流 Nginx 安装包已默认包含此模块。
构建¶
项目包含一个构建脚本,用于编译前端和后端代码。
# 1. 克隆仓库
git clone https://github.com/Flmelody/castellum.git
cd castellum
# 2. 构建项目
./scripts/build.sh
自定义构建配置
您可以通过修改 scripts/build.sh 或在项目根目录创建 .env 文件来自定义构建配置。支持的环境变量请参阅 环境变量 页面。
构建脚本会依次完成以下步骤:
- 构建 Guard 前端(
ui/guard) - 构建 Admin 前端(
ui/admin) - 编译 Go 后端并嵌入前端资源
构建完成后,根目录下会生成一个名为 app 的可执行文件。
运行¶
应用将使用默认配置启动:
| 项目 | 值 |
|---|---|
| 管理后台地址 | http://localhost:9999/wall/admin/ |
| 默认用户名 | castellum |
| 默认密码 | 首次启动自动生成,写入 ./data/bootstrap-admin-credentials(权限 0600) |
安全警告
首次启动时默认密码会随机生成并写入 ./data/bootstrap-admin-credentials(权限 0600)。启动日志只会打印该文件路径,请打开该文件读取密码。完成首次登录并轮换密码后请删除该文件。如希望跳过自动生成,可在 config/config.yaml 中配置 default-user.username / default-user.password。
从 Open Website Defender 升级(PostgreSQL / MySQL)
内置默认数据库名从 open_website_defender 改为 castellum。如果你的 config/config.yaml 没有显式配置 database.name 且正在从老版本升级 PG/MySQL 部署,升级前请显式写上 database.name: open_website_defender,或者把数据库 rename 成 castellum,否则连接的会是一个新的/不存在的库。SQLite 部署不受影响。