fix(deploy): 公网 overlay 用 !override 覆盖内部端口绑定
Compose 合并后内部端口只绑 127.0.0.1,避免与基础 0.0.0.0 叠加导致起不来。 顺带给 JPUSH_PUSH_INTENT 加引号,并拒绝空 SERVER_IP。 Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
co-authored by
Cursor
multica-agent
parent
f1fe4a3928
commit
a71f6a0ce1
+2
-1
@@ -92,5 +92,6 @@ GRAFANA_URL="http://127.0.0.1:13000/"
|
||||
OPENIM_PUSH_ENABLE=
|
||||
JPUSH_APPKEY=95fc2352648a7d4568ac8d72
|
||||
JPUSH_PUSH_URL=https://api.jpush.cn/v3/push
|
||||
JPUSH_PUSH_INTENT=intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;component=cn.solsum.jinxunda/cn.solsum.jinxunda.MainActivity;end
|
||||
# 必须加引号:值含分号。compose 读 .env 无妨;不要用 shell source/. 加载未加引号的副本。
|
||||
JPUSH_PUSH_INTENT="intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;component=cn.solsum.jinxunda/cn.solsum.jinxunda.MainActivity;end"
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ MINIO_EXTERNAL_ADDRESS="https://jxd.jinniu.ink/files"
|
||||
OPENIM_PUSH_ENABLE=jpush
|
||||
JPUSH_APPKEY=95fc2352648a7d4568ac8d72
|
||||
JPUSH_PUSH_URL=https://api.jpush.cn/v3/push
|
||||
JPUSH_PUSH_INTENT=intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;component=cn.solsum.jinxunda/cn.solsum.jinxunda.MainActivity;end
|
||||
# 必须加引号:值含分号。compose 读 .env 无妨;不要用 shell source/. 加载未加引号的副本。
|
||||
JPUSH_PUSH_INTENT="intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;component=cn.solsum.jinxunda/cn.solsum.jinxunda.MainActivity;end"
|
||||
|
||||
# Master Secret 由 scripts/load-jpush-secret.sh 从
|
||||
# /root/.config/jinxunda/jpush_master_secret 注入为环境变量 JPUSH_MASTER_SECRET。
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
# 公网测试 overlay。用法(在仓库根目录,由总工执行,本卡不跑):
|
||||
# set -a && . ./.env && ./scripts/load-jpush-secret.sh && set +a
|
||||
# ./scripts/load-jpush-secret.sh
|
||||
# docker compose -f docker-compose.yaml -f deploy/public/docker-compose.public.yaml up -d
|
||||
# 不要用 shell source/. 加载 .env:JPUSH_PUSH_INTENT 含分号,未加引号时会被拆成命令。
|
||||
# compose 会自行读取仓库根目录 .env 做变量替换;Master Secret 只经 load-jpush-secret.sh 注入。
|
||||
#
|
||||
# 原则:内部端口只绑 127.0.0.1;对外只开 80/443 + LiveKit 媒体 17881/tcp、17882/udp。
|
||||
# ports 使用 !override,避免与基础 compose 的 0.0.0.0 绑定叠加。
|
||||
# 回滚:去掉本 overlay,改回 docker compose -f docker-compose.yaml up -d,数据目录 components/ 与 data/ 不动。
|
||||
|
||||
services:
|
||||
openim-server:
|
||||
ports:
|
||||
ports: !override
|
||||
- "127.0.0.1:${OPENIM_MSG_GATEWAY_PORT}:10001"
|
||||
- "127.0.0.1:${OPENIM_API_PORT}:10002"
|
||||
environment:
|
||||
@@ -18,18 +21,18 @@ services:
|
||||
- IMENV_OPENIM_PUSH_JPUSH_PUSHINTENT=${JPUSH_PUSH_INTENT}
|
||||
|
||||
minio:
|
||||
ports:
|
||||
ports: !override
|
||||
- "127.0.0.1:${MINIO_PORT}:9000"
|
||||
- "127.0.0.1:${MINIO_CONSOLE_PORT}:9090"
|
||||
|
||||
etcd:
|
||||
ports:
|
||||
ports: !override
|
||||
- "127.0.0.1:12379:2379"
|
||||
- "127.0.0.1:12380:2380"
|
||||
|
||||
livekit:
|
||||
command: --config /etc/livekit.yaml --node-ip ${SERVER_IP}
|
||||
ports:
|
||||
ports: !override
|
||||
- "127.0.0.1:${LIVEKIT_PORT:-17880}:17880"
|
||||
- "${LIVEKIT_RTC_TCP_PORT:-17881}:17881"
|
||||
- "${LIVEKIT_RTC_UDP_PORT:-17882}:17882/udp"
|
||||
@@ -37,7 +40,7 @@ services:
|
||||
- ./config/livekit.public.yaml:/etc/livekit.yaml
|
||||
|
||||
account-server:
|
||||
ports:
|
||||
ports: !override
|
||||
- "127.0.0.1:${ACCOUNT_PORT:-10010}:10010"
|
||||
|
||||
edge:
|
||||
|
||||
+2
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
## 正在做
|
||||
|
||||
公网第一阶段:客户端极光/华为接入与 `jxd.jinniu.ink` 部署配置已提交专用分支,等待总工审核并部署测试环境。
|
||||
公网第一阶段返工:overlay 端口覆盖、`JPUSH_PUSH_INTENT` 引号与 `SERVER_IP` 校验已改完,等待总工复审后部署测试环境。
|
||||
|
||||
## 已做完
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
- 手机端应用标识统一为 `cn.solsum.jinxunda`。
|
||||
- 安卓极光 SDK 初始化、通知权限、alias 回传、点击处理,以及 OpenIM 离线推送所需的服务端配置入口(Master Secret 从服务器文件注入)。
|
||||
- 公网反向代理 / HTTPS / WSS / 防火墙与回滚说明(配置进仓库,未实际部署)。
|
||||
- 公网 overlay 用 `!override` 覆盖内部端口绑定;部署脚本校验 `SERVER_IP` 非空。
|
||||
|
||||
## 还没安排
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
- 手机默认服务地址为 `jxd.jinniu.ink` 的 HTTPS/WSS;内网可用 `--dart-define=SERVER_HOST=... --dart-define=USE_TLS=false` 覆盖。
|
||||
- 电脑端 `.env.example` 已改为同一套公网路径。
|
||||
- 公网部署 overlay、Nginx、证书步骤、Master Secret 注入脚本和回滚脚本在 `deploy/public/` 与 `scripts/deploy-public.sh`;由总工部署,施工员不改测试机。
|
||||
- overlay 的内部端口用 Compose `!override` 覆盖基础 `0.0.0.0` 绑定,只留 `127.0.0.1`;LiveKit `17881/tcp`、`17882/udp` 仍对公网开放。部署脚本会拒绝空 `SERVER_IP`。
|
||||
|
||||
## 已有验证记录
|
||||
|
||||
|
||||
@@ -10,6 +10,16 @@ if [ ! -f .env ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# LiveKit --node-ip 依赖 SERVER_IP;空值时信令通、媒体宣告错误。
|
||||
# 不 source .env(JPUSH_PUSH_INTENT 含分号);只抽取这一项。
|
||||
if [ -z "${SERVER_IP:-}" ]; then
|
||||
SERVER_IP="$(awk -F= '/^SERVER_IP=/{v=$2} END{print v}' .env | tr -d '[:space:]"')"
|
||||
fi
|
||||
if [ -z "${SERVER_IP}" ]; then
|
||||
echo "SERVER_IP 为空,拒绝启动。请在 .env 填写本机公网 IP(LiveKit 媒体候选用)。" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 注入 Master Secret(失败则停,避免空密钥启动)
|
||||
# shellcheck disable=SC1091
|
||||
source ./scripts/load-jpush-secret.sh
|
||||
|
||||
Reference in New Issue
Block a user