预构建镜像分发部署,无需在服务器上编译源码。
git clone https://cnb.cool/fuliai/next_api.git
cd next_api
运行交互式配置脚本,按提示输入必填项即可自动生成 deploy.env:
./deploy/setup-env.sh
脚本会依次询问:
api.yourdomain.comauth.yourdomain.comfiles.yourdomain.comsk-xxx
https://api.openai.com)acme@localhost)其余 URL 和密钥全部自动生成,无需手动填写。
docker compose -f deploy/docker-compose.release.yml --env-file deploy.env up -d
docker compose -f deploy/docker-compose.release.yml --env-file deploy.env ps
curl -fsS https://api.yourdomain.com/readyz
git pull
docker compose -f deploy/docker-compose.release.yml --env-file deploy.env pull
docker compose -f deploy/docker-compose.release.yml --env-file deploy.env up -d
数据安全:
stdb-seedinit 容器从该版本起默认 幂等(SEED2_SEEDER_MODE=if-empty,见deploy/deploy.env.example)。当 STDB 中已经有任意用户 profile 时,它会自动跳过,不会再覆盖你的运营数据(用户、积分、proxy key、任务、账单等)。需要主动重置开发/验证环境时,把SEED2_SEEDER_MODE改成force再up -d。
如果 stdb-publish 在升级时以下面这种错误退出:
Errors occurred:
Adding a column <name> to table <table> requires a default value annotation
Aborting publish due to required manual migration.
Error: Aborting because publishing would require manual migration or deletion of data and --delete-data was not specified.
说明这次新版本的 STDB 模块 schema 跟你服务器上现存数据不兼容,stdb-publish 已经主动 abort 以避免静默清掉你的真实数据(任务、账户、proxy key、账单记录等)。处理方式按你这台部署的数据敏感度选:
生产环境 / 数据要保留:先备份当前 STDB 状态,然后等仓库给该列补上默认值 annotation 的新版本镜像再升级。
./deploy/backup-stdb-state.sh
开发 / 演示 / 可以重置的环境:清掉 STDB 卷重新发布、重新 seed(会丢失现存任务和账户,操作前自行确认)。
docker compose -f deploy/docker-compose.release.yml --env-file deploy.env down --remove-orphans
docker volume rm deploy_spacetimedb_data deploy_stdb_cli_config
docker compose -f deploy/docker-compose.release.yml --env-file deploy.env up -d