chore(env): 后端本机联调环境(WSL)+ meida_backend 子仓
- meida_backend 收为 git submodule(git.xiangsilian.com/xsl/meida_backend.git),含 PDF 导出管线提交 - WSL Ubuntu-22.04 镜像网络模式跑 PG(pgvector)@55432 + Redis@56379 + uvicorn@8666 + celery,Windows/Hyper-V 防火墙已放行 - app 默认后端地址 192.168.3.25→192.168.3.19:8666(宿主机) - docs/本地联调指南.md 全面更新到本机拓扑;.gitignore 增补本地素材/调研产物与 graphify 本机文件
This commit is contained in:
+11
@@ -17,8 +17,19 @@ Thumbs.db
|
|||||||
graphify-out/cost.json
|
graphify-out/cost.json
|
||||||
graphify-out/.graphify_python
|
graphify-out/.graphify_python
|
||||||
graphify-out/.graphify_root
|
graphify-out/.graphify_root
|
||||||
|
graphify-out/.graphify_detect.json
|
||||||
graphify-out/.vocab.txt
|
graphify-out/.vocab.txt
|
||||||
graphify-out/cache/
|
graphify-out/cache/
|
||||||
|
|
||||||
# hvigor 构建缓存
|
# hvigor 构建缓存
|
||||||
.hvigor/
|
.hvigor/
|
||||||
|
|
||||||
|
# 本地素材与调研产物(体积大/一次性,不入库)
|
||||||
|
.cursor/
|
||||||
|
download-analysis/
|
||||||
|
fitting-room-assets/
|
||||||
|
reference/cloth_pic/
|
||||||
|
|
||||||
|
# T18 端侧 LLM:模型与预编译库不入库(获取方式见 docs/开发任务包/T18-端侧小模型SPIKE.md)
|
||||||
|
models/
|
||||||
|
app/entry/src/main/libs/
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "meida_backend"]
|
||||||
|
path = meida_backend
|
||||||
|
url = https://git.xiangsilian.com/xsl/meida_backend.git
|
||||||
@@ -32,7 +32,7 @@ interface AuthWireResp {
|
|||||||
const PREF_NAME = 'meida_auth'
|
const PREF_NAME = 'meida_auth'
|
||||||
const KEY_TOKENS = 'tokens'
|
const KEY_TOKENS = 'tokens'
|
||||||
const KEY_BASE_URL = 'base_url'
|
const KEY_BASE_URL = 'base_url'
|
||||||
export const DEFAULT_BASE_URL = 'http://192.168.3.25:8666'
|
export const DEFAULT_BASE_URL = 'http://192.168.3.19:8666'
|
||||||
|
|
||||||
export class AuthStore {
|
export class AuthStore {
|
||||||
private static tokens: TokenPair | undefined
|
private static tokens: TokenPair | undefined
|
||||||
|
|||||||
+26
-6
@@ -1,28 +1,48 @@
|
|||||||
# 本地联调指南(App ↔ 后端)
|
# 本地联调指南(App ↔ 后端)
|
||||||
|
|
||||||
> 2026-08-15 | 适用:FE 第一批(F1~F4)交付后的真机/模拟器联调
|
> 2026-08-15 | 适用:FE 第一批(F1~F4)交付后的真机/模拟器联调
|
||||||
|
> 2026-08-29 更新:环境已统一到本机(`D:\meida`)。后端仓库作为 submodule 位于 `meida_backend/`,WSL 内路径 `/mnt/d/meida/meida_backend`(WSL 发行版 `Ubuntu-22.04`,rootfs import 方式安装)。
|
||||||
|
|
||||||
## ⚠️ 先看:端口冲突
|
## ⚠️ 先看:端口冲突
|
||||||
|
|
||||||
App 的默认 baseUrl 是 `http://127.0.0.1:8000`,但**你这台机器的 8000 端口已被 AutoVideo(voxcpm-tts)长期占用**。因此本地联调请让美搭后端用 **8666** 端口,并在 App 登录页「高级设置」里把服务器地址改成对应值(F1 交付的设置入口)。
|
App 的默认 baseUrl 是 `http://127.0.0.1:8000`,但**你这台机器的 8000 端口已被 AutoVideo(voxcpm-tts)长期占用**。因此本地联调请让美搭后端用 **8666** 端口,并在 App 登录页「高级设置」里把服务器地址改成对应值(F1 交付的设置入口)。
|
||||||
|
|
||||||
|
## 〇、首次搭建(已在本机完成,换机器时照做)
|
||||||
|
|
||||||
|
1. WSL:`wsl --status` 确认默认版本 2;发行版用 rootfs 导入(微软商店/ubuntu 官方 wsl rootfs 对 22.04 不可用):
|
||||||
|
`wsl --import Ubuntu-22.04 <安装目录> ubuntu-22.04-server-cloudimg-amd64-root.tar`(rootfs 来自 cloud-images.ubuntu.com 的 jammy release);
|
||||||
|
2. WSL 内 `/etc/wsl.conf` 开 `[boot] systemd=true`,`wsl --shutdown` 后重启;
|
||||||
|
3. WSL 内装 docker:`apt install docker.io` + compose 插件放 `/usr/local/lib/docker/cli-plugins/docker-compose`;Docker Hub 不可直连,`/etc/docker/daemon.json` 已配 `registry-mirrors: ["https://docker.m.daocloud.io"]`;
|
||||||
|
4. `make up` 起 PG(pgvector, 55432)/Redis(56379);**两容器已设 `restart=unless-stopped`**(WSL 空闲会自动关机,docker 随 systemd 自启把容器拉起来);
|
||||||
|
5. WSL 内装 uv(`~/.local/bin/uv`),`uv sync --extra dev`;`.env` 已从模板生成(JWT_SECRET 已随机化);
|
||||||
|
6. **唯一待填项:`.env` 里的 `DEEPSEEK_API_KEY`**——不填则登录/配额正常,但对话与报告文案会调 LLM 失败。
|
||||||
|
|
||||||
|
## 〇·五、真机访问(WSL2 镜像网络,已配置)
|
||||||
|
|
||||||
|
WSL2 默认 NAT 模式下,WSL 内监听的端口只转发到 Windows localhost,**真机访问局域网 IP 不通**。本机已切换为镜像模式:
|
||||||
|
|
||||||
|
1. `C:\Users\youmi\.wslconfig`:`[wsl2] networkingMode=mirrored`(改后需 `wsl --shutdown` 重启;重启后 uvicorn/celery 要重新拉起,容器有自启策略不用管);
|
||||||
|
2. 两道防火墙都已放行 TCP 8666/8080:Windows 防火墙规则 `Meida-Dev-WSL` + **Hyper-V 防火墙规则** `Meida-Dev-WSL-In`(镜像模式走 Hyper-V 防火墙,其默认入站是 Block,只加 Windows 规则不够);
|
||||||
|
3. 已知怪相:镜像模式下 **Windows 本机 curl 局域网 IP 不通是正常的**(host loopback 怪癖),WSL 内与手机访问才是真实口径;
|
||||||
|
4. 验证:`wsl -d Ubuntu-22.04 -e bash -c "curl -s http://192.168.3.19:8666/healthz"`。
|
||||||
|
|
||||||
## 一、启动后端(WSL)
|
## 一、启动后端(WSL)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
wsl -d Ubuntu-22.04 -e bash -c "cd /home/xsl/meida_backend && \
|
wsl -d Ubuntu-22.04 -e bash -c "export PATH=\$HOME/.local/bin:\$PATH && cd /mnt/d/meida/meida_backend && \
|
||||||
(nohup .venv/bin/uvicorn apps.api.main:app --host 0.0.0.0 --port 8666 > /tmp/meida-api.log 2>&1 &) && \
|
(nohup uv run uvicorn apps.api.main:app --host 0.0.0.0 --port 8666 > /tmp/meida-api.log 2>&1 &) && \
|
||||||
(nohup .venv/bin/celery -A apps.worker.celery_app worker -Q cpu,io --loglevel WARNING > /tmp/meida-worker.log 2>&1 &) && sleep 3 && \
|
(nohup uv run celery -A apps.worker.celery_app worker -Q cpu,io --pool=solo --loglevel WARNING > /tmp/meida-worker.log 2>&1 &) && sleep 8 && \
|
||||||
curl -s http://127.0.0.1:8666/healthz"
|
curl -s http://127.0.0.1:8666/healthz"
|
||||||
```
|
```
|
||||||
|
|
||||||
- `--host 0.0.0.0`:真机(USB)需要开发机局域网 IP 可达
|
- `--host 0.0.0.0`:真机(USB)需要开发机局域网 IP 可达
|
||||||
- worker 必须起:报告生成是异步任务,不起 worker 会一直 RUNNING
|
- worker 必须起:报告生成是异步任务,不起 worker 会一直 RUNNING(`--pool=solo`:本机联调单进程足够,且免 root 告警)
|
||||||
- 依赖容器:PG(55432)/Redis(56379) 应已在跑(`docker ps` 确认)
|
- 依赖容器:PG(55432)/Redis(56379) 设为开机自启,若异常 `docker ps` 确认
|
||||||
- 停止:`wsl -d Ubuntu-22.04 -e bash -c "pkill -f 'uvicorn apps.api'; pkill -f 'celery -A apps.worker'"`
|
- 停止:`wsl -d Ubuntu-22.04 -e bash -c "pkill -f 'uvicorn apps.api'; pkill -f 'celery -A apps.worker'"`
|
||||||
|
|
||||||
## 二、App 侧(DevEco Studio)
|
## 二、App 侧(DevEco Studio)
|
||||||
|
|
||||||
1. 打开工程 `G:\meida\app`,点 Run(模拟器或真机)
|
1. 打开工程 `D:\meida\app`,点 Run(模拟器或真机)
|
||||||
2. 登录页「高级设置」:
|
2. 登录页「高级设置」:
|
||||||
- **模拟器**:`http://127.0.0.1:8666`(WSL2 端口自动转发到 Windows localhost)
|
- **模拟器**:`http://127.0.0.1:8666`(WSL2 端口自动转发到 Windows localhost)
|
||||||
- **真机(USB)**:`http://<开发机局域网IP>:8666`(`ipconfig` 查,手机与电脑同 WiFi;防火墙首次会弹允许)
|
- **真机(USB)**:`http://<开发机局域网IP>:8666`(`ipconfig` 查,手机与电脑同 WiFi;防火墙首次会弹允许)
|
||||||
|
|||||||
Submodule
+1
Submodule meida_backend added at cd0ddb131b
Reference in New Issue
Block a user