侧边栏壁纸
博主头像
踏浪而行生活圈

行动起来,活在当下

  • 累计撰写 16 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

【好玩儿的Docker项目】用MuMuAiNovel自动写小说,docker一键部署,月入过万不是梦

你是否曾梦想过成为一名小说家,但又担心自己没有天赋?是否想过利用业余时间开启第二职业,但又不知道从何入手?2026年,AI写作技术的成熟让这一切成为可能。说实话,现在AI写小说的能力已经超出了很多人的想象。

根据行业数据,2025年上半年新签约作者中67%来自非专业背景(来源:《2025年网络文学行业报告》),而AI辅助创作的小说在各大平台的占比已经超过30%(来源:番茄小说官方数据)。今天,我将为你介绍一款开源神器——MuMuAiNovel,它能让你在5分钟内搭建自己的AI小说创作平台,开启你的第二职业之旅。真的,用它写小说,效率能提升10倍以上。

什么是MuMuAiNovel?让你日更万字的秘密武器

MuMuAiNovel是一款基于AI大模型的智能小说创作助手,它可以帮助你快速生成小说大纲、创建角色、管理章节,甚至直接生成小说内容。说实话,这款工具真的很强大,它的最大特点是:

  1. 「多AI模型支持」:兼容OpenAI、Gemini、Claude等主流AI模型,你可以根据需要随时切换

  2. 「完全本地部署」:数据存储在本地,保护你的创作隐私,不用担心稿件泄露

  3. 「Docker一键部署」:无需复杂配置,5分钟即可启动服务,新手也能轻松上手

  4. 「功能全面」:从世界观设定到章节编辑,一站式解决小说创作痛点,让你专注于创作

Docker一键部署教程:5分钟搭建你的专属写作平台

前置条件

  • 安装Docker和Docker Compose

  • 「推荐使用DeepSeek」(来源:DeepSeek官方网站,注册即送2000万Tokens)

硬件条件

  • 最低配置(个人使用/开发环境)

组件

要求

CPU

2 核

内存

2 GB RAM

存储

10 GB 可用空间

网络

稳定互联网连接(用于调用 AI API)

  • 推荐配置(小型团队/生产环境)

组件

要求

CPU

4 核

内存

8 GB RAM

存储

20 GB SSD

网络

稳定互联网连接(用于调用 AI API)

  • 高并发配置(80-150 用户)

组件

要求

CPU

8 核

内存

16 GB RAM

存储

50 GB+ SSD

网络

高带宽连接

部署步骤

1. 安装Docker

# 一键安装Docker
curl -fsSL https://get.docker.com | sh

# 启动并设置开机自启
systemctl start docker
systemctl enable docker

# 验证安装
docker compose version

2. 创建部署目录

mkdir -p /opt/mumuainovel
cd /opt/mumuainovel

3. Docker Compose 部署(推荐)

# 1. 克隆项目
git clone https://github.com/xiamuceer-j/MuMuAINovel.git
cd MuMuAINovel

# 2. 配置环境变量(必需)
cp backend/.env.example .env
# 编辑 .env 文件,填入必要配置(API Key、数据库密码等)

# 3. 确保文件准备完整
# ⚠️ 重要:确保以下文件存在
# - .env(配置文件,必需挂载到容器)
# - backend/scripts/init_postgres.sql(数据库初始化脚本)

# 4. 启动服务
docker-compose up -d

# 5. 访问应用
# 打开浏览器访问 http://localhost:8000

4. 使用 Docker Hub 镜像(推荐新手)

若执行步骤3可跳过步骤4

