feat: --mode local 一键本地模式 (SQLite + redka, 无需 MySQL/Redis)

- main.go: --mode local 自动配置 db-driver=sqlite, db-name=data/sqlite3.db, redis-driver=redka
- database: 切换纯 Go SQLite 驱动 (github.com/glebarez/sqlite) — 无需 CGO
- docker-compose.yml: backend 添加 MODE=${MODE:-release} env var + data 卷挂载
- run.sh: binary upgrade 默认 --mode local, config.yaml 模板更新为 local 模式
- K8s quick-deploy.yaml: 单容器部署, MODE=local 环境变量切换远程/本地
This commit is contained in:
attacker committed 2026-06-26 04:36:09 +00:00
1 parent 9649167c83
commit ec7aa61948
7 files changed
+75 -41

No files matched your search

+10 -8
View File
@@ -379,9 +379,9 @@ ensure_binary_config() {
if [ -f "$cfg" ]; then
return 0
fi
info "生成默认 config.yaml (SQLite + 无Redis)..."
info "生成默认 config.yaml (local 模式: SQLite + redka 本地缓存)..."
cat > "$cfg" << 'YAML'
mode: "release"
mode: "local"
port: "8080"
log_level: "info"
@@ -391,7 +391,7 @@ database:
port: 3306
user: ""
password: ""
dbname: "data/aiops.db"
dbname: "data/sqlite3.db"
charset: "utf8mb4"
max_conn: 100
max_idle: 10
@@ -399,11 +399,12 @@ database:
redis:
host: "localhost"
port: 6379
driver: "redka"
password: ""
db: 0
jwt:
secret: "CHANGE_ME_JWT_SECRET" # ⚠️ 生产环境必须替换
secret: "aiops-local-dev-secret-change-in-production"
expire_hour: 24
websocket:
@@ -459,7 +460,7 @@ load_binary_args() {
done < "$BINARY_ARGS_FILE"
fi
if [ ${#_out[@]} -eq 0 ]; then
_out=(--port 8080 --db-driver sqlite)
_out=(--mode local --port 8080)
fi
}
@@ -645,7 +646,8 @@ cmd_build() {
info "使用方法:"
echo " ./run.sh binary upgrade # 停服重编译并后台启动"
echo " ./$BACKEND_DIR/$STANDALONE_BIN --port 8080 # 前台启动"
echo " ./$BACKEND_DIR/$STANDALONE_BIN --config config.yaml # 使用配置文件"
echo " ./$BACKEND_DIR/$STANDALONE_BIN --mode local # 本地模式 (SQLite + redka)"
echo " ./$BACKEND_DIR/$STANDALONE_BIN --config config.yaml # 使用配置文件"
;;
agent)
banner "========== 编译 Agent =========="
@@ -759,11 +761,11 @@ cmd_binary() {
;;
help|--help|-h)
echo "独立二进制命令:"
echo " ./run.sh binary upgrade [--port 8080 --db-driver sqlite] 停服→清旧→重编译→启动"
echo " ./run.sh binary upgrade [--port 8080] 停服→清旧→重编译→启动 (默认 --mode local)"
echo " ./run.sh binary start [args...] 后台启动(参数会持久化)"
echo " ./run.sh binary stop [port] 停止进程"
echo " ./run.sh binary status 查看状态"
echo " ./run.sh binary [--port 8080 ...] 前台运行(开发调试)"
echo " ./run.sh binary [--mode local --port 8080 ...] 前台运行 (SQLite + redka)"
;;
run|*)
cd "$SCRIPT_DIR/$BACKEND_DIR"