GeekAI 用户手册GeekAI 用户手册
  • 指南

    • 介绍
    • 快速部署
    • 进阶部署
  • 配置

    • AI 绘图配置
    • 音乐和视频
    • 文件存储配置
  • 升级

    • 平滑升级
  • 开发

    • 开发和构建
    • 如何跳过 License 验证
  • 指南

    • 介绍
    • 部署
  • 配置

    • Coze 智能体
    • Dify 智能体
    • 阿里云百炼智能体
  • 升级

    • Geek-Agent v1.0.2
    • Geek-Agent v1.0.3
  • GeekAI-PLUS(不带管理后台)
  • GeekAI-PLUS(带管理后台)
  • GeekAI-Agent(不带管理后台)
  • AI 学习笔记

    • 01-Stable-Diffusion基本知识概论
    • 02-DeepSeek R1 的核心技术解密
    • 03-DeepSeek R1 使用指南(持续更新)
    • 03-关于 AI Agent 的一些个人思考
    • 04-搞懂 MCP 和 A2A 协议
  • 极客学长博客
  • 技术交流群
  • GitHub
  • Gitee
  • GitCode
  • 简体中文
  • en-US
GitHub
  • 指南

    • 介绍
    • 快速部署
    • 进阶部署
  • 配置

    • AI 绘图配置
    • 音乐和视频
    • 文件存储配置
  • 升级

    • 平滑升级
  • 开发

    • 开发和构建
    • 如何跳过 License 验证
  • 指南

    • 介绍
    • 部署
  • 配置

    • Coze 智能体
    • Dify 智能体
    • 阿里云百炼智能体
  • 升级

    • Geek-Agent v1.0.2
    • Geek-Agent v1.0.3
  • GeekAI-PLUS(不带管理后台)
  • GeekAI-PLUS(带管理后台)
  • GeekAI-Agent(不带管理后台)
  • AI 学习笔记

    • 01-Stable-Diffusion基本知识概论
    • 02-DeepSeek R1 的核心技术解密
    • 03-DeepSeek R1 使用指南(持续更新)
    • 03-关于 AI Agent 的一些个人思考
    • 04-搞懂 MCP 和 A2A 协议
  • 极客学长博客
  • 技术交流群
  • GitHub
  • Gitee
  • GitCode
  • 简体中文
  • en-US
GitHub
  • GeekAI-Plus

    • 介绍
    • 快速部署
    • 进阶部署
    • Window 系统部署
    • 使用宝塔部署
    • 常见错误
  • 配置

    • API令牌配置
    • AI 绘图配置
    • 音乐和视频
    • 文件存储配置
    • 支付配置
    • Gitee AI API 接口接入指南
    • 其他服务配置
    • 运营策略
  • 升级

    • 平滑升级
    • GeekAI-PLUS-v4.1.6
    • GeekAI-PLUS-v4.1.8
    • GeekAI-PLUS-v4.1.9
    • GeekAI-PLUS-v4.2.1
    • GeekAI-PLUS-v4.2.2
    • GeekAI-PLUS-v4.2.3
    • GeekAI-PLUS-v4.2.4
    • GeekAI-PLUS-v4.2.5
  • 开发

    • 开发和构建
    • 如何跳过 License 验证

注意:在阅读本文档之前,请确保你已经安装好了 docker 以及 docker-compose 这两个工具。

不管是一键部署,还是快速部署,这两种方式都是提供给新手体验用的,如果是在线上生产部署,还是建议拆分部署。理由有三:

  1. 加快启动速度。你每次重启应用的时候,其实你只是想重启 geekai-api 和 geekai-web 这两个容器,快速部署方式每次都是重启所有容器,启动时间会大大延长。
  2. 减少容器之间的耦合。比如数据库和redis容器,通常不会只有这一个项目需要用到,如果重启会对其他项目有影响。
  3. 减少服务中断。比如你更新了 MJ 机器人账号信息,你只需要重启 midjourney-proxy 容器即可,而这并不会导致你线上服务中断。但是如果你不是拆分部署的,那么你就需要重启所有容器,这将导致你的服务中断。

首先,你还是需要克隆项目:

git clone https://github.com/yangjian102621/geek-ai.git geekai

拆分部署用非常简单,就是把 docker-compose.yaml 里面的各个容器都独立出来部署。具体拆分方案可以是这样,除了最后两个,也就是 geekai-api 和 geekai-web 可以一起部署之外,其他容器都需要单独拆分。最简单粗暴的方法就是把 geekai 这个目录拷贝5份。

cp -r geekai mysql
cp -r geekai redis

让后分别切换到各个目录,编辑 docker-compose.yaml 文件,留下对应的容器配置信息,其他的都删除。以 MySQL 容器为例,修剪完的 docker-compose.yaml 文件应该是这样:

version: '3'
services:
  # mysql
  geekai-mysql:
    image: mysql:8.0.33
    container_name: geekai-mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=12345678
    ports:
      - "3307:3306"
    volumes :
      - ./conf/mysql/my.cnf:/etc/mysql/my.cnf
      - ./data/mysql/data:/var/lib/mysql
      - ./logs/mysql:/var/log/mysql
      - ./data/mysql/init.d:/docker-entrypoint-initdb.d/

其他目录也做类似的处理。处理完之后就到了最重要的一步:修改配置文档。 多个容器部署在一个 docker-compose.yaml 的好处是,这些容器都属于同一个内部网络,容器之间可以通过容器名称来访问。 但是现在我们拆分部署了,那么容器之间就只能通过宿主机的 IP 地址通信了。所以我们需要把所有配置文档中用容器名称通信的地方全部换成 IP 地址。主要有两个配置文档,4 个地方需要替换。 conf/config.toml 中需要替换两处,分别是 MySQL 的链接信息,Redis 连接信息。

假设你本机的内网地址是192.268.1.100,那么改完之后应该是下面这个样子:

MysqlDns = "root:12345678@tcp(192.268.1.100:3307)/chatgpt_plus?charset=utf8mb4&collation=utf8mb4_unicode_ci&parseTime=True&loc=Local"

[Redis] # redis 配置信息
Host = "192.268.1.100"
Port = 6380
Password = "12345678"
DB = 0

修改完之后启动所有容器,如果全部启动成功,则拆分部署就完成了。

在 GitHub 上编辑此页
上次更新: 2025/2/21 18:05
贡献者: RockYang
Prev
快速部署
Next
Window 系统部署
极客学长 © 2022-2025 版权所有 粤ICP备19122051号-1