配置说明
Kite 采用「少量环境变量 + 数据库运行时配置」的双层配置体系。
Kite 的配置体系分为两层:
- 启动期(环境变量):进程启动所必需的最小配置,如监听地址、数据库连接。
- 运行期(数据库
settings表):站点名称、上传限制、认证策略等可通过后台修改。
首次启动的 Web 向导会把必要的运行期配置写入 settings 表,后续可在「管理后台 → 系统设置」中随时修改。
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
KITE_HOST | 0.0.0.0 | HTTP 监听地址 |
KITE_PORT | 8080 | HTTP 监听端口 |
KITE_DB_DRIVER | sqlite | 数据库驱动:sqlite / mysql / postgres |
KITE_DSN | data/kite.db | 数据库连接串(格式随驱动不同) |
KITE_SITE_URL | http://localhost:8080 | 站点外部 URL,用于生成绝对链接 |
GIN_MODE | debug | Gin 运行模式,生产环境建议 release |
TZ | 系统 | 容器内时区,如 Asia/Shanghai |
数据库 DSN 示例
SQLite
KITE_DB_DRIVER=sqlite
KITE_DSN=/app/data/kite.db
MySQL
KITE_DB_DRIVER=mysql
KITE_DSN="user:pass@tcp(127.0.0.1:3306)/kite?charset=utf8mb4&parseTime=True&loc=Local"
PostgreSQL
KITE_DB_DRIVER=postgres
KITE_DSN="host=127.0.0.1 user=postgres password=pass dbname=kite port=5432 sslmode=disable"
运行时配置
以下配置项存储在 settings 表,不通过环境变量设置,而是通过后台或 API 修改。
站点
| Key | 类型 | 默认 | 说明 |
|---|---|---|---|
site_name | string | Kite | 站点名称,用于页面标题 |
site_url | string | — | 站点 URL(生成绝对链接时使用) |
上传
| Key | 类型 | 默认 | 说明 |
|---|---|---|---|
max_file_size | int | 104857600 | 单文件最大字节数(100 MB) |
allowed_types | string | 空 | 允许的 MIME 前缀,如 ["image/", "video/"],空表示不限 |
forbidden_exts | string | [.exe,.bat,.cmd,.sh,.ps1] | 禁止的扩展名 |
auto_webp | bool | false | 图片是否自动转为 WebP |
thumb_width | int | 300 | 缩略图宽度(像素) |
thumb_quality | int | 80 | 缩略图质量(1-100) |
path_pattern | string | {year}/{month}/{md5_8}/{uuid}.{ext} | 存储路径模板 |
allow_duplicate | bool | false | 是否允许相同 MD5 的重复文件 |
认证
| Key | 类型 | 默认 | 说明 |
|---|---|---|---|
jwt_secret | string | 自动生成 | JWT 签名密钥(32 字节随机 hex) |
allow_registration | bool | true | 是否允许用户自助注册 |
公开能力
| Key | 类型 | 默认 | 说明 |
|---|---|---|---|
allow_guest_upload | bool | false | 是否允许游客(未登录)上传 |
allow_public_gallery | bool | false | 是否开启探索广场 |
建议
开启 allow_guest_upload 前务必确认已配置好速率限制和存储配额,避免被滥用。游客上传接口的速率限制为每分钟 10 次(IP 维度)。
路径模板语法
path_pattern 用于决定文件在存储后端中的 key 结构,支持以下占位符:
| 占位符 | 含义 | 示例 |
|---|---|---|
{year} | 年份 | 2026 |
{month} | 月份(补零) | 04 |
{day} | 日期(补零) | 17 |
{md5_8} | MD5 前 8 位 | a1b2c3d4 |
{md5} | 完整 MD5 | a1b2…32 位 |
{uuid} | 随机 UUID | f7c… |
{ext} | 文件扩展名(不含点) | jpg |
默认模板 {year}/{month}/{md5_8}/{uuid}.{ext} 能很好地平衡目录均衡分布与可读性。
默认账号与 JWT 密钥
- 默认管理员(
admin/admin)仅在用户表为空时创建。手动删除后不会重建。 - JWT 密钥仅在
settings.jwt_secret不存在时生成;生产环境可通过管理后台轮换。
注意
不要在多实例部署中各自生成密钥。若多实例共享数据库,首个启动的实例写入密钥后,其他实例会自动加载同一密钥。