本地开发环境
字数
588 字
阅读时间
3 分钟
前置条件
- Python 3.12+
- uv(依赖与虚拟环境)
- 可选:Docker(数据库、协议端、镜像构建校验)
- 可选:Node.js(仅开发 Pallas-Bot-WebUI 前端时)
克隆与安装依赖
bash
git clone https://github.com/PallasBot/Pallas-Bot.git
cd Pallas-Bot
uv sync --dev需要分片协调 Redis 时:
bash
uv sync --dev --extra coord-redis运行配置
不要再依赖根目录 .env 作为唯一配置源。
- 复制主配置:
bash
cp config/pallas.example.toml config/pallas.toml编辑
config/pallas.toml的[bootstrap]:监听地址、SUPERUSERS、数据库后端(MongoDB / PostgreSQL)等。插件与通用项可在启动后于 Web 控制台保存,落盘
data/pallas_config/webui.json(优先级高于pallas.toml与遗留.env)。
合并顺序与读取 API 见 配置存储。从旧 .env 一次性迁移:
bash
uv run python tools/migrate_env_to_pallas.py.env 仍可保留 NoneBot / pip 插件相关项(见 .env.example),避免与 webui.json 同名键重复。
启动 Bot
单进程(最常见本地调试):
bash
uv run nb run浏览器打开 http://127.0.0.1:8088/pallas/,使用启动日志中的口令登录。
分片模式(可选)
生产或多进程场景见 多进程分片。本地若需验证分片:
- 在
pallas.toml的[env]配置REDIS_URL(需uv sync --extra coord-redis) - 使用
./scripts/run_sharded_bot.sh start(脚本会探测 Redis)
站点自有插件
在 local/plugins/<name>/ 放置插件,并在 pallas.toml 中设置:
toml
[bootstrap]
extra_plugin_dirs = ["local/plugins"]详见 站点定制与更新。
质量检查(与 CI 一致)
bash
uv run ruff check src/
uv run ruff format --check src/自动修复:
bash
uv run ruff check --fix src/
uv run ruff format src/运行测试:
bash
uv run pytest可选(与 CI 对齐,不阻断合并):
bash
uv run pip-audit
docker build -t test-build .pre-commit(推荐)
bash
uv run pre-commit install
uv run pre-commit run -a策略说明:全仓做 YAML/TOML、尾随空格等基础检查;Ruff 仅作用于 src/;.env 被排除以免误改本地密钥。
日志习惯
项目使用 loguru 风格的 logger(NoneBot 提供)。占位符用 {} 或 f-string,避免 logger.debug("msg %s", x) 导致消息里仍显示 %s。