Files
easyai/.env.sample
T

225 lines
8.7 KiB
Bash
Raw 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.
#############################################
# EasyAI 环境变量配置
# 复制为 .env 并根据实际情况修改
#############################################
# ========== 1. 访问地址(部署时必改) ==========
# 默认服务器 API 地址,云服务需修改为云端 IP 并放行对应端口
NUXT_PUBLIC_BASE_APIURL=http://127.0.0.1:3001
# 域名访问:NUXT_PUBLIC_BASE_APIURL=/api
# 默认 WebSocket 地址
NUXT_PUBLIC_BASE_SOCKETURL=ws://127.0.0.1:3002
# 域名访问:NUXT_PUBLIC_BASE_SOCKETURL=wss://yourwebsite.com/socket.io
# Agent 服务治理 API 地址,前端管理页面需要
NUXT_PUBLIC_SG_APIURL=http://127.0.0.1:3003
# 域名访问:NUXT_PUBLIC_SG_APIURL=/asg-api
# ========== 2. 服务端口 ==========
WEB_PORT=3010
# easyai-web 前端端口,访问地址 ip:3010,初始化管理员 admin/123456
SERVER_HTTP_PORT=3001
# easyai-server 后端 HTTP 端口
MALLOC_ARENA_MAX=2
# 限制 glibc native heap arena,降低 sharp/libvips 场景下 RSS 膨胀
MALLOC_TRIM_THRESHOLD_=131072
# glibc 更积极 trim 空闲 top chunk,降低 native RSS 高水位
MALLOC_MMAP_THRESHOLD_=131072
# 较大的 native 分配更倾向 mmap,释放后更容易归还 OS
MALLOC_TOP_PAD_=131072
# 降低 trim 后额外保留的 heap padding
SHARP_CACHE_ENABLED=false
# 默认关闭 sharp/libvips 全局 cache;需要开启时再配置 SHARP_CACHE_* 参数
SHARP_CONCURRENCY=1
# sharp/libvips 并发,8G 单机建议保持 1
# ws-gateway WebSocket 端口(统一作为对外访问映射端口使用)
CONFIG_WS_PORT=3002
# ws-gateway 容器内部 TCP 微服务监听地址(供 easyai-server 推送事件)
CONFIG_TCP_HOST=0.0.0.0
# ws-gateway 容器内部 TCP 微服务监听端口(默认 4002)
CONFIG_TCP_PORT=4002
VIDEO_EDIT_PORT=8000
# 视频编辑服务对外端口
AMS_PORT=3004
# Agent 记忆服务 HTTP 端口(启用 memory profile 时)
# ========== 3. Agent 记忆服务(启用 memory profile 时) ==========
MEMORY_TCP_HOST=agent-memory
MEMORY_TCP_PORT=4004
# easyai-server 调用 agent-memory 的 TCP 连接
# 记忆整理相关参数在 .env.AMS 中配置(MEMORY_MAINTENANCE_*
# ========== 4. 沙箱环境 ==========
SANDBOX_PORT=8081
# 不建议对外暴露
SANDBOX_JUPYTERLAB_PORT=8888
SANDBOX_JUPYTER_TOKEN=easyaiisbest
# 建议设置 token
SANDBOX_SERVICE_BASE_URL=
# ========== 5. Redis ==========
REDIS_PORT=
# 默认不对外暴露
# Redis 容器镜像(可改为国内镜像站或自建仓库)
REDIS_IMAGE=registry.cn-shanghai.aliyuncs.com/comfy-ai/redis-aliyun:latest
CONFIG_COMFYUI_QUENE_REDIS_USERNAME=
CONFIG_COMFYUI_QUENE_REDIS_PASSWORD=
CONFIG_COMFYUI_QUENE_REDIS_DB=6
CONFIG_COMFYUI_CACHE_REDIS_DB=11
# ========== 6. MongoDB ==========
MONGO_PORT=27017
# MongoDB 容器镜像(可改为国内镜像站或自建仓库)
MONGO_IMAGE=registry.cn-shanghai.aliyuncs.com/comfy-ai/mongo-aliyun:latest
# 固定 MongoDB 4.4 系列(与旧数据/旧客户端兼容、或需锁定 4.x 行为时使用;升级大版本前请备份并查阅迁移说明):
# MONGO_IMAGE=registry.cn-shanghai.aliyuncs.com/comfy-ai/mongo-aliyun:4.4
MONGO_INITDB_ROOT_USERNAME=username
MONGO_INITDB_ROOT_PASSWORD=password
# 初次部署可修改,更新请勿修改
# ========== 7. 消息队列 RabbitMQ ==========
# RabbitMQ 容器镜像(可改为国内镜像站或自建仓库),备选示例:
# RABBITMQ_IMAGE=docker.m.daocloud.io/library/rabbitmq:4-management
# RABBITMQ_IMAGE=docker.dockerproxy.com/library/rabbitmq:4-management
# RABBITMQ_IMAGE=rabbitmq:4-management
RABBITMQ_IMAGE=registry.cn-shanghai.aliyuncs.com/easyaigc/mq:latest
CONFIG_MQ_PROTOCOL=amqp
CONFIG_MQ_USER=admin
CONFIG_MQ_PASSWORD=easyai2025
CONFIG_MQ_HOST=localhost
CONFIG_MQ_PORT=5672
CONFIG_MQ_ADMIN_PORT=15672
CONFIG_MQ_VHOST=/
# ========== 8. 鉴权与安全 ==========
CONFIG_TOKEN_EXPIRE=1800
# JWT 签名密钥。启动/升级脚本发现空值、历史默认值或不足 32 字节时会生成并持久化到 .env。
# 也可手动生成:openssl rand -base64 48
CONFIG_JWT_SECRET=
# 后台 JWT 动态配置的 AES-256-GCM 独立主密钥,建议与 JWT 签名密钥分别生成。
# 启动/升级脚本会为新部署生成;数据库中已有的 JWT 轮转配置优先,不会被覆盖。
CONFIG_SECURITY_CONFIG_ENCRYPTION_KEY=
# 验证码 HMAC、设备/指纹哈希和审计完整性密钥,由启动/升级脚本独立生成并持久化。
CONFIG_OTP_HASH_SECRET=
CONFIG_AUDIT_HASH_PEPPER=
CONFIG_AUDIT_INTEGRITY_KEY=
# 允许访问后端的浏览器 Origin,多个值用英文逗号分隔,生产环境禁止使用 *。
# 域名部署示例:https://yourwebsite.com,https://www.yourwebsite.com
CONFIG_SECURITY_ORIGIN=http://127.0.0.1:3010,http://localhost:3010
# 可信反向代理 IP/CIDR,多个值用英文逗号分隔;未使用反向代理时保持为空。
# 仅填写实际 Nginx/负载均衡地址,不要使用 0.0.0.0/0。
CONFIG_TRUSTED_PROXY=
# 完成身份冲突扫描和人工处置后才能启用手机号、邮箱和微信身份唯一索引。
CONFIG_AUTH_UNIQUE_INDEXES_ENABLED=false
# 仅在首次创建 admin 账号时使用;启动脚本会生成随机值并持久化到 .env。
# 已存在 admin 的升级环境不会使用或修改现有管理员密码。
CONFIG_INITIAL_ADMIN_PASSWORD=
CONFIG_TOKEN_SIGN_SK=easyai2025easyai
# ========== 9. 运维与调试 ==========
CONFIG_INSTANCE_ID=2025
# 集群情况下区分不同客户端
CONFIG_PROXY_URL=
# 连接 GPT 等外部服务时设置
LOG_LEVEL=log,error,warn,debug
# WS 网关专用日志级别(默认生产不输出 debug)
WS_GATEWAY_LOG_LEVEL=log,error,warn
DOZZLE_PORT=8080
WATCHTOWER_PORT=8089
PORTAINER_PORT=8090
PORTAINER_HTTPS_PORT=8091
# ========== 10. WS Gateway 集群背板(Redis ==========
# 是否启用 ws-gateway Redis 集群背板:true=支持多节点路由,false=仅单机本地投递
GATEWAY_CLUSTER_REDIS_ENABLED=true
# 当前 ws-gateway 节点 ID;单节点可保持默认,集群部署时每个实例必须唯一
GATEWAY_CLUSTER_NODE_ID=easyai-wsgateway-node-1
# 背板 Pub/Sub 频道名;用于节点间转发消息
GATEWAY_CLUSTER_REDIS_CHANNEL=easyai:wsgateway:cluster
# 路由表 key 前缀(记录 channel+clientId 对应的 nodeId
GATEWAY_CLUSTER_REDIS_ROUTE_PREFIX=easyai:wsgateway:route
# 路由 TTL(秒);连接存活期间会续租,断开后自然过期
GATEWAY_CLUSTER_REDIS_ROUTE_TTL_SEC=120
# Redis 失联后自动重连间隔(毫秒)
GATEWAY_CLUSTER_REDIS_RECONNECT_INTERVAL_MS=5000
# 可选:Redis URL(配置后优先于 host/port/user/password/db
GATEWAY_CLUSTER_REDIS_URL=
# 以下为 URL 未配置时使用的拆分配置
GATEWAY_CLUSTER_REDIS_HOST=redis
GATEWAY_CLUSTER_REDIS_PORT=6379
GATEWAY_CLUSTER_REDIS_USERNAME=
GATEWAY_CLUSTER_REDIS_PASSWORD=
GATEWAY_CLUSTER_REDIS_DB=0
# ========== 11. easyai-server 发布事件到 ws-gatewayTCP ==========
# easyai-server 访问 ws-gateway 的 TCP 地址(容器网络内建议写服务名 ws-gateway)
WS_GATEWAY_TCP_HOST=ws-gateway
# easyai-server 访问 ws-gateway 的 TCP 端口(需与 CONFIG_TCP_PORT 一致)
WS_GATEWAY_TCP_PORT=4002
# 事件发布 Pattern,通常保持默认
WS_GATEWAY_TCP_EVENT_PATTERN=gateway.event.publish
# 发布超时时间(毫秒);超时只记录 ERROR,不中断主进程
WS_GATEWAY_TCP_TIMEOUT_MS=1500
# ========== 12. ws-gateway 转发客户端命令到 easyai-serverTCP ==========
# 拖动画布、协作 presence 等客户端命令由 ws-gateway 转发到 easyai-server 处理
GATEWAY_INBOUND_ENABLED=true
# easyai-server 监听地址;容器内应监听 0.0.0.0,供 ws-gateway 访问
GATEWAY_INBOUND_TCP_LISTEN_HOST=0.0.0.0
# ws-gateway 访问 easyai-server 的 TCP 地址;Docker 部署必须使用服务名,不能用 127.0.0.1
GATEWAY_INBOUND_TCP_HOST=easyai-server
# ws-gateway 到 easyai-server 的命令入口端口,对应主服务 HTTP 端口 3001
GATEWAY_INBOUND_TCP_PORT=4001
GATEWAY_INBOUND_TCP_PATTERN=gateway.inbound.command
GATEWAY_INBOUND_TIMEOUT_MS=5000
# ========== 13. WS 会话鉴权(MCP 风格,可选) ==========
# true=客户端必须鉴权后才能建立可用会话;false=允许匿名会话
WS_AUTH_REQUIRED=false
# 鉴权阶段超时时间(毫秒)
WS_AUTH_TIMEOUT_MS=6000
# 可用鉴权方法(逗号分隔):none/bearer/ws_ticket
WS_AUTH_METHODS=none,bearer
# bearer 令牌列表(逗号分隔,生产环境请使用安全配置中心)
WS_AUTH_BEARER_TOKENS=
# ws_ticket 票据列表(逗号分隔,适合短时授权)
WS_AUTH_WS_TICKETS=
# ========== 14. 静态资源 CDN(可选) ==========
NUXT_APP_CDN_URL=
# ========== 15. 版本 ==========
VERSION=latest
# ========== 16. OSS 配置(可选,PDF 解析图片上传) ==========
# 可填写 .env.tools 或在此覆盖
# OSS_ENDPOINT=
# OSS_ACCESS_KEY_ID=
# OSS_ACCESS_KEY_SECRET=
# OSS_BUCKET=
# OSS_REGION=us-east-1
# OSS_DOMAIN=