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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user