geekai Docker & Self-Hosted Deployment

GitHub

AI 助手全套开源解决方案,自带运营管理后台,开箱即用。集成了 ChatGPT, Azure, ChatGLM,讯飞星火,文心一言等多个平台的大语言模型。支持 MJ AI 绘画,Stable Diffusion AI 绘画,微博热搜等插件工具。采用 Go + Vue3 + element-plus 实现。

RAW Compose
1. Pull Image (DOCKERHUB) docker pull registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api
2. Docker Run (1-Click Launch) docker run -d --name geekai -p 3307:3307 --restart always registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.3.1-amd64
3. Podman Run podman run -d --name geekai -p 3307:3307 --restart always registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.3.1-amd64
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.3.1-amd64
5. ORAS Pull (OCI Artifact) oras pull registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.3.1-amd64
6. Compose Deployment docker compose up -d
docker/docker-compose.yaml
Download .yml
services:
  # mysql
  geekai-mysql:
    image: registry.cn-shenzhen.aliyuncs.com/geekmaster/mysql:8.0.33
    container_name: geekai-mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=mhSCk0NheGhmtsha
    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/
    healthcheck:
      test: ['CMD', 'mysqladmin', 'ping', '-h', 'localhost']
      interval: 5s
      timeout: 10s
      retries: 10

  # redis
  geekai-redis:
    image: registry.cn-shenzhen.aliyuncs.com/geekmaster/redis:6.0.6
    restart: always
    container_name: geekai-redis
    command: redis-server --requirepass mhSCk0NheGhmtsha
    volumes:
      - ./data/redis:/data
    ports:
      - '6380:6379'
    healthcheck:
      test: ['CMD', 'redis-cli', 'ping']
      interval: 3s
      timeout: 10s
      retries: 5

  geekai-tika:
    image: registry.cn-shenzhen.aliyuncs.com/geekmaster/tika:latest
    container_name: geekai-tika
    restart: always
    ports:
      - '9999:9998'

  # 后端 API 程序
  geekai-api:
    image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.3.1-amd64
    container_name: geekai-api
    restart: always
    depends_on:
      geekai-mysql:
        condition: service_healthy
      geekai-redis:
        condition: service_healthy
    environment:
      - DEBUG=false
      - LOG_LEVEL=info
      - CONFIG_FILE=config.toml
    ports:
      - '5678:5678'
    volumes:
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
      - ./conf/config.toml:/var/www/app/config.toml
      - ./logs/app:/var/www/app/logs
      - ./static:/var/www/app/static
      - ./data/leveldb:/var/www/app/data

  # 前端应用
  geekai-web:
    image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-web:v4.3.1-amd64
    container_name: geekai-web
    restart: always
    depends_on:
      - geekai-api
    ports:
      - '8080:8080'
    volumes:
      - ./logs/nginx:/var/log/nginx
      - ./conf/nginx/conf.d:/etc/nginx/conf.d
      - ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./conf/nginx/ssl:/etc/nginx/ssl