cents/docs/内网穿透调试.md

88 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 内网穿透调试
## 目标
先用调试模式验证 PWA 可以通过公网域名访问。
模式:
- VPS 运行 `frps`
- 本机运行 Vite 开发服务。
- 本机运行 `frpc``cert` sidecar。
- `cert` 使用 Let's Encrypt 正式证书。
- `frpc` 通过 HTTPS 转发到本机 `6064`
## 前置条件
- 有一个域名,例如 `cents.example.com`
- 域名 A/AAAA 记录指向 VPS。
- VPS 开放 `80`、`443` 和 `7000`
- VPS 的 `frps` 配置了 HTTP/HTTPS vhost 端口。
参考配置:
- `deploy/frp/frps.example.toml`
## 本机配置
调试模式不读取 `.env`,配置直接写在 `compose.dev.yaml`
- `DOMAIN=dev.cents.homemade.net.cn`
- `FRPC_SERVER_HOST=119.28.12.24`
- `FRPC_SERVER_PORT=7000`
- `APP_HOST=host.docker.internal`
- `APP_PORT=6064`
- `APP_PROTOCOL=http`
- `TEST_MODE=false`
## 启动
启动 API 和前端:
```bash
npm run dev
```
再启动内网穿透:
```bash
docker compose -f compose.dev.yaml up -d
```
查看日志:
```bash
docker compose -f compose.dev.yaml logs -f frpc cert
```
## 验证
```bash
curl -I http://$DOMAIN/.well-known/
curl -vkI https://$DOMAIN
```
预期:
- `cert` 能完成 HTTP-01 校验。
- `/etc/letsencrypt/live/dev.cents.homemade.net.cn/` 中生成正式证书。
- 浏览器可以通过 `https://$DOMAIN` 访问本地 PWA。
## 生产模式
`.env` 留给生产模式使用:
```bash
cp .env.example .env
docker compose -f compose.pro.yaml up -d --build
```
不要提交真实 `.env`
## 常见问题
- 证书申请失败:检查域名 DNS、VPS 80 端口、frps vhost HTTP 配置。
- HTTPS 访问失败:检查 frps 443 端口和 frpc 日志。
- 后端连不上:确认 `npm run dev` 已启动 API 和监听 `6064` 的 Vite 服务。
- frps 有 token需要同步配置 frps 和 frpc不要把真实 token 提交到仓库。