部署指南

好用旅记的小程序端与后端服务位于两个独立仓库,需要分别配置。建议先启动后端并确认 API 可访问,再配置小程序端的请求地址。

后端本地运行

克隆项目并安装依赖:

1
2
3
git clone https://github.com/chaofanx/UsefulTravelogueServer.git
cd UsefulTravelogueServer
uv pip install -r pyproject.toml

复制环境变量模板:

1
cp .env.example .env

至少需要检查以下配置:

配置项 说明
DATABASE_URL MySQL 异步连接地址
SECRET_KEY 应用密钥,生产环境必须替换
JWT_SECRET_KEY JWT 签名密钥,生产环境必须替换
WECHAT_APP_ID 微信小程序 AppID
WECHAT_APP_SECRET 微信小程序密钥
ADMIN_USERNAME 管理后台用户名
ADMIN_PASSWORD 管理后台密码,生产环境必须替换

启动 MySQL 并执行迁移:

1
2
docker compose up -d mysql
alembic upgrade head

启动开发服务:

1
uvicorn app.main:app --reload

Docker Compose 部署

仓库内的 Compose 配置包含 MySQL 和应用服务,可直接构建并启动:

1
docker compose up -d --build

应用默认映射到主机的 8000 端口,MySQL 数据和上传文件分别保存在 Docker Volume 中。首次部署后应检查容器状态,并执行数据库迁移:

1
docker compose exec app alembic upgrade head

小程序端配置

克隆并安装依赖:

1
2
3
4
5
git clone https://github.com/chaofanx/UsefulTravelogue.git
cd UsefulTravelogue
npm install
cp utils/env.example.js utils/env.js
cp project.config.tpl.json project.config.json

utils/env.js 中的 API 地址改为已部署的后端地址,在 project.config.json 中填写小程序 AppID。使用微信开发者工具打开项目并构建 npm 后,即可进行预览、真机调试或上传版本。

上线检查

  • 后端使用 HTTPS 对外提供服务
  • 在微信公众平台配置合法 request 域名和 uploadFile 域名
  • 替换模板中的应用密钥、JWT 密钥和管理后台默认密码
  • 配置正式的微信 AppID 与 AppSecret
  • 执行全部 Alembic 迁移
  • 确认上传目录和 MySQL 数据卷具备持久化与备份策略
  • 验证登录、建账本、记账、分账、导出和图片上传流程