[{"data":1,"prerenderedAt":925},["ShallowReactive",2],{"navigation":3,"docs-\u002Fdocs\u002Fguide\u002Fconfiguration":72,"surround-\u002Fdocs\u002Fguide\u002Fconfiguration":920},[4],{"title":5,"path":6,"stem":7,"children":8,"page":38},"Docs","\u002Fdocs","docs",[9,39],{"title":10,"path":11,"stem":12,"children":13,"page":38},"Guide","\u002Fdocs\u002Fguide","docs\u002F1.guide",[14,18,22,26,30,34],{"title":15,"path":16,"stem":17},"介绍","\u002Fdocs\u002Fguide\u002Fintroduction","docs\u002F1.guide\u002F1.introduction",{"title":19,"path":20,"stem":21},"快速开始","\u002Fdocs\u002Fguide\u002Fquick-start","docs\u002F1.guide\u002F2.quick-start",{"title":23,"path":24,"stem":25},"配置说明","\u002Fdocs\u002Fguide\u002Fconfiguration","docs\u002F1.guide\u002F3.configuration",{"title":27,"path":28,"stem":29},"存储配置","\u002Fdocs\u002Fguide\u002Fstorage","docs\u002F1.guide\u002F4.storage",{"title":31,"path":32,"stem":33},"生产部署","\u002Fdocs\u002Fguide\u002Fdeployment","docs\u002F1.guide\u002F5.deployment",{"title":35,"path":36,"stem":37},"第三方客户端","\u002Fdocs\u002Fguide\u002Fclients","docs\u002F1.guide\u002F6.clients",false,{"title":40,"path":41,"stem":42,"children":43,"page":38},"Api","\u002Fdocs\u002Fapi","docs\u002F2.api",[44,48,52,56,60,64,68],{"title":45,"path":46,"stem":47},"概述","\u002Fdocs\u002Fapi\u002Foverview","docs\u002F2.api\u002F1.overview",{"title":49,"path":50,"stem":51},"认证","\u002Fdocs\u002Fapi\u002Fauthentication","docs\u002F2.api\u002F2.authentication",{"title":53,"path":54,"stem":55},"文件上传","\u002Fdocs\u002Fapi\u002Fupload","docs\u002F2.api\u002F3.upload",{"title":57,"path":58,"stem":59},"文件管理","\u002Fdocs\u002Fapi\u002Ffiles","docs\u002F2.api\u002F4.files",{"title":61,"path":62,"stem":63},"相册","\u002Fdocs\u002Fapi\u002Falbums","docs\u002F2.api\u002F5.albums",{"title":65,"path":66,"stem":67},"API Token","\u002Fdocs\u002Fapi\u002Ftokens","docs\u002F2.api\u002F6.tokens",{"title":69,"path":70,"stem":71},"管理员 API","\u002Fdocs\u002Fapi\u002Fadmin","docs\u002F2.api\u002F7.admin",{"id":73,"title":23,"body":74,"description":914,"extension":915,"meta":916,"navigation":917,"path":24,"seo":918,"stem":25,"__hash__":919},"docs\u002Fdocs\u002F1.guide\u002F3.configuration.md",{"type":75,"value":76,"toc":894},"minimark",[77,81,103,109,113,254,259,263,298,301,324,328,351,354,364,367,419,422,581,583,631,634,682,699,702,707,829,835,839,865,874,877,890],[78,79,80],"p",{},"Kite 的配置体系分为两层：",[82,83,84,92],"ul",{},[85,86,87,91],"li",{},[88,89,90],"strong",{},"启动期","（环境变量）：进程启动所必需的最小配置，如监听地址、数据库连接。",[85,93,94,97,98,102],{},[88,95,96],{},"运行期","（数据库 ",[99,100,101],"code",{},"settings"," 表）：站点名称、上传限制、认证策略等可通过后台修改。",[78,104,105,106,108],{},"首次启动的 Web 向导会把必要的运行期配置写入 ",[99,107,101],{}," 表，后续可在「管理后台 → 系统设置」中随时修改。",[110,111,112],"h2",{"id":112},"环境变量",[114,115,116,132],"table",{},[117,118,119],"thead",{},[120,121,122,126,129],"tr",{},[123,124,125],"th",{},"变量",[123,127,128],{},"默认值",[123,130,131],{},"说明",[133,134,135,151,166,190,205,220,238],"tbody",{},[120,136,137,143,148],{},[138,139,140],"td",{},[99,141,142],{},"KITE_HOST",[138,144,145],{},[99,146,147],{},"0.0.0.0",[138,149,150],{},"HTTP 监听地址",[120,152,153,158,163],{},[138,154,155],{},[99,156,157],{},"KITE_PORT",[138,159,160],{},[99,161,162],{},"8080",[138,164,165],{},"HTTP 监听端口",[120,167,168,173,178],{},[138,169,170],{},[99,171,172],{},"KITE_DB_DRIVER",[138,174,175],{},[99,176,177],{},"sqlite",[138,179,180,181,183,184,183,187],{},"数据库驱动：",[99,182,177],{}," \u002F ",[99,185,186],{},"mysql",[99,188,189],{},"postgres",[120,191,192,197,202],{},[138,193,194],{},[99,195,196],{},"KITE_DSN",[138,198,199],{},[99,200,201],{},"data\u002Fkite.db",[138,203,204],{},"数据库连接串（格式随驱动不同）",[120,206,207,212,217],{},[138,208,209],{},[99,210,211],{},"KITE_SITE_URL",[138,213,214],{},[99,215,216],{},"http:\u002F\u002Flocalhost:8080",[138,218,219],{},"站点外部 URL，用于生成绝对链接",[120,221,222,227,232],{},[138,223,224],{},[99,225,226],{},"GIN_MODE",[138,228,229],{},[99,230,231],{},"debug",[138,233,234,235],{},"Gin 运行模式，生产环境建议 ",[99,236,237],{},"release",[120,239,240,245,248],{},[138,241,242],{},[99,243,244],{},"TZ",[138,246,247],{},"系统",[138,249,250,251],{},"容器内时区，如 ",[99,252,253],{},"Asia\u002FShanghai",[255,256,258],"h3",{"id":257},"数据库-dsn-示例","数据库 DSN 示例",[260,261,262],"h4",{"id":177},"SQLite",[264,265,270],"pre",{"className":266,"code":267,"language":268,"meta":269,"style":269},"language-bash shiki shiki-themes github-light github-dark","KITE_DB_DRIVER=sqlite\nKITE_DSN=\u002Fapp\u002Fdata\u002Fkite.db\n","bash","",[99,271,272,288],{"__ignoreMap":269},[273,274,277,280,284],"span",{"class":275,"line":276},"line",1,[273,278,172],{"class":279},"sVt8B",[273,281,283],{"class":282},"szBVR","=",[273,285,287],{"class":286},"sZZnC","sqlite\n",[273,289,291,293,295],{"class":275,"line":290},2,[273,292,196],{"class":279},[273,294,283],{"class":282},[273,296,297],{"class":286},"\u002Fapp\u002Fdata\u002Fkite.db\n",[260,299,300],{"id":186},"MySQL",[264,302,304],{"className":266,"code":303,"language":268,"meta":269,"style":269},"KITE_DB_DRIVER=mysql\nKITE_DSN=\"user:pass@tcp(127.0.0.1:3306)\u002Fkite?charset=utf8mb4&parseTime=True&loc=Local\"\n",[99,305,306,315],{"__ignoreMap":269},[273,307,308,310,312],{"class":275,"line":276},[273,309,172],{"class":279},[273,311,283],{"class":282},[273,313,314],{"class":286},"mysql\n",[273,316,317,319,321],{"class":275,"line":290},[273,318,196],{"class":279},[273,320,283],{"class":282},[273,322,323],{"class":286},"\"user:pass@tcp(127.0.0.1:3306)\u002Fkite?charset=utf8mb4&parseTime=True&loc=Local\"\n",[260,325,327],{"id":326},"postgresql","PostgreSQL",[264,329,331],{"className":266,"code":330,"language":268,"meta":269,"style":269},"KITE_DB_DRIVER=postgres\nKITE_DSN=\"host=127.0.0.1 user=postgres password=pass dbname=kite port=5432 sslmode=disable\"\n",[99,332,333,342],{"__ignoreMap":269},[273,334,335,337,339],{"class":275,"line":276},[273,336,172],{"class":279},[273,338,283],{"class":282},[273,340,341],{"class":286},"postgres\n",[273,343,344,346,348],{"class":275,"line":290},[273,345,196],{"class":279},[273,347,283],{"class":282},[273,349,350],{"class":286},"\"host=127.0.0.1 user=postgres password=pass dbname=kite port=5432 sslmode=disable\"\n",[110,352,353],{"id":353},"运行时配置",[78,355,356,357,359,360,363],{},"以下配置项存储在 ",[99,358,101],{}," 表，",[88,361,362],{},"不","通过环境变量设置，而是通过后台或 API 修改。",[255,365,366],{"id":366},"站点",[114,368,369,384],{},[117,370,371],{},[120,372,373,376,379,382],{},[123,374,375],{},"Key",[123,377,378],{},"类型",[123,380,381],{},"默认",[123,383,131],{},[133,385,386,404],{},[120,387,388,393,396,401],{},[138,389,390],{},[99,391,392],{},"site_name",[138,394,395],{},"string",[138,397,398],{},[99,399,400],{},"Kite",[138,402,403],{},"站点名称，用于页面标题",[120,405,406,411,413,416],{},[138,407,408],{},[99,409,410],{},"site_url",[138,412,395],{},[138,414,415],{},"—",[138,417,418],{},"站点 URL（生成绝对链接时使用）",[255,420,421],{"id":421},"上传",[114,423,424,436],{},[117,425,426],{},[120,427,428,430,432,434],{},[123,429,375],{},[123,431,378],{},[123,433,381],{},[123,435,131],{},[133,437,438,456,477,496,514,531,548,565],{},[120,439,440,445,448,453],{},[138,441,442],{},[99,443,444],{},"max_file_size",[138,446,447],{},"int",[138,449,450],{},[99,451,452],{},"104857600",[138,454,455],{},"单文件最大字节数（100 MB）",[120,457,458,463,467,470],{},[138,459,460],{},[99,461,462],{},"allowed_types",[138,464,395,465],{},[273,466],{},[138,468,469],{},"空",[138,471,472,473,476],{},"允许的 MIME 前缀，如 ",[99,474,475],{},"[\"image\u002F\", \"video\u002F\"]","，空表示不限",[120,478,479,484,488,493],{},[138,480,481],{},[99,482,483],{},"forbidden_exts",[138,485,395,486],{},[273,487],{},[138,489,490],{},[99,491,492],{},"[.exe,.bat,.cmd,.sh,.ps1]",[138,494,495],{},"禁止的扩展名",[120,497,498,503,506,511],{},[138,499,500],{},[99,501,502],{},"auto_webp",[138,504,505],{},"bool",[138,507,508],{},[99,509,510],{},"false",[138,512,513],{},"图片是否自动转为 WebP",[120,515,516,521,523,528],{},[138,517,518],{},[99,519,520],{},"thumb_width",[138,522,447],{},[138,524,525],{},[99,526,527],{},"300",[138,529,530],{},"缩略图宽度（像素）",[120,532,533,538,540,545],{},[138,534,535],{},[99,536,537],{},"thumb_quality",[138,539,447],{},[138,541,542],{},[99,543,544],{},"80",[138,546,547],{},"缩略图质量（1-100）",[120,549,550,555,557,562],{},[138,551,552],{},[99,553,554],{},"path_pattern",[138,556,395],{},[138,558,559],{},[99,560,561],{},"{year}\u002F{month}\u002F{md5_8}\u002F{uuid}.{ext}",[138,563,564],{},"存储路径模板",[120,566,567,572,574,578],{},[138,568,569],{},[99,570,571],{},"allow_duplicate",[138,573,505],{},[138,575,576],{},[99,577,510],{},[138,579,580],{},"是否允许相同 MD5 的重复文件",[255,582,49],{"id":49},[114,584,585,597],{},[117,586,587],{},[120,588,589,591,593,595],{},[123,590,375],{},[123,592,378],{},[123,594,381],{},[123,596,131],{},[133,598,599,614],{},[120,600,601,606,608,611],{},[138,602,603],{},[99,604,605],{},"jwt_secret",[138,607,395],{},[138,609,610],{},"自动生成",[138,612,613],{},"JWT 签名密钥（32 字节随机 hex）",[120,615,616,621,623,628],{},[138,617,618],{},[99,619,620],{},"allow_registration",[138,622,505],{},[138,624,625],{},[99,626,627],{},"true",[138,629,630],{},"是否允许用户自助注册",[255,632,633],{"id":633},"公开能力",[114,635,636,648],{},[117,637,638],{},[120,639,640,642,644,646],{},[123,641,375],{},[123,643,378],{},[123,645,381],{},[123,647,131],{},[133,649,650,666],{},[120,651,652,657,659,663],{},[138,653,654],{},[99,655,656],{},"allow_guest_upload",[138,658,505],{},[138,660,661],{},[99,662,510],{},[138,664,665],{},"是否允许游客（未登录）上传",[120,667,668,673,675,679],{},[138,669,670],{},[99,671,672],{},"allow_public_gallery",[138,674,505],{},[138,676,677],{},[99,678,510],{},[138,680,681],{},"是否开启探索广场",[683,684,685],"tip",{},[78,686,687,688,690,691,694,695,698],{},"开启 ",[99,689,656],{}," 前务必确认已配置好",[88,692,693],{},"速率限制","和",[88,696,697],{},"存储配额","，避免被滥用。游客上传接口的速率限制为每分钟 10 次（IP 维度）。",[110,700,701],{"id":701},"路径模板语法",[78,703,704,706],{},[99,705,554],{}," 用于决定文件在存储后端中的 key 结构，支持以下占位符：",[114,708,709,722],{},[117,710,711],{},[120,712,713,716,719],{},[123,714,715],{},"占位符",[123,717,718],{},"含义",[123,720,721],{},"示例",[133,723,724,739,754,769,784,799,814],{},[120,725,726,731,734],{},[138,727,728],{},[99,729,730],{},"{year}",[138,732,733],{},"年份",[138,735,736],{},[99,737,738],{},"2026",[120,740,741,746,749],{},[138,742,743],{},[99,744,745],{},"{month}",[138,747,748],{},"月份（补零）",[138,750,751],{},[99,752,753],{},"04",[120,755,756,761,764],{},[138,757,758],{},[99,759,760],{},"{day}",[138,762,763],{},"日期（补零）",[138,765,766],{},[99,767,768],{},"17",[120,770,771,776,779],{},[138,772,773],{},[99,774,775],{},"{md5_8}",[138,777,778],{},"MD5 前 8 位",[138,780,781],{},[99,782,783],{},"a1b2c3d4",[120,785,786,791,794],{},[138,787,788],{},[99,789,790],{},"{md5}",[138,792,793],{},"完整 MD5",[138,795,796],{},[99,797,798],{},"a1b2…32 位",[120,800,801,806,809],{},[138,802,803],{},[99,804,805],{},"{uuid}",[138,807,808],{},"随机 UUID",[138,810,811],{},[99,812,813],{},"f7c…",[120,815,816,821,824],{},[138,817,818],{},[99,819,820],{},"{ext}",[138,822,823],{},"文件扩展名（不含点）",[138,825,826],{},[99,827,828],{},"jpg",[78,830,831,832,834],{},"默认模板 ",[99,833,561],{}," 能很好地平衡目录均衡分布与可读性。",[110,836,838],{"id":837},"默认账号与-jwt-密钥","默认账号与 JWT 密钥",[82,840,841,855],{},[85,842,843,846,847,850,851,854],{},[88,844,845],{},"默认管理员","（",[99,848,849],{},"admin\u002Fadmin","）仅在",[88,852,853],{},"用户表为空","时创建。手动删除后不会重建。",[85,856,857,860,861,864],{},[88,858,859],{},"JWT 密钥","仅在 ",[99,862,863],{},"settings.jwt_secret"," 不存在时生成；生产环境可通过管理后台轮换。",[866,867,868],"warning",{},[78,869,870,873],{},[88,871,872],{},"不要","在多实例部署中各自生成密钥。若多实例共享数据库，首个启动的实例写入密钥后，其他实例会自动加载同一密钥。",[110,875,876],{"id":876},"下一步",[82,878,879,885],{},[85,880,881,884],{},[882,883,27],"a",{"href":28}," · 接入 S3 兼容存储",[85,886,887,889],{},[882,888,31],{"href":32}," · Nginx 反向代理与 HTTPS",[891,892,893],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":269,"searchDepth":895,"depth":895,"links":896},3,[897,905,911,912,913],{"id":112,"depth":290,"text":112,"children":898},[899],{"id":257,"depth":895,"text":258,"children":900},[901,903,904],{"id":177,"depth":902,"text":262},4,{"id":186,"depth":902,"text":300},{"id":326,"depth":902,"text":327},{"id":353,"depth":290,"text":353,"children":906},[907,908,909,910],{"id":366,"depth":895,"text":366},{"id":421,"depth":895,"text":421},{"id":49,"depth":895,"text":49},{"id":633,"depth":895,"text":633},{"id":701,"depth":290,"text":701},{"id":837,"depth":290,"text":838},{"id":876,"depth":290,"text":876},"Kite 采用「少量环境变量 + 数据库运行时配置」的双层配置体系。","md",{},{"title":23},{"title":23,"description":914},"AbX2d3GOEhiyNoB8cXuFoD7y3O-CLcFuEKHXKV0tO3o",[921,923],{"title":19,"path":20,"stem":21,"description":922,"children":-1},"5 分钟启动你的第一个 Kite 实例，完成首次登录与初始化。",{"title":27,"path":28,"stem":29,"description":924,"children":-1},"本地磁盘与 S3 兼容存储的接入方法，包含阿里云 OSS、腾讯云 COS、Cloudflare R2、MinIO。",1776443820141]