DATABASE_URL=postgres://postgres:postgres@localhost:5432/yggdrasil RUST_LOG=info # Rate Limit — 严格限流(登录、注册) RATE_LIMIT_STRICT_PER_SEC=1 RATE_LIMIT_STRICT_BURST=5 # Rate Limit — 上传限流(图片上传) RATE_LIMIT_UPLOAD_PER_SEC=2 RATE_LIMIT_UPLOAD_BURST=15 # Rate Limit — 图片访问限流(/uploads/*) RATE_LIMIT_IMAGE_PER_SEC=10 RATE_LIMIT_IMAGE_BURST=50 # Rate Limit — 评论限流(POST 评论) RATE_LIMIT_COMMENT_PER_SEC=1 RATE_LIMIT_COMMENT_BURST=5 # Rate Limit — 宽松桶:无法识别真实客户端 IP("unknown")时使用。 # 当未配置可信代理(TRUSTED_PROXY_COUNT=0)时,Dioxus server function 拿不到 TCP # 对端地址,请求会落到这个桶,因此阈值更高以免误杀正常用户。 RATE_LIMIT_UNKNOWN_PER_SEC=30 RATE_LIMIT_UNKNOWN_BURST=100 # Security 安全相关 # 写请求(POST/PUT/PATCH/DELETE)CSRF 校验的可信来源。 # 生产环境设为你的源站,例如 https://your-domain.example。 # 不设:回退到请求的 Host 头 + X-Forwarded-Proto(在反向代理后生效)。 APP_BASE_URL= # 设为 true/1/yes 给会话 cookie 加上 Secure 标志(HTTPS 生产环境启用)。 COOKIE_SECURE=false # 应用前方的反向代理层数;用于从 X-Forwarded-For 中提取真实客户端 IP。 # 直接对外服务时为 0;经过一层代理(如 nginx/Caddy)时为 1。 TRUSTED_PROXY_COUNT=0 # 单条查询的超时秒数;慢查询会被取消以保护连接池。 STATEMENT_TIMEOUT_SECS=30 # WebP 编码配置 # 质量:0.0(最小体积)到 100.0(最佳质量),默认 85.0 WEBP_QUALITY=85.0 # 方法:0(最快)到 6(最佳质量),默认 2 WEBP_METHOD=2 # 每用户最大并发会话数(默认 5,最小 1) MAX_SESSIONS_PER_USER=5 # 数据库连接池大小(默认 20) DB_POOL_SIZE=20 # 启动时数据库连接重试窗口,单位秒(默认 30)。 # 服务器在启动期间等待 PostgreSQL 可达的最长时间,超时则放弃。 # 适用于 DB 启动比 app 慢的场景(docker-compose 无 healthcheck、本机冷启动 Postgres 等)。 # 仅影响启动;运行时连接重试走独立的快速失败策略,以避免级联故障。 MIGRATE_STARTUP_TIMEOUT_SECS=30 # SSR 页面缓存时长,单位秒(默认 3600)。 # src/ssr_cache.rs 维护了一个全局 generation 计数器,每次文章写入时自增, # 但 Dioxus 0.7 暴露的 API 无法把它接入增量 SSR 缓存的 key。在该 API 可用前, # 此 TTL 是唯一有效的 SSR 缓存失效手段。 SSR_CACHE_SECS=3600 # HTTP 响应压缩算法。 # 逗号分隔,大小写不敏感。支持:gzip、brotli(或 br)、deflate、zstd。 # 用 "all" 启用全部(不设时的默认);用 "none" 或 "off" 关闭。 COMPRESSION_ALGORITHMS=gzip,brotli,deflate,zstd # 图片响应的缓存头(硬编码默认值) # 上传的原始图片资源以 Cache-Control: public, max-age=31536000, immutable 提供。 # 处理变体(?w=、?format= 等)缓存 24 小时。 # 要使已缓存的原始上传失效,请更改其文件路径。 # 要刷新某个处理变体,请更改其处理参数。 # 图片磁盘缓存上限 # 最大总容量,单位 MB(默认 1024) IMAGE_DISK_CACHE_MAX_MB=1024 # 文件被强制删除前的最大存在时长,单位小时(默认 168,即 7 天) IMAGE_DISK_CACHE_MAX_AGE_HOURS=168