Arboris is an AI tool. It helps novelists build complete stories from ideas. Users enter simple concepts and the AI generates a worldview, characters, and a network of relationships. The tool also extends the idea into a story outline and writes chapter drafts. Each novel is managed as a project with all the content organized clearly. Users can talk to the AI and edit the text in real time. The tool saves draft versions, allowing users to compare and mark satisfactory sections. the AI learns the user's style and generates better-matched content. Deployment is done with Docker, one-click start on the server. Requires OpenAI API key to support AI functionality. Default SQLite database, also supports MySQL. administrator initial account is admin, change password after deployment. Tools are highly customizable , adjust the prompt word and model . Open source in GitHub, suitable for personal use. Online beta version with Gemini models, but since the deployment of the version with OpenAI. tools to retain manual confirmation to avoid the lack of creativity of pure AI output.
Function List
- Breeding the world: the user gives the basic idea and the AI generates the worldview details, including factions, locations, and background settings.
- Characterization: Create character descriptions, generate a network of relationships, and connect characters for easy management of complex interactions.
- Planning blueprints: expanding from inspiration into a full outline, covering the beginning, development and climax of the story, ensuring plot logic.
- Writes ink: AI writes chapter drafts according to user guidance, providing multiple versions that users pick and modify.
- Interactive writing desk: users talk to the AI, give instructions, and generate and optimize text in real time.
- Versioning and Evaluation: Save draft versions, support comparison, mark satisfactory parts, AI adjust style.
- Project-based management: each novel independent project, storage settings, outlines and chapters, easy to find.
- Highly customizable: adjust cue words, model APIs to match user habits.
- One-click deployment: start with Docker Compose and configure environment variables.
- Assistants' roles are upgraded: including conceptualizers collecting brainstorms, blueprints organizing blueprints, outliners supplementing synopses, novelists writing chapters, extractors compressing content, and evaluators critiquing quality.
- Responsive Layout: supports cell phone use.
- Model selection: OpenAI model for self-deployment, Gemini-2.5-flash for online version.
Using Help
Arboris installation is based on Docker. user first installs Docker and Docker Compose. which is the basic environment. After installation, the repository is cloned from GitHub. The command isgit clone https://github.com/t59688/arboris-docker.git
. Enter the catalog. Use thecp .env.example .env
Copy the environment variable file. Open the .env editor.
Core variables are set first.SECRET_KEY
is the JWT encryption key. Must be randomized and complex. Use a tool to generate the string.OPENAI_API_KEY
is an OpenAI key. Mandatory field. The AI cannot work without it.OPENAI_API_BASE_URL
default (setting)https://api.openai.com/v1
. If using another service, change here.OPENAI_MODEL_NAME
default (setting)gpt-3.5-turbo
. convertiblegpt-4
or otherwise.
Database Settings. DefaultDB_PROVIDER=sqlite
. Simple, no additional containers required. Want to map database files to the host, setSQLITE_STORAGE_SOURCE=./storage
. This is a relative path. You can also use absolute paths such as/path/to/storage
The
When using MySQL, set theDB_PROVIDER=mysql
The Fill in.MYSQL_HOST
,MYSQL_PORT
,MYSQL_USER
,MYSQL_PASSWORD
,MYSQL_DATABASE
. Built-in MySQL requiresMYSQL_ROOT_PASSWORD
The The mainframe isdb
The
Mail Configuration. If open registration, fill in SMTP.SMTP_SERVER
It's the address.SMTP_PORT
Default 465.SMTP_USERNAME
cap (a poem)SMTP_PASSWORD
is the login information.EMAIL_FROM
Default "Save the Novelist".
Register and Login.ALLOW_USER_REGISTRATION
Default is false. set true, users will register themselves. Requires SMTP to send authentication email.ENABLE_LINUXDO_LOGIN
Default false. set true, use Linux.do OAuth. fill in theLINUXDO_CLIENT_ID
,LINUXDO_CLIENT_SECRET
,LINUXDO_REDIRECT_URI
etc. The callback URI is/api/auth/linuxdo/register
The
Administrator.ADMIN_DEFAULT_USERNAME
Default admin.ADMIN_DEFAULT_PASSWORD
is the initial password. Change it after startup.ADMIN_DEFAULT_EMAIL
It's the mailbox.
Other.APP_PORT
Default 80.ENVIRONMENT
Default production.DEBUG
Default is false. debugging is set to true.LOGGING_LEVEL
Default INFO.WRITER_CHAPTER_VERSION_COUNT
Default 2, which controls the number of versions.
Configured to run with default SQLitedocker compose up -d
. Backend startup. Logging is done withdocker compose logs -f
Check.
Built-in MySQL, setupDB_PROVIDER=mysql
RunningDB_PROVIDER=mysql docker compose --profile mysql up -d
. Start the MySQL container.
External MySQL, setDB_PROVIDER=mysql
Rundocker compose up -d
The
mirroringtiechui251/arboris-app:latest
The Pull it first.docker pull tiechui251/arboris-app:latest
. docker-compose.yml is configured.
After startup, go to http://localhost:80或服务器IP. Login with admin and initial password. Change the password immediately.
Now use the function. Create the item. Fill in the name and description. One item per novel.
Breeding worlds. Enter an idea, such as "Wizarding world with dragons." the AI generates factions and locations. Edit and save.
Characterization. Enter name, background. ai expansion. Generate a network of relationships. Add connections, e.g. A is B's enemy. Chart display.
Plan the blueprint. Enter an inspiration, such as "Heroic Adventure." AI generates an outline. Divide into chapters. Adjust order, add subplots.
Wave the text. Select chapters. Commands such as "Write the beginning, the hero departs." AI generates a draft. Multiple versions. Pick editors.
Interactive writing desk. Chat type "add combat scene". the AI responds. Copy to document.
Versioning and Evaluation. Drafts are automatically saved. View history. Restore old version. Marking good parts. ai learning style.
Project Management. Menu to switch projects. All documents are organized. Export outlines or chapters.
Helper Role. The conceptualizer collects brainstorms. The user inputs ideas and it guides the expansion. Blueplanner organizes into blueprints. Includes overall structure. Outliner adds chapter summaries. Novelist writes new chapters and provides 2 versions. Extractor compresses chapters for easy transmission of context. Evaluator reviews quality and points out problems.
Customize. Set up a prompt to change the words, e.g. "Write in Chinese, like a martial arts style". Change model.
Responsive layout. Works fine on mobile. Layout adapts to screen.
Model selection. Self-deployment with OpenAI. online version https://arboris.aozhiai.com用Gemini-2.5-flash. public interest API, crowded and possibly slow.
Why not automate. Because people + AI are more fun to work with. Human confirmation plus creativity. Pure AI is prone to be a running gag.
Bug. creating blueprints or chapters fails, but may have been made. Try refreshing.
Updated. Pull new image, rebootdocker compose restart
The
Backup. sqlite file in storage. copy. mySQL export database.
Secure.SECRET_KEY confidential. Strong password. Firewall open port 80.
Online experience at https://arboris.aozhiai.com. Self-deployment after testing. Private data security.
Environment variables table:
variant | mandatory field | clarification |
---|---|---|
APP_PORT |
clogged | Maps to the host's HTTP port, by default 80 The |
SECRET_KEY |
be | The JWT encryption key, which should be set to a random and sufficiently complex string. |
ENVIRONMENT |
clogged | The runtime environment identifier, default production The |
DEBUG |
clogged | Whether to enable debug logging, default false The |
LOGGING_LEVEL |
clogged | Controls the application logging level, default INFO Optional CRITICAL/ERROR/WARNING/INFO/DEBUG/NOTSET The |
DB_PROVIDER |
clogged | Database type, default sqlite ; switching to mysql Please cooperate with the relevant orders. |
SQLITE_STORAGE_SOURCE |
clogged | SQLite datastore mapping; leave blank to use a named volume, or set to host path/other volume name. |
MYSQL_HOST |
be | The database host address, which is kept at the same level when using the built-in MySQL db The |
MYSQL_PORT |
clogged | Database port, default 3306 The |
MYSQL_USER |
be | The database username used by the application. |
MYSQL_PASSWORD |
be | Application database password. |
MYSQL_DATABASE |
be | Application database name, default arboris The |
MYSQL_ROOT_PASSWORD |
Required when using the built-in database | Built-in root password for MySQL, ignored for external database deployments. |
ADMIN_DEFAULT_USERNAME |
clogged | Administrator username for first boot, default admin The |
ADMIN_DEFAULT_PASSWORD |
clogged | The administrator password for the first startup, please change it as soon as possible after deployment. |
ADMIN_DEFAULT_EMAIL |
clogged | Administrator's default e-mail |
OPENAI_API_KEY |
Depending on business requirements | LLM key for AI generation,Required. |
OPENAI_API_BASE_URL |
be | LLM API address, default official https://api.openai.com/v1 The |
OPENAI_MODEL_NAME |
be | The name of the model to call, default gpt-3.5-turbo The |
WRITER_CHAPTER_VERSION_COUNT |
clogged | Number of chapter versions retained in writer mode, default 2 The |
SMTP_SERVER |
No (required to open registration) | SMTP server address. |
SMTP_PORT |
clogged | SMTP port, default 465 (SSL). |
SMTP_USERNAME |
Required (when opening mail) | SMTP login account. |
SMTP_PASSWORD |
Required (when opening mail) | SMTP login password or authorization code. |
EMAIL_FROM |
clogged | The name of the sender shown in the email, defaulting to "Save the Novelist". |
ALLOW_USER_REGISTRATION |
clogged | Whether to open user self-registration, default false The |
ENABLE_LINUXDO_LOGIN |
clogged | Whether to enable Linux.do OAuth login, default false The |
LINUXDO_CLIENT_ID |
Required when Linux.do is enabled | OAuth Client ID. |
LINUXDO_CLIENT_SECRET |
Required when Linux.do is enabled | OAuth Client Secret. |
LINUXDO_REDIRECT_URI |
Required when Linux.do is enabled | Authorization callback address, which should point to the /api/auth/linuxdo/register The |
LINUXDO_AUTH_URL |
clogged | Authorization address, default official address. |
LINUXDO_TOKEN_URL |
clogged | The address to get the token, the default official address. |
LINUXDO_USER_INFO_URL |
clogged | The address for querying user information, the default official address. |
More at .env.example. follow these and users get started fast. Tools make creation simple.
application scenario
- When inspiration runs out
Users face a blank document and enter vague ideas with Arboris. the AI generates a worldview and characters. User quickly launches creation. - Dealing with complex relationships
Long story with many characters. Manage connections with a web of relationships. Avoid confusion. - Rapid draft writing
Have an outline but write slowly. Generate chapter versions with AI. Users modify to improve. - Learning Personal Style
Beginners mark satisfactory sentences. ai adjusts generation. Improve writing skills. - Teamwork
Multiple editing projects. Share settings and outlines. Ideal for writing groups. - Cell Phone Creation
Responsive Layout. Talk to AI anytime with your phone to optimize text.
QA
- How do I install Arboris?
With Docker Compose. clone the repository, copy the .env, edit the variables. Run docker compose up -d. - What API is required?
OpenAI API key required. Used for AI generation. - What databases are supported?
Default SQLite. exchangeable MySQL, built-in or external. - How to customize the model?
Change OPENAI_MODEL_NAME in .env, e.g. gpt-4. - How do I open registration?
Set ALLOW_USER_REGISTRATION=true. configure SMTP to send mail. - How are versions managed?
Drafts are automatically saved. Users view history comparison recovery. - Difference between online version and self deployment?
Online version at https://arboris.aozhiai.com用Gemini测试. Self-deployment with OpenAI, data private. - How do I update my mirrors?
Run docker pull tiechui251/arboris-app:latest. and then reboot. - Known bugs?
When creating a blueprint or chapter fails, try refreshing the page. It may have succeeded.