Skip to content

Latest commit

 

History

History
166 lines (114 loc) · 4.49 KB

README.md

File metadata and controls

166 lines (114 loc) · 4.49 KB

OpenAaaS Server

中文 | English

OpenAaaS 的 HTTP 服务端,负责接收 Client 任务、调度给 Agent 执行,并管理任务生命周期。

编译安装

需要安装 Rust 工具链(1.85+):

cd server
cargo build --release

编译产物为 target/release/open-aaas-server。

命令用法

open-aaas-server [OPTIONS] <COMMAND>

全局选项

选项 说明
--config <FILE> 指定配置文件路径,默认读取当前目录的 config.toml

子命令

命令 说明
run 前台运行服务器
run-detached 后台运行服务器
stop 停止后台服务器
status 查看服务器状态

首次启动

首次执行 run 时,若当前目录没有 config.toml,会进入交互式配置:

$ ./open-aaas-server run
Data directory [./data]:                # 回车确认或输入新路径
Admin API Key []:                       # 回车随机生成,或输入自定义值

服务端会自动完成以下初始化:

  1. 创建数据目录(默认 ./data)
  2. 写入 SQLite 数据库路径:{data_dir}/app.db
  3. 写入文件存储路径:{data_dir}/files
  4. 生成随机 secret_key(若未配置)
  5. 创建 admin_api_key(你输入的值或随机生成)
  6. 将最终配置写入 config.toml

随后正常启动服务。

前台运行

./open-aaas-server run

启动后监听默认地址 0.0.0.0:8080。按 Ctrl+C 或发送 SIGTERM 可优雅关闭。

如果当前目录已有 config.toml,会直接加载配置启动,不再询问。

后台运行

./open-aaas-server run-detached
  • Linux/macOS:通过 nohup 后台运行,日志输出到 {data_dir}/server.log
  • Windows:通过 cmd /C start /B 后台运行

后台启动后会写入 pidfile,用于后续管理和状态查询。

查看状态

./open-aaas-server status

输出示例:

配置文件:    /path/to/config.toml
数据目录:    /path/to/data
监听地址:    0.0.0.0:8080
运行状态:    运行中 (PID: 12345)

停止服务

./open-aaas-server stop

向后台进程发送 SIGTERM,等待最多 5 秒优雅退出;超时则发送 SIGKILL 强制终止,并清理 pidfile。

环境变量

服务端启动时会自动加载当前目录的 .env 文件(如果存在)。

以下环境变量可覆盖配置文件中的对应项,前缀为 APP__,层级用双下划线分隔:

环境变量 对应配置项
APP__SECRET_KEY secret_key
APP__ADMIN_API_KEY admin_api_key
APP__LOG_LEVEL log_level
APP__SERVER__ADDR server.addr
APP__DATABASE__URL database.url
APP__AGENT__HEARTBEAT_TIMEOUT_SECS agent.heartbeat_timeout_secs
APP__TASK__RESULT_RETENTION_DAYS task.result_retention_days
APP__TASK__FILE_STORAGE_PATH task.file_storage_path
APP__TASK__MAX_FILE_SIZE_MB task.max_file_size_mb

示例:

APP__SERVER__ADDR="0.0.0.0:3000" APP__LOG_LEVEL=debug ./open-aaas-server run

ADMIN_API_KEY 环境变量(无前缀)也可以直接覆盖管理员 API Key,优先级高于配置文件。

配置文件说明

config.toml 完整示例:

secret_key = "xxx"          # HMAC 密钥,首次启动自动生成
admin_api_key = "xxx"       # 管理员 API Key
log_level = "info"          # trace / debug / info / warn / error

[server]
addr = "0.0.0.0:8080"       # 监听地址
timeout_secs = 30           # HTTP 请求超时(秒)
max_body_size = 10485760    # 最大请求体大小(10MB)

[database]
url = "sqlite:./data/app.db" # SQLite 数据库路径

[agent]
heartbeat_timeout_secs = 60  # Agent 心跳超时(秒)

[task]
result_retention_days = 7    # 任务结果保留天数
file_storage_path = "./data/files" # 文件存储路径
max_file_size_mb = 50        # 单文件大小限制(MB)

首次启动后无需手动修改。若需调整,直接编辑 config.toml 后重启即可。

管理员 API Key

Admin API Key 用于调用管理员接口(创建服务、查看全量任务等)。获取方式:

  1. 首次启动自动生成:控制台会打印 Admin API Key: ak_admin_xxx,同时写入 config.toml
  2. 环境变量覆盖:启动前设置 ADMIN_API_KEY 或 APP__ADMIN_API_KEY
  3. 查看配置文件:从 config.toml 的 admin_api_key 字段读取

请务必妥善保存,避免泄露。