146 lines
6.0 KiB
Plaintext
146 lines
6.0 KiB
Plaintext
# ===================================================================
|
||
# Docker Compose 环境变量配置示例
|
||
# ===================================================================
|
||
#
|
||
# 使用说明:
|
||
# 1. 将此文件复制为 .env 文件: `cp .env.example .env`
|
||
# 2. 根据您的实际需求,仔细检查并修改以下配置项。
|
||
# 3. 使用默认的 SQLite 数据库快速启动,只需运行:
|
||
# docker compose up -d
|
||
#
|
||
# ===================================================================
|
||
|
||
# -------------------------------------------------------------------
|
||
# A. 核心应用配置
|
||
# -------------------------------------------------------------------
|
||
# [必需] 应用对外暴露的网络端口
|
||
APP_PORT=8088
|
||
|
||
# [必需] 用于 JWT token 等安全功能的加密密钥。
|
||
# 警告:为了生产环境的安全,请务必将其修改为一个长且随机的复杂字符串!
|
||
# 您可以使用此命令生成: openssl rand -hex 32
|
||
SECRET_KEY=your-secret-key-change-me-to-random-string
|
||
|
||
# [可选] 应用环境,设置为 "development" 可以启用更详细的调试日志
|
||
ENVIRONMENT=production
|
||
|
||
# [可选] 是否开启调试模式,生产环境中应始终为 "false"
|
||
DEBUG=false
|
||
# [可选] 控制应用日志级别,可选值:CRITICAL/ERROR/WARNING/INFO/DEBUG/NOTSET
|
||
LOGGING_LEVEL=INFO
|
||
|
||
|
||
# -------------------------------------------------------------------
|
||
# B. 数据库配置
|
||
# -------------------------------------------------------------------
|
||
# [必需] 选择数据库类型。可选值: "sqlite", "mysql"。
|
||
# 默认为 "sqlite",这是最简单的配置,无需外部数据库服务。
|
||
DB_PROVIDER=sqlite
|
||
|
||
# --- B1. SQLite 配置 (默认) ---
|
||
# [可选] SQLite 数据库文件的存储位置。
|
||
# 如果留空或注释掉,将使用名为 'sqlite-data' 的 Docker 卷进行持久化。
|
||
# 若希望存储在宿主机上,可设置为路径,例如: ./storage
|
||
# SQLITE_STORAGE_SOURCE=./storage
|
||
|
||
# --- B2. MySQL 配置 (可选) ---
|
||
# 如果您希望使用 MySQL,请先将上方的 DB_PROVIDER 设置为 "mysql",然后根据您的场景选择并配置以下两种方案之一。
|
||
|
||
# ▼▼▼ 方案一:使用内置的 MySQL 服务 (推荐用于快速体验) ▼▼▼
|
||
# 启动命令: DB_PROVIDER=mysql docker compose --profile mysql up -d
|
||
#
|
||
# 注意:以下变量由 docker-compose.yml 中的 `db` 服务使用。
|
||
MYSQL_HOST=db # 使用内置服务时,请勿修改此项
|
||
MYSQL_PORT=3306
|
||
MYSQL_USER=arboris
|
||
MYSQL_PASSWORD=your-database-password-change-me
|
||
MYSQL_DATABASE=arboris
|
||
MYSQL_ROOT_PASSWORD=your-root-password-change-me # 内置数据库需要设置 root 密码
|
||
|
||
# ▼▼▼ 方案二:连接到外部的 MySQL 数据库 ▼▼▼
|
||
# 启动命令: DB_PROVIDER=mysql docker compose up -d
|
||
#
|
||
# 注意:请确保应用容器可以访问到您的外部数据库地址。
|
||
# `host.docker.internal` 是一个特殊的DNS名,可用于从容器内部访问宿主机。
|
||
# MYSQL_HOST=host.docker.internal
|
||
# MYSQL_PORT=3306
|
||
# MYSQL_USER=your-external-db-user
|
||
# MYSQL_PASSWORD=your-external-db-password
|
||
# MYSQL_DATABASE=your-external-db-name
|
||
# 使用外部数据库时,无需设置 MYSQL_ROOT_PASSWORD。
|
||
|
||
|
||
# -------------------------------------------------------------------
|
||
# C. 初始化管理员账户
|
||
# -------------------------------------------------------------------
|
||
# 应用首次启动时,将使用以下凭据创建默认的管理员账户。
|
||
ADMIN_DEFAULT_USERNAME=admin
|
||
ADMIN_DEFAULT_PASSWORD=ChangeMe123!
|
||
ADMIN_DEFAULT_EMAIL=admin@example.com
|
||
|
||
|
||
# -------------------------------------------------------------------
|
||
# D. 大语言模型 (LLM) 与 RAG 配置
|
||
# -------------------------------------------------------------------
|
||
# --- D1. 主要生成模型配置 ---
|
||
OPENAI_API_KEY=sk-your-api-key-here
|
||
OPENAI_API_BASE_URL=https://api.openai.com/v1
|
||
OPENAI_MODEL_NAME=your-model-here
|
||
WRITER_CHAPTER_VERSION_COUNT=2
|
||
|
||
# --- D2. 嵌入模型配置 (用于 RAG 检索) ---
|
||
# [必需] 嵌入模型提供方,可选 "openai" 或 "ollama"
|
||
EMBEDDING_PROVIDER=openai
|
||
|
||
# [可选] OpenAI / 兼容服务的 Base URL,如果留空,将复用上方的 OPENAI_API_BASE_URL
|
||
EMBEDDING_BASE_URL=https://api.openai.com/v1
|
||
# [可选] 嵌入模型专用的 API Key,如果留空,将复用上方的 OPENAI_API_KEY
|
||
EMBEDDING_API_KEY=sk-your-api-key-here
|
||
# [必需] 默认嵌入模型名称
|
||
EMBEDDING_MODEL=text-embedding-3-large
|
||
# [必需] 嵌入模型的向量维度,必须与模型匹配;若不确定可保持默认
|
||
EMBEDDING_MODEL_VECTOR_SIZE=3072
|
||
|
||
# [可选] 如果使用 Ollama 本地模型 (EMBEDDING_PROVIDER=ollama),请配置其服务地址与模型。
|
||
OLLAMA_EMBEDDING_BASE_URL=http://host.docker.internal:11434
|
||
OLLAMA_EMBEDDING_MODEL=nomic-embed-text:latest
|
||
|
||
|
||
# -------------------------------------------------------------------
|
||
# E. 向量数据库配置 (用于 RAG)
|
||
# -------------------------------------------------------------------
|
||
# [可选] RAG 功能依赖向量数据库,默认使用本地文件。
|
||
VECTOR_DB_URL=file:./storage/rag_vectors.db
|
||
VECTOR_DB_AUTH_TOKEN=
|
||
VECTOR_TOP_K_CHUNKS=5
|
||
VECTOR_TOP_K_SUMMARIES=3
|
||
VECTOR_CHUNK_SIZE=480
|
||
VECTOR_CHUNK_OVERLAP=120
|
||
|
||
|
||
# -------------------------------------------------------------------
|
||
# F. 可选服务与功能开关
|
||
# -------------------------------------------------------------------
|
||
# --- F1. SMTP 邮件发送配置 ---
|
||
# [可选] 用于发送注册验证、密码重置等邮件。
|
||
SMTP_SERVER=smtp.example.com
|
||
SMTP_PORT=465
|
||
SMTP_USERNAME=no-reply@example.com
|
||
SMTP_PASSWORD=your-smtp-password
|
||
EMAIL_FROM=拯救小说家
|
||
|
||
# --- F2. 功能开关 ---
|
||
# 是否允许新用户注册
|
||
ALLOW_USER_REGISTRATION=false
|
||
# 是否启用 Linux.do 第三方登录
|
||
ENABLE_LINUXDO_LOGIN=false
|
||
|
||
# --- F3. Linux.do OAuth 配置 (如果启用) ---
|
||
# 仅当 ENABLE_LINUXDO_LOGIN=true 时需要配置。
|
||
LINUXDO_CLIENT_ID=your_client_id
|
||
LINUXDO_CLIENT_SECRET=your_client_secret
|
||
LINUXDO_REDIRECT_URI=https://your-domain.com/api/auth/linuxdo/register
|
||
LINUXDO_AUTH_URL=https://connect.linux.do/oauth2/authorize
|
||
LINUXDO_TOKEN_URL=https://connect.linux.do/oauth2/token
|
||
LINUXDO_USER_INFO_URL=https://connect.linux.do/api/user
|