# ============================================================ # 云超服三容器业务编排环境变量(serverrun/.env,三个业务容器共享 env_file) # 复制本文件为 .env 后按环境填入实际值: # cp .env.example .env # # 默认值 = 本地 Docker 基础设施(serverrun/mysql、redis、mqtt 子目录编排): # 先 docker network create opc-network,再启动基础设施,业务容器经 # 容器名(opc-mysql / opc-redis / opc-emqx)+ 内部端口互访。 # 生产环境:替换为外部服务器地址(每段注释附 47.108.226.213 示例)。 # # 容器间通过 compose 服务名互访(不再是 127.0.0.1 回环): # opc-server → http://opc-compute:3000 / http://opc-im:8101 # ============================================================ # ───────────────────────────────────────────── # 1. opc-server(对外 :8090)—— server-core 段 # 完整变量清单见 server-core/.env.example # ───────────────────────────────────────────── # MySQL(本地 Docker:opc-mysql 容器内部端口 3306;宿主机访问用 localhost:8091) # 生产:PINEAGENTS_MYSQL_HOST=47.108.226.213 / PINEAGENTS_MYSQL_PORT=8091 PINEAGENTS_MYSQL_HOST=opc-mysql PINEAGENTS_MYSQL_PORT=3306 PINEAGENTS_MYSQL_USER=opc PINEAGENTS_MYSQL_PASSWORD=jjjsgysyujkwjwgb PINEAGENTS_MYSQL_DB=opc PINEAGENTS_DEMO_DATABASE_URL=mysql+asyncmy://opc:jjjsgysyujkwjwgb@opc-mysql:3306/opc?charset=utf8mb4 # Redis(本地 Docker:opc-redis,密码见 redis/docker-compose.yml 的 requirepass) # 生产:PINEAGENTS_REDIS_HOST=47.108.226.213 / PINEAGENTS_REDIS_PORT=6379 PINEAGENTS_REDIS_HOST=opc-redis PINEAGENTS_REDIS_PORT=6379 PINEAGENTS_REDIS_PASSWORD=redis_pass # 服务间地址(拆分后必须指向 compose 服务名,禁止回环 127.0.0.1) PINEAGENTS_COMPUTE_BASE_URL=http://opc-compute:3000 PINEAGENTS_IM_BASE_URL=http://opc-im:8101 PINEAGENTS_IM_WS_URL=ws://opc-im:8101/ws # 内部服务鉴权 token(与 opc-im / opc-compute 一致) PINEAGENTS_INTERNAL_TOKEN=000000000000000000000000000 PINEAGENTS_COMPUTE_RELAY_TOKEN=000000000000000000000000001 PINEAGENTS_COMPUTE_ADMIN_TOKEN= # 对外地址 / 桌面端自动更新公钥(与 agent-desktop/mykey/tauri-signer.key 配对) PUBLIC_BASE_URL=https://opc.pinesound.cn DESKTOP_UPDATER_PUBKEY= # 微信支付 / 短信 / OSS 等按需补充(见 server-core/.env.example 注释) # WX_APPID= # WX_SECRET= # OSS_ACCESS_KEY= # OSS_SECRET_KEY= # OSS_ENDPOINT= # OSS_BUCKET= # ───────────────────────────────────────────── # 2. opc-im(容器内 :8101,不对外)—— im-service 段 # 完整变量清单见 im-service/.env.example # ───────────────────────────────────────────── # 监听地址:容器内必须 0.0.0.0(Dockerfile CMD 已显式传入,此处兜底 main.py 启动方式) IM_HOST=0.0.0.0 IM_PORT=8101 # 共享 opc MySQL(本地 Docker) IM_DATABASE_URL=mysql+asyncmy://opc:jjjsgysyujkwjwgb@opc-mysql:3306/opc?charset=utf8mb4 # MQTT / EMQX 总线(本地 Docker:opc-emqx 容器内部 1883;生产 MQTT_BROKER_HOST=47.108.226.213 / MQTT_BROKER_PORT=8095) IM_MQTT_ENABLED=true MQTT_BROKER_HOST=opc-emqx MQTT_BROKER_PORT=1883 MQTT_USERNAME=opc MQTT_PASSWORD=Opc123! # EMQX 管理 API(本地 http://opc-emqx:18083;生产 IM_EMQX_API_URL=https://47.108.226.213:8096) IM_EMQX_API_URL=http://opc-emqx:18083 IM_EMQX_API_KEY= IM_EMQX_API_SECRET= # JWT(与 server-core 一致)与内部令牌(与 server-core 一致) PINEAGENTS_DEMO_JWT_SECRET=your_jwt_secret_at_least_32_chars PINEAGENTS_INTERNAL_TOKEN=000000000000000000000000000 IM_INTERNAL_TOKEN= # 智能客服 LLM(可选) IM_CS_LLM_ENABLED=false # 桌面端 MQTT over WebSocket 直连入口(本地:宿主 localhost:8083;生产 47.108.226.213:8097) IM_MQTT_PUBLIC_HOST=localhost IM_MQTT_PUBLIC_WS_PORT=8083 # ───────────────────────────────────────────── # 3. opc-compute(容器内 :3000,不对外)—— compute 段 # 完整变量清单见 compute/.env.example # ───────────────────────────────────────────── # 与 opc-server 一致 PINEAGENTS_INTERNAL_TOKEN=000000000000000000000000000 # 数据库(本地 SQLite 落在挂载卷 /app/serverdata/compute.db;如需 MySQL 改 DATABASE_URL) DATABASE_URL=sqlite+aiosqlite:////app/serverdata/compute.db PORT=3000 # COMPUTE_UPSTREAM_TIMEOUT=