mirror of
https://github.com/JetSprow/J-Board-Lite.git
synced 2026-05-01 01:14:10 +05:30
feat: add jetboard deployment manager
This commit is contained in:
97
README.md
97
README.md
@@ -99,8 +99,12 @@ J-Board Lite 面板和 Agent 使用相对独立的版本节奏。
|
||||
| `prisma/schema.prisma` | 数据模型事实源。 |
|
||||
| `data/GeoLite2-City.mmdb` | 默认 GeoIP 城市库。 |
|
||||
| `agent/jboard-agent` | Go Agent 源码、构建脚本和 Agent 文档。 |
|
||||
| `scripts/install-jboard-panel.sh` | 面板一键安装向导。 |
|
||||
| `scripts/upgrade-jboard-panel.sh` | 面板升级脚本。 |
|
||||
| `scripts/install-jetboard-standalone.sh` | 不使用 Docker 的面板一键安装向导。 |
|
||||
| `scripts/uninstall-jetboard-standalone.sh` | standalone 部署一键卸载脚本。 |
|
||||
| `scripts/jetboard.sh` | Docker / standalone 共用的 `jetboard` 管理命令入口。 |
|
||||
| `scripts/install-jboard-panel.sh` | Docker 面板一键安装向导。 |
|
||||
| `scripts/upgrade-jboard-panel.sh` | Docker 面板升级脚本。 |
|
||||
| `scripts/uninstall-jboard-panel.sh` | Docker 面板一键卸载脚本。 |
|
||||
| `scripts/install-jboard-agent.sh` | Agent 安装脚本。 |
|
||||
| `scripts/upgrade-jboard-agent.sh` | Agent 升级脚本。 |
|
||||
| `docs/API.md` | HTTP 接口与 Server Actions 参考。 |
|
||||
@@ -121,21 +125,23 @@ J-Board Lite 面板和 Agent 使用相对独立的版本节奏。
|
||||
| `DATABASE_URL` | SQLite 文件地址 | 本地默认 `file:./storage/jboard.db`;Docker 部署时 Compose 会覆盖为容器内 `/app/storage/jboard.db`。 |
|
||||
| `GEOIP_MMDB_PATH` | GeoIP 城市库 | 默认 `data/GeoLite2-City.mmdb`。可换成自己的 MaxMind City MMDB。 |
|
||||
| `JBOARD_LOG_CLEANUP_SCHEDULER` | 日志清理定时器 | 默认启用。设为 `false` 可关闭进程内自动清理任务。 |
|
||||
| `ADMIN_EMAIL` / `ADMIN_PASSWORD` / `ADMIN_NAME` | 初始管理员 | 首次 `db:seed` 创建管理员账号。已有数据库不会强制重置旧管理员密码。 |
|
||||
| `ADMIN_EMAIL` / `ADMIN_PASSWORD` / `ADMIN_NAME` | 初始管理员 | 首次 `db:seed` 创建管理员账号。已有数据库不会强制重置旧管理员密码;忘记密码时执行 `jetboard reset`。 |
|
||||
|
||||
SMTP 邮件服务、注册邮箱验证开关、支付方式、3x-ui 节点等业务配置在管理后台填写,不建议写进 `.env`。
|
||||
|
||||
日志清理在后台“系统设置 -> 日志清理”中配置。默认每天最多自动清理一次 30 天前日志,范围包含审计日志、任务记录、流量日志、节点延迟日志、风控访问日志和风控事件;正在生效的用户端风控限制不会被自动清理。管理员也可以在后台选择日志范围和天数,立即手动清理过期日志。
|
||||
|
||||
## 一键部署
|
||||
## Standalone 一键部署
|
||||
|
||||
适合全新 Linux 服务器。脚本会安装基础依赖、安装 Docker 与 Compose 插件、拉取代码、生成 `.env`、初始化数据库并启动面板。
|
||||
适合不想使用 Docker 的全新 Linux 服务器。脚本会安装基础依赖、安装 Node.js、拉取代码、生成 `.env`、构建 Next.js standalone 产物、初始化 SQLite,并注册 systemd 服务。
|
||||
|
||||
```bash
|
||||
bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/scripts/install-jboard-panel.sh)
|
||||
bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/scripts/install-jetboard-standalone.sh)
|
||||
```
|
||||
|
||||
安装和更新脚本会自动检测 CPU、宿主机内存、Docker 可用内存和 Docker 数据盘空间。常规机器使用 Docker 默认构建策略;1C、低于 2GB 内存或 Docker 可用空间低于 8GB 的小机器会自动进入低资源模式,降低 Compose 并发、npm 编译并发和 Next 构建堆内存,并把镜像分步构建,构建会更慢但峰值占用更低。
|
||||
安装和更新脚本会自动检测 CPU、内存和安装目录可用空间。常规机器使用 npm/Next 默认构建策略;1C、低于 2GB 内存或可用空间低于 8GB 的小机器会自动进入低资源模式,降低 npm 编译并发和 Next 构建堆内存,构建会更慢但峰值占用更低。
|
||||
|
||||
安装完成后会写入 `/etc/jetboard.conf` 并安装全局命令 `jetboard`。直接执行 `jetboard` 会打开 JetBoard 管理菜单,后续更新、状态查看、日志查看、管理员密码重置和卸载都可以从这里完成。
|
||||
|
||||
脚本会交互询问:
|
||||
|
||||
@@ -152,20 +158,20 @@ bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/s
|
||||
也可以通过环境变量覆盖默认行为:
|
||||
|
||||
```bash
|
||||
APP_DIR=/opt/jboard GH_REPO=JetSprow/J-Board-Lite BRANCH=main bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/scripts/install-jboard-panel.sh)
|
||||
APP_DIR=/opt/jboard GH_REPO=JetSprow/J-Board-Lite BRANCH=main bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/scripts/install-jetboard-standalone.sh)
|
||||
```
|
||||
|
||||
构建资源策略也可以手动覆盖:
|
||||
|
||||
```bash
|
||||
# 自动判断,默认值
|
||||
JBOARD_BUILD_PROFILE=auto ./scripts/upgrade-jboard-panel.sh
|
||||
JBOARD_BUILD_PROFILE=auto jetboard update
|
||||
|
||||
# 强制低资源慢速构建
|
||||
JBOARD_BUILD_PROFILE=low ./scripts/upgrade-jboard-panel.sh
|
||||
JBOARD_BUILD_PROFILE=low jetboard update
|
||||
|
||||
# 强制常规构建,不额外限制并发或 Node heap
|
||||
JBOARD_BUILD_PROFILE=normal ./scripts/upgrade-jboard-panel.sh
|
||||
JBOARD_BUILD_PROFILE=normal jetboard update
|
||||
```
|
||||
|
||||
脚本完成后会输出:
|
||||
@@ -180,6 +186,75 @@ JBOARD_BUILD_PROFILE=normal ./scripts/upgrade-jboard-panel.sh
|
||||
|
||||
请把管理员密码保存到密码管理器。已有数据库重复部署时,脚本会尽量沿用现有配置,不会随意重置管理员。
|
||||
|
||||
## JetBoard 管理命令
|
||||
|
||||
Docker 和 standalone 一键脚本都会安装全局命令。安装后可在任意目录执行:
|
||||
|
||||
```bash
|
||||
jetboard
|
||||
```
|
||||
|
||||
常用命令:
|
||||
|
||||
```bash
|
||||
jetboard status # 查看当前部署状态
|
||||
jetboard update # 拉取最新代码、备份 SQLite、按机器配置更新
|
||||
jetboard reset # 重置或创建管理员账号密码
|
||||
jetboard logs # 查看服务日志
|
||||
jetboard restart # 重启面板
|
||||
jetboard uninstall # 完整卸载当前部署
|
||||
```
|
||||
|
||||
`jetboard` 会读取 `/etc/jetboard.conf` 中的部署模式:Docker 部署会调用 Docker Compose,standalone 部署会调用 systemd 和本机构建。`jetboard update` 和安装脚本使用同一套资源检测逻辑,强机器不额外限制构建;1C1G、小内存或可用空间不足时自动进入低占用慢速构建。忘记管理员账号密码时执行 `jetboard reset`,按提示输入管理员邮箱和新密码;如果该管理员不存在,会自动创建并激活为管理员。
|
||||
|
||||
完整一键卸载 standalone 部署:
|
||||
|
||||
```bash
|
||||
bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/scripts/uninstall-jetboard-standalone.sh)
|
||||
```
|
||||
|
||||
非交互卸载:
|
||||
|
||||
```bash
|
||||
UNINSTALL_CONFIRM=YES bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/scripts/uninstall-jetboard-standalone.sh)
|
||||
```
|
||||
|
||||
卸载脚本会先备份 `.env`、`storage/` 和 `backups/` 到 `/root/jboard-uninstall-backup-时间.tar.gz`,再删除 systemd 服务、全局命令、`/etc/jetboard.conf` 和安装目录。
|
||||
|
||||
## Docker 一键部署
|
||||
|
||||
适合希望用 Docker Compose 隔离运行环境的服务器。脚本会安装基础依赖、安装 Docker 与 Compose 插件、拉取代码、生成 `.env`、初始化数据库并启动面板。
|
||||
|
||||
```bash
|
||||
bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/scripts/install-jboard-panel.sh)
|
||||
```
|
||||
|
||||
Docker 安装和更新脚本会自动检测 CPU、宿主机内存、Docker 可用内存和 Docker 数据盘空间。常规机器使用 Docker 默认构建策略;1C、低于 2GB 内存或 Docker 可用空间低于 8GB 的小机器会自动进入低资源模式,降低 Compose 并发、npm 编译并发和 Next 构建堆内存,并把镜像分步构建,构建会更慢但峰值占用更低。
|
||||
|
||||
Docker 一键脚本也会安装 `jetboard` 全局命令,并写入 Docker 部署模式。常用操作:
|
||||
|
||||
```bash
|
||||
jetboard status # docker compose ps
|
||||
jetboard update # 拉取代码、备份 SQLite、按机器配置重建镜像
|
||||
jetboard reset # 通过 init 容器重置或创建管理员
|
||||
jetboard logs # docker compose logs -f app
|
||||
jetboard uninstall # 备份后删除 Compose 服务、volume 和安装目录
|
||||
```
|
||||
|
||||
完整一键卸载 Docker 部署:
|
||||
|
||||
```bash
|
||||
bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/scripts/uninstall-jboard-panel.sh)
|
||||
```
|
||||
|
||||
非交互卸载:
|
||||
|
||||
```bash
|
||||
UNINSTALL_CONFIRM=YES bash <(curl -fsSL https://raw.githubusercontent.com/JetSprow/J-Board-Lite/main/scripts/uninstall-jboard-panel.sh)
|
||||
```
|
||||
|
||||
卸载脚本会先备份 `.env`、`backups/` 和 Docker SQLite volume,root 执行时保存到 `/root/jboard-docker-uninstall-backup-时间.tar.gz`,非 root 直接执行时保存到当前用户 HOME;随后执行 `docker compose down --volumes --remove-orphans`,最后删除全局命令、`/etc/jetboard.conf` 和安装目录。Docker 本身不会被删除。
|
||||
|
||||
## 手动 Docker 部署
|
||||
|
||||
首次启动:
|
||||
|
||||
Reference in New Issue
Block a user