[{"data":1,"prerenderedAt":691},["ShallowReactive",2],{"navigation":3,"docs-\u002Fdocs\u002Fguide\u002Fquick-start":72,"surround-\u002Fdocs\u002Fguide\u002Fquick-start":686},[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":19,"body":74,"description":680,"extension":681,"meta":682,"navigation":683,"path":20,"seo":684,"stem":21,"__hash__":685},"docs\u002Fdocs\u002F1.guide\u002F2.quick-start.md",{"type":75,"value":76,"toc":669},"minimark",[77,90,95,98,177,187,200,205,212,340,343,361,364,373,433,444,447,450,490,497,500,503,565,589,592,598,618,621,624,635,645,648,665],[78,79,80,81,85,86,89],"p",{},"本章介绍启动 Kite 最快的两种方式：",[82,83,84],"strong",{},"Docker"," 与",[82,87,88],{},"二进制","。选择任意一种后，打开浏览器即可完成初始化。",[91,92,94],"h2",{"id":93},"通过-docker-启动","通过 Docker 启动",[78,96,97],{},"这是推荐的启动方式，适合大部分生产与体验场景。",[99,100,105],"pre",{"className":101,"code":102,"language":103,"meta":104,"style":104},"language-bash shiki shiki-themes github-light github-dark","docker run -d \\\n  --name kite \\\n  -p 8080:8080 \\\n  -v $(pwd)\u002Fdata:\u002Fapp\u002Fdata \\\n  amigoer\u002Fkite:latest\n","bash","",[106,107,108,128,139,150,171],"code",{"__ignoreMap":104},[109,110,113,117,121,125],"span",{"class":111,"line":112},"line",1,[109,114,116],{"class":115},"sScJk","docker",[109,118,120],{"class":119},"sZZnC"," run",[109,122,124],{"class":123},"sj4cs"," -d",[109,126,127],{"class":123}," \\\n",[109,129,131,134,137],{"class":111,"line":130},2,[109,132,133],{"class":123},"  --name",[109,135,136],{"class":119}," kite",[109,138,127],{"class":123},[109,140,142,145,148],{"class":111,"line":141},3,[109,143,144],{"class":123},"  -p",[109,146,147],{"class":119}," 8080:8080",[109,149,127],{"class":123},[109,151,153,156,160,163,166,169],{"class":111,"line":152},4,[109,154,155],{"class":123},"  -v",[109,157,159],{"class":158},"sVt8B"," $(",[109,161,162],{"class":123},"pwd",[109,164,165],{"class":158},")",[109,167,168],{"class":119},"\u002Fdata:\u002Fapp\u002Fdata",[109,170,127],{"class":123},[109,172,174],{"class":111,"line":173},5,[109,175,176],{"class":119},"  amigoer\u002Fkite:latest\n",[78,178,179,180,186],{},"启动后访问 ",[181,182,183],"a",{"href":183,"rel":184},"http:\u002F\u002Flocalhost:8080",[185],"nofollow"," 即可进入 Kite。",[188,189,190],"note",{},[78,191,192,195,196,199],{},[106,193,194],{},"-v $(pwd)\u002Fdata:\u002Fapp\u002Fdata"," 将数据目录挂载到宿主机，包含 SQLite 数据库和本地上传的文件。",[82,197,198],{},"请务必持久化此目录","，否则容器重建会丢失所有数据。",[201,202,204],"h3",{"id":203},"使用-docker-compose","使用 Docker Compose",[78,206,207,208,211],{},"项目仓库的 ",[106,209,210],{},"deploy\u002Fdocker-compose.yml"," 已提供了完整的 Kite + Nginx 组合：",[99,213,217],{"className":214,"code":215,"language":216,"meta":104,"style":104},"language-yaml shiki shiki-themes github-light github-dark","services:\n  kite:\n    image: amigoer\u002Fkite:latest\n    restart: unless-stopped\n    expose:\n      - \"8080\"\n    environment:\n      KITE_SITE_URL: https:\u002F\u002Fyour-domain.com\n      KITE_DB_DRIVER: sqlite\n      KITE_DSN: \u002Fapp\u002Fdata\u002Fkite.db\n      TZ: Asia\u002FShanghai\n    volumes:\n      - .\u002Fdata:\u002Fapp\u002Fdata\n","yaml",[106,218,219,228,235,246,256,263,272,280,291,302,313,324,332],{"__ignoreMap":104},[109,220,221,225],{"class":111,"line":112},[109,222,224],{"class":223},"s9eBZ","services",[109,226,227],{"class":158},":\n",[109,229,230,233],{"class":111,"line":130},[109,231,232],{"class":223},"  kite",[109,234,227],{"class":158},[109,236,237,240,243],{"class":111,"line":141},[109,238,239],{"class":223},"    image",[109,241,242],{"class":158},": ",[109,244,245],{"class":119},"amigoer\u002Fkite:latest\n",[109,247,248,251,253],{"class":111,"line":152},[109,249,250],{"class":223},"    restart",[109,252,242],{"class":158},[109,254,255],{"class":119},"unless-stopped\n",[109,257,258,261],{"class":111,"line":173},[109,259,260],{"class":223},"    expose",[109,262,227],{"class":158},[109,264,266,269],{"class":111,"line":265},6,[109,267,268],{"class":158},"      - ",[109,270,271],{"class":119},"\"8080\"\n",[109,273,275,278],{"class":111,"line":274},7,[109,276,277],{"class":223},"    environment",[109,279,227],{"class":158},[109,281,283,286,288],{"class":111,"line":282},8,[109,284,285],{"class":223},"      KITE_SITE_URL",[109,287,242],{"class":158},[109,289,290],{"class":119},"https:\u002F\u002Fyour-domain.com\n",[109,292,294,297,299],{"class":111,"line":293},9,[109,295,296],{"class":223},"      KITE_DB_DRIVER",[109,298,242],{"class":158},[109,300,301],{"class":119},"sqlite\n",[109,303,305,308,310],{"class":111,"line":304},10,[109,306,307],{"class":223},"      KITE_DSN",[109,309,242],{"class":158},[109,311,312],{"class":119},"\u002Fapp\u002Fdata\u002Fkite.db\n",[109,314,316,319,321],{"class":111,"line":315},11,[109,317,318],{"class":223},"      TZ",[109,320,242],{"class":158},[109,322,323],{"class":119},"Asia\u002FShanghai\n",[109,325,327,330],{"class":111,"line":326},12,[109,328,329],{"class":223},"    volumes",[109,331,227],{"class":158},[109,333,335,337],{"class":111,"line":334},13,[109,336,268],{"class":158},[109,338,339],{"class":119},".\u002Fdata:\u002Fapp\u002Fdata\n",[78,341,342],{},"执行：",[99,344,346],{"className":101,"code":345,"language":103,"meta":104,"style":104},"docker compose up -d\n",[106,347,348],{"__ignoreMap":104},[109,349,350,352,355,358],{"class":111,"line":112},[109,351,116],{"class":115},[109,353,354],{"class":119}," compose",[109,356,357],{"class":119}," up",[109,359,360],{"class":123}," -d\n",[91,362,363],{"id":363},"通过二进制启动",[78,365,366,367,372],{},"从 ",[181,368,371],{"href":369,"rel":370},"https:\u002F\u002Fgithub.com\u002Famigoer\u002Fkite\u002Freleases",[185],"GitHub Releases"," 下载对应平台的压缩包：",[99,374,376],{"className":101,"code":375,"language":103,"meta":104,"style":104},"# Linux amd64 示例\ncurl -LO https:\u002F\u002Fgithub.com\u002Famigoer\u002Fkite\u002Freleases\u002Flatest\u002Fdownload\u002Fkite-linux-amd64.tar.gz\ntar -xzf kite-linux-amd64.tar.gz\nchmod +x kite\n\n# 启动\n.\u002Fkite\n",[106,377,378,384,395,406,417,423,428],{"__ignoreMap":104},[109,379,380],{"class":111,"line":112},[109,381,383],{"class":382},"sJ8bj","# Linux amd64 示例\n",[109,385,386,389,392],{"class":111,"line":130},[109,387,388],{"class":115},"curl",[109,390,391],{"class":123}," -LO",[109,393,394],{"class":119}," https:\u002F\u002Fgithub.com\u002Famigoer\u002Fkite\u002Freleases\u002Flatest\u002Fdownload\u002Fkite-linux-amd64.tar.gz\n",[109,396,397,400,403],{"class":111,"line":141},[109,398,399],{"class":115},"tar",[109,401,402],{"class":123}," -xzf",[109,404,405],{"class":119}," kite-linux-amd64.tar.gz\n",[109,407,408,411,414],{"class":111,"line":152},[109,409,410],{"class":115},"chmod",[109,412,413],{"class":119}," +x",[109,415,416],{"class":119}," kite\n",[109,418,419],{"class":111,"line":173},[109,420,422],{"emptyLinePlaceholder":421},true,"\n",[109,424,425],{"class":111,"line":265},[109,426,427],{"class":382},"# 启动\n",[109,429,430],{"class":111,"line":274},[109,431,432],{"class":115},".\u002Fkite\n",[78,434,435,436,439,440,443],{},"默认监听 ",[106,437,438],{},"0.0.0.0:8080","，数据库位于当前目录下的 ",[106,441,442],{},"data\u002Fkite.db","。",[91,445,446],{"id":446},"从源码构建",[78,448,449],{},"若希望自行构建，需要安装 Go 1.25+ 与 Node.js 22+：",[99,451,453],{"className":101,"code":452,"language":103,"meta":104,"style":104},"git clone https:\u002F\u002Fgithub.com\u002Famigoer\u002Fkite.git\ncd kite\n\n# 一条命令完成前端构建 + Go 编译 + 运行\nmake run\n",[106,454,455,466,473,477,482],{"__ignoreMap":104},[109,456,457,460,463],{"class":111,"line":112},[109,458,459],{"class":115},"git",[109,461,462],{"class":119}," clone",[109,464,465],{"class":119}," https:\u002F\u002Fgithub.com\u002Famigoer\u002Fkite.git\n",[109,467,468,471],{"class":111,"line":130},[109,469,470],{"class":123},"cd",[109,472,416],{"class":119},[109,474,475],{"class":111,"line":141},[109,476,422],{"emptyLinePlaceholder":421},[109,478,479],{"class":111,"line":152},[109,480,481],{"class":382},"# 一条命令完成前端构建 + Go 编译 + 运行\n",[109,483,484,487],{"class":111,"line":173},[109,485,486],{"class":115},"make",[109,488,489],{"class":119}," run\n",[78,491,492,493,496],{},"构建产物位于 ",[106,494,495],{},"build\u002Fkite","，前端资源已内嵌。",[91,498,499],{"id":499},"首次启动",[78,501,502],{},"Kite 首次启动会自动完成以下动作：",[504,505,506,517,523,533,542],"ol",{},[507,508,509,512,513,516],"li",{},[82,510,511],{},"创建数据目录","：若 ",[106,514,515],{},"KITE_DSN"," 指向的目录不存在，自动创建。",[507,518,519,522],{},[82,520,521],{},"自动迁移数据库","：使用 GORM 创建表结构。",[507,524,525,528,529,532],{},[82,526,527],{},"生成 JWT 密钥","：生成 32 字节随机密钥并持久化到 ",[106,530,531],{},"settings"," 表。",[507,534,535,538,539,443],{},[82,536,537],{},"创建默认本地存储","：路径为 ",[106,540,541],{},"data\u002Fuploads",[507,543,544,547,548],{},[82,545,546],{},"创建默认管理员账号","：\n",[549,550,551,557,562],"ul",{},[507,552,553,554],{},"用户名 ",[106,555,556],{},"admin",[507,558,559,560],{},"密码 ",[106,561,556],{},[507,563,564],{},"标记为「首次登录必须重置」",[566,567,568,575,583],"warning",{},[78,569,570,571,574],{},"默认账号",[82,572,573],{},"仅用于首次登录","，启动日志中会打印如下警示：",[99,576,581],{"className":577,"code":579,"language":580},[578],"language-text","⚠️  Default admin account created with WEAK credentials:\n      Username: admin\n      Password: admin\n  You MUST change the username and password on first login.\n  Do NOT expose this server to the public internet until you\n  have completed the first-login reset.\n","text",[106,582,579],{"__ignoreMap":104},[78,584,585,588],{},[82,586,587],{},"请勿","在完成首次重置前将实例暴露到公网。",[91,590,591],{"id":591},"完成首次登录",[78,593,594,595,597],{},"浏览器访问 ",[106,596,183],{},"，点击「登录」：",[504,599,600,609,612,615],{},[507,601,602,603,605,606,608],{},"使用 ",[106,604,556],{}," \u002F ",[106,607,556],{}," 登录",[507,610,611],{},"系统会强制跳转到「重置账号」页面",[507,613,614],{},"设置新的用户名、邮箱和密码",[507,616,617],{},"重置完成后自动登录到管理后台",[91,619,620],{"id":620},"上传第一张图片",[78,622,623],{},"进入后台后：",[504,625,626,629,632],{},[507,627,628],{},"点击左侧「文件」→「上传」",[507,630,631],{},"拖拽或选择文件上传",[507,633,634],{},"上传成功后复制链接，即可在任意位置引用",[78,636,637,638,641,642,443],{},"也可以通过 ",[181,639,640],{"href":54},"API"," 或 PicGo 等客户端上传，详见",[181,643,644],{"href":36},"第三方客户端对接",[91,646,647],{"id":647},"下一步",[549,649,650,655,660],{},[507,651,652,654],{},[181,653,23],{"href":24}," · 环境变量与运行时设置",[507,656,657,659],{},[181,658,27],{"href":28}," · 接入 S3 兼容存储",[507,661,662,664],{},[181,663,31],{"href":32}," · Nginx \u002F HTTPS \u002F 反向代理",[666,667,668],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":104,"searchDepth":141,"depth":141,"links":670},[671,674,675,676,677,678,679],{"id":93,"depth":130,"text":94,"children":672},[673],{"id":203,"depth":141,"text":204},{"id":363,"depth":130,"text":363},{"id":446,"depth":130,"text":446},{"id":499,"depth":130,"text":499},{"id":591,"depth":130,"text":591},{"id":620,"depth":130,"text":620},{"id":647,"depth":130,"text":647},"5 分钟启动你的第一个 Kite 实例，完成首次登录与初始化。","md",{},{"title":19},{"title":19,"description":680},"G10fdmBcoMTzOSmHbPm6Nh75hm3uPddvSG2nY03RBg8",[687,689],{"title":15,"path":16,"stem":17,"description":688,"children":-1},"Kite 是一个轻量、快速、现代化的静态资源托管平台，支持图片、音视频和任意静态文件。",{"title":23,"path":24,"stem":25,"description":690,"children":-1},"Kite 采用「少量环境变量 + 数据库运行时配置」的双层配置体系。",1776443820140]