4.1 拉取最新镜像
docker pull mumujie/mumuainovel:latest
4.2. 创建 docker-compose.yml(点击下方展开查看完整配置)
services:
  postgres:
    image: postgres:18-alpine
    container_name: mumuainovel-postgres
    environment:
      POSTGRES_DB: ${POSTGRES_DB:-mumuai_novel}
      POSTGRES_USER: ${POSTGRES_USER:-mumuai}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-123456}
      POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C"
      TZ: ${TZ:-Asia/Shanghai}
    volumes:
      - postgres_data:/var/lib/postgresql/data
      - ./backend/scripts/init_postgres.sql:/docker-entrypoint-initdb.d/init.sql:ro
    ports:
      - "${POSTGRES_PORT:-5432}:5432"
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-mumuai} -d ${POSTGRES_DB:-mumuai_novel}"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s
    networks:
      - ai-story-network
    command:
      - postgres
      - -c
      - max_connections=${POSTGRES_MAX_CONNECTIONS:-200}
      - -c
      - shared_buffers=${POSTGRES_SHARED_BUFFERS:-256MB}
      - -c
      - effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-1GB}
      - -c
      - maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-64MB}
      - -c
      - checkpoint_completion_target=${POSTGRES_CHECKPOINT_COMPLETION_TARGET:-0.9}
      - -c
      - wal_buffers=${POSTGRES_WAL_BUFFERS:-16MB}
      - -c
      - default_statistics_target=${POSTGRES_DEFAULT_STATISTICS_TARGET:-100}
      - -c
      - random_page_cost=${POSTGRES_RANDOM_PAGE_COST:-1.1}
      - -c
      - effective_io_concurrency=${POSTGRES_EFFECTIVE_IO_CONCURRENCY:-200}
      - -c
      - work_mem=${POSTGRES_WORK_MEM:-4MB}
      - -c
      - min_wal_size=${POSTGRES_MIN_WAL_SIZE:-1GB}
      - -c
      - max_wal_size=${POSTGRES_MAX_WAL_SIZE:-4GB}

  mumuainovel:
    image: mumujie/mumuainovel:latest
    container_name: mumuainovel
    depends_on:
      postgres:
        condition: service_healthy
    ports:
      - "${APP_PORT:-8000}:8000"
    volumes:
      - ./logs:/app/logs
      - ./.env:/app/.env:ro
    environment:
      # 应用配置
      - APP_NAME=${APP_NAME:-MuMuAINovel}
      - APP_VERSION=${APP_VERSION:-1.0.0}
      - APP_HOST=${APP_HOST:-0.0.0.0}
      - APP_PORT=8000
      - DEBUG=${DEBUG:-false}
      # 数据库配置
      - DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER:-mumuai}:${POSTGRES_PASSWORD:-123456}@postgres:5432/${POSTGRES_DB:-mumuai_novel}
      - DB_HOST=postgres
      - DB_PORT=5432
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-123456}
      # PostgreSQL 连接池配置
      - DATABASE_POOL_SIZE=${DATABASE_POOL_SIZE:-30}
      - DATABASE_MAX_OVERFLOW=${DATABASE_MAX_OVERFLOW:-20}
      - DATABASE_POOL_TIMEOUT=${DATABASE_POOL_TIMEOUT:-60}
      - DATABASE_POOL_RECYCLE=${DATABASE_POOL_RECYCLE:-1800}
      - DATABASE_POOL_PRE_PING=${DATABASE_POOL_PRE_PING:-True}
      - DATABASE_POOL_USE_LIFO=${DATABASE_POOL_USE_LIFO:-True}
      # 代理配置(可选)
      - HTTP_PROXY=${HTTP_PROXY:-}
      - HTTPS_PROXY=${HTTPS_PROXY:-}
      - NO_PROXY=${NO_PROXY:-localhost,127.0.0.1}
      # AI 服务配置
      - OPENAI_API_KEY=${OPENAI_API_KEY:-}
      - OPENAI_BASE_URL=${OPENAI_BASE_URL:-https://api.openai.com/v1}
      - GEMINI_API_KEY=${GEMINI_API_KEY:-}
      - GEMINI_BASE_URL=${GEMINI_BASE_URL:-}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
      - ANTHROPIC_BASE_URL=${ANTHROPIC_BASE_URL:-}
      - DEFAULT_AI_PROVIDER=${DEFAULT_AI_PROVIDER:-openai}
      - DEFAULT_MODEL=${DEFAULT_MODEL:-gpt-4o-mini}
      - DEFAULT_TEMPERATURE=${DEFAULT_TEMPERATURE:-0.7}
      - DEFAULT_MAX_TOKENS=${DEFAULT_MAX_TOKENS:-32000}
      # LinuxDO OAuth 配置
      - LINUXDO_CLIENT_ID=${LINUXDO_CLIENT_ID:-11111}
      - LINUXDO_CLIENT_SECRET=${LINUXDO_CLIENT_SECRET:-11111}
      - LINUXDO_REDIRECT_URI=${LINUXDO_REDIRECT_URI:-http://localhost:8000/api/auth/linuxdo/callback}
      - FRONTEND_URL=${FRONTEND_URL:-http://localhost:8000}
      # 本地账户登录配置
      - LOCAL_AUTH_ENABLED=${LOCAL_AUTH_ENABLED:-true}
      - LOCAL_AUTH_USERNAME=${LOCAL_AUTH_USERNAME:-admin}
      - LOCAL_AUTH_PASSWORD=${LOCAL_AUTH_PASSWORD:-admin123}
      - LOCAL_AUTH_DISPLAY_NAME=${LOCAL_AUTH_DISPLAY_NAME:-本地管理员}
      # 会话配置
      - SESSION_EXPIRE_MINUTES=${SESSION_EXPIRE_MINUTES:-120}
      - SESSION_REFRESH_THRESHOLD_MINUTES=${SESSION_REFRESH_THRESHOLD_MINUTES:-30}
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s
    networks:
      - ai-story-network

volumes:
  postgres_data:
    driver: local

networks:
  ai-story-network:
    driver: bridge
4.3 启动服务
docker-compose up -d
4.4 查看日志
docker-compose logs -f
4.5 更新到最新版本
docker-compose pull

5. 一键启动

docker compose up -d

6. 访问应用

浏览器输入:http://你的服务器IP:8000 本地部署直接访问:http://127.0.0.1:8000

常见问题解决

「Q1:端口冲突怎么办?」A:修改docker-compose.yml中的端口映射,例如:

ports:
  - "8080:8020"

「Q2:如何配置AI模型?」A:登录后进入系统设置,在API设置中填写你的API Key和模型地址。推荐使用DeepSeek(来源:DeepSeek官方网站,注册即送2000万Tokens)。

「Q3:数据安全吗?」A:所有数据存储在本地./data目录,容器删除不影响数据。定期备份该目录即可。

从零开始配置使用

浏览器中输入 http://NAS的IP:8000 就能看到界面

0-stim

输入前面配置的管理员账号和密码(admin/admin123)

0-emts

成功进入面板,有一个通知提示(检测 API 设置)

0-rpbo

前面如果配置没问题,这里测试就可以正常通过(可以在页面,刷新切换新模型)

0-goza

有两种模式,分别是灵感模式和向导创建。

0-mz7z

灵感模式,适合创意初期,用户只有模糊想法时使用

0-epj3

通过 AI 对话式引导,就能一步步完成小说

0-5zis

一步步选择和生成(idea → 书名 → 简介 → 主题 → 类型 → 视角 → 确认)

0-xbtw

等待小说生成(可以调用 MCP,不过我没配置)

0-4gki

这里用的时间挺长的(可能选小一点的模型会快一点),点击进入项目

0-cgfm

看起来还是很专业的,有世界设定,角色管理,关系管理,组织管理等等

0-f0ln

应该是我选模型问题(之前用其他模型没这个问题),写出来的很多都是英文 生成上面这些大概用了 0.5 元(我选的模型 token 比较贵)

0-3ltr

大纲展开就能生成章节了(换成了 DeepSeek-R1 模型)

0-up8r

每个章节概要就生成出来了,点击创建即可

0-ipa0

来到章节管理就能看到前面创建的草稿了

0-f5z8

先不要急着生成章节内容,选择一种适合的写作风格

0-hbsx

回到章节管理就可以批量生成了

0-fkug

我就默认配置不修改了,直接点击生成

0-t9kw

三个章节都生成完成了,右上角有已写字数

0-bpal

可以看看效果,有英文奇怪都是没选好模型导致的

0-9z3l

为了更好掌握故事节奏,可以进行剧情分析

0-fhjl

TIP:先刷新一下网页,可能完成了但没显示,还是不行就等一下再重新一个个分析(调用太频繁会导致失败)

0-kolf

剧情分析会提炼章节内容,帮助更好掌握节奏

0-wiy0

上面全部操作下来,大概用了 1 元多

0-cljx

返回首页,看看向导创建

0-xgkk

向导创建是采用表单式填写,通过结构化收集信息

0-fcxy

简单填写就可以点创建项目了

0-pfym

创建完成,点击进入项目

0-sgcs

换了一个模型以后,生成这些内容就正常多了

0-8rq3

后面这些就不展开了,和前面使用灵感模式一样,下面说说还有那些功能

0-cmyt

通过添加 MCP 插件,AI 可以访问搜索引擎、数据库、API 等外部服务,增强创作能力

0-z42t

支持用户管理,每个用户都是独立可以使用

0-fnrj

说真的,MuMuAINovel 这款 AI 小说创作助手确实有点门道。除了部署环节稍有些繁琐外,整体没什么大问题,基本是零门槛就能上手操作。另外要注意的是,模型尽量选择国内的,这类模型对中文的支持度会高很多,否则可能会生成英文内容。

虽说我没写过小说,但用下来感觉还挺不错的。借助 AI 辅助,只要有一个初步的想法,就能创作出一部还不错的小说。而且创作的每个流程步骤都可控,操作逻辑也很贴合用户的使用习惯,有兴趣的朋友不妨试试。

综合推荐:⭐⭐⭐⭐(AI 辅助创作,生产力直接拉满)

使用体验:⭐⭐⭐(上手简单,贴合使用习惯)

部署难易:⭐⭐⭐(难度一般)

(部分内容来自网络)

往期精彩:

道理鱼镜像:带来更优质的私人音乐库体验 【文末附无损音乐地址】

别再瞎选 RAID 了!NAS / 服务器必看,速度和安全的最优解

Docker一键部署Jellyfin+Findroid关联教程:打造私人影音自由王国

别再乱冲视频会员了!一台NAS,解锁全家人的影音自由

扫码_搜索联合传播样式-标准色版-fd2n.png
0-zuwu

0

评论区