MaiBot Docker & Self-Hosted Deployment

GitHub

MaiSaka, an LLM-based intelligent agent, is a digital lifeform devoted to understanding you and interacting in the style of a real human.

5,690 stars Python Python 1 file · ~1,917 tokens #agent#chat#chatbot#llm#llm-agent#llms#python#qq-bot
RAW Compose
1. Pull Image (DOCKERHUB) docker pull sengokucola/maibot
2. Docker Run (1-Click Launch) docker run -d --name maibot -p 18001:18001 --restart always sengokucola/maibot:latest
3. Podman Run podman run -d --name maibot -p 18001:18001 --restart always sengokucola/maibot:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/sengokucola/maibot:latest
5. ORAS Pull (OCI Artifact) oras pull sengokucola/maibot:latest
6. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
services:
  core:
    container_name: maim-bot-core
    stop_grace_period: 70s # Runner 最多等待 Worker 60 秒,再保留强制退出时间
    #### prod ####
    image: sengokucola/maibot:latest
    # image: infinitycat/maibot:latest
    #### dev ####
    # image: sengokucola/maibot:dev
    # image: infinitycat/maibot:dev
    environment:
      - TZ=Asia/Shanghai
      - EULA_AGREE=8e6e7d647f7f82d6ea98456b73908656
      - PRIVACY_AGREE=91e5db7659c560bc3545e63859b6ebc0
      - MAIBOT_LEGACY_0X_UPGRADE_CONFIRMED=1 # Docker 无法交互确认旧版升级迁移,默认跳过确认提示
      - MAIBOT_STATISTICS_REPORT_PATH=/MaiMBot/data/maibot_statistics.html # 统计数据输出到共享目录,首次运行可自动创建文件
      - WEBUI_HOST=0.0.0.0 # Docker 中需要监听全部容器网卡,宿主机才能通过端口映射访问 WebUI
#      - EULA_AGREE=8e6e7d647f7f82d6ea98456b73908656 # 同意EULA
#      - PRIVACY_AGREE=91e5db7659c560bc3545e63859b6ebc0 # 同意隐私条款
    ports:
      - "18001:8001" # webui端口
#      - "8000:8000"
    volumes:
      # 监听地址和端口会用于生成或迁移 ./docker-config/mmc/bot_config.toml 的 maim_message 与 webui 配置段
      - ./docker-config/mmc:/MaiMBot/config # 持久化bot配置文件
      - ./data/MaiMBot:/MaiMBot/data # 共享目录
      - ./data/MaiMBot-plugin-data:/MaiMBot/data/plugins # 插件持久数据目录,与插件源码目录隔离
      - ./data/MaiMBot/emoji:/data/emoji # 持久化表情包
      - ./data/MaiMBot/plugins:/MaiMBot/plugins # 插件目录
      - ./data/MaiMBot/logs:/MaiMBot/logs # 日志目录
      - ./depends-data:/MaiMBot/depends-data # 运行时资源文件
      # - site-packages:/usr/local/lib/python3.13/site-packages # 持久化Python包,需要时启用
    restart: always
    networks:
      - maim_bot

  # 启用 HTTPS 时,建议注释掉 core 服务中的 "18001:8001" 端口映射,
  # 然后取消注释此 Caddy 反向代理示例块,并按 dashboard/docs/Caddyfile.docker.example 修改域名。
  # caddy:
  #   image: caddy:2
  #   container_name: maibot-caddy
  #   restart: always
  #   ports:
  #     - "80:80"
  #     - "443:443"
  #   volumes:
  #     - ./dashboard/docs/Caddyfile.docker.example:/etc/caddy/Caddyfile:ro
  #     - caddy_data:/data
  #     - caddy_config:/config
  #   depends_on:
  #     - core
  #   networks:
  #     - maim_bot
  napcat:
    environment:
      - NAPCAT_UID=1000
      - NAPCAT_GID=1000
      - TZ=Asia/Shanghai
    ports:
      - "6099:6099"
    volumes:
      - ./docker-config/napcat:/app/napcat/config # 持久化napcat配置文件
      - ./data/qq:/app/.config/QQ # 持久化QQ本体
      - ./data/MaiMBot:/MaiMBot/data # 共享目录
    container_name: maim-bot-napcat
    restart: always
    image: mlikiowa/napcat-docker:latest
    networks:
      - maim_bot
  sqlite-web:
    # 注意:coleifer/sqlite-web 镜像不支持arm64
    image: coleifer/sqlite-web
    container_name: sqlite-web
    restart: always
    ports:
      - "8120:8080"
    volumes:
      - ./data/MaiMBot:/data/MaiMBot
    environment:
      - SQLITE_DATABASE=MaiMBot/MaiBot.db  # 你的数据库文件
    networks:
      - maim_bot

  # chat2db占用相对较高但是功能强大
  # 内存占用约600m,内存充足推荐选此
  # chat2db:
  #   image: chat2db/chat2db:latest
  #   container_name: maim-bot-chat2db
  #   restart: always
  #   ports:
  #     - "10824:10824"
  #   volumes:
  #     - ./data/MaiMBot:/data/MaiMBot
  #   networks:
  #     - maim_bot
  
# volumes:         #  若需要持久化Python包时启用
#   site-packages:
#   caddy_data:
#   caddy_config:
networks:
  maim_bot:
    driver: bridge