shipfe 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/bin/shipfe +0 -0
  2. package/package.json +5 -1
  3. package/.github/workflows/deploy.yml +0 -46
  4. package/.github/workflows/release.yml +0 -51
  5. package/.vscode/settings.json +0 -5
  6. package/README_CN.md +0 -41
  7. package/docs/.vitepress/cache/deps/@theme_index.js +0 -275
  8. package/docs/.vitepress/cache/deps/@theme_index.js.map +0 -7
  9. package/docs/.vitepress/cache/deps/_metadata.json +0 -40
  10. package/docs/.vitepress/cache/deps/chunk-BRNHR3LR.js +0 -9719
  11. package/docs/.vitepress/cache/deps/chunk-BRNHR3LR.js.map +0 -7
  12. package/docs/.vitepress/cache/deps/chunk-H6MPEGKE.js +0 -12877
  13. package/docs/.vitepress/cache/deps/chunk-H6MPEGKE.js.map +0 -7
  14. package/docs/.vitepress/cache/deps/package.json +0 -3
  15. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
  16. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  17. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -583
  18. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  19. package/docs/.vitepress/cache/deps/vue.js +0 -347
  20. package/docs/.vitepress/cache/deps/vue.js.map +0 -7
  21. package/docs/.vitepress/config.ts +0 -120
  22. package/docs/.vitepress/dist/404.html +0 -22
  23. package/docs/.vitepress/dist/assets/app.DZUgfPE2.js +0 -1
  24. package/docs/.vitepress/dist/assets/chunks/framework.BeaujayP.js +0 -19
  25. package/docs/.vitepress/dist/assets/chunks/theme.CNyaCki0.js +0 -1
  26. package/docs/.vitepress/dist/assets/commands_deploy.md.cybIRa1n.js +0 -17
  27. package/docs/.vitepress/dist/assets/commands_deploy.md.cybIRa1n.lean.js +0 -1
  28. package/docs/.vitepress/dist/assets/commands_init.md.Da652so5.js +0 -2
  29. package/docs/.vitepress/dist/assets/commands_init.md.Da652so5.lean.js +0 -1
  30. package/docs/.vitepress/dist/assets/commands_rollback.md.C0zKmFtz.js +0 -7
  31. package/docs/.vitepress/dist/assets/commands_rollback.md.C0zKmFtz.lean.js +0 -1
  32. package/docs/.vitepress/dist/assets/config_auth.md.hvDhtWY8.js +0 -56
  33. package/docs/.vitepress/dist/assets/config_auth.md.hvDhtWY8.lean.js +0 -1
  34. package/docs/.vitepress/dist/assets/config_overview.md.DAQclMJL.js +0 -34
  35. package/docs/.vitepress/dist/assets/config_overview.md.DAQclMJL.lean.js +0 -1
  36. package/docs/.vitepress/dist/assets/config_schema.md.Bv5TuD6E.js +0 -1
  37. package/docs/.vitepress/dist/assets/config_schema.md.Bv5TuD6E.lean.js +0 -1
  38. package/docs/.vitepress/dist/assets/config_sub-env.md.DSUt0Nyq.js +0 -26
  39. package/docs/.vitepress/dist/assets/config_sub-env.md.DSUt0Nyq.lean.js +0 -1
  40. package/docs/.vitepress/dist/assets/features_atomic.md.Cszqfb8O.js +0 -22
  41. package/docs/.vitepress/dist/assets/features_atomic.md.Cszqfb8O.lean.js +0 -1
  42. package/docs/.vitepress/dist/assets/features_cleanup.md.D1j3LEm1.js +0 -20
  43. package/docs/.vitepress/dist/assets/features_cleanup.md.D1j3LEm1.lean.js +0 -1
  44. package/docs/.vitepress/dist/assets/features_shared-assets.md.ChpQD81r.js +0 -26
  45. package/docs/.vitepress/dist/assets/features_shared-assets.md.ChpQD81r.lean.js +0 -1
  46. package/docs/.vitepress/dist/assets/features_snapshot.md.Bddk9nNL.js +0 -24
  47. package/docs/.vitepress/dist/assets/features_snapshot.md.Bddk9nNL.lean.js +0 -1
  48. package/docs/.vitepress/dist/assets/index.md.DqmDY2QI.js +0 -1
  49. package/docs/.vitepress/dist/assets/index.md.DqmDY2QI.lean.js +0 -1
  50. package/docs/.vitepress/dist/assets/install.md.CblrJsha.js +0 -1
  51. package/docs/.vitepress/dist/assets/install.md.CblrJsha.lean.js +0 -1
  52. package/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  53. package/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  54. package/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  55. package/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  56. package/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  57. package/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  58. package/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  59. package/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  60. package/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  61. package/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  62. package/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  63. package/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  64. package/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  65. package/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  66. package/docs/.vitepress/dist/assets/license.md.hVRT8__d.js +0 -1
  67. package/docs/.vitepress/dist/assets/license.md.hVRT8__d.lean.js +0 -1
  68. package/docs/.vitepress/dist/assets/quick-start.md.C06xD920.js +0 -23
  69. package/docs/.vitepress/dist/assets/quick-start.md.C06xD920.lean.js +0 -1
  70. package/docs/.vitepress/dist/assets/style.DES0mfMn.css +0 -1
  71. package/docs/.vitepress/dist/assets/troubleshooting.md.DLP5r-7N.js +0 -1
  72. package/docs/.vitepress/dist/assets/troubleshooting.md.DLP5r-7N.lean.js +0 -1
  73. package/docs/.vitepress/dist/assets/zh_commands_deploy.md.BbKuBIij.js +0 -9
  74. package/docs/.vitepress/dist/assets/zh_commands_deploy.md.BbKuBIij.lean.js +0 -1
  75. package/docs/.vitepress/dist/assets/zh_commands_init.md.Dc_WYD8D.js +0 -18
  76. package/docs/.vitepress/dist/assets/zh_commands_init.md.Dc_WYD8D.lean.js +0 -1
  77. package/docs/.vitepress/dist/assets/zh_commands_rollback.md.Cdvwk1lB.js +0 -6
  78. package/docs/.vitepress/dist/assets/zh_commands_rollback.md.Cdvwk1lB.lean.js +0 -1
  79. package/docs/.vitepress/dist/assets/zh_config_auth.md.BytNcdS4.js +0 -44
  80. package/docs/.vitepress/dist/assets/zh_config_auth.md.BytNcdS4.lean.js +0 -1
  81. package/docs/.vitepress/dist/assets/zh_config_overview.md.CvAKxlb5.js +0 -45
  82. package/docs/.vitepress/dist/assets/zh_config_overview.md.CvAKxlb5.lean.js +0 -1
  83. package/docs/.vitepress/dist/assets/zh_config_schema.md.CTCn0g9X.js +0 -67
  84. package/docs/.vitepress/dist/assets/zh_config_schema.md.CTCn0g9X.lean.js +0 -1
  85. package/docs/.vitepress/dist/assets/zh_config_sub-env.md.Ce3xOEsi.js +0 -167
  86. package/docs/.vitepress/dist/assets/zh_config_sub-env.md.Ce3xOEsi.lean.js +0 -1
  87. package/docs/.vitepress/dist/assets/zh_features_atomic.md.DUhJ_qq0.js +0 -42
  88. package/docs/.vitepress/dist/assets/zh_features_atomic.md.DUhJ_qq0.lean.js +0 -1
  89. package/docs/.vitepress/dist/assets/zh_features_cleanup.md.CEgw587m.js +0 -50
  90. package/docs/.vitepress/dist/assets/zh_features_cleanup.md.CEgw587m.lean.js +0 -1
  91. package/docs/.vitepress/dist/assets/zh_features_shared-assets.md.DZhvWCTp.js +0 -26
  92. package/docs/.vitepress/dist/assets/zh_features_shared-assets.md.DZhvWCTp.lean.js +0 -1
  93. package/docs/.vitepress/dist/assets/zh_features_snapshot.md.Bkqgn7lu.js +0 -39
  94. package/docs/.vitepress/dist/assets/zh_features_snapshot.md.Bkqgn7lu.lean.js +0 -1
  95. package/docs/.vitepress/dist/assets/zh_index.md.DKRf1R-g.js +0 -1
  96. package/docs/.vitepress/dist/assets/zh_index.md.DKRf1R-g.lean.js +0 -1
  97. package/docs/.vitepress/dist/assets/zh_install.md.0LCLPI3L.js +0 -41
  98. package/docs/.vitepress/dist/assets/zh_install.md.0LCLPI3L.lean.js +0 -1
  99. package/docs/.vitepress/dist/assets/zh_license.md.BUZ74dvK.js +0 -1
  100. package/docs/.vitepress/dist/assets/zh_license.md.BUZ74dvK.lean.js +0 -1
  101. package/docs/.vitepress/dist/assets/zh_quick-start.md.Bl-Larcu.js +0 -19
  102. package/docs/.vitepress/dist/assets/zh_quick-start.md.Bl-Larcu.lean.js +0 -1
  103. package/docs/.vitepress/dist/assets/zh_troubleshooting.md.DHyCAfy2.js +0 -1
  104. package/docs/.vitepress/dist/assets/zh_troubleshooting.md.DHyCAfy2.lean.js +0 -1
  105. package/docs/.vitepress/dist/commands/deploy.html +0 -41
  106. package/docs/.vitepress/dist/commands/init.html +0 -26
  107. package/docs/.vitepress/dist/commands/rollback.html +0 -31
  108. package/docs/.vitepress/dist/config/auth.html +0 -80
  109. package/docs/.vitepress/dist/config/overview.html +0 -58
  110. package/docs/.vitepress/dist/config/schema.html +0 -25
  111. package/docs/.vitepress/dist/config/sub-env.html +0 -50
  112. package/docs/.vitepress/dist/features/atomic.html +0 -46
  113. package/docs/.vitepress/dist/features/cleanup.html +0 -44
  114. package/docs/.vitepress/dist/features/shared-assets.html +0 -50
  115. package/docs/.vitepress/dist/features/snapshot.html +0 -48
  116. package/docs/.vitepress/dist/hashmap.json +0 -1
  117. package/docs/.vitepress/dist/index.html +0 -25
  118. package/docs/.vitepress/dist/install.html +0 -25
  119. package/docs/.vitepress/dist/license.html +0 -25
  120. package/docs/.vitepress/dist/quick-start.html +0 -47
  121. package/docs/.vitepress/dist/troubleshooting.html +0 -25
  122. package/docs/.vitepress/dist/vp-icons.css +0 -0
  123. package/docs/.vitepress/dist/zh/commands/deploy.html +0 -33
  124. package/docs/.vitepress/dist/zh/commands/init.html +0 -42
  125. package/docs/.vitepress/dist/zh/commands/rollback.html +0 -30
  126. package/docs/.vitepress/dist/zh/config/auth.html +0 -68
  127. package/docs/.vitepress/dist/zh/config/overview.html +0 -69
  128. package/docs/.vitepress/dist/zh/config/schema.html +0 -91
  129. package/docs/.vitepress/dist/zh/config/sub-env.html +0 -191
  130. package/docs/.vitepress/dist/zh/features/atomic.html +0 -66
  131. package/docs/.vitepress/dist/zh/features/cleanup.html +0 -74
  132. package/docs/.vitepress/dist/zh/features/shared-assets.html +0 -50
  133. package/docs/.vitepress/dist/zh/features/snapshot.html +0 -63
  134. package/docs/.vitepress/dist/zh/index.html +0 -25
  135. package/docs/.vitepress/dist/zh/install.html +0 -65
  136. package/docs/.vitepress/dist/zh/license.html +0 -25
  137. package/docs/.vitepress/dist/zh/quick-start.html +0 -43
  138. package/docs/.vitepress/dist/zh/troubleshooting.html +0 -25
  139. package/docs/commands/deploy.md +0 -46
  140. package/docs/commands/init.md +0 -27
  141. package/docs/commands/rollback.md +0 -45
  142. package/docs/config/auth.md +0 -112
  143. package/docs/config/overview.md +0 -63
  144. package/docs/config/schema.md +0 -52
  145. package/docs/config/sub-env.md +0 -62
  146. package/docs/features/atomic.md +0 -67
  147. package/docs/features/cleanup.md +0 -80
  148. package/docs/features/shared-assets.md +0 -72
  149. package/docs/features/snapshot.md +0 -58
  150. package/docs/index.md +0 -48
  151. package/docs/install.md +0 -21
  152. package/docs/license.md +0 -23
  153. package/docs/quick-start.md +0 -98
  154. package/docs/troubleshooting.md +0 -88
  155. package/docs/zh/commands/deploy.md +0 -127
  156. package/docs/zh/commands/init.md +0 -76
  157. package/docs/zh/commands/rollback.md +0 -115
  158. package/docs/zh/config/auth.md +0 -195
  159. package/docs/zh/config/overview.md +0 -153
  160. package/docs/zh/config/schema.md +0 -253
  161. package/docs/zh/config/sub-env.md +0 -293
  162. package/docs/zh/features/atomic.md +0 -249
  163. package/docs/zh/features/cleanup.md +0 -241
  164. package/docs/zh/features/shared-assets.md +0 -72
  165. package/docs/zh/features/snapshot.md +0 -186
  166. package/docs/zh/index.md +0 -65
  167. package/docs/zh/install.md +0 -160
  168. package/docs/zh/license.md +0 -23
  169. package/docs/zh/quick-start.md +0 -109
  170. package/docs/zh/troubleshooting.md +0 -88
