# 应用配置 APP_HOST=0.0.0.0 APP_PORT=3000 APP_ENV=development # APP_KEY is auto-generated on first start. Only set manually if needed. # APP_KEY= # Profile-based env loading: # .env → .env.{APP_PROFILE} → .env.local # APP_PROFILE=development # 数据库 # SQLite 默认: sqlite:{STORAGE_ROOT_DIR}/db/raisfast.db?mode=rwc DATABASE_URL=sqlite:./storage/db/blog.db?mode=rwc # ── 本地文件存储根目录 ────────────────────────────────────── # 所有本地文件(db/uploads/logs/search_index/vfs/pid)的父目录 # STORAGE_ROOT_DIR=./storage # JWT JWT_SECRET=change-me-in-production-at-least-32-chars JWT_ACCESS_EXPIRES=900 JWT_REFRESH_EXPIRES=604800 # 媒体上传(默认 {STORAGE_ROOT_DIR}/uploads,目录会自动创建) # UPLOAD_DIR=./storage/uploads MAX_UPLOAD_SIZE=104857600 # plugin # PLUGIN_DIR=./extensions/plugins # 插件虚拟文件系统(默认 {STORAGE_ROOT_DIR}/vfs) # PLUGIN_VFS_ROOT=./storage/vfs PLUGIN_VFS_MAX_FILE_SIZE=1048576 PLUGIN_VFS_MAX_TOTAL_SIZE=10485760 # 插件实例池大小(WASM/Lua/JS) PLUGIN_WASM_POOL_SIZE=4 PLUGIN_LUA_POOL_SIZE=4 PLUGIN_JS_POOL_SIZE=4 # 日志(默认 {STORAGE_ROOT_DIR}/logs) RUST_LOG=raisfast=debug,tower_http=debug # LOG_DIR=./storage/logs LOG_MAX_FILES=7 # 限流(格式:max_requests/window_secs) RATE_LIMIT_GLOBAL_MAX=60 RATE_LIMIT_GLOBAL_WINDOW=60 RATE_LIMIT_REGISTER_MAX=5 RATE_LIMIT_REGISTER_WINDOW=3600 RATE_LIMIT_LOGIN_MAX=10 RATE_LIMIT_LOGIN_WINDOW=60 RATE_LIMIT_COMMENT_MAX=3 RATE_LIMIT_COMMENT_WINDOW=60 # Worker 后台任务队列 WORKER_ENABLED=false WORKER_CONCURRENCY=2 WORKER_POLL_INTERVAL_MS=500 WORKER_DEFAULT_MAX_ATTEMPTS=3 WORKER_CRON_TICK_MS=60000 CRON_SEED_ENABLED=false CRON_LOG_RETENTION_DAYS=30 # CRON_SCHEDULES — JSON array of schedules to seed on first run, e.g.: # CRON_SCHEDULES=[{"label":"Generate Sitemap","job_type":"generate_sitemap","payload":null,"cron_expr":"0 0 */6 * * *","enabled":true}] # 时区(IANA 格式,默认 UTC) # APP_TIMEZONE=UTC # Extension 根目录(统一管理 Content Type + Plugin) # EXTENSION_DIR=./extensions # CORS(生产环境务必设置具体域名,多个用逗号分隔) # CORS_ORIGINS=http://localhost:3000 # 站点公开地址(前端访问后端的 URL,默认取 APP_HOST:APP_PORT) # BASE_URL=http://localhost:3000 # 文件存储(local | s3) # local: 文件存到 UPLOAD_DIR,需确保该目录可写 # s3: 文件存到 S3 兼容对象存储,需配置下方 S3_* 参数 # STORAGE_DRIVER=local # S3 / RustFS 配置(仅 STORAGE_DRIVER=s3 时需要) # S3_ENDPOINT=http://rustfs:9000 # S3_ACCESS_KEY=rustfsadmin # S3_SECRET_KEY=rustfsadmin # S3_BUCKET=blog # S3_REGION=us-east-1 # S3_PUBLIC_URL=http://localhost:9001 # GraphQL API(默认关闭,启用后可通过 /api/v1/graphql 访问) # GRAPHQL_ENABLED=true # WebSocket 实时推送(默认关闭,启用后可通过 /api/v1/ws 连接) # WEBSOCKET_ENABLED=true # ── 内置模块开关 ────────────────────────────────────────── # 控制哪些内置 CMS 模块启用(false 则不注册对应路由和表) # BUILTIN_BLOG=true # BUILTIN_PAGES=true # BUILTIN_MEDIA=true # BUILTIN_FULLTEXT=true # BUILTIN_WORKFLOW=true # BUILTIN_TENANTABLE=false