配置参考
配置参考
M-Doc 通过 config.yaml 文件进行配置,所有配置项均支持通过环境变量覆盖。
服务器配置
server:
mode: release # 运行模式:debug, release, test
addr: ":8080" # 监听地址
base_url: "https://your-domain.com" # 外部访问基础 URLbase_url 用于生成 OpenAPI 清单中的文章链接,生产环境务必设置为实际域名。
HTTP 配置
http:
load_static: false # 是否加载前端静态文件
static_mode: embed # embed(嵌入二进制)或 disk(磁盘读取)
static_dir: [] # 自定义静态文件目录数据库配置
database:
driver: postgresql # 数据库驱动:postgresql, mysql, sqlite
host: "localhost"
port: 5432
username: "mdoc"
password: "password"
dbname: "mdoc"
charset: utf8mb4
max_idle_conns: 10 # 最大空闲连接数
max_open_conns: 100 # 最大打开连接数
conn_max_lifetime: 3600 # 连接最大生命周期(秒)SQLite(开发环境)
database:
driver: sqlite
dbname: "mdoc.db"数据库迁移
migration:
enabled: true # 启动时自动迁移
dir: "." # 迁移文件目录
table_name: "schema_migrations" # 版本表名
halt_on_failure: true # 迁移失败是否停止启动Redis 配置
redis:
host: localhost
port: 6379
password: ""
db: 0
pool_size: 10
min_idle_conns: 5缓存配置
cache:
driver: redis # 缓存驱动JWT 认证
jwt:
secret: "your-secret-key" # JWT 签名密钥(生产环境请使用强密钥)
expire_hours: 168 # Token 过期时间(小时),默认 7 天OIDC 配置
oidc:
enabled: false
issuer: "https://your-oidc-provider.com"
client_id: "your-client-id"
client_secret: "your-client-secret"
redirect_uri: "https://your-domain.com/auth/callback"
scopes:
- openid
- profile
- emailCORS 配置
cors:
allow_origins:
- "https://your-domain.com"
allow_methods:
- "GET"
- "POST"
- "PUT"
- "DELETE"
- "OPTIONS"
allow_headers:
- "Origin"
- "Content-Type"
- "Authorization"日志配置
log:
level: info # 日志级别:debug, info, warn, error
filename: logs/app.log
max_size: 100 # 单文件最大大小(MB)
max_age: 30 # 日志保留天数
max_backups: 10 # 最大备份文件数
compress: true # 是否压缩归档S3 文件上传
s3:
enabled: true
region: "us-east-1"
bucket: "your-bucket"
access_key: "your-access-key"
secret_key: "your-secret-key"
endpoint: "" # S3 兼容存储的 endpoint(AWS S3 留空)
cdn: "" # CDN 加速域名(可选)
upload_path: "mdoc/uploads" # 上传路径前缀
max_file_size: 52428800 # 最大文件大小(字节),默认 50MB
allowed_types: # 允许的 MIME 类型
- "image/jpeg"
- "image/png"
- "image/gif"
- "image/webp"
- "image/svg+xml"
- "application/pdf"向量化配置
vectorize:
enabled: false
collection_name: article_vectors
provider: openai
embedding_model: text-embedding-3-small
chunk_size: 512 # 文本分块大小
chunk_overlap: 50 # 分块重叠大小
batch_size: 256 # 批量处理大小
max_retries: 3 # 最大重试次数
base_url: "https://api.openai.com/v1/"
api_key: "your-api-key"文章摘要配置
summarize:
enabled: false
model: gpt-4o-mini
base_url: "https://api.openai.com/v1/"
api_key: "your-api-key"
max_length: 200 # 摘要最大字数向量存储配置
vectorstore:
enabled: false
driver: pgvector
pgvector:
index_type: hnsw # hnsw 或 ivfflat
distance_metric: cosine # cosine, l2, inner_product使用 pgvector 前需安装 PostgreSQL 扩展:CREATE EXTENSION IF NOT EXISTS vector;
API Key 配置
api_key:
master_key: "change-this-to-32byte-key-now!!!" # AES 主密钥(32 字节)
signature:
service: "mdoc"
region: "us-east-1"
time_window: 900 # 签名时间窗口(秒),默认 15 分钟事件队列配置
event_queue:
enabled: false
consumer_group: "mdoc-workers"
workers: 3
max_retries: 3
retry_delay: 30s
claim_interval: 5m环境变量覆盖
所有配置项均可通过环境变量覆盖,格式为大写加下划线:
export DATABASE_HOST=localhost
export DATABASE_PORT=5432
export JWT_SECRET=your-secret
export API_KEY_MASTER_KEY=your-32-byte-key