nonebot-plugin-rollpig felis-dev 的云端存储服务。
- 保存全局
daily_roll - 保存全局
roast_charges / force_usage - 保存按群
group_rolls / daily_summary / protection - 为多 Bot 提供统一数据底座
ROLLPIG_CLOUD_DATABASE_URL:MySQL 连接串,例如mysql+pymysql://user:pass@127.0.0.1:3306/rollpig_cloud?charset=utf8mb4ROLLPIG_CLOUD_TOKENS:Bearer Token,多个用逗号分隔ROLLPIG_CLOUD_HOST:默认0.0.0.0ROLLPIG_CLOUD_PORT:默认8011ROLLPIG_CLOUD_DEFAULT_TENANT_ID:默认felis-main,P1A 成长状态使用的默认租户
- Python
>=3.10 fastapi>=0.110.0uvicorn[standard]>=0.29.0sqlalchemy>=2.0.29pymysql>=1.1.0cryptography>=42.0.0
项目当前以 Poetry 管理依赖,定义文件为 pyproject.toml。
同时仓库也提供了 requirements.txt,方便不使用 Poetry 的环境直接安装。
如果你是首次部署,先执行:
cp docker-compose.yml.example docker-compose.yml然后编辑 docker-compose.yml,填写你自己的:
- MySQL 连接串
- Bearer Token
- Docker 绑定端口 / 网络名(如有需要)
poetry install
poetry run uvicorn rollpig_cloud.main:app --host 0.0.0.0 --port 8011如果你不使用 Poetry,也可以这样安装:
pip install -r requirements.txt
uvicorn rollpig_cloud.main:app --host 0.0.0.0 --port 8011- 复制配置模板:
cp docker-compose.yml.example docker-compose.yml- 按实际环境填写
docker-compose.yml
至少需要改这两项:
environment:
ROLLPIG_CLOUD_DATABASE_URL: "mysql+pymysql://user:password@127.0.0.1:3306/rollpig_cloud?charset=utf8mb4"
ROLLPIG_CLOUD_TOKENS: "replace-with-token"
ROLLPIG_CLOUD_DEFAULT_TENANT_ID: "felis-main"- 启动服务:
docker compose up -d --build如果你还需要调整端口、容器名或外部 Docker 网络,也一并在 docker-compose.yml 里修改。
docker build -t rollpig-cloud .
docker run -d \
--name rollpig-cloud \
-e ROLLPIG_CLOUD_DATABASE_URL='mysql+pymysql://user:pass@mysql:3306/rollpig_cloud?charset=utf8mb4' \
-e ROLLPIG_CLOUD_TOKENS='replace-with-token' \
-p 8011:8011 \
rollpig-cloud仓库中的 docker-compose.yml.example 需要自行设定密码和 Token。
小猪资源包源文件不放在本仓库,统一维护在独立仓库 rollpig-resources。
rollpig-cloud 只负责在部署环境中挂载并暴露 /resources,例如将外部资源目录挂载到容器内 /app/static/resources 后访问:
https://pig.felislab.cc/resources/rollpig/manifest.json
这样可以避免 cloud 服务代码仓库和资源仓库重复存储图片、manifest 与构建工具。
poetry run python tools/import_legacy_json.py --file /path/to/pig_data.jsonP1A 成长状态与普通烤群友充能可分别执行:
poetry run python tools/backfill_p1a_progress.py
poetry run python tools/migrate_roast_charges.py服务启动时也会执行轻量运行期迁移,自动为旧 user_usage 表补齐 roast_charges 与 roast_charge_updated_ts 列。脚本保留是为了上线前可手动确认与重复执行。
GET /v1/catalog-snapshot:按用户聚合图片版图鉴需要的成长状态、近 14 天抽猪记录与近 7 天成功被烤次数。POST /v1/cooldowns/consume-roast:保持原地址,兼容旧remaining_seconds字段,并新增charges_left、max_charges、next_recover_seconds。
普通烤群友充能默认最多 2 次,每 8 小时恢复 1 次;客户端可传 max_charges 与 cooldown_seconds,服务端会做安全夹取,避免异常实例放大次数。