加上登录和角色权限,并用 Vue 控制台区分用户与管理员。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-10 22:43:31 +08:00
parent 78601aae5e
commit 8b55b9cf55
36 changed files with 2947 additions and 1007 deletions
+15
View File
@@ -21,6 +21,7 @@ SERVICE_NAME="hypernode"
BIND_HOST="0.0.0.0"
BIND_PORT="33333"
ENV_FILE="${INSTALL_ROOT}/.env"
GENERATED_ADMIN_PASSWORD=""
_script_src="${BASH_SOURCE[0]:-}"
if [[ -n "${_script_src}" && -f "${_script_src}" ]]; then
@@ -132,6 +133,10 @@ write_env() {
log "保留已有配置 ${ENV_FILE}"
return 0
fi
local jwt_secret admin_password
jwt_secret="$(openssl rand -hex 32)"
admin_password="$(openssl rand -hex 12)"
GENERATED_ADMIN_PASSWORD="${admin_password}"
log "写入 ${ENV_FILE}"
cat >"${ENV_FILE}" <<EOF
DATABASE_URL=sqlite:////${DATA_DIR}/hypernode.db
@@ -139,6 +144,10 @@ YIELD_TIMEZONE=Asia/Shanghai
YIELD_HOUR=0
YIELD_MINUTE=5
DISABLE_SCHEDULER=false
JWT_SECRET=${jwt_secret}
ADMIN_USERNAME=admin
ADMIN_PASSWORD=${admin_password}
ADMIN_WALLET=admin-root
EOF
}
@@ -220,7 +229,13 @@ cmd_deploy() {
log "部署完成"
echo "监听地址:${BIND_HOST}:${BIND_PORT}"
echo "健康检查:curl http://127.0.0.1:${BIND_PORT}/health"
echo "控制台:http://<服务器 IP>:${BIND_PORT}/"
echo "接口文档:http://<服务器 IP>:${BIND_PORT}/docs"
if [[ -n "${GENERATED_ADMIN_PASSWORD}" ]]; then
echo "管理员账号:admin"
echo "管理员密码:${GENERATED_ADMIN_PASSWORD}"
echo "密码写在 ${ENV_FILE},请立刻记下。"
fi
echo "程序目录:${INSTALL_ROOT}"
echo "数据库:${DATA_DIR}/hypernode.db"
echo "日志:journalctl -u ${SERVICE_NAME}.service -f"