MuMuAINovel is a structured AI writing assistant designed for long-form fiction. Rather than simply generating raw text, it provides a comprehensive framework to organize your creative process. You choose the AI backend that suits your needs, with native support for OpenAI, Google Gemini, and Anthropic Claude.
The platform streamlines the initial drafting phases, including outlining, character management, and worldbuilding. Dedicated panels allow you to track character arcs and setting details, while chapters can be drafted, refined, or entirely rewritten with a single click. Built with a responsive Ant Design interface, MuMuAINovel runs via Docker and stores data locally using SQLite. It supports multi-user environments with authentication via local credentials or LinuxDO OAuth.
git clone https://github.com/xiamuceer-j/MuMuAINovel.git
cd MuMuAINovel
cp backend/.env.example .env
Edit .env to include your API keys.docker-compose up -d
http://localhost:8000 in your browser.cd backend
python -m venv .venv
.venv\Scripts\activatesource .venv/bin/activatepip install -r requirements.txt
cp .env.example .env
Edit .env with your specific configurations.python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
cd frontend
npm install
npm run devnpm run builddocker pull mumujie/mumuainovel:latest
docker-compose up -d
docker-compose logs -fdocker-compose downdocker-compose restartdocker-compose pull && docker-compose up -dservices:
ai-story:
image: mumujie/mumuainovel:latest
container_name: mumuainovel
ports:
- "8800:8000"
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./.env:/app/.env:ro
environment:
- APP_NAME=mumuainovel
- APP_VERSION=1.0.0
- APP_HOST=0.0.0.0
- APP_PORT=8000
- DEBUG=false
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: 10s
networks:
- ai-story-network
networks:
ai-story-network:
driver: bridge
OPENAI_API_KEY or GEMINI_API_KEY: At least one active AI service.LOCAL_AUTH_PASSWORD: A strong password for the admin account.OPENAI_BASE_URL: Required if using a proxy or third-party endpoint.DEFAULT_AI_PROVIDER: Set to openai, gemini, or anthropic.DEFAULT_MODEL: e.g., gpt-4o-mini, gemini-2.0-flash-exp.Volumes ensure your work is not lost when the container restarts:
./data: Stores the SQLite database../logs: Stores application logs.8800:8000. Access the interface at http://your-server-ip:8800.server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8800;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_cache off;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
}
}
If using a domain, remember to update LINUXDO_REDIRECT_URI and FRONTEND_URL in your .env file.
.env# ===== AI Services =====
OPENAI_API_KEY=your_openai_key_here
OPENAI_BASE_URL=https://api.openai.com/v1
# GEMINI_API_KEY=your_gemini_key_here
# ANTHROPIC_API_KEY=your_anthropic_key_here
DEFAULT_AI_PROVIDER=openai
DEFAULT_MODEL=gpt-4o-mini
DEFAULT_TEMPERATURE=0.8
DEFAULT_MAX_TOKENS=32000
# ===== Application =====
APP_NAME=MuMuAINovel
APP_PORT=8000
DEBUG=false
# ===== LinuxDO OAuth =====
LINUXDO_CLIENT_ID=your_client_id_here
LINUXDO_CLIENT_SECRET=your_client_secret_here
LINUXDO_REDIRECT_URI=http://localhost:8000/api/auth/callback
FRONTEND_URL=http://localhost:8000
# ===== Local Account =====
LOCAL_AUTH_ENABLED=true
LOCAL_AUTH_USERNAME=admin
LOCAL_AUTH_PASSWORD=your_secure_password_here
| Provider | Recommended Models | Primary Use Case |
|---|---|---|
| OpenAI | gpt-4o, gpt-4o-mini | High-quality logic and prose |
| Anthropic | claude-3-5-sonnet | Nuanced, natural creative writing |
If you use a proxy service, update the OPENAI_BASE_URL in your .env file. Ensure the URL includes the version suffix (e.g., /v1). Supported proxies include New API, API2D, OpenAI-SB, or any self-hosted One API instance.
Once the server is running, interactive documentation is available at:
http://localhost:8000/docshttp://localhost:8000/redoc
DeepSeek OCR: Extract Text and Visual Data With This React FastAPI App
Web Codegen Scorer: Test AI-Generated Web Code Quality Before You Ship
Tongyi DeepResearch: 30B Agent Model Beats GPT and Claude on Search Benchmarks
SpikingBrain: 100x Faster LLM Inference via Spike Sparsity
BitzNet SD-WAN: Secure SD-WAN for Faster, Safer Internet Access
Parlant: Build AI Agents That Follow Rules, Not Prompts
Coze Studio: Build and Deploy AI Agents with Golang and React
AI Interactive Fiction Generator Builds Stories You Actually Control
MonkeyCode: Secure Private AI Coding with Integrated Security Scanning & Admin Controls
Dots.LLM1: 142B MoE Model Trained on 11.2T Real-World Tokens
Natural Language CAD Control via CAD-MCP Server
ONLYOFFICE Docs: A Powerful Online Collaborative Office Suite