# ============================================================ # MIXAPI 部署 — 环境变量模板(不含敏感信息) # 复制为 env.cfg 后填入真实值,env.cfg 已在 .gitignore 中忽略 # ============================================================ # # 使用方式(在 deploy.stack 仓库根目录执行): # cp mixapi/env.cfg.example mixapi/env.cfg # $EDITOR mixapi/env.cfg # 填入真实密码后保存 # docker build --build-arg MIXAPI_VER=${IMAGE_TAG_VER} -t ${IMAGE_TAG} ./mixapi # docker compose -p mixapi --env-file ./mixapi/env.cfg -f ./mixapi/stack.yml up -d # # 说明:MIXAPI 官方未发布 Docker Hub 镜像(GitHub 仅提供 release 二进制), # 故 IMAGE_TAG 指向本地构建的镜像,需先按上面命令 docker build。 # 本栈为全容器化独立部署(MIXAPI + Redis + PostgreSQL), # 容器内 PostgreSQL 会自动初始化库和账号,无需在宿主机手动建库或配置 pg_hba。 # 容器 PG 未映射宿主机端口,不会与宿主机已有的 PostgreSQL 服务产生端口冲突。 # # 复用宿主机 PG/Redis 的单容器方案见 stack.host.yml。 # # 注意: # - SQL_DSN / REDIS_CONN_STRING 为 URL 格式,密码建议纯字母+数字, # 含 @ : / # 等字符时需做百分号转义 # - MIXAPI 首次启动无管理员账号:浏览器打开后走 /setup 页, # 创建的第一个账号即为 root(同 new-api 行为) # - 如已把镜像推到私有仓库(如 hub.tp229.com:3500/mixapi), # 把 IMAGE_TAG 改为仓库地址即可跳过本地 docker build # ---------- 端口 ---------- # MIXAPI Web 服务对外暴露端口(与 newapi 默认同为 3000,同机部署需改其一) PORT=3000 # ---------- 镜像(本地构建)---------- # MIXAPI 版本号(与 GitHub release tag 同名,如 v2.5.1cl) IMAGE_TAG_VER=v2.5.1cl # 完整镜像引用(默认本地镜像;已推送私有仓库则改为 仓库地址/mixapi:${IMAGE_TAG_VER}) IMAGE_TAG=mixapi:${IMAGE_TAG_VER} # Redis 镜像 REDIS_IMAGE_TAG=redis:8.2 # PostgreSQL 镜像 PGSQL_IMAGE_TAG=postgres:16-alpine # ---------- 数据卷 ---------- # 宿主机持久化目录,挂载到容器 /data、/app/logs、redis 数据以及 pgsql 数据 # 部署前手动创建:mkdir -pv /data/volumes/mixapi/{data,logs,redis,pgsql_data} Volumes_Path=/data/volumes/mixapi # ---------- 数据库(容器内 PostgreSQL)---------- # 容器内网络互通,通过服务名 postgres 访问 DB_HOST=postgres DB_PORT=5432 DB_NAME=mixapi DB_USER=mixapi DB_PASSWORD= # ---------- Redis(容器内 Redis)---------- REDIS_HOST=redis REDIS_PASSWORD= # ---------- MIXAPI 应用 ---------- # 会话密钥:留空则每次重启随机生成(导致重启后登录态失效); # 多节点/多容器部署时必须设为同一随机串 SESSION_SECRET= # 渠道密钥加密密钥:默认取 SESSION_SECRET;存量数据加密后不可随意变更 # CRYPTO_SECRET= # 节点类型:master 主节点(默认)/ slave 从节点(多节点时从节点设为 slave) # NODE_TYPE=master