feat: add jetboard deployment manager

This commit is contained in:
JetSprow
2026-05-01 01:50:37 +10:00
parent 4dd2f9280f
commit 6d6489817d
9 changed files with 1854 additions and 18 deletions

View File

@@ -315,6 +315,49 @@ write_env() {
rm -f "$tmp"
}
install_jetboard_command() {
section "安装 JetBoard 管理命令"
if [ ! -f "$APP_DIR/scripts/jetboard.sh" ]; then
echo "未找到 $APP_DIR/scripts/jetboard.sh跳过管理命令安装。"
return
fi
local config_tmp wrapper_tmp
config_tmp="$(mktemp)"
wrapper_tmp="$(mktemp)"
{
printf '# JetBoard Docker command configuration\n'
printf 'JBOARD_DEPLOY_MODE="docker"\n'
printf 'JBOARD_APP_DIR="%s"\n' "$(env_escape "$APP_DIR")"
printf 'GH_REPO="%s"\n' "$(env_escape "$GH_REPO")"
printf 'BRANCH="%s"\n' "$(env_escape "$BRANCH")"
printf 'COMPOSE="docker compose"\n'
} > "$config_tmp"
{
printf '#!/usr/bin/env bash\n'
printf 'set -euo pipefail\n'
printf 'CONFIG_FILE="${JETBOARD_CONFIG:-/etc/jetboard.conf}"\n'
printf 'if [ -r "$CONFIG_FILE" ]; then\n'
printf ' # shellcheck disable=SC1090\n'
printf ' . "$CONFIG_FILE"\n'
printf 'fi\n'
printf 'APP_DIR="${JBOARD_APP_DIR:-/opt/jboard}"\n'
printf 'exec "$APP_DIR/scripts/jetboard.sh" "$@"\n'
} > "$wrapper_tmp"
run_as_root mkdir -p /usr/local/bin
run_as_root install -m 0644 "$config_tmp" /etc/jetboard.conf
run_as_root install -m 0755 "$wrapper_tmp" /usr/local/bin/jetboard
run_as_root ln -sf /usr/local/bin/jetboard /usr/local/bin/JetBoard || true
run_as_root chmod +x "$APP_DIR/scripts/jetboard.sh" || true
rm -f "$config_tmp" "$wrapper_tmp"
echo "已安装jetboard也可使用 JetBoard"
}
configure_env() {
section "生成 .env 配置"
@@ -416,12 +459,12 @@ print_summary() {
local proxy_target="http://127.0.0.1:${APP_PORT:-3000}"
local shown_password="$ADMIN_PASSWORD"
if [ "$ENV_REUSED" = "1" ] && [ -z "$shown_password" ]; then
shown_password="沿用已有数据库账号;如忘记请在数据库中重置"
shown_password="沿用已有数据库账号;如忘记可执行 jetboard reset"
fi
echo
printf '%s\n' "============================================================"
printf '%s\n' "J-Board 部署完成"
printf '%s\n' "J-Board Lite Docker 部署完成"
printf '%s\n' "============================================================"
printf '访问地址:%s\n' "${PUBLIC_URL:-http://127.0.0.1:${APP_PORT:-3000}}"
printf '订阅地址:%s\n' "${SUBSCRIPTION_PUBLIC_URL:-${PUBLIC_URL:-http://127.0.0.1:${APP_PORT:-3000}}}"
@@ -446,10 +489,12 @@ print_summary() {
printf ' 4. 后台 /admin/plans创建套餐并绑定入站或流媒体服务。\n'
echo
printf '%s\n' "常用命令"
printf ' cd %s\n' "$APP_DIR"
printf ' sudo docker compose logs -f app\n'
printf ' sudo docker compose ps\n'
printf ' sudo ./scripts/upgrade-jboard-panel.sh\n'
printf ' jetboard # 打开 JetBoard 管理菜单\n'
printf ' jetboard status # 查看 Docker 服务状态\n'
printf ' jetboard update # 拉取代码、备份数据库并按机器配置重建\n'
printf ' jetboard reset # 重置或创建管理员账号密码\n'
printf ' jetboard logs # 查看 app 日志\n'
printf ' jetboard uninstall # 完整卸载 Docker 部署\n'
printf '%s\n' "============================================================"
}
@@ -462,6 +507,7 @@ main() {
prepare_repo
load_resource_helpers
configure_env
install_jetboard_command
install_docker
start_panel
wait_for_app