@@ -1,63 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="zh-CN" dir="ltr">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width,initial-scale=1">
6
- <title>资源快照 | Shipfe</title>
7
- <meta name="description" content="一个强大的、免费的、基于 Rust 的 Web 应用部署工具">
8
- <meta name="generator" content="VitePress v1.6.4">
9
- <link rel="preload stylesheet" href="/shipfe-rust/assets/style.DES0mfMn.css" as="style">
10
- <link rel="preload stylesheet" href="/shipfe-rust/vp-icons.css" as="style">
11
-
12
- <script type="module" src="/shipfe-rust/assets/app.DZUgfPE2.js"></script>
13
- <link rel="preload" href="/shipfe-rust/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/shipfe-rust/assets/chunks/theme.CNyaCki0.js">
15
- <link rel="modulepreload" href="/shipfe-rust/assets/chunks/framework.BeaujayP.js">
16
- <link rel="modulepreload" href="/shipfe-rust/assets/zh_features_snapshot.md.Bkqgn7lu.lean.js">
17
- <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
18
- <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
19
- </head>
20
- <body>
21
- <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/shipfe-rust/zh/" data-v-1168a8e4><!--[--><!--]--><!----><span data-v-1168a8e4>Shipfe</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/shipfe-rust/zh/quick-start.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>快速入门</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/shipfe-rust/zh/config/overview.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>配置</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/Master-Jian/shipfe-rust" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>GitHub</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-6aa21345 data-v-88af2de4 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-cf11d7a2><span class="text" data-v-cf11d7a2><span class="vpi-languages option-icon" data-v-cf11d7a2></span><!----><span class="vpi-chevron-down text-icon" data-v-cf11d7a2></span></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>中文</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-35975db6><a class="VPLink link" href="/shipfe-rust/features/snapshot.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="group translations" data-v-bb2aa2f0><p class="trans-title" data-v-bb2aa2f0>中文</p><!--[--><div class="VPMenuLink" data-v-bb2aa2f0 data-v-35975db6><a class="VPLink link" href="/shipfe-rust/features/snapshot.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-8a42e2b4><button data-v-8a42e2b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>开始</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>简介</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/quick-start.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>快速入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/install.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>安装</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>命令</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/init.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>init</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/deploy.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>deploy</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/rollback.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>rollback</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>配置</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/overview.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>配置概览</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/schema.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>配置项详解</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/auth.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>认证</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/sub-env.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>子环境</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 has-active" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>功能</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/atomic.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>原子部署</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/shared-assets.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>共享资源管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/snapshot.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>资源快照</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/cleanup.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>自动清理</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>运维</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/troubleshooting.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>故障排除</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _shipfe-rust_zh_features_snapshot" data-v-39a288b8><div><h1 id="资源快照" tabindex="-1">资源快照 <a class="header-anchor" href="#资源快照" aria-label="Permalink to &quot;资源快照&quot;">​</a></h1><p>每个发布都会生成包含完整文件清单的快照,用于审计和回滚验证。</p><h2 id="快照内容" tabindex="-1">快照内容 <a class="header-anchor" href="#快照内容" aria-label="Permalink to &quot;快照内容&quot;">​</a></h2><ul><li>所有部署文件及其哈希值</li><li>共享资源引用</li><li>部署时间戳和元数据</li><li>文件权限和大小信息</li></ul><h2 id="快照文件位置" tabindex="-1">快照文件位置 <a class="header-anchor" href="#快照文件位置" aria-label="Permalink to &quot;快照文件位置&quot;">​</a></h2><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>releases/20260304_120100/</span></span>
22
- <span class="line"><span>├── files/</span></span>
23
- <span class="line"><span>│ ├── index.html</span></span>
24
- <span class="line"><span>│ └── app.js -&gt; ../../shared/assets/abc123def456.js</span></span>
25
- <span class="line"><span>├── snapshot.json</span></span>
26
- <span class="line"><span>└── metadata.json</span></span></code></pre></div><h2 id="snapshot-json-示例" tabindex="-1">snapshot.json 示例 <a class="header-anchor" href="#snapshot-json-示例" aria-label="Permalink to &quot;snapshot.json 示例&quot;">​</a></h2><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
27
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;timestamp&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;20260304_120100&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
28
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;files&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
29
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;index.html&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
30
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;hash&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;a1b2c3d4e5f6...&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
31
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;size&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1024</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
32
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;permissions&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;644&quot;</span></span>
33
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
34
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;app.js&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
35
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;shared_hash&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;abc123def456.js&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
36
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;size&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">51200</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
37
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;permissions&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;644&quot;</span></span>
38
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
39
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
40
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><h2 id="metadata-json-示例" tabindex="-1">metadata.json 示例 <a class="header-anchor" href="#metadata-json-示例" aria-label="Permalink to &quot;metadata.json 示例&quot;">​</a></h2><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
41
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;build_command&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;npm run build&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
42
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;deployed_by&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;user&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
43
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;deployed_at&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;2026-03-04T12:01:00Z&quot;</span></span>
44
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><h2 id="快照用途" tabindex="-1">快照用途 <a class="header-anchor" href="#快照用途" aria-label="Permalink to &quot;快照用途&quot;">​</a></h2><h3 id="审计追踪" tabindex="-1">审计追踪 <a class="header-anchor" href="#审计追踪" aria-label="Permalink to &quot;审计追踪&quot;">​</a></h3><ul><li>记录每次部署的文件清单</li><li>验证文件完整性</li><li>追踪部署历史</li></ul><h3 id="回滚验证" tabindex="-1">回滚验证 <a class="header-anchor" href="#回滚验证" aria-label="Permalink to &quot;回滚验证&quot;">​</a></h3><ul><li>确保回滚到的版本文件完整</li><li>验证共享资源引用正确</li><li>检查文件权限设置</li></ul><h3 id="问题诊断" tabindex="-1">问题诊断 <a class="header-anchor" href="#问题诊断" aria-label="Permalink to &quot;问题诊断&quot;">​</a></h3><ul><li>比较不同版本的文件差异</li><li>识别部署问题</li><li>分析性能变化</li></ul><h2 id="快照生成时机" tabindex="-1">快照生成时机 <a class="header-anchor" href="#快照生成时机" aria-label="Permalink to &quot;快照生成时机&quot;">​</a></h2><ul><li><strong>部署时</strong>:每次成功部署后生成</li><li><strong>回滚时</strong>:验证目标版本的快照</li><li><strong>清理时</strong>:检查要删除版本的快照</li></ul><h2 id="快照验证" tabindex="-1">快照验证 <a class="header-anchor" href="#快照验证" aria-label="Permalink to &quot;快照验证&quot;">​</a></h2><p>Shipfe 会验证快照的完整性:</p><ul><li>检查文件是否存在</li><li>验证哈希值匹配</li><li>确认权限设置正确</li><li>验证共享资源链接</li></ul><h2 id="快照存储" tabindex="-1">快照存储 <a class="header-anchor" href="#快照存储" aria-label="Permalink to &quot;快照存储&quot;">​</a></h2><p>快照文件存储在每个发布目录中:</p><ul><li><code>snapshot.json</code> - 文件清单和哈希</li><li><code>metadata.json</code> - 部署元数据</li></ul><h2 id="查看快照" tabindex="-1">查看快照 <a class="header-anchor" href="#查看快照" aria-label="Permalink to &quot;查看快照&quot;">​</a></h2><h3 id="本地查看" tabindex="-1">本地查看 <a class="header-anchor" href="#本地查看" aria-label="Permalink to &quot;本地查看&quot;">​</a></h3><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># SSH到服务器查看快照</span></span>
45
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">ssh</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> user@server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;cat /var/www/myapp/releases/20260304_120100/snapshot.json&quot;</span></span></code></pre></div><h3 id="编程访问" tabindex="-1">编程访问 <a class="header-anchor" href="#编程访问" aria-label="Permalink to &quot;编程访问&quot;">​</a></h3><div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> fs</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> require</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;fs&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
46
- <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> snapshot</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> JSON</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">parse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(fs.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">readFileSync</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;snapshot.json&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;utf8&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">));</span></span>
47
- <span class="line"></span>
48
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Files in this release:&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
49
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">Object.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">entries</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(snapshot.files).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">forEach</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(([</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">file</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
50
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">file</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}: ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">info</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">hash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">} (${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">info</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">size</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">} bytes)`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
51
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><h2 id="快照与共享资源" tabindex="-1">快照与共享资源 <a class="header-anchor" href="#快照与共享资源" aria-label="Permalink to &quot;快照与共享资源&quot;">​</a></h2><p>当启用共享资源时,快照包含特殊处理:</p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
52
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;files&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
53
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;app.js&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
54
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;shared_hash&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;abc123def456.js&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
55
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;size&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">51200</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
56
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;permissions&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;644&quot;</span></span>
57
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
58
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
59
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><ul><li><code>shared_hash</code> 字段标识共享资源</li><li>实际文件通过硬链接引用共享存储</li></ul><h2 id="性能考虑" tabindex="-1">性能考虑 <a class="header-anchor" href="#性能考虑" aria-label="Permalink to &quot;性能考虑&quot;">​</a></h2><ul><li>快照文件很小,通常只有几KB</li><li>哈希计算只对实际文件进行</li><li>快照验证快速且轻量</li></ul><h2 id="故障排除" tabindex="-1">故障排除 <a class="header-anchor" href="#故障排除" aria-label="Permalink to &quot;故障排除&quot;">​</a></h2><h3 id="快照创建失败" tabindex="-1">快照创建失败 <a class="header-anchor" href="#快照创建失败" aria-label="Permalink to &quot;快照创建失败&quot;">​</a></h3><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>Error: Failed to create snapshot</span></span></code></pre></div><p><strong>原因</strong>:</p><ul><li>磁盘空间不足</li><li>文件权限问题</li><li>哈希计算失败</li></ul><p><strong>解决方案</strong>:</p><ul><li>检查磁盘空间</li><li>验证文件权限</li><li>查看详细错误日志</li></ul><h3 id="快照验证失败" tabindex="-1">快照验证失败 <a class="header-anchor" href="#快照验证失败" aria-label="Permalink to &quot;快照验证失败&quot;">​</a></h3><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>Warning: Snapshot validation failed</span></span></code></pre></div><p><strong>原因</strong>:</p><ul><li>文件被修改</li><li>权限被改变</li><li>共享资源链接损坏</li></ul><p><strong>解决方案</strong>:</p><ul><li>检查文件完整性</li><li>修复文件权限</li><li>重新创建共享资源链接</li></ul><h3 id="快照文件丢失" tabindex="-1">快照文件丢失 <a class="header-anchor" href="#快照文件丢失" aria-label="Permalink to &quot;快照文件丢失&quot;">​</a></h3><p>如果快照文件丢失:</p><ul><li>无法验证版本完整性</li><li>回滚可能失败</li><li>共享资源清理受影响</li></ul><p><strong>恢复</strong>:</p><ul><li>从备份恢复</li><li>重新生成快照(如果可能)</li><li>手动验证文件</li></ul></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/shipfe-rust/zh/features/shared-assets.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Previous page</span><span class="title" data-v-e257564d>共享资源管理</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/shipfe-rust/zh/features/cleanup.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>自动清理</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
60
- <script>window.__VP_HASH_MAP__=JSON.parse("{\"commands_deploy.md\":\"cybIRa1n\",\"commands_init.md\":\"Da652so5\",\"commands_rollback.md\":\"C0zKmFtz\",\"config_auth.md\":\"hvDhtWY8\",\"config_overview.md\":\"DAQclMJL\",\"config_schema.md\":\"Bv5TuD6E\",\"config_sub-env.md\":\"DSUt0Nyq\",\"features_atomic.md\":\"Cszqfb8O\",\"features_cleanup.md\":\"D1j3LEm1\",\"features_shared-assets.md\":\"ChpQD81r\",\"features_snapshot.md\":\"Bddk9nNL\",\"index.md\":\"DqmDY2QI\",\"install.md\":\"CblrJsha\",\"license.md\":\"hVRT8__d\",\"quick-start.md\":\"C06xD920\",\"troubleshooting.md\":\"DLP5r-7N\",\"zh_commands_deploy.md\":\"BbKuBIij\",\"zh_commands_init.md\":\"Dc_WYD8D\",\"zh_commands_rollback.md\":\"Cdvwk1lB\",\"zh_config_auth.md\":\"BytNcdS4\",\"zh_config_overview.md\":\"CvAKxlb5\",\"zh_config_schema.md\":\"CTCn0g9X\",\"zh_config_sub-env.md\":\"Ce3xOEsi\",\"zh_features_atomic.md\":\"DUhJ_qq0\",\"zh_features_cleanup.md\":\"CEgw587m\",\"zh_features_shared-assets.md\":\"DZhvWCTp\",\"zh_features_snapshot.md\":\"Bkqgn7lu\",\"zh_index.md\":\"DKRf1R-g\",\"zh_install.md\":\"0LCLPI3L\",\"zh_license.md\":\"BUZ74dvK\",\"zh_quick-start.md\":\"Bl-Larcu\",\"zh_troubleshooting.md\":\"DHyCAfy2\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Shipfe\",\"description\":\"A VitePress site\",\"base\":\"/shipfe-rust/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\",\"title\":\"Shipfe\",\"description\":\"A powerful, free, Rust-based web app deployment tool\",\"themeConfig\":{\"nav\":[{\"text\":\"Quick Start\",\"link\":\"/quick-start\"},{\"text\":\"Config\",\"link\":\"/config/overview\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/Master-Jian/shipfe-rust\"}],\"sidebar\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/\"},{\"text\":\"Quick Start\",\"link\":\"/quick-start\"},{\"text\":\"Installation\",\"link\":\"/install\"}]},{\"text\":\"Commands\",\"items\":[{\"text\":\"init\",\"link\":\"/commands/init\"},{\"text\":\"deploy\",\"link\":\"/commands/deploy\"},{\"text\":\"rollback\",\"link\":\"/commands/rollback\"}]},{\"text\":\"Configuration\",\"items\":[{\"text\":\"Config Overview\",\"link\":\"/config/overview\"},{\"text\":\"Config Schema\",\"link\":\"/config/schema\"},{\"text\":\"Authentication\",\"link\":\"/config/auth\"},{\"text\":\"Sub-environments\",\"link\":\"/config/sub-env\"}]},{\"text\":\"Features\",\"items\":[{\"text\":\"Atomic Deployment\",\"link\":\"/features/atomic\"},{\"text\":\"Shared Assets\",\"link\":\"/features/shared-assets\"},{\"text\":\"Snapshots\",\"link\":\"/features/snapshot\"},{\"text\":\"Cleanup\",\"link\":\"/features/cleanup\"}]},{\"text\":\"Operations\",\"items\":[{\"text\":\"Troubleshooting\",\"link\":\"/troubleshooting\"}]}]}},\"zh\":{\"label\":\"中文\",\"lang\":\"zh-CN\",\"title\":\"Shipfe\",\"description\":\"一个强大的、免费的、基于 Rust 的 Web 应用部署工具\",\"themeConfig\":{\"nav\":[{\"text\":\"快速入门\",\"link\":\"/zh/quick-start\"},{\"text\":\"配置\",\"link\":\"/zh/config/overview\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/Master-Jian/shipfe-rust\"}],\"sidebar\":[{\"text\":\"开始\",\"items\":[{\"text\":\"简介\",\"link\":\"/zh/\"},{\"text\":\"快速入门\",\"link\":\"/zh/quick-start\"},{\"text\":\"安装\",\"link\":\"/zh/install\"}]},{\"text\":\"命令\",\"items\":[{\"text\":\"init\",\"link\":\"/zh/commands/init\"},{\"text\":\"deploy\",\"link\":\"/zh/commands/deploy\"},{\"text\":\"rollback\",\"link\":\"/zh/commands/rollback\"}]},{\"text\":\"配置\",\"items\":[{\"text\":\"配置概览\",\"link\":\"/zh/config/overview\"},{\"text\":\"配置项详解\",\"link\":\"/zh/config/schema\"},{\"text\":\"认证\",\"link\":\"/zh/config/auth\"},{\"text\":\"子环境\",\"link\":\"/zh/config/sub-env\"}]},{\"text\":\"功能\",\"items\":[{\"text\":\"原子部署\",\"link\":\"/zh/features/atomic\"},{\"text\":\"共享资源管理\",\"link\":\"/zh/features/shared-assets\"},{\"text\":\"资源快照\",\"link\":\"/zh/features/snapshot\"},{\"text\":\"自动清理\",\"link\":\"/zh/features/cleanup\"}]},{\"text\":\"运维\",\"items\":[{\"text\":\"故障排除\",\"link\":\"/zh/troubleshooting\"}]}]}}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
61
-
62
- </body>
63
- </html>
@@ -1,25 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="zh-CN" dir="ltr">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width,initial-scale=1">
6
- <title>Shipfe</title>
7
- <meta name="description" content="一个强大的、免费的、基于 Rust 的 Web 应用部署工具">
8
- <meta name="generator" content="VitePress v1.6.4">
9
- <link rel="preload stylesheet" href="/shipfe-rust/assets/style.DES0mfMn.css" as="style">
10
- <link rel="preload stylesheet" href="/shipfe-rust/vp-icons.css" as="style">
11
-
12
- <script type="module" src="/shipfe-rust/assets/app.DZUgfPE2.js"></script>
13
- <link rel="preload" href="/shipfe-rust/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/shipfe-rust/assets/chunks/theme.CNyaCki0.js">
15
- <link rel="modulepreload" href="/shipfe-rust/assets/chunks/framework.BeaujayP.js">
16
- <link rel="modulepreload" href="/shipfe-rust/assets/zh_index.md.DKRf1R-g.lean.js">
17
- <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
18
- <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
19
- </head>
20
- <body>
21
- <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/shipfe-rust/zh/" data-v-1168a8e4><!--[--><!--]--><!----><span data-v-1168a8e4>Shipfe</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/shipfe-rust/zh/quick-start.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>快速入门</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/shipfe-rust/zh/config/overview.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>配置</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/Master-Jian/shipfe-rust" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>GitHub</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-6aa21345 data-v-88af2de4 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-cf11d7a2><span class="text" data-v-cf11d7a2><span class="vpi-languages option-icon" data-v-cf11d7a2></span><!----><span class="vpi-chevron-down text-icon" data-v-cf11d7a2></span></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>中文</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-35975db6><a class="VPLink link" href="/shipfe-rust/" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="group translations" data-v-bb2aa2f0><p class="trans-title" data-v-bb2aa2f0>中文</p><!--[--><div class="VPMenuLink" data-v-bb2aa2f0 data-v-35975db6><a class="VPLink link" href="/shipfe-rust/" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-8a42e2b4><button data-v-8a42e2b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 has-active" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>开始</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>简介</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/quick-start.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>快速入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/install.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>安装</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>命令</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/init.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>init</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/deploy.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>deploy</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/rollback.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>rollback</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>配置</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/overview.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>配置概览</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/schema.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>配置项详解</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/auth.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>认证</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/sub-env.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>子环境</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>功能</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/atomic.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>原子部署</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/shared-assets.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>共享资源管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/snapshot.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>资源快照</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/cleanup.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>自动清理</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>运维</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/troubleshooting.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>故障排除</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _shipfe-rust_zh_" data-v-39a288b8><div><h2 id="快速导航" tabindex="-1">快速导航 <a class="header-anchor" href="#快速导航" aria-label="Permalink to &quot;快速导航&quot;">​</a></h2><div class="features"><div class="feature"><h3>🚀 快速开始</h3><p>5分钟内完成安装和首次部署</p><a href="/zh/quick-start">开始使用</a></div><div class="feature"><h3>⚙️ 配置指南</h3><p>了解所有配置选项和最佳实践</p><a href="/zh/config/overview">配置文档</a></div><div class="feature"><h3>📚 命令参考</h3><p>完整的命令行工具使用说明</p><a href="/zh/commands/init">命令文档</a></div></div><h2 id="核心特性" tabindex="-1">核心特性 <a class="header-anchor" href="#核心特性" aria-label="Permalink to &quot;核心特性&quot;">​</a></h2><h3 id="原子化部署" tabindex="-1">原子化部署 <a class="header-anchor" href="#原子化部署" aria-label="Permalink to &quot;原子化部署&quot;">​</a></h3><p>每次部署都是原子操作,要么完全成功,要么完全失败,确保应用稳定性。</p><h3 id="智能资源管理" tabindex="-1">智能资源管理 <a class="header-anchor" href="#智能资源管理" aria-label="Permalink to &quot;智能资源管理&quot;">​</a></h3><ul><li><strong>共享资源</strong>:相同文件只存储一次,通过硬链接节省磁盘空间</li><li><strong>增量部署</strong>:只传输变更的文件,减少网络开销</li><li><strong>自动清理</strong>:可配置的清理策略,防止磁盘空间浪费</li></ul><h3 id="完善的回滚机制" tabindex="-1">完善的回滚机制 <a class="header-anchor" href="#完善的回滚机制" aria-label="Permalink to &quot;完善的回滚机制&quot;">​</a></h3><ul><li><strong>快照记录</strong>:每个部署生成完整文件清单和元数据</li><li><strong>一键回滚</strong>:快速恢复到任意历史版本</li><li><strong>状态验证</strong>:确保回滚后的应用状态正确</li></ul><h2 id="适用场景" tabindex="-1">适用场景 <a class="header-anchor" href="#适用场景" aria-label="Permalink to &quot;适用场景&quot;">​</a></h2><ul><li><strong>Web应用</strong>:前端应用、API服务、微服务</li><li><strong>静态站点</strong>:博客、文档站点、营销页面</li><li><strong>混合部署</strong>:包含静态资源和动态服务的应用</li></ul><h2 id="系统要求" tabindex="-1">系统要求 <a class="header-anchor" href="#系统要求" aria-label="Permalink to &quot;系统要求&quot;">​</a></h2><ul><li><strong>服务器</strong>:Linux/macOS/Windows,支持SSH访问</li><li><strong>本地环境</strong>:Node.js 16+,支持SSH密钥认证</li><li><strong>网络</strong>:稳定的SSH连接,支持文件传输</li></ul></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><!----></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/shipfe-rust/zh/quick-start.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>快速入门</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
22
- <script>window.__VP_HASH_MAP__=JSON.parse("{\"commands_deploy.md\":\"cybIRa1n\",\"commands_init.md\":\"Da652so5\",\"commands_rollback.md\":\"C0zKmFtz\",\"config_auth.md\":\"hvDhtWY8\",\"config_overview.md\":\"DAQclMJL\",\"config_schema.md\":\"Bv5TuD6E\",\"config_sub-env.md\":\"DSUt0Nyq\",\"features_atomic.md\":\"Cszqfb8O\",\"features_cleanup.md\":\"D1j3LEm1\",\"features_shared-assets.md\":\"ChpQD81r\",\"features_snapshot.md\":\"Bddk9nNL\",\"index.md\":\"DqmDY2QI\",\"install.md\":\"CblrJsha\",\"license.md\":\"hVRT8__d\",\"quick-start.md\":\"C06xD920\",\"troubleshooting.md\":\"DLP5r-7N\",\"zh_commands_deploy.md\":\"BbKuBIij\",\"zh_commands_init.md\":\"Dc_WYD8D\",\"zh_commands_rollback.md\":\"Cdvwk1lB\",\"zh_config_auth.md\":\"BytNcdS4\",\"zh_config_overview.md\":\"CvAKxlb5\",\"zh_config_schema.md\":\"CTCn0g9X\",\"zh_config_sub-env.md\":\"Ce3xOEsi\",\"zh_features_atomic.md\":\"DUhJ_qq0\",\"zh_features_cleanup.md\":\"CEgw587m\",\"zh_features_shared-assets.md\":\"DZhvWCTp\",\"zh_features_snapshot.md\":\"Bkqgn7lu\",\"zh_index.md\":\"DKRf1R-g\",\"zh_install.md\":\"0LCLPI3L\",\"zh_license.md\":\"BUZ74dvK\",\"zh_quick-start.md\":\"Bl-Larcu\",\"zh_troubleshooting.md\":\"DHyCAfy2\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Shipfe\",\"description\":\"A VitePress site\",\"base\":\"/shipfe-rust/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\",\"title\":\"Shipfe\",\"description\":\"A powerful, free, Rust-based web app deployment tool\",\"themeConfig\":{\"nav\":[{\"text\":\"Quick Start\",\"link\":\"/quick-start\"},{\"text\":\"Config\",\"link\":\"/config/overview\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/Master-Jian/shipfe-rust\"}],\"sidebar\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/\"},{\"text\":\"Quick Start\",\"link\":\"/quick-start\"},{\"text\":\"Installation\",\"link\":\"/install\"}]},{\"text\":\"Commands\",\"items\":[{\"text\":\"init\",\"link\":\"/commands/init\"},{\"text\":\"deploy\",\"link\":\"/commands/deploy\"},{\"text\":\"rollback\",\"link\":\"/commands/rollback\"}]},{\"text\":\"Configuration\",\"items\":[{\"text\":\"Config Overview\",\"link\":\"/config/overview\"},{\"text\":\"Config Schema\",\"link\":\"/config/schema\"},{\"text\":\"Authentication\",\"link\":\"/config/auth\"},{\"text\":\"Sub-environments\",\"link\":\"/config/sub-env\"}]},{\"text\":\"Features\",\"items\":[{\"text\":\"Atomic Deployment\",\"link\":\"/features/atomic\"},{\"text\":\"Shared Assets\",\"link\":\"/features/shared-assets\"},{\"text\":\"Snapshots\",\"link\":\"/features/snapshot\"},{\"text\":\"Cleanup\",\"link\":\"/features/cleanup\"}]},{\"text\":\"Operations\",\"items\":[{\"text\":\"Troubleshooting\",\"link\":\"/troubleshooting\"}]}]}},\"zh\":{\"label\":\"中文\",\"lang\":\"zh-CN\",\"title\":\"Shipfe\",\"description\":\"一个强大的、免费的、基于 Rust 的 Web 应用部署工具\",\"themeConfig\":{\"nav\":[{\"text\":\"快速入门\",\"link\":\"/zh/quick-start\"},{\"text\":\"配置\",\"link\":\"/zh/config/overview\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/Master-Jian/shipfe-rust\"}],\"sidebar\":[{\"text\":\"开始\",\"items\":[{\"text\":\"简介\",\"link\":\"/zh/\"},{\"text\":\"快速入门\",\"link\":\"/zh/quick-start\"},{\"text\":\"安装\",\"link\":\"/zh/install\"}]},{\"text\":\"命令\",\"items\":[{\"text\":\"init\",\"link\":\"/zh/commands/init\"},{\"text\":\"deploy\",\"link\":\"/zh/commands/deploy\"},{\"text\":\"rollback\",\"link\":\"/zh/commands/rollback\"}]},{\"text\":\"配置\",\"items\":[{\"text\":\"配置概览\",\"link\":\"/zh/config/overview\"},{\"text\":\"配置项详解\",\"link\":\"/zh/config/schema\"},{\"text\":\"认证\",\"link\":\"/zh/config/auth\"},{\"text\":\"子环境\",\"link\":\"/zh/config/sub-env\"}]},{\"text\":\"功能\",\"items\":[{\"text\":\"原子部署\",\"link\":\"/zh/features/atomic\"},{\"text\":\"共享资源管理\",\"link\":\"/zh/features/shared-assets\"},{\"text\":\"资源快照\",\"link\":\"/zh/features/snapshot\"},{\"text\":\"自动清理\",\"link\":\"/zh/features/cleanup\"}]},{\"text\":\"运维\",\"items\":[{\"text\":\"故障排除\",\"link\":\"/zh/troubleshooting\"}]}]}}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
23
-
24
- </body>
25
- </html>
@@ -1,65 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="zh-CN" dir="ltr">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width,initial-scale=1">
6
- <title>安装 | Shipfe</title>
7
- <meta name="description" content="一个强大的、免费的、基于 Rust 的 Web 应用部署工具">
8
- <meta name="generator" content="VitePress v1.6.4">
9
- <link rel="preload stylesheet" href="/shipfe-rust/assets/style.DES0mfMn.css" as="style">
10
- <link rel="preload stylesheet" href="/shipfe-rust/vp-icons.css" as="style">
11
-
12
- <script type="module" src="/shipfe-rust/assets/app.DZUgfPE2.js"></script>
13
- <link rel="preload" href="/shipfe-rust/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/shipfe-rust/assets/chunks/theme.CNyaCki0.js">
15
- <link rel="modulepreload" href="/shipfe-rust/assets/chunks/framework.BeaujayP.js">
16
- <link rel="modulepreload" href="/shipfe-rust/assets/zh_install.md.0LCLPI3L.lean.js">
17
- <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
18
- <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
19
- </head>
20
- <body>
21
- <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/shipfe-rust/zh/" data-v-1168a8e4><!--[--><!--]--><!----><span data-v-1168a8e4>Shipfe</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/shipfe-rust/zh/quick-start.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>快速入门</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/shipfe-rust/zh/config/overview.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>配置</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/Master-Jian/shipfe-rust" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>GitHub</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-6aa21345 data-v-88af2de4 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-cf11d7a2><span class="text" data-v-cf11d7a2><span class="vpi-languages option-icon" data-v-cf11d7a2></span><!----><span class="vpi-chevron-down text-icon" data-v-cf11d7a2></span></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>中文</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-35975db6><a class="VPLink link" href="/shipfe-rust/install.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="group translations" data-v-bb2aa2f0><p class="trans-title" data-v-bb2aa2f0>中文</p><!--[--><div class="VPMenuLink" data-v-bb2aa2f0 data-v-35975db6><a class="VPLink link" href="/shipfe-rust/install.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-8a42e2b4><button data-v-8a42e2b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 has-active" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>开始</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>简介</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/quick-start.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>快速入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/install.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>安装</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>命令</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/init.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>init</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/deploy.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>deploy</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/rollback.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>rollback</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>配置</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/overview.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>配置概览</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/schema.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>配置项详解</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/auth.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>认证</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/sub-env.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>子环境</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>功能</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/atomic.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>原子部署</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/shared-assets.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>共享资源管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/snapshot.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>资源快照</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/cleanup.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>自动清理</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>运维</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/troubleshooting.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>故障排除</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _shipfe-rust_zh_install" data-v-39a288b8><div><h1 id="安装" tabindex="-1">安装 <a class="header-anchor" href="#安装" aria-label="Permalink to &quot;安装&quot;">​</a></h1><p>Shipfe 支持多种安装方式,选择最适合您的方式。</p><h2 id="系统要求" tabindex="-1">系统要求 <a class="header-anchor" href="#系统要求" aria-label="Permalink to &quot;系统要求&quot;">​</a></h2><ul><li><strong>操作系统</strong>: Linux, macOS, Windows</li><li><strong>Node.js</strong>: 版本 16 或更高</li><li><strong>SSH</strong>: 支持密钥认证</li><li><strong>服务器</strong>: 支持SSH访问的Linux/macOS服务器</li></ul><h2 id="方式一-npm安装-推荐" tabindex="-1">方式一:npm安装(推荐) <a class="header-anchor" href="#方式一-npm安装-推荐" aria-label="Permalink to &quot;方式一:npm安装(推荐)&quot;">​</a></h2><h3 id="全局安装" tabindex="-1">全局安装 <a class="header-anchor" href="#全局安装" aria-label="Permalink to &quot;全局安装&quot;">​</a></h3><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -g</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> shipfe</span></span></code></pre></div><h3 id="项目级安装" tabindex="-1">项目级安装 <a class="header-anchor" href="#项目级安装" aria-label="Permalink to &quot;项目级安装&quot;">​</a></h3><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --save-dev</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> shipfe</span></span></code></pre></div><p>然后在 <code>package.json</code> 中添加脚本:</p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
22
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;scripts&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
23
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;deploy&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;shipfe deploy&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
24
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;rollback&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;shipfe rollback&quot;</span></span>
25
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
26
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><h2 id="方式二-从源码构建" tabindex="-1">方式二:从源码构建 <a class="header-anchor" href="#方式二-从源码构建" aria-label="Permalink to &quot;方式二:从源码构建&quot;">​</a></h2><h3 id="克隆仓库" tabindex="-1">克隆仓库 <a class="header-anchor" href="#克隆仓库" aria-label="Permalink to &quot;克隆仓库&quot;">​</a></h3><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> clone</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://github.com/Master-Jian/shipfe.git</span></span>
27
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> shipfe</span></span></code></pre></div><h3 id="安装rust" tabindex="-1">安装Rust <a class="header-anchor" href="#安装rust" aria-label="Permalink to &quot;安装Rust&quot;">​</a></h3><p>如果还没有安装Rust:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --proto</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;=https&#39;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --tlsv1.2</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -sSf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://sh.rustup.rs</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sh</span></span>
28
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ~/.cargo/env</span></span></code></pre></div><h3 id="构建和安装" tabindex="-1">构建和安装 <a class="header-anchor" href="#构建和安装" aria-label="Permalink to &quot;构建和安装&quot;">​</a></h3><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 构建发布版本</span></span>
29
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cargo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --release</span></span>
30
- <span class="line"></span>
31
- <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 安装到系统路径</span></span>
32
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> target/release/shipfe</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /usr/local/bin/shipfe</span></span>
33
- <span class="line"></span>
34
- <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 或者安装到用户目录</span></span>
35
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> target/release/shipfe</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ~/.local/bin/shipfe</span></span></code></pre></div><h3 id="验证安装" tabindex="-1">验证安装 <a class="header-anchor" href="#验证安装" aria-label="Permalink to &quot;验证安装&quot;">​</a></h3><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">shipfe</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --version</span></span></code></pre></div><h2 id="方式三-下载预构建二进制文件" tabindex="-1">方式三:下载预构建二进制文件 <a class="header-anchor" href="#方式三-下载预构建二进制文件" aria-label="Permalink to &quot;方式三:下载预构建二进制文件&quot;">​</a></h2><p>访问 <a href="https://github.com/Master-Jian/shipfe/releases" target="_blank" rel="noreferrer">GitHub Releases</a> 下载适合您平台的二进制文件。</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 下载并安装(以Linux x64为例)</span></span>
36
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">wget</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://github.com/Master-Jian/shipfe/releases/download/v1.0.0/shipfe-linux-x64</span></span>
37
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> shipfe-linux-x64</span></span>
38
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mv</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> shipfe-linux-x64</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /usr/local/bin/shipfe</span></span></code></pre></div><h2 id="配置自动补全-可选" tabindex="-1">配置自动补全(可选) <a class="header-anchor" href="#配置自动补全-可选" aria-label="Permalink to &quot;配置自动补全(可选)&quot;">​</a></h2><h3 id="bash" tabindex="-1">Bash <a class="header-anchor" href="#bash" aria-label="Permalink to &quot;Bash&quot;">​</a></h3><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 添加到 ~/.bashrc</span></span>
39
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;source &lt;(shipfe completion bash)&#39;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &gt;&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ~/.bashrc</span></span>
40
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ~/.bashrc</span></span></code></pre></div><h3 id="zsh" tabindex="-1">Zsh <a class="header-anchor" href="#zsh" aria-label="Permalink to &quot;Zsh&quot;">​</a></h3><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 添加到 ~/.zshrc</span></span>
41
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;source &lt;(shipfe completion zsh)&#39;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &gt;&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ~/.zshrc</span></span>
42
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ~/.zshrc</span></span></code></pre></div><h3 id="fish" tabindex="-1">Fish <a class="header-anchor" href="#fish" aria-label="Permalink to &quot;Fish&quot;">​</a></h3><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 添加到 ~/.config/fish/config.fish</span></span>
43
- <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;shipfe completion fish | source&#39;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &gt;&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ~/.config/fish/config.fish</span></span></code></pre></div><h2 id="验证安装-1" tabindex="-1">验证安装 <a class="header-anchor" href="#验证安装-1" aria-label="Permalink to &quot;验证安装&quot;">​</a></h2><p>运行以下命令验证安装是否成功:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 检查版本</span></span>
44
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">shipfe</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --version</span></span>
45
- <span class="line"></span>
46
- <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 查看帮助</span></span>
47
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">shipfe</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --help</span></span>
48
- <span class="line"></span>
49
- <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 查看所有可用命令</span></span>
50
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">shipfe</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --help</span></span></code></pre></div><h2 id="故障排除" tabindex="-1">故障排除 <a class="header-anchor" href="#故障排除" aria-label="Permalink to &quot;故障排除&quot;">​</a></h2><h3 id="权限问题" tabindex="-1">权限问题 <a class="header-anchor" href="#权限问题" aria-label="Permalink to &quot;权限问题&quot;">​</a></h3><p>如果遇到权限错误:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 使用sudo安装(不推荐)</span></span>
51
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sudo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -g</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> shipfe</span></span>
52
- <span class="line"></span>
53
- <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 或者安装到用户目录</span></span>
54
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> prefix</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ~/.npm-global</span></span>
55
- <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> PATH</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=~</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">/.npm-global/bin:$PATH</span></span></code></pre></div><h3 id="网络问题" tabindex="-1">网络问题 <a class="header-anchor" href="#网络问题" aria-label="Permalink to &quot;网络问题&quot;">​</a></h3><p>如果npm安装失败,尝试使用国内镜像:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> registry</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://registry.npmmirror.com</span></span>
56
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -g</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> shipfe</span></span></code></pre></div><h3 id="rust编译问题" tabindex="-1">Rust编译问题 <a class="header-anchor" href="#rust编译问题" aria-label="Permalink to &quot;Rust编译问题&quot;">​</a></h3><p>如果源码构建失败:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 更新Rust</span></span>
57
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">rustup</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span></span>
58
- <span class="line"></span>
59
- <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 清理并重新构建</span></span>
60
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cargo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> clean</span></span>
61
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cargo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --release</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/shipfe-rust/zh/quick-start.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Previous page</span><span class="title" data-v-e257564d>快速入门</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/shipfe-rust/zh/commands/init.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>init</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
62
- <script>window.__VP_HASH_MAP__=JSON.parse("{\"commands_deploy.md\":\"cybIRa1n\",\"commands_init.md\":\"Da652so5\",\"commands_rollback.md\":\"C0zKmFtz\",\"config_auth.md\":\"hvDhtWY8\",\"config_overview.md\":\"DAQclMJL\",\"config_schema.md\":\"Bv5TuD6E\",\"config_sub-env.md\":\"DSUt0Nyq\",\"features_atomic.md\":\"Cszqfb8O\",\"features_cleanup.md\":\"D1j3LEm1\",\"features_shared-assets.md\":\"ChpQD81r\",\"features_snapshot.md\":\"Bddk9nNL\",\"index.md\":\"DqmDY2QI\",\"install.md\":\"CblrJsha\",\"license.md\":\"hVRT8__d\",\"quick-start.md\":\"C06xD920\",\"troubleshooting.md\":\"DLP5r-7N\",\"zh_commands_deploy.md\":\"BbKuBIij\",\"zh_commands_init.md\":\"Dc_WYD8D\",\"zh_commands_rollback.md\":\"Cdvwk1lB\",\"zh_config_auth.md\":\"BytNcdS4\",\"zh_config_overview.md\":\"CvAKxlb5\",\"zh_config_schema.md\":\"CTCn0g9X\",\"zh_config_sub-env.md\":\"Ce3xOEsi\",\"zh_features_atomic.md\":\"DUhJ_qq0\",\"zh_features_cleanup.md\":\"CEgw587m\",\"zh_features_shared-assets.md\":\"DZhvWCTp\",\"zh_features_snapshot.md\":\"Bkqgn7lu\",\"zh_index.md\":\"DKRf1R-g\",\"zh_install.md\":\"0LCLPI3L\",\"zh_license.md\":\"BUZ74dvK\",\"zh_quick-start.md\":\"Bl-Larcu\",\"zh_troubleshooting.md\":\"DHyCAfy2\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Shipfe\",\"description\":\"A VitePress site\",\"base\":\"/shipfe-rust/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\",\"title\":\"Shipfe\",\"description\":\"A powerful, free, Rust-based web app deployment tool\",\"themeConfig\":{\"nav\":[{\"text\":\"Quick Start\",\"link\":\"/quick-start\"},{\"text\":\"Config\",\"link\":\"/config/overview\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/Master-Jian/shipfe-rust\"}],\"sidebar\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/\"},{\"text\":\"Quick Start\",\"link\":\"/quick-start\"},{\"text\":\"Installation\",\"link\":\"/install\"}]},{\"text\":\"Commands\",\"items\":[{\"text\":\"init\",\"link\":\"/commands/init\"},{\"text\":\"deploy\",\"link\":\"/commands/deploy\"},{\"text\":\"rollback\",\"link\":\"/commands/rollback\"}]},{\"text\":\"Configuration\",\"items\":[{\"text\":\"Config Overview\",\"link\":\"/config/overview\"},{\"text\":\"Config Schema\",\"link\":\"/config/schema\"},{\"text\":\"Authentication\",\"link\":\"/config/auth\"},{\"text\":\"Sub-environments\",\"link\":\"/config/sub-env\"}]},{\"text\":\"Features\",\"items\":[{\"text\":\"Atomic Deployment\",\"link\":\"/features/atomic\"},{\"text\":\"Shared Assets\",\"link\":\"/features/shared-assets\"},{\"text\":\"Snapshots\",\"link\":\"/features/snapshot\"},{\"text\":\"Cleanup\",\"link\":\"/features/cleanup\"}]},{\"text\":\"Operations\",\"items\":[{\"text\":\"Troubleshooting\",\"link\":\"/troubleshooting\"}]}]}},\"zh\":{\"label\":\"中文\",\"lang\":\"zh-CN\",\"title\":\"Shipfe\",\"description\":\"一个强大的、免费的、基于 Rust 的 Web 应用部署工具\",\"themeConfig\":{\"nav\":[{\"text\":\"快速入门\",\"link\":\"/zh/quick-start\"},{\"text\":\"配置\",\"link\":\"/zh/config/overview\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/Master-Jian/shipfe-rust\"}],\"sidebar\":[{\"text\":\"开始\",\"items\":[{\"text\":\"简介\",\"link\":\"/zh/\"},{\"text\":\"快速入门\",\"link\":\"/zh/quick-start\"},{\"text\":\"安装\",\"link\":\"/zh/install\"}]},{\"text\":\"命令\",\"items\":[{\"text\":\"init\",\"link\":\"/zh/commands/init\"},{\"text\":\"deploy\",\"link\":\"/zh/commands/deploy\"},{\"text\":\"rollback\",\"link\":\"/zh/commands/rollback\"}]},{\"text\":\"配置\",\"items\":[{\"text\":\"配置概览\",\"link\":\"/zh/config/overview\"},{\"text\":\"配置项详解\",\"link\":\"/zh/config/schema\"},{\"text\":\"认证\",\"link\":\"/zh/config/auth\"},{\"text\":\"子环境\",\"link\":\"/zh/config/sub-env\"}]},{\"text\":\"功能\",\"items\":[{\"text\":\"原子部署\",\"link\":\"/zh/features/atomic\"},{\"text\":\"共享资源管理\",\"link\":\"/zh/features/shared-assets\"},{\"text\":\"资源快照\",\"link\":\"/zh/features/snapshot\"},{\"text\":\"自动清理\",\"link\":\"/zh/features/cleanup\"}]},{\"text\":\"运维\",\"items\":[{\"text\":\"故障排除\",\"link\":\"/zh/troubleshooting\"}]}]}}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
63
-
64
- </body>
65
- </html>
@@ -1,25 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="zh-CN" dir="ltr">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width,initial-scale=1">
6
- <title>许可证 | Shipfe</title>
7
- <meta name="description" content="一个强大的、免费的、基于 Rust 的 Web 应用部署工具">
8
- <meta name="generator" content="VitePress v1.6.4">
9
- <link rel="preload stylesheet" href="/shipfe-rust/assets/style.DES0mfMn.css" as="style">
10
- <link rel="preload stylesheet" href="/shipfe-rust/vp-icons.css" as="style">
11
-
12
- <script type="module" src="/shipfe-rust/assets/app.DZUgfPE2.js"></script>
13
- <link rel="preload" href="/shipfe-rust/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/shipfe-rust/assets/chunks/theme.CNyaCki0.js">
15
- <link rel="modulepreload" href="/shipfe-rust/assets/chunks/framework.BeaujayP.js">
16
- <link rel="modulepreload" href="/shipfe-rust/assets/zh_license.md.BUZ74dvK.lean.js">
17
- <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
18
- <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
19
- </head>
20
- <body>
21
- <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/shipfe-rust/zh/" data-v-1168a8e4><!--[--><!--]--><!----><span data-v-1168a8e4>Shipfe</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/shipfe-rust/zh/quick-start.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>快速入门</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/shipfe-rust/zh/config/overview.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>配置</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/Master-Jian/shipfe-rust" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>GitHub</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-6aa21345 data-v-88af2de4 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-cf11d7a2><span class="text" data-v-cf11d7a2><span class="vpi-languages option-icon" data-v-cf11d7a2></span><!----><span class="vpi-chevron-down text-icon" data-v-cf11d7a2></span></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>中文</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-35975db6><a class="VPLink link" href="/shipfe-rust/license.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="group translations" data-v-bb2aa2f0><p class="trans-title" data-v-bb2aa2f0>中文</p><!--[--><div class="VPMenuLink" data-v-bb2aa2f0 data-v-35975db6><a class="VPLink link" href="/shipfe-rust/license.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-8a42e2b4><button data-v-8a42e2b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>开始</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>简介</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/quick-start.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>快速入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/install.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>安装</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>命令</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/init.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>init</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/deploy.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>deploy</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/commands/rollback.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>rollback</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>配置</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/overview.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>配置概览</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/schema.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>配置项详解</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/auth.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>认证</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/config/sub-env.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>子环境</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>功能</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/atomic.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>原子部署</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/shared-assets.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>共享资源管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/snapshot.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>资源快照</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/features/cleanup.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>自动清理</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>运维</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/shipfe-rust/zh/troubleshooting.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>故障排除</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _shipfe-rust_zh_license" data-v-39a288b8><div><h1 id="许可证" tabindex="-1">许可证 <a class="header-anchor" href="#许可证" aria-label="Permalink to &quot;许可证&quot;">​</a></h1><p>MIT License</p><p>Copyright (c) 2024 Master-Jian</p><p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p><p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p><p>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><!----></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/shipfe-rust/zh/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>简介</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
22
- <script>window.__VP_HASH_MAP__=JSON.parse("{\"commands_deploy.md\":\"cybIRa1n\",\"commands_init.md\":\"Da652so5\",\"commands_rollback.md\":\"C0zKmFtz\",\"config_auth.md\":\"hvDhtWY8\",\"config_overview.md\":\"DAQclMJL\",\"config_schema.md\":\"Bv5TuD6E\",\"config_sub-env.md\":\"DSUt0Nyq\",\"features_atomic.md\":\"Cszqfb8O\",\"features_cleanup.md\":\"D1j3LEm1\",\"features_shared-assets.md\":\"ChpQD81r\",\"features_snapshot.md\":\"Bddk9nNL\",\"index.md\":\"DqmDY2QI\",\"install.md\":\"CblrJsha\",\"license.md\":\"hVRT8__d\",\"quick-start.md\":\"C06xD920\",\"troubleshooting.md\":\"DLP5r-7N\",\"zh_commands_deploy.md\":\"BbKuBIij\",\"zh_commands_init.md\":\"Dc_WYD8D\",\"zh_commands_rollback.md\":\"Cdvwk1lB\",\"zh_config_auth.md\":\"BytNcdS4\",\"zh_config_overview.md\":\"CvAKxlb5\",\"zh_config_schema.md\":\"CTCn0g9X\",\"zh_config_sub-env.md\":\"Ce3xOEsi\",\"zh_features_atomic.md\":\"DUhJ_qq0\",\"zh_features_cleanup.md\":\"CEgw587m\",\"zh_features_shared-assets.md\":\"DZhvWCTp\",\"zh_features_snapshot.md\":\"Bkqgn7lu\",\"zh_index.md\":\"DKRf1R-g\",\"zh_install.md\":\"0LCLPI3L\",\"zh_license.md\":\"BUZ74dvK\",\"zh_quick-start.md\":\"Bl-Larcu\",\"zh_troubleshooting.md\":\"DHyCAfy2\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Shipfe\",\"description\":\"A VitePress site\",\"base\":\"/shipfe-rust/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en\",\"title\":\"Shipfe\",\"description\":\"A powerful, free, Rust-based web app deployment tool\",\"themeConfig\":{\"nav\":[{\"text\":\"Quick Start\",\"link\":\"/quick-start\"},{\"text\":\"Config\",\"link\":\"/config/overview\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/Master-Jian/shipfe-rust\"}],\"sidebar\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/\"},{\"text\":\"Quick Start\",\"link\":\"/quick-start\"},{\"text\":\"Installation\",\"link\":\"/install\"}]},{\"text\":\"Commands\",\"items\":[{\"text\":\"init\",\"link\":\"/commands/init\"},{\"text\":\"deploy\",\"link\":\"/commands/deploy\"},{\"text\":\"rollback\",\"link\":\"/commands/rollback\"}]},{\"text\":\"Configuration\",\"items\":[{\"text\":\"Config Overview\",\"link\":\"/config/overview\"},{\"text\":\"Config Schema\",\"link\":\"/config/schema\"},{\"text\":\"Authentication\",\"link\":\"/config/auth\"},{\"text\":\"Sub-environments\",\"link\":\"/config/sub-env\"}]},{\"text\":\"Features\",\"items\":[{\"text\":\"Atomic Deployment\",\"link\":\"/features/atomic\"},{\"text\":\"Shared Assets\",\"link\":\"/features/shared-assets\"},{\"text\":\"Snapshots\",\"link\":\"/features/snapshot\"},{\"text\":\"Cleanup\",\"link\":\"/features/cleanup\"}]},{\"text\":\"Operations\",\"items\":[{\"text\":\"Troubleshooting\",\"link\":\"/troubleshooting\"}]}]}},\"zh\":{\"label\":\"中文\",\"lang\":\"zh-CN\",\"title\":\"Shipfe\",\"description\":\"一个强大的、免费的、基于 Rust 的 Web 应用部署工具\",\"themeConfig\":{\"nav\":[{\"text\":\"快速入门\",\"link\":\"/zh/quick-start\"},{\"text\":\"配置\",\"link\":\"/zh/config/overview\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/Master-Jian/shipfe-rust\"}],\"sidebar\":[{\"text\":\"开始\",\"items\":[{\"text\":\"简介\",\"link\":\"/zh/\"},{\"text\":\"快速入门\",\"link\":\"/zh/quick-start\"},{\"text\":\"安装\",\"link\":\"/zh/install\"}]},{\"text\":\"命令\",\"items\":[{\"text\":\"init\",\"link\":\"/zh/commands/init\"},{\"text\":\"deploy\",\"link\":\"/zh/commands/deploy\"},{\"text\":\"rollback\",\"link\":\"/zh/commands/rollback\"}]},{\"text\":\"配置\",\"items\":[{\"text\":\"配置概览\",\"link\":\"/zh/config/overview\"},{\"text\":\"配置项详解\",\"link\":\"/zh/config/schema\"},{\"text\":\"认证\",\"link\":\"/zh/config/auth\"},{\"text\":\"子环境\",\"link\":\"/zh/config/sub-env\"}]},{\"text\":\"功能\",\"items\":[{\"text\":\"原子部署\",\"link\":\"/zh/features/atomic\"},{\"text\":\"共享资源管理\",\"link\":\"/zh/features/shared-assets\"},{\"text\":\"资源快照\",\"link\":\"/zh/features/snapshot\"},{\"text\":\"自动清理\",\"link\":\"/zh/features/cleanup\"}]},{\"text\":\"运维\",\"items\":[{\"text\":\"故障排除\",\"link\":\"/zh/troubleshooting\"}]}]}}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
23
-
24
- </body>
25
- </html>