@myagentroam/server 0.13.6 → 0.13.7

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 (375) hide show
  1. package/node_modules/@myagentroam/protocol/dist/index.d.ts +8 -0
  2. package/node_modules/@myagentroam/protocol/dist/index.js +2 -0
  3. package/node_modules/@myagentroam/protocol/package.json +1 -1
  4. package/node_modules/@myagentroam/server-core/package.json +2 -2
  5. package/node_modules/@myagentroam-enterprise/server-implementation/package.json +3 -3
  6. package/package.json +6 -6
  7. package/web/assets/{AuditManagementPage-DdhzZJJz.js → AuditManagementPage-fDpTFGAJ.js} +1 -1
  8. package/web/assets/{BusyIndicator-DJEYrwl2.js → BusyIndicator-81gYfHFI.js} +1 -1
  9. package/web/assets/{CodeFileEditor-t-S2RxFj.js → CodeFileEditor-BWA7aZwM.js} +3 -3
  10. package/web/assets/{ConversationTemplateManagementPage-DtnCxKPr.js → ConversationTemplateManagementPage-CMwsINqq.js} +1 -1
  11. package/web/assets/{ConversationTemplateManagementPage-8cWdT1rl.js → ConversationTemplateManagementPage-DM2WlZlh.js} +1 -1
  12. package/web/assets/{EnterpriseUserManagementPage-CVpJzsVL.js → EnterpriseUserManagementPage-BKCNfftS.js} +1 -1
  13. package/web/assets/{EnvironmentSecretManager-DaMtII6x.js → EnvironmentSecretManager-jWSJQLLY.js} +1 -1
  14. package/web/assets/{FilePreviewLoading-CqXCVUDH.js → FilePreviewLoading-EXabASKn.js} +1 -1
  15. package/web/assets/HtmlPreviewFrame-DQimcizh.js +5 -0
  16. package/web/assets/{HtmlPreviewFrame-CXd4x0y-.css → HtmlPreviewFrame-D_oKBx6Z.css} +1 -1
  17. package/web/assets/{LicenseManagementPage-C-25sen8.js → LicenseManagementPage-li8NTgz0.js} +1 -1
  18. package/web/assets/{ManagementPagination-BwZo73aV.js → ManagementPagination-DC_Jtk72.js} +1 -1
  19. package/web/assets/{MarAgentModelManagementPage-DkncBptD.js → MarAgentModelManagementPage-BhuEt5ck.js} +1 -1
  20. package/web/assets/{MarAgentModelManagementPage-B9lHTQtV.js → MarAgentModelManagementPage-DtQDSKsm.js} +1 -1
  21. package/web/assets/{MarIcon-0cJTzTai.js → MarIcon-DRzNI1TJ.js} +1 -1
  22. package/web/assets/{MarkdownFilePreview-CnWvYfKN.js → MarkdownFilePreview-DRxwzEkP.js} +2 -2
  23. package/web/assets/{McpDetailsDialog-nt3by9E1.js → McpDetailsDialog-C4hLhwaZ.js} +1 -1
  24. package/web/assets/{McpSourceManagementPage-Bg2wxoSB.js → McpSourceManagementPage-B4o2soUo.js} +1 -1
  25. package/web/assets/{McpSourceManagementPage-BVjVO0Tb.js → McpSourceManagementPage-ChCP_9Wx.js} +1 -1
  26. package/web/assets/{NodeDetailsDialogs-D4wBwUzA.js → NodeDetailsDialogs-jvve59Rc.js} +1 -1
  27. package/web/assets/NodeManagementPage-BaoMHEc6.js +1 -0
  28. package/web/assets/NodeManagementPage-DcE_Tno8.js +1 -0
  29. package/web/assets/{OAuthManagementPage-D9cBB-vX.js → OAuthManagementPage-oSorMLvE.js} +1 -1
  30. package/web/assets/{OrganizationManagementPage-N8HwbTY5.js → OrganizationManagementPage-CEcAvCJe.js} +1 -1
  31. package/web/assets/{ResourceManagementPanel-D80V3ZdZ.js → ResourceManagementPanel-kqq0Svx_.js} +1 -1
  32. package/web/assets/{ResourceManagementPanel.vue_vue_type_script_setup_true_lang-DfCWa6fA.js → ResourceManagementPanel.vue_vue_type_script_setup_true_lang-DWpc58cT.js} +1 -1
  33. package/web/assets/{SecretManagementPage-tsgbjSvn.js → SecretManagementPage-CXmPmuQ7.js} +1 -1
  34. package/web/assets/SecretManagementPage-DnHmkYKn.js +1 -0
  35. package/web/assets/{SecretManagementPage.vue_vue_type_script_setup_true_lang-CmSoYQ3n.js → SecretManagementPage.vue_vue_type_script_setup_true_lang-DBmhix-s.js} +1 -1
  36. package/web/assets/{SessionSharePage-whJFT3cw.js → SessionSharePage-Bfibf3C2.js} +2 -2
  37. package/web/assets/{SettingsContent-WLH3DkgW.js → SettingsContent-BQYXFW0-.js} +1 -1
  38. package/web/assets/{SettingsContent-Dsw7sGr4.js → SettingsContent-KFZsk8Yv.js} +1 -1
  39. package/web/assets/{SkillCenterPage-yDU-t2cT.js → SkillCenterPage-5lJUA9pl.js} +1 -1
  40. package/web/assets/SkillCenterPage-BmqIek5Q.js +1 -0
  41. package/web/assets/{SkillDetailsDialog-BUfNxAjf.js → SkillDetailsDialog-CrN5o6Jk.js} +1 -1
  42. package/web/assets/{SkillSourceManagementPage-B7yjgXR8.js → SkillSourceManagementPage-Di_lVA5-.js} +1 -1
  43. package/web/assets/{SkillSourceManagementPage-BCHgTDXJ.js → SkillSourceManagementPage-DpenHp3H.js} +1 -1
  44. package/web/assets/{StandaloneFilePreviewPage-b-piNuN1.js → StandaloneFilePreviewPage-_Lh1H6-k.js} +1 -1
  45. package/web/assets/{SystemConfigurationPage-C2Ecb0Su.js → SystemConfigurationPage-BpCsGW-2.js} +1 -1
  46. package/web/assets/SystemConfigurationPage-BqqdmrAK.js +1 -0
  47. package/web/assets/{SystemInformationPage-CBWjqG43.js → SystemInformationPage-G9WA9kpj.js} +1 -1
  48. package/web/assets/{TerminalTabView-CeX2SVcm.js → TerminalTabView-KFAT6dN-.js} +1 -1
  49. package/web/assets/{WorkbenchPage-D4X4qerH.js → WorkbenchPage-BQdwbvse.js} +15 -15
  50. package/web/assets/WorkbenchPage-ptvzMUTa.css +1 -0
  51. package/web/assets/WorkspaceManagementPage-BYtbXfHc.js +1 -0
  52. package/web/assets/WorkspaceManagementPage-C-9iCpGW.js +1 -0
  53. package/web/assets/{_baseIteratee-CnCgfzqY.js → _baseIteratee-CEjLB6P0.js} +1 -1
  54. package/web/assets/{abnfDiagram-VCTEODGH-C8MLlCYr.js → abnfDiagram-VCTEODGH-DwwJ-B6X.js} +1 -1
  55. package/web/assets/{advancedFormat-tqE8I04X.js → advancedFormat-DwAKrlQQ.js} +1 -1
  56. package/web/assets/{arc-ChGPMlfM.js → arc-BhUv0GFi.js} +1 -1
  57. package/web/assets/{architectureDiagram-5GKGNRK7-UNKWS80q.js → architectureDiagram-5GKGNRK7-BYwr4pOI.js} +1 -1
  58. package/web/assets/{blockDiagram-OSKFZWR5-DaoKTWzi.js → blockDiagram-OSKFZWR5-BQ0G5RBd.js} +1 -1
  59. package/web/assets/{c4Diagram-7LVT6UL2-DeJ38tJ4.js → c4Diagram-7LVT6UL2-DLmelPF5.js} +1 -1
  60. package/web/assets/{catalog-ownership-service-ppl9SdO8.js → catalog-ownership-service-BQ72dnlA.js} +1 -1
  61. package/web/assets/{catalog-page-service-CA6TP1Er.js → catalog-page-service-D4eWT4uF.js} +1 -1
  62. package/web/assets/channel-BAHh016e.js +1 -0
  63. package/web/assets/{chunk-2Q5K7J3B-Cie4-T_4.js → chunk-2Q5K7J3B-CQf0ME4y.js} +1 -1
  64. package/web/assets/{chunk-5VM5RSS4-C02e2HuJ.js → chunk-5VM5RSS4-DQY_-Ks6.js} +1 -1
  65. package/web/assets/{chunk-F27PBJKO-CYE4axjh.js → chunk-F27PBJKO-CklCJyS6.js} +1 -1
  66. package/web/assets/{chunk-HLEWEB6X-Qcd3DJvW.js → chunk-HLEWEB6X-Ofa5loFJ.js} +1 -1
  67. package/web/assets/{chunk-JWPE2WC7-BIlv53mX.js → chunk-JWPE2WC7-Dc7083sU.js} +1 -1
  68. package/web/assets/{chunk-POPQ4Y6H-C1FzI22y.js → chunk-POPQ4Y6H-D4Zc7_fI.js} +1 -1
  69. package/web/assets/{chunk-SVP7TREG-B5A4JoXo.js → chunk-SVP7TREG-DiJC9xJx.js} +1 -1
  70. package/web/assets/{chunk-XXDRQBXY-FdosaHEW.js → chunk-XXDRQBXY-BhYPRykj.js} +1 -1
  71. package/web/assets/{chunk-ZLD2IHE6-BzhAoouo.js → chunk-ZLD2IHE6-Cc-O9KsT.js} +1 -1
  72. package/web/assets/classDiagram-CYGNFDIV-IKe_y23-.js +1 -0
  73. package/web/assets/classDiagram-v2-TLXNO2FR-IKe_y23-.js +1 -0
  74. package/web/assets/{conversation-history-D9993EDO.js → conversation-history-DsSE1wLH.js} +1 -1
  75. package/web/assets/{cose-bilkent-JH36ORCC-C4ZjK8dC.js → cose-bilkent-JH36ORCC-rFqp0SYn.js} +1 -1
  76. package/web/assets/{cynefin-OW5HDTMX-D-6QhPjX.js → cynefin-OW5HDTMX-deO0LWKC.js} +1 -1
  77. package/web/assets/{cynefinDiagram-5FMLGOSQ-Bwsk5LdU.js → cynefinDiagram-5FMLGOSQ-BCj0mYAO.js} +1 -1
  78. package/web/assets/{dagre-OS7QT2EB-DoA_-lbd.js → dagre-OS7QT2EB-faTq17DR.js} +1 -1
  79. package/web/assets/{diagram-S7CK7UJ4-sgObxZyi.js → diagram-S7CK7UJ4-cAbTZ8qd.js} +1 -1
  80. package/web/assets/{diagram-UQ7AKVKN-BdMjAaVk.js → diagram-UQ7AKVKN-CxoALt7V.js} +1 -1
  81. package/web/assets/{diagram-VSXAHHWV-BCH9zwo1.js → diagram-VSXAHHWV-BcZM5S7Z.js} +1 -1
  82. package/web/assets/{diagram-VX7I27RA-Z6LSJKeQ.js → diagram-VX7I27RA-QIaSkKCU.js} +1 -1
  83. package/web/assets/{diagram-Z3DM3KII-CcbM5hsL.js → diagram-Z3DM3KII-tYE8PEsy.js} +1 -1
  84. package/web/assets/{ebnfDiagram-PWID7BFC-CWP32uDq.js → ebnfDiagram-PWID7BFC-CQON9X8w.js} +1 -1
  85. package/web/assets/{el-alert-8VKFJYUv.js → el-alert-DQT74Z6k.js} +1 -1
  86. package/web/assets/{el-cascader-CJR-DJLi.js → el-cascader-B52hB1X4.js} +1 -1
  87. package/web/assets/{el-checkbox-D7CsqiQq.js → el-checkbox-D8E82IC3.js} +1 -1
  88. package/web/assets/{el-date-picker-Lb4E2Nje.js → el-date-picker-CzlIv3iG.js} +1 -1
  89. package/web/assets/{el-descriptions-B48GJeGA.js → el-descriptions-CrLOiLtM.js} +1 -1
  90. package/web/assets/{el-form-item-Fjp3w344.js → el-form-item-CjLvz7IR.js} +1 -1
  91. package/web/assets/{el-input-DRF3bOe1.js → el-input-DsD8wPgd.js} +1 -1
  92. package/web/assets/{el-input-number-e6T9QIje.js → el-input-number-DYTEBnhp.js} +1 -1
  93. package/web/assets/{el-radio-DO8joult.js → el-radio-rHorotS0.js} +1 -1
  94. package/web/assets/{el-select-BSaB1c5h.js → el-select-vQRSFUuU.js} +1 -1
  95. package/web/assets/{el-switch-Cpl2xxJc.js → el-switch-D49n4nYq.js} +1 -1
  96. package/web/assets/{el-tab-pane-CQyfpTgD.js → el-tab-pane-CpoewUFm.js} +1 -1
  97. package/web/assets/{el-table-column-BRybrdLI.js → el-table-column-DIe-Jdox.js} +1 -1
  98. package/web/assets/{enterprise-management-service-Qtmnf50C.js → enterprise-management-service-CYSkSkqU.js} +1 -1
  99. package/web/assets/{erDiagram-2YWLMYGG-BOtd6Wuq.js → erDiagram-2YWLMYGG-D6cLXjx4.js} +1 -1
  100. package/web/assets/{error-presentation-CJfLHEK_.js → error-presentation-CKm32JzU.js} +1 -1
  101. package/web/assets/{flowDiagram-T62WH6J4-DGRqBn-8.js → flowDiagram-T62WH6J4-CWSvQfIj.js} +1 -1
  102. package/web/assets/{ganttDiagram-EL5Y4UJY-D84r1V0Q.js → ganttDiagram-EL5Y4UJY-Bk9PlmQ0.js} +1 -1
  103. package/web/assets/{gitGraphDiagram-WWUBYQGX-FANv-qDA.js → gitGraphDiagram-WWUBYQGX-JFxyzn2J.js} +1 -1
  104. package/web/assets/{hosted-conversation-template-client-CeOnupVC.js → hosted-conversation-template-client-CYBI7IvT.js} +1 -1
  105. package/web/assets/{index-DwQqO2fH.js → index-98DLRplS.js} +1 -1
  106. package/web/assets/{index-CBs38naL.js → index-BP-OH85t.js} +1 -1
  107. package/web/assets/{index-sctirQW0.js → index-BQ4D3lnr.js} +1 -1
  108. package/web/assets/{index-B0P8j1yb.js → index-BS-OsBk1.js} +1 -1
  109. package/web/assets/{index-C_EAvnDF.js → index-BTXpkf3M.js} +1 -1
  110. package/web/assets/{index-BYYx_GrI.js → index-BbOzeZis.js} +1 -1
  111. package/web/assets/{index-C90_sIrz.js → index-BzBol34B.js} +1 -1
  112. package/web/assets/{index-Bokwz5PA.js → index-C-rtGAiQ.js} +1 -1
  113. package/web/assets/{index-BkC7CnZA.js → index-C20Ctqox.js} +1 -1
  114. package/web/assets/{index-BOhe9vs1.js → index-C20z2yeK.js} +1 -1
  115. package/web/assets/{index-C8DbmG_l.js → index-C38uEGP7.js} +1 -1
  116. package/web/assets/{index-B7tnVSor.js → index-C8HJ-7wK.js} +1 -1
  117. package/web/assets/{index-hP6Cb_NE.js → index-CNYQPSEc.js} +1 -1
  118. package/web/assets/{index-9ks2AQTi.js → index-CRCrq0fK.js} +1 -1
  119. package/web/assets/{index-x9JuBH-H.js → index-CeewrlMR.js} +1 -1
  120. package/web/assets/{index-DGlioDXJ.js → index-D0gqeuOi.js} +1 -1
  121. package/web/assets/{index-W6jp3JVA.js → index-DCX6wtGf.js} +1 -1
  122. package/web/assets/{index-BsG4OGs3.js → index-DFYUX44y.js} +1 -1
  123. package/web/assets/{index-DU209g6d.js → index-DYEKyod1.js} +1 -1
  124. package/web/assets/{index-D6945seh.js → index-Dmjcd9dH.js} +1 -1
  125. package/web/assets/{index-eU6FSd70.js → index-DqPiRdTW.js} +1 -1
  126. package/web/assets/{index-x2OEXKrc.js → index-Dw3xGHpw.js} +1 -1
  127. package/web/assets/{index-zG9SJlS3.js → index-FxdcMPQK.js} +1 -1
  128. package/web/assets/{index-B8rWDVmR.js → index-GDJZ4nKF.js} +1 -1
  129. package/web/assets/{index-Tv4HGgSj.js → index-QkybH-4Y.js} +1 -1
  130. package/web/assets/{index-C_F0LgDO.js → index-X_ZLsJF-.js} +1 -1
  131. package/web/assets/{index-NReuiFej.js → index-oJjFup0f.js} +1 -1
  132. package/web/assets/{index-BeipYJv6.js → index-s_IiIj3Q.js} +1 -1
  133. package/web/assets/{index-DsgwAvJA.js → index-tebwt16R.js} +3 -3
  134. package/web/assets/infoDiagram-FKFFQAWI-odw5ek8A.js +2 -0
  135. package/web/assets/{isArrayLikeObject-Bg1E4S9y.js → isArrayLikeObject-CNIeaAGq.js} +1 -1
  136. package/web/assets/{ishikawaDiagram-5VMMS53U-B0FDzCa4.js → ishikawaDiagram-5VMMS53U-S3I395rk.js} +1 -1
  137. package/web/assets/{journeyDiagram-EYS64GPL-CIM_LxZU.js → journeyDiagram-EYS64GPL-CEURtMQT.js} +1 -1
  138. package/web/assets/{kanban-definition-UXKFOSKX-DKxBi_r0.js → kanban-definition-UXKFOSKX-B_I_ageX.js} +1 -1
  139. package/web/assets/{layout-DU0JsES_.js → layout-C28pcZJ3.js} +1 -1
  140. package/web/assets/{linear-C3UCzYem.js → linear-B5pI1vN0.js} +1 -1
  141. package/web/assets/{management-url-service-DsBUOSH4.js → management-url-service-BUrqsIPf.js} +1 -1
  142. package/web/assets/{mcp-center-service-BluNkyx-.js → mcp-center-service-Bt8KNvBQ.js} +1 -1
  143. package/web/assets/{merge-B-E3iBqN.js → merge-k_TKlNxw.js} +1 -1
  144. package/web/assets/{mermaid.core-CMc9IFVw.js → mermaid.core-DPF_lBS3.js} +5 -5
  145. package/web/assets/{message-box-service-CszgyilP.js → message-box-service-BzqjQhzH.js} +1 -1
  146. package/web/assets/{mindmap-definition-THT77NOG-BJyPV49z.js → mindmap-definition-THT77NOG-D1wx2rOh.js} +1 -1
  147. package/web/assets/{mobile-dialog-return-service-Csexw-by.js → mobile-dialog-return-service-CDghLsut.js} +1 -1
  148. package/web/assets/{oauth-callback-3M1eIOPT.js → oauth-callback-B21gNkv-.js} +1 -1
  149. package/web/assets/{pegDiagram-XKGWAZYB-jpfn2XMn.js → pegDiagram-XKGWAZYB-0meuEp8g.js} +1 -1
  150. package/web/assets/{pieDiagram-E7YTZNPT-B2jQ3Egj.js → pieDiagram-E7YTZNPT-jC3klXwe.js} +1 -1
  151. package/web/assets/{quadrantDiagram-AXDQQJYC-BXSOa8Vi.js → quadrantDiagram-AXDQQJYC-DzQbzknx.js} +1 -1
  152. package/web/assets/{railroadDiagram-O6MQD6OU-BTy8Z6ZL.js → railroadDiagram-O6MQD6OU-DwiX_44I.js} +1 -1
  153. package/web/assets/{requirementDiagram-IS5BZ75X-eqVPnJ-z.js → requirementDiagram-IS5BZ75X-DdBB28Xn.js} +1 -1
  154. package/web/assets/{runner-presentation-D66Z9p-O.js → runner-presentation-CjPY5Dey.js} +1 -1
  155. package/web/assets/{sankeyDiagram-P5KCCOFB-BI5fAwMJ.js → sankeyDiagram-P5KCCOFB-B1WX3WR_.js} +1 -1
  156. package/web/assets/{sequenceDiagram-WJ2MYXX4-CZ7Un31z.js → sequenceDiagram-WJ2MYXX4-Cz_KunCM.js} +1 -1
  157. package/web/assets/{session-share-client-service-W0XDwceC.js → session-share-client-service-C-0DdFRE.js} +1 -1
  158. package/web/assets/{sizeCapture-INFHLROL-7gQRW3HD.js → sizeCapture-INFHLROL-sB2YOfNo.js} +1 -1
  159. package/web/assets/{stateDiagram-XQSTLZYL-D23AlrmH.js → stateDiagram-XQSTLZYL-Bwb7A16z.js} +1 -1
  160. package/web/assets/stateDiagram-v2-IH3M54BS-DY5Ukxza.js +1 -0
  161. package/web/assets/{swimlanes-V6O3JKXN-By9JzeNC.js → swimlanes-V6O3JKXN-BNtAnq9r.js} +1 -1
  162. package/web/assets/swimlanesDiagram-JKAHXJPX-BZu5MiNn.js +8 -0
  163. package/web/assets/{time-presentation-BRvT6nTd.js → time-presentation-Cz63DSUv.js} +1 -1
  164. package/web/assets/{timeline-definition-24CTP7MA-CyydVD-f.js → timeline-definition-24CTP7MA-Cs6NtxYd.js} +1 -1
  165. package/web/assets/{union-BSveQIrm.js → union-C5QcR3bq.js} +1 -1
  166. package/web/assets/{use-form-common-props-BJ2vZd_0.js → use-form-common-props-C_muwpbj.js} +1 -1
  167. package/web/assets/{use-wheel-TWRoHAF5.js → use-wheel-7n7Aiy_e.js} +1 -1
  168. package/web/assets/{vennDiagram-4TSXK5OY-3OEbunrh.js → vennDiagram-4TSXK5OY-DQcN4PIp.js} +1 -1
  169. package/web/assets/{wardleyDiagram-VM6X3IG4-BuZvJTn0.js → wardleyDiagram-VM6X3IG4-B5qQJgni.js} +1 -1
  170. package/web/assets/{workbench-composer-interaction-controller-BJZsGMk-.js → workbench-composer-interaction-controller-BFZkEbwV.js} +19 -19
  171. package/web/assets/{workbench-presentation-DblBOxzZ.js → workbench-presentation-DSjYJkKK.js} +1 -1
  172. package/web/assets/{xychartDiagram-S5SC5T6Z-CQzJStra.js → xychartDiagram-S5SC5T6Z-B8yJLdGw.js} +1 -1
  173. package/web/docs/404.html +2 -2
  174. package/web/docs/administration/account.html +4 -4
  175. package/web/docs/administration/audit.html +4 -4
  176. package/web/docs/administration/conversation-templates.html +4 -4
  177. package/web/docs/administration/email-notifications.html +4 -4
  178. package/web/docs/administration/license.html +5 -5
  179. package/web/docs/administration/nodes-workspaces.html +4 -4
  180. package/web/docs/administration/oauth.html +4 -4
  181. package/web/docs/administration/secrets.html +4 -4
  182. package/web/docs/administration/template-workspace-maintenance.html +4 -4
  183. package/web/docs/administration/users-organizations.html +4 -4
  184. package/web/docs/assets/administration_license.md.CVLEsGB6.js +1 -0
  185. package/web/docs/assets/{app.DFdypnML.js → app.HBmL36pQ.js} +1 -1
  186. package/web/docs/assets/chunks/@localSearchIndexen-US.pxMPDJyo.js +1 -0
  187. package/web/docs/assets/chunks/@localSearchIndexroot.Bmvw1ncU.js +1 -0
  188. package/web/docs/assets/chunks/{VPLocalSearchBox.P9CapR4-.js → VPLocalSearchBox.9e8uHIOt.js} +1 -1
  189. package/web/docs/assets/chunks/{theme.DLnKtfGY.js → theme.CXF2ox30.js} +2 -2
  190. package/web/docs/assets/deployment_network.md.Bbi7-zH2.js +1 -0
  191. package/web/docs/assets/deployment_network.md.Bbi7-zH2.lean.js +1 -0
  192. package/web/docs/assets/deployment_upgrade.md.CG_VFxvG.js +1 -0
  193. package/web/docs/assets/deployment_upgrade.md.CG_VFxvG.lean.js +1 -0
  194. package/web/docs/assets/en-US_administration_license.md.GCAYq1LT.js +1 -0
  195. package/web/docs/assets/en-US_deployment_network.md.770EzfaT.js +1 -0
  196. package/web/docs/assets/en-US_deployment_network.md.770EzfaT.lean.js +1 -0
  197. package/web/docs/assets/en-US_deployment_upgrade.md.DDevql7U.js +1 -0
  198. package/web/docs/assets/{en-US_deployment_upgrade.md.DZiDDiLn.lean.js → en-US_deployment_upgrade.md.DDevql7U.lean.js} +1 -1
  199. package/web/docs/assets/en-US_getting-started_npm-quick-start.md.D46Ec15e.js +3 -0
  200. package/web/docs/assets/en-US_getting-started_npm-quick-start.md.D46Ec15e.lean.js +1 -0
  201. package/web/docs/assets/{en-US_getting-started_overview.md.Bug5sh21.js → en-US_getting-started_overview.md.CB-43rGR.js} +1 -1
  202. package/web/docs/assets/{en-US_getting-started_overview.md.Bug5sh21.lean.js → en-US_getting-started_overview.md.CB-43rGR.lean.js} +1 -1
  203. package/web/docs/assets/en-US_getting-started_prerequisites.md.BFxGOlUy.js +1 -0
  204. package/web/docs/assets/en-US_getting-started_prerequisites.md.BFxGOlUy.lean.js +1 -0
  205. package/web/docs/assets/{en-US_getting-started_server-installation.md._k2XGM85.js → en-US_getting-started_server-installation.md.C7SjGDJt.js} +2 -2
  206. package/web/docs/assets/getting-started_npm-quick-start.md.CIYjFmiu.js +3 -0
  207. package/web/docs/assets/getting-started_npm-quick-start.md.CIYjFmiu.lean.js +1 -0
  208. package/web/docs/assets/{getting-started_overview.md.CA1CCOBc.js → getting-started_overview.md.Cv-HSfAh.js} +1 -1
  209. package/web/docs/assets/getting-started_prerequisites.md.DjWWTA7V.js +1 -0
  210. package/web/docs/assets/{getting-started_prerequisites.md.D26KU42D.lean.js → getting-started_prerequisites.md.DjWWTA7V.lean.js} +1 -1
  211. package/web/docs/assets/{getting-started_server-installation.md.D3P3Lmc2.js → getting-started_server-installation.md.BsEfVH6b.js} +2 -2
  212. package/web/docs/concepts/architecture.html +4 -4
  213. package/web/docs/concepts/data-and-security.html +4 -4
  214. package/web/docs/concepts/files-git-terminal.html +4 -4
  215. package/web/docs/concepts/node-and-workspace.html +4 -4
  216. package/web/docs/concepts/permissions-and-sharing.html +4 -4
  217. package/web/docs/concepts/runner-control.html +4 -4
  218. package/web/docs/concepts/secrets.html +4 -4
  219. package/web/docs/concepts/session-run-turn.html +4 -4
  220. package/web/docs/deployment/backup-restore.html +4 -4
  221. package/web/docs/deployment/network.html +5 -5
  222. package/web/docs/deployment/node-installation.html +4 -4
  223. package/web/docs/deployment/node-linux.html +4 -4
  224. package/web/docs/deployment/node-macos.html +4 -4
  225. package/web/docs/deployment/node-windows.html +4 -4
  226. package/web/docs/deployment/production.html +4 -4
  227. package/web/docs/deployment/security-checklist.html +4 -4
  228. package/web/docs/deployment/upgrade.html +5 -5
  229. package/web/docs/en-US/administration/account.html +4 -4
  230. package/web/docs/en-US/administration/audit.html +4 -4
  231. package/web/docs/en-US/administration/conversation-templates.html +4 -4
  232. package/web/docs/en-US/administration/email-notifications.html +4 -4
  233. package/web/docs/en-US/administration/license.html +5 -5
  234. package/web/docs/en-US/administration/nodes-workspaces.html +4 -4
  235. package/web/docs/en-US/administration/oauth.html +4 -4
  236. package/web/docs/en-US/administration/secrets.html +4 -4
  237. package/web/docs/en-US/administration/template-workspace-maintenance.html +4 -4
  238. package/web/docs/en-US/administration/users-organizations.html +4 -4
  239. package/web/docs/en-US/concepts/architecture.html +4 -4
  240. package/web/docs/en-US/concepts/data-and-security.html +4 -4
  241. package/web/docs/en-US/concepts/files-git-terminal.html +4 -4
  242. package/web/docs/en-US/concepts/node-and-workspace.html +4 -4
  243. package/web/docs/en-US/concepts/permissions-and-sharing.html +4 -4
  244. package/web/docs/en-US/concepts/runner-control.html +4 -4
  245. package/web/docs/en-US/concepts/secrets.html +4 -4
  246. package/web/docs/en-US/concepts/session-run-turn.html +4 -4
  247. package/web/docs/en-US/deployment/backup-restore.html +4 -4
  248. package/web/docs/en-US/deployment/network.html +5 -5
  249. package/web/docs/en-US/deployment/node-installation.html +4 -4
  250. package/web/docs/en-US/deployment/node-linux.html +4 -4
  251. package/web/docs/en-US/deployment/node-macos.html +4 -4
  252. package/web/docs/en-US/deployment/node-windows.html +4 -4
  253. package/web/docs/en-US/deployment/production.html +4 -4
  254. package/web/docs/en-US/deployment/security-checklist.html +4 -4
  255. package/web/docs/en-US/deployment/upgrade.html +5 -5
  256. package/web/docs/en-US/getting-started/connect-node.html +4 -4
  257. package/web/docs/en-US/getting-started/first-agent-session.html +4 -4
  258. package/web/docs/en-US/getting-started/first-login.html +4 -4
  259. package/web/docs/en-US/getting-started/next-steps.html +4 -4
  260. package/web/docs/en-US/getting-started/npm-quick-start.html +7 -7
  261. package/web/docs/en-US/getting-started/overview.html +5 -5
  262. package/web/docs/en-US/getting-started/prerequisites.html +5 -5
  263. package/web/docs/en-US/getting-started/register-workspace.html +4 -4
  264. package/web/docs/en-US/getting-started/server-installation.html +6 -6
  265. package/web/docs/en-US/operations/marctl.html +4 -4
  266. package/web/docs/en-US/reference/configuration.html +4 -4
  267. package/web/docs/en-US/reference/keyboard-shortcuts.html +4 -4
  268. package/web/docs/en-US/reference/limits.html +4 -4
  269. package/web/docs/en-US/reference/ports-paths-data.html +4 -4
  270. package/web/docs/en-US/reference/status-and-errors.html +4 -4
  271. package/web/docs/en-US/runners/claude-code.html +4 -4
  272. package/web/docs/en-US/runners/codex.html +4 -4
  273. package/web/docs/en-US/runners/mar-agent.html +4 -4
  274. package/web/docs/en-US/runners/opencode.html +4 -4
  275. package/web/docs/en-US/runners/overview.html +4 -4
  276. package/web/docs/en-US/runners/runner-troubleshooting.html +4 -4
  277. package/web/docs/en-US/troubleshooting/node-offline.html +4 -4
  278. package/web/docs/en-US/troubleshooting/quick-diagnosis.html +4 -4
  279. package/web/docs/en-US/troubleshooting/session-run.html +4 -4
  280. package/web/docs/en-US/troubleshooting/terminal.html +4 -4
  281. package/web/docs/en-US/troubleshooting/workspace-files.html +4 -4
  282. package/web/docs/en-US/workbench/composer.html +4 -4
  283. package/web/docs/en-US/workbench/context-and-plan.html +4 -4
  284. package/web/docs/en-US/workbench/conversation.html +4 -4
  285. package/web/docs/en-US/workbench/file-reference-and-attachment.html +4 -4
  286. package/web/docs/en-US/workbench/files.html +4 -4
  287. package/web/docs/en-US/workbench/git-changes.html +4 -4
  288. package/web/docs/en-US/workbench/git-history.html +4 -4
  289. package/web/docs/en-US/workbench/hosted-conversations.html +4 -4
  290. package/web/docs/en-US/workbench/mobile.html +4 -4
  291. package/web/docs/en-US/workbench/navigation.html +4 -4
  292. package/web/docs/en-US/workbench/sessions.html +4 -4
  293. package/web/docs/en-US/workbench/skills.html +4 -4
  294. package/web/docs/en-US/workbench/terminal.html +4 -4
  295. package/web/docs/getting-started/connect-node.html +4 -4
  296. package/web/docs/getting-started/first-agent-session.html +4 -4
  297. package/web/docs/getting-started/first-login.html +4 -4
  298. package/web/docs/getting-started/next-steps.html +4 -4
  299. package/web/docs/getting-started/npm-quick-start.html +7 -7
  300. package/web/docs/getting-started/overview.html +5 -5
  301. package/web/docs/getting-started/prerequisites.html +5 -5
  302. package/web/docs/getting-started/register-workspace.html +4 -4
  303. package/web/docs/getting-started/server-installation.html +6 -6
  304. package/web/docs/hashmap.json +1 -1
  305. package/web/docs/operations/marctl.html +4 -4
  306. package/web/docs/reference/configuration.html +4 -4
  307. package/web/docs/reference/keyboard-shortcuts.html +4 -4
  308. package/web/docs/reference/limits.html +4 -4
  309. package/web/docs/reference/ports-paths-data.html +4 -4
  310. package/web/docs/reference/status-and-errors.html +4 -4
  311. package/web/docs/runners/claude-code.html +4 -4
  312. package/web/docs/runners/codex.html +4 -4
  313. package/web/docs/runners/mar-agent.html +4 -4
  314. package/web/docs/runners/opencode.html +4 -4
  315. package/web/docs/runners/overview.html +4 -4
  316. package/web/docs/runners/runner-troubleshooting.html +4 -4
  317. package/web/docs/troubleshooting/node-offline.html +4 -4
  318. package/web/docs/troubleshooting/quick-diagnosis.html +4 -4
  319. package/web/docs/troubleshooting/session-run.html +4 -4
  320. package/web/docs/troubleshooting/terminal.html +4 -4
  321. package/web/docs/troubleshooting/workspace-files.html +4 -4
  322. package/web/docs/workbench/composer.html +4 -4
  323. package/web/docs/workbench/context-and-plan.html +4 -4
  324. package/web/docs/workbench/conversation.html +4 -4
  325. package/web/docs/workbench/file-reference-and-attachment.html +4 -4
  326. package/web/docs/workbench/files.html +4 -4
  327. package/web/docs/workbench/git-changes.html +4 -4
  328. package/web/docs/workbench/git-history.html +4 -4
  329. package/web/docs/workbench/hosted-conversations.html +4 -4
  330. package/web/docs/workbench/mobile.html +4 -4
  331. package/web/docs/workbench/navigation.html +4 -4
  332. package/web/docs/workbench/sessions.html +4 -4
  333. package/web/docs/workbench/skills.html +4 -4
  334. package/web/docs/workbench/terminal.html +4 -4
  335. package/web/index.html +1 -1
  336. package/web/service-worker.js +1 -1
  337. package/web/web-version.json +1 -1
  338. package/web/assets/HtmlPreviewFrame-xgqXo3bD.js +0 -5
  339. package/web/assets/NodeManagementPage-C1Cj7rex.js +0 -1
  340. package/web/assets/NodeManagementPage-DRBCipFy.js +0 -1
  341. package/web/assets/SecretManagementPage-BDo50Fo5.js +0 -1
  342. package/web/assets/SkillCenterPage-Dl-aKzxp.js +0 -1
  343. package/web/assets/SystemConfigurationPage-CUI3Icws.js +0 -1
  344. package/web/assets/WorkbenchPage-C1l73Bo7.css +0 -1
  345. package/web/assets/WorkspaceManagementPage-0uM3HF3o.js +0 -1
  346. package/web/assets/WorkspaceManagementPage-DlcAgYsx.js +0 -1
  347. package/web/assets/channel-D5Au5X55.js +0 -1
  348. package/web/assets/classDiagram-CYGNFDIV-CplRLUOK.js +0 -1
  349. package/web/assets/classDiagram-v2-TLXNO2FR-CplRLUOK.js +0 -1
  350. package/web/assets/infoDiagram-FKFFQAWI-ZeaWiVDx.js +0 -2
  351. package/web/assets/stateDiagram-v2-IH3M54BS-D93lsHZ8.js +0 -1
  352. package/web/assets/swimlanesDiagram-JKAHXJPX-C3UEWonA.js +0 -8
  353. package/web/docs/assets/administration_license.md.Bf1iyuKG.js +0 -1
  354. package/web/docs/assets/chunks/@localSearchIndexen-US.BEf68FQA.js +0 -1
  355. package/web/docs/assets/chunks/@localSearchIndexroot.Dw4g7XXs.js +0 -1
  356. package/web/docs/assets/deployment_network.md.BarghfLt.js +0 -1
  357. package/web/docs/assets/deployment_network.md.BarghfLt.lean.js +0 -1
  358. package/web/docs/assets/deployment_upgrade.md.BESOToM5.js +0 -1
  359. package/web/docs/assets/deployment_upgrade.md.BESOToM5.lean.js +0 -1
  360. package/web/docs/assets/en-US_administration_license.md.Dmg8rNEl.js +0 -1
  361. package/web/docs/assets/en-US_deployment_network.md.DdOgOLns.js +0 -1
  362. package/web/docs/assets/en-US_deployment_network.md.DdOgOLns.lean.js +0 -1
  363. package/web/docs/assets/en-US_deployment_upgrade.md.DZiDDiLn.js +0 -1
  364. package/web/docs/assets/en-US_getting-started_npm-quick-start.md.Dwsi-ffA.js +0 -3
  365. package/web/docs/assets/en-US_getting-started_npm-quick-start.md.Dwsi-ffA.lean.js +0 -1
  366. package/web/docs/assets/en-US_getting-started_prerequisites.md.Bpx_AQD1.js +0 -1
  367. package/web/docs/assets/en-US_getting-started_prerequisites.md.Bpx_AQD1.lean.js +0 -1
  368. package/web/docs/assets/getting-started_npm-quick-start.md.CcxMwUgz.js +0 -3
  369. package/web/docs/assets/getting-started_npm-quick-start.md.CcxMwUgz.lean.js +0 -1
  370. package/web/docs/assets/getting-started_prerequisites.md.D26KU42D.js +0 -1
  371. /package/web/docs/assets/{administration_license.md.Bf1iyuKG.lean.js → administration_license.md.CVLEsGB6.lean.js} +0 -0
  372. /package/web/docs/assets/{en-US_administration_license.md.Dmg8rNEl.lean.js → en-US_administration_license.md.GCAYq1LT.lean.js} +0 -0
  373. /package/web/docs/assets/{en-US_getting-started_server-installation.md._k2XGM85.lean.js → en-US_getting-started_server-installation.md.C7SjGDJt.lean.js} +0 -0
  374. /package/web/docs/assets/{getting-started_overview.md.CA1CCOBc.lean.js → getting-started_overview.md.Cv-HSfAh.lean.js} +0 -0
  375. /package/web/docs/assets/{getting-started_server-installation.md.D3P3Lmc2.lean.js → getting-started_server-installation.md.BsEfVH6b.lean.js} +0 -0
@@ -0,0 +1 @@
1
+ import{_ as o,o as t,c as r,a3 as a}from"./chunks/framework.BHjrhdiC.js";const p=JSON.parse('{"title":"Before You Deploy","description":"","frontmatter":{"title":"Before You Deploy","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/prerequisites.md","filePath":"en-US/getting-started/prerequisites.md"}'),n={name:"en-US/getting-started/prerequisites.md"};function i(s,e,l,c,d,u){return t(),r("div",null,[...e[0]||(e[0]=[a('<h1 id="before-you-deploy" tabindex="-1">Before You Deploy <a class="header-anchor" href="#before-you-deploy" aria-label="Permalink to &quot;Before You Deploy&quot;">​</a></h1><p>Choose your installation first. With the <a href="./npm-quick-start">npm Quick Start</a>, you do not need to deploy Docker or MySQL yourself, or manually register the local Node. Access is local by default; configure your own remote entry point and HTTPS when needed. It does not configure models or external Agents for you.</p><p>The checklist below covers Docker Compose or a separately managed Server/MySQL installation. Quick Start has different component preparation and UUID requirements; follow its dedicated guide. Remote access still requires a secure network entry point.</p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to &quot;Requirements&quot;">​</a></h2><ul><li>A Server host that can run Docker Compose, or an environment where you manage MySQL 8.4, Server, and Web yourself.</li><li>An HTTPS hostname for browsers. Production deployments should terminate TLS at a reverse proxy.</li><li>Node.js <code>&gt;=22.13</code> on every Windows, Linux, or macOS work host, plus a Workspace writable by the Node service account. Hosted conversations require a Linux Node with Bubblewrap.</li><li>For built-in MAR Agent, no external Agent CLI is required. An administrator must <a href="./../runners/mar-agent">configure, enable, and authorize a model</a>, and the user must be within its bound credential scope.</li><li>For Codex, Claude Code, or OpenCode, install only the required Agent CLI and complete authentication or provider configuration under the same Node service account.</li></ul><h2 id="checklist" tabindex="-1">Checklist <a class="header-anchor" href="#checklist" aria-label="Permalink to &quot;Checklist&quot;">​</a></h2><ol><li>Choose <code>MAR_PUBLIC_ORIGIN</code>, such as <code>https://mar.example.com</code>. It must exactly match the browser-facing origin.</li><li>Prepare strong, separate passwords for the MySQL root and application accounts.</li><li>Confirm that Server can serve HTTPS and every Node can make outbound HTTPS/WSS connections to it.</li><li>Under the final Node service account, check <code>node --version</code> and <code>npm --version</code>. For MAR Agent, test the model in management; for external Agents, also check the corresponding CLI version.</li><li>Record the exact Workspace paths. Never use an entire disk as <code>allowedRoots</code>.</li></ol><p><strong>Success:</strong> every Node resolves and reaches the Server hostname, and its service account can enter the target Workspace.</p><p>If an Agent works in an interactive shell but not as a service, the service account likely has a different home directory or <code>PATH</code>. Follow <a href="./../deployment/node-installation">Install and Register a Node</a>.</p><p>Next: <a href="./server-installation">Deploy Server and Web</a>.</p><p>Formal deployments require a valid real host UUID in both Community and Enterprise states. Containers must mount <code>/sys/class/dmi/id/product_uuid</code> read-only at <code>/license-host/product_uuid</code>; the source must exist. Native formal deployments may use <code>MAR_LICENSE_HOST_PATH</code> to select the real UUID file. The <a href="./npm-quick-start">npm Quick Start</a> does not require a UUID and cannot be activated.</p>',11)])])}const m=o(n,[["render",i]]);export{p as __pageData,m as default};
@@ -0,0 +1 @@
1
+ import{_ as o,o as t,c as r,a3 as a}from"./chunks/framework.BHjrhdiC.js";const p=JSON.parse('{"title":"Before You Deploy","description":"","frontmatter":{"title":"Before You Deploy","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/prerequisites.md","filePath":"en-US/getting-started/prerequisites.md"}'),n={name:"en-US/getting-started/prerequisites.md"};function i(s,e,l,c,d,u){return t(),r("div",null,[...e[0]||(e[0]=[a("",11)])])}const m=o(n,[["render",i]]);export{p as __pageData,m as default};
@@ -1,5 +1,5 @@
1
- import{_ as s,o as a,c as t,a3 as i}from"./chunks/framework.BHjrhdiC.js";const k=JSON.parse('{"title":"Deploy MyAgentRoam Server and Web","description":"","frontmatter":{"title":"Deploy MyAgentRoam Server and Web","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/server-installation.md","filePath":"en-US/getting-started/server-installation.md"}'),n={name:"en-US/getting-started/server-installation.md"};function o(r,e,l,d,p,h){return a(),t("div",null,[...e[0]||(e[0]=[i(`<h1 id="deploy-myagentroam-server-and-web" tabindex="-1">Deploy MyAgentRoam Server and Web <a class="header-anchor" href="#deploy-myagentroam-server-and-web" aria-label="Permalink to &quot;Deploy MyAgentRoam Server and Web&quot;">​</a></h1><p>The public product repository&#39;s single root <code>compose.yaml</code> runs MySQL, SearXNG, and Server with its bundled Web application. Your reverse proxy provides the production HTTPS entry point.</p><h2 id="formal-deployment" tabindex="-1">Formal deployment <a class="header-anchor" href="#formal-deployment" aria-label="Permalink to &quot;Formal deployment&quot;">​</a></h2><p>The formal deployment uses the single product source and build, with <code>mar-server/</code>, <code>mar-web-console/</code>, and the root <code>compose.yaml</code>. Without activation it is Community, with Workspace sessions, files, Git, terminals, model and credential management, Skill/MCP configuration, personal templates, and hosted conversations. A valid Enterprise license enables organizations, users, sharing, SSO, and auditing in the same installation without replacing images. For local-only evaluation, see the separate <a href="./npm-quick-start">npm Quick Start</a>.</p><p>Both license states use <code>/console</code> for the workbench and <code>/docs/</code> for documentation. Existing links to <code>/</code> keep working: the browser opens the same product at <code>/console</code>, preserving query parameters and fragments. Verify sign-in and a Workspace operation rather than treating <code>/health</code> alone as proof that the full workbench is usable.</p><h2 id="procedure" tabindex="-1">Procedure <a class="header-anchor" href="#procedure" aria-label="Permalink to &quot;Procedure&quot;">​</a></h2><ol><li><p>In an administrator-only source deployment directory, copy the root template and protect it:</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;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env.example</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span>
1
+ import{_ as s,o as a,c as t,a3 as i}from"./chunks/framework.BHjrhdiC.js";const k=JSON.parse('{"title":"Deploy MyAgentRoam Server and Web","description":"","frontmatter":{"title":"Deploy MyAgentRoam Server and Web","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/server-installation.md","filePath":"en-US/getting-started/server-installation.md"}'),n={name:"en-US/getting-started/server-installation.md"};function o(r,e,l,d,p,h){return a(),t("div",null,[...e[0]||(e[0]=[i(`<h1 id="deploy-myagentroam-server-and-web" tabindex="-1">Deploy MyAgentRoam Server and Web <a class="header-anchor" href="#deploy-myagentroam-server-and-web" aria-label="Permalink to &quot;Deploy MyAgentRoam Server and Web&quot;">​</a></h1><p>The public product repository&#39;s single root <code>compose.yaml</code> runs MySQL, SearXNG, and Server with its bundled Web application. Your reverse proxy provides the production HTTPS entry point.</p><h2 id="formal-deployment" tabindex="-1">Formal deployment <a class="header-anchor" href="#formal-deployment" aria-label="Permalink to &quot;Formal deployment&quot;">​</a></h2><p>The formal deployment uses the single product source and build, with <code>mar-server/</code>, <code>mar-web-console/</code>, and the root <code>compose.yaml</code>. Without activation it is Community, with Workspace sessions, files, Git, terminals, model and credential management, Skill/MCP configuration, personal templates, and hosted conversations. A valid Enterprise license enables organizations, users, sharing, SSO, and auditing in the same installation without replacing images. For another installation option, see <a href="./npm-quick-start">npm Quick Start</a>.</p><p>Both license states use <code>/console</code> for the workbench and <code>/docs/</code> for documentation. Existing links to <code>/</code> keep working: the browser opens the same product at <code>/console</code>, preserving query parameters and fragments. Verify sign-in and a Workspace operation rather than treating <code>/health</code> alone as proof that the full workbench is usable.</p><h2 id="procedure" tabindex="-1">Procedure <a class="header-anchor" href="#procedure" aria-label="Permalink to &quot;Procedure&quot;">​</a></h2><ol><li><p>In an administrator-only source deployment directory, copy the root template and protect it:</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;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env.example</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span>
2
2
  <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 600</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span></code></pre></div><p>Edit every blank value before continuing. Set <code>MAR_PUBLIC_ORIGIN</code> to your external HTTPS origin, generate separate strong MySQL root/application passwords and a long random <code>MAR_SEARXNG_SECRET</code>, and set <code>MAR_SERVER_SSH_DIR</code> to an existing absolute directory. Use a URL-safe application password because Compose embeds <code>MAR_MYSQL_PASSWORD</code> in a database URL. The template intentionally has no working secrets; Compose rejects missing required values.</p><p><code>MAR_SERVER_SSH_DIR</code> must be the deployment account&#39;s absolute <code>.ssh</code> path. Compose mounts it read-only. Create a correctly protected empty directory even if SSH skill sources are not yet used.</p></li><li><p>Restrict the directory and private keys to the deployment account. If using an SSH Skill source, verify non-interactive access as that account on the deployment host, replacing the example with a repository you are authorized to access:</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:#24292E;--shiki-dark:#E1E4E8;">GIT_SSH_COMMAND</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null&#39;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\</span></span>
3
3
  <span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ls-remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git@</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">repository-hos</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">owne</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">r</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">repositor</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">y</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> HEAD</span></span></code></pre></div><p>This command contacts an external repository and, like Server&#39;s SSH Skill source, skips host fingerprint verification. That permits server impersonation; use it only for trusted networks and repositories, and do not set this option as a global SSH default. In <code>.ssh/config</code>, use <code>~/.ssh/key-name</code> for <code>IdentityFile</code>. The host deployment UID should match the image <code>node</code> user UID (<code>1000</code> by default).</p></li><li><p>Start and inspect the services:</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;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build</span></span>
4
4
  <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ps</span></span>
5
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsS</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://127.0.0.1:5190/health</span></span></code></pre></div></li><li><p>Proxy HTTPS traffic to the unified Server host port <code>5190</code>. Allow Upgrade/WebSocket requests and do not cache <code>/api/</code> or upgraded connections.</p></li><li><p>Open <code>MAR_PUBLIC_ORIGIN</code> in a browser.</p></li></ol><p><strong>Success:</strong> all three Compose services—MySQL, SearXNG, and Server—are healthy, and <code>/console</code> opens for sign-in through the HTTPS site.</p><p>For failures, inspect <code>docker compose logs mysql</code>, verify the external origin, certificate chain, <code>/api/</code> proxying, and outbound HTTPS/WSS from Nodes. The Node control connection does not require a public inbound HTTP API; see <a href="./../deployment/network">Network, TLS, and WebSocket</a> for optional LAN direct-transfer UDP requirements.</p><p>Keep <code>.env</code> out of Git, chats, and the Web root because it contains database credentials.</p><p>Next: <a href="./first-login">First Sign-in</a>. See also <a href="./../deployment/network">Network, TLS, and WebSocket</a>.</p><p>Formal deployments require a valid real host UUID in both Community and Enterprise states. Containers must mount <code>/sys/class/dmi/id/product_uuid</code> read-only at <code>/license-host/product_uuid</code>; the source must exist. Native formal deployments may use <code>MAR_LICENSE_HOST_PATH</code> to select the real UUID file. The local-only <a href="./npm-quick-start">npm Quick Start</a> does not require a UUID and cannot be activated.</p><h2 id="connect-an-independent-node" tabindex="-1">Connect an independent Node <a class="header-anchor" href="#connect-an-independent-node" aria-label="Permalink to &quot;Connect an independent Node&quot;">​</a></h2><p>In this formal deployment, Server hosts Web and API only; it does not include a Node executor. Before using Workspaces, Agents, files, terminals or hosted conversations, <a href="./../deployment/node-installation">install and register a separate Node</a>. Configure hosting and browser execution dependencies on the Node host, not in the Server image.</p>`,14)])])}const g=s(n,[["render",o]]);export{k as __pageData,g as default};
5
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsS</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://127.0.0.1:5190/health</span></span></code></pre></div></li><li><p>Proxy HTTPS traffic to the unified Server host port <code>5190</code>. Allow Upgrade/WebSocket requests and do not cache <code>/api/</code> or upgraded connections.</p></li><li><p>Open <code>MAR_PUBLIC_ORIGIN</code> in a browser.</p></li></ol><p><strong>Success:</strong> all three Compose services—MySQL, SearXNG, and Server—are healthy, and <code>/console</code> opens for sign-in through the HTTPS site.</p><p>For failures, inspect <code>docker compose logs mysql</code>, verify the external origin, certificate chain, <code>/api/</code> proxying, and outbound HTTPS/WSS from Nodes. The Node control connection does not require a public inbound HTTP API; see <a href="./../deployment/network">Network, TLS, and WebSocket</a> for optional LAN direct-transfer UDP requirements.</p><p>Keep <code>.env</code> out of Git, chats, and the Web root because it contains database credentials.</p><p>Next: <a href="./first-login">First Sign-in</a>. See also <a href="./../deployment/network">Network, TLS, and WebSocket</a>.</p><p>Formal deployments require a valid real host UUID in both Community and Enterprise states. Containers must mount <code>/sys/class/dmi/id/product_uuid</code> read-only at <code>/license-host/product_uuid</code>; the source must exist. Native formal deployments may use <code>MAR_LICENSE_HOST_PATH</code> to select the real UUID file. The <a href="./npm-quick-start">npm Quick Start</a> does not require a UUID and cannot be activated.</p><h2 id="connect-an-independent-node" tabindex="-1">Connect an independent Node <a class="header-anchor" href="#connect-an-independent-node" aria-label="Permalink to &quot;Connect an independent Node&quot;">​</a></h2><p>In this formal deployment, Server hosts Web and API only; it does not include a Node executor. Before using Workspaces, Agents, files, terminals or hosted conversations, <a href="./../deployment/node-installation">install and register a separate Node</a>. Configure hosting and browser execution dependencies on the Node host, not in the Server image.</p>`,14)])])}const g=s(n,[["render",o]]);export{k as __pageData,g as default};
@@ -0,0 +1,3 @@
1
+ import{_ as o,o as a,c as d,a3 as t}from"./chunks/framework.BHjrhdiC.js";const u=JSON.parse('{"title":"npm 快速开始","description":"","frontmatter":{"title":"npm 快速开始","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/npm-quick-start.md","filePath":"getting-started/npm-quick-start.md"}'),r={name:"getting-started/npm-quick-start.md"};function n(s,e,c,i,p,l){return a(),d("div",null,[...e[0]||(e[0]=[t(`<h1 id="npm-快速开始" tabindex="-1">npm 快速开始 <a class="header-anchor" href="#npm-快速开始" aria-label="Permalink to &quot;npm 快速开始&quot;">​</a></h1><p>Quick Start 一次准备固定社区版 Server、专用 MySQL 和本机 Node,并在支持受管搜索的平台准备 SearXNG。默认通过本机回环 HTTP 访问;远程访问的网络入口和安全配置由你自行管理。它不安装系统常驻服务,不要求主机 UUID,也不支持激活 License。另一种安装方式见 <a href="./server-installation">Docker Compose 部署</a>。</p><p>目前实际验证的安装目标是带 glibc 2.28 或更高版本、<code>tar</code> 和 <code>dpkg-deb</code> 的 Linux x64(例如受支持的 Debian 或 Ubuntu 系统),以及可使用 <code>tar</code> 的 Windows x64。需要 Node.js 24.12 或更高版本以及 npm。安装包时原生依赖可能要求系统已有可用的构建工具;安装和 setup 均不安装系统包,也不请求提权。浏览器和所选组件的准备需要网络。其他原生平台尚未完成此 Quick Start 的验证。</p><p>终端依赖固定为 <code>node-pty@1.2.0-beta.18</code>,随包提供 Linux x64/arm64、macOS x64/arm64 和 Windows x64/arm64 预编译文件;已验证的 Linux x64 默认安装无需为 node-pty 安装 GCC、make 或 Python,程序目录和 HOME 含空格也可使用。不要设置 <code>npm_config_build_from_source=true</code> 或全局跳过安装脚本;前者会强制源码编译,后者可能使其他依赖未正确准备。其他原生依赖或无匹配预编译文件的平台仍可能需要构建工具;包内有预编译文件不代表该平台的完整 Quick Start 已验证。</p><h2 id="安装与启动" tabindex="-1">安装与启动 <a class="header-anchor" href="#安装与启动" aria-label="Permalink to &quot;安装与启动&quot;">​</a></h2><p>当 npm Registry 中已有 Server 包及其所需依赖后,以普通用户运行:</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;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> @myagentroam/server</span></span>
2
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npx</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mar-server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> setup</span></span>
3
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npx</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mar-server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span></span></code></pre></div><p>Server 以普通依赖使用同版本 Node;npm 安装会按 Node 原有生命周期安装原生依赖并准备 Chromium,即使之后使用 <code>--no-node</code>。安装或查看 <code>mar-server --help</code> 不配置、注册或启动本机 Node。setup 下载所选固定组件并初始化专用数据库,不使用已有 MySQL,也不接受 <code>MAR_DATABASE_URL</code>。跳过本地搜索使用 <code>--no-searxng</code>;两个参数可以组合。搜索准备是可选步骤,失败会报告但不会丢弃其他组件。</p><p><code>--no-node</code> 会持久保存禁用选择,但不会从 Server 包移除 Node 依赖。之后如需启用本机 Node,先停止 run,在 <code>server.json</code> 中将 <code>node.enabled</code> 设为 <code>true</code>,保留身份,再运行 setup。</p><p>run 在前台运行并打印本机浏览器地址。使用 Ctrl+C 停止并等待子进程退出;run 不会下载缺失组件。同一数据目录不能并发执行 setup 和 run。</p><p>Windows 本机 Quick Start 的受管 Node 使用 IPv4 直连;如果只能通过 IPv6 连接,文件和终端流量会回退到 Server 中继。</p><h2 id="远程访问" tabindex="-1">远程访问 <a class="header-anchor" href="#远程访问" aria-label="Permalink to &quot;远程访问&quot;">​</a></h2><p>默认本机访问不是使用场景限制。你可以自行配置安全隧道或对外入口;setup 不会配置域名、TLS、防火墙或访问控制。公网入口应使用 HTTPS,并支持 WebSocket;不要直接裸露 HTTP 端口。</p><p>当前 run 监听 <code>127.0.0.1</code>,应用 Origin 固定为打印出的 <code>http://127.0.0.1:&lt;端口&gt;</code>,不会采用 <code>MAR_PUBLIC_ORIGIN</code> 覆盖值。隧道访问应保留浏览器侧相同的回环地址和端口;使用自定义域名时,仅转发端口不足以保证登录、Origin 校验和 WebSocket 正常,还需匹配应用与网关的配置。不要关闭 Origin 校验来绕过问题。网络要求见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。</p><h2 id="更新-server-与受管-node" tabindex="-1">更新 Server 与受管 Node <a class="header-anchor" href="#更新-server-与受管-node" aria-label="Permalink to &quot;更新 Server 与受管 Node&quot;">​</a></h2><ol><li>正常停止 run,等待其管理的进程全部退出。</li><li>在原 npm 安装目录安装目标 Server 版本,例如 <code>npm install --save-exact @myagentroam/server@X.Y.Z</code>,将 <code>X.Y.Z</code> 替换为已发布且依赖齐全的目标版本。</li><li>用原配置重新执行 <code>npx --no-install mar-server run</code>;此前使用 <code>--config</code> 时继续传入同一路径。刷新浏览器并确认原 Node、工作区和终端可用。</li></ol><p>Node 随 Server 的精确依赖一起更新,不单独使用节点管理中的推送升级。不要删除部署目录、重建 Node 身份或修改 <code>allowedRoots</code> 来完成更新;重复 setup 不是更新 npm 程序的方式。独立 Node 的升级流程见<a href="./../deployment/upgrade">升级 MyAgentRoam</a>。</p><p>以上步骤更新 Server/Node 的 npm 程序,不会自动升级已有的受管 MySQL 或搜索组件。更新前核对目标版本的发行说明;若要求组件迁移,按该版本说明操作,不要手工删除安装记录来强制重装。</p><h2 id="登录并开始工作" tabindex="-1">登录并开始工作 <a class="header-anchor" href="#登录并开始工作" aria-label="Permalink to &quot;登录并开始工作&quot;">​</a></h2><p>按<a href="./first-login">首次登录与修改密码</a>立即修改初始管理员密码。等待本机 Node 显示在线,再在部署目录的 <code>workspace</code> 下<a href="./register-workspace">登记 Workspace</a>。本机 Node 默认只能访问该目录,不会自动启用托管对话。<a href="./first-agent-session">开始会话</a>前还需配置模型和凭据;Node 在线或 <code>/health</code> 成功并不代表 Agent 已能执行。</p><p>本机 Node 的默认允许目录仅为本部署的 <code>workspace/</code>。如需使用其他项目,先停止 run,只编辑部署数据目录内 <code>node-data/node.json</code> 的 <code>allowedRoots</code> 数组,填写一个或多个绝对路径,然后重新 run。例如 Unix 可用 <code>&quot;allowedRoots&quot;: [&quot;/home/alice/project&quot;, &quot;/srv/work&quot;]</code>,Windows 可用 <code>&quot;allowedRoots&quot;: [&quot;C:\\\\Projects&quot;, &quot;D:\\\\Work&quot;]</code>。不要覆盖整个文件或删除 <code>nodeId</code>、凭据及 <code>serverUrl</code> 等身份字段。允许目录不会提升操作系统账号权限;账号仍需有相应文件权限。npm 程序安装目录与部署数据目录不同,后者默认为 <code>~/.myagentroam/quick-start/</code>,也可由 <code>--config</code> 指定。</p><p>首次注册失败后,可停止并重新 <code>run</code>:若 <code>node.json</code> 只有注册令牌、尚无身份,系统会复用未使用的有效令牌,或替换已过期但未使用的令牌,保留允许目录和数据配置。若报告 <code>QUICK_START_NODE_BOOTSTRAP_RECOVERY_REQUIRED</code>,说明令牌已使用或状态无法确认,系统不会自动重复登记。请保留 <code>node-data/node.json</code>,从备份恢复已有身份,或先核对并处理管理页面中的上次登记;不要直接删除配置或数据目录。身份字段残缺会报告配置无效,不会自动重置身份。</p><h2 id="数据与可选搜索" tabindex="-1">数据与可选搜索 <a class="header-anchor" href="#数据与可选搜索" aria-label="Permalink to &quot;数据与可选搜索&quot;">​</a></h2><p>默认私有配置、凭据和组件数据位于 <code>~/.myagentroam/quick-start/</code>。如需其他私有位置,setup 和 run 均传入相同的 <code>--config /path/to/server.json</code>。请保护并备份该目录。重复 setup 保留凭据、Node 数据、Workspace 及其他组件版本。受管 Node 程序随 Server 依赖更新,不使用独立升级或活动入口。</p><p><code>server.json</code> 的 <code>search</code> 对象只有 <code>managed</code>、<code>disabled</code>、<code>external</code> 三种模式。Windows 不支持受管 SearXNG;如需搜索,可使用外部服务。如需使用已有 SearXNG,停止 run,只将 <code>search.mode</code> 改为 <code>&quot;external&quot;</code>、将 <code>search.url</code> 改为服务地址,保留已有的 <code>search.installation</code> 记录,再重新启动。该服务必须允许 JSON 搜索。JSON 检查失败时,本次运行不提供客户端搜索,也不会回退到其他地址;<code>web_fetch</code> 和模型托管搜索是独立能力。<code>--no-searxng</code> 不会清除外部地址。</p><p>禁用后如需重试本地搜索,停止 run,将搜索模式设为 <code>managed</code>,保留已有 <code>installation</code> 记录,再运行 setup。不受支持的平台请保持禁用并改用外部地址。独立管理 Node 参见 <a href="./../deployment/node-installation">Node 安装</a>,正式运维参见<a href="./../deployment/production">生产部署</a>。</p>`,26)])])}const k=o(r,[["render",n]]);export{u as __pageData,k as default};
@@ -0,0 +1 @@
1
+ import{_ as o,o as a,c as d,a3 as t}from"./chunks/framework.BHjrhdiC.js";const u=JSON.parse('{"title":"npm 快速开始","description":"","frontmatter":{"title":"npm 快速开始","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/npm-quick-start.md","filePath":"getting-started/npm-quick-start.md"}'),r={name:"getting-started/npm-quick-start.md"};function n(s,e,c,i,p,l){return a(),d("div",null,[...e[0]||(e[0]=[t("",26)])])}const k=o(r,[["render",n]]);export{u as __pageData,k as default};
@@ -1 +1 @@
1
- import{_ as t,o as a,c as r,a3 as o}from"./chunks/framework.BHjrhdiC.js";const m=JSON.parse('{"title":"MyAgentRoam 是什么","description":"","frontmatter":{"title":"MyAgentRoam 是什么","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/overview.md","filePath":"getting-started/overview.md"}'),d={name:"getting-started/overview.md"};function n(i,e,s,l,p,h){return a(),r("div",null,[...e[0]||(e[0]=[o('<h1 id="myagentroam-是什么" tabindex="-1">MyAgentRoam 是什么 <a class="header-anchor" href="#myagentroam-是什么" aria-label="Permalink to &quot;MyAgentRoam 是什么&quot;">​</a></h1><p>MyAgentRoam 是面向团队私有化部署、支持“工作 / 对话”两种模式的共享 Agent 工作台。团队只需在自己的 Windows、Linux 或 macOS 主机上配置一次 Agent、任意大模型、项目目录和工具链,就能把这个可直接工作的空间授权给成员。“工作”模式提供完整的 Node、Workspace、Agent 会话、文件、Git 和终端能力;“对话”模式让成员从管理员发布并授权的模板直接开始。无需在每台个人设备重复搭建环境。托管对话因依赖 Bubblewrap 沙箱,目前仅可由 Linux Node 承载。</p><p>工作区源码、外部 Agent 的本机凭据和终端留在团队自己的主机中;Server 管理的模型与凭据配置保存在 Server。MyAgentRoam 让获授权的成员共享工作环境并衔接进度,同时保留清晰的数据和权限边界。个人用户也可以用它统一管理自己的多台工作主机。</p><h2 id="四个组件" tabindex="-1">四个组件 <a class="header-anchor" href="#四个组件" aria-label="Permalink to &quot;四个组件&quot;">​</a></h2><table tabindex="0"><thead><tr><th>组件</th><th>放在哪里</th><th>负责什么</th></tr></thead><tbody><tr><td>Web</td><td>浏览器</td><td>工作台、对话、文件和终端界面</td></tr><tr><td>Server</td><td>你的服务器</td><td>登录、Node 登记、授权和浏览器连接</td></tr><tr><td>Node</td><td>每台工作主机</td><td>工作区、Agent、文件、Git 与终端</td></tr><tr><td>Agent</td><td>Node 本机</td><td>使用团队接入的 Agent 与大模型完成工作</td></tr></tbody></table><p>浏览器通过 Server 认证和授权,Node 主动向 Server 建立出站控制连接;普通工作区数据也可在授权后使用 WebRTC 直传。直传的网络条件和回退见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。每个 Workspace 属于一台 Node,不能跨 Node 混用文件、终端或会话。</p><h2 id="界面语言" tabindex="-1">界面语言 <a class="header-anchor" href="#界面语言" aria-label="Permalink to &quot;界面语言&quot;">​</a></h2><p>控制台和文档中心使用当前浏览器保存的语言选择;从控制台打开文档时会进入对应语言。登录或返回控制台时,当前浏览器语言会同步到账号并作为后续通知的生成语言;在设置中切换语言也会更新账号偏好。通知保存创建时的最终文案,切换语言不会改写已有通知。文档中心切换语言时会打开当前文档的对应语言版本;直接打开文档链接时,该链接的语言优先。</p><h2 id="安装、界面缓存与更新" tabindex="-1">安装、界面缓存与更新 <a class="header-anchor" href="#安装、界面缓存与更新" aria-label="Permalink to &quot;安装、界面缓存与更新&quot;">​</a></h2><p>控制台会在首次联网打开时缓存应用界面所需的静态资源,避免之后反复下载相同文件。“设置 → 关于”可查看当前运行方式(浏览器标签页或 PWA 独立窗口)和应用资源缓存状态;运行方式表示当前窗口的打开方式,不表示此设备是否安装过应用。缓存可用时,断网也能打开应用外壳,但登录、会话、文件和终端等功能仍需联网。帮助文档和搜索不进入应用缓存。普通浏览器标签页与已安装应用使用相同机制;浏览器存储可能隔离或被回收,缓存不可用时仍可在线使用。</p><p>如需安装为独立应用窗口,可使用浏览器地址栏或菜单中的“安装应用”入口;支持添加到主屏幕的移动浏览器也可从分享或浏览器菜单选择“添加到主屏幕”。入口名称和位置因浏览器与操作系统而异,无需安装也可使用静态资源缓存。</p><p>离线资源不包含登录状态、权限、会话、工作区文件或终端。冷启动时若无法联系 Server,界面会显示身份尚未确认,可在恢复连接后打开帮助或重试;恢复连接后才能确认身份和使用依赖 Server、Node 的功能。已打开的页面不会仅因断网而退出登录。</p><p>新版资源准备完成后会显示更新通知,不会立即打断当前页面。点击通知、在“设置 → 关于”应用更新,或在更新已准备好后主动刷新页面,都会切换到已准备的新版本,并自动刷新所有已打开的同源应用窗口和标签页;无需逐个关闭、额外确认或等待编辑和文件传输结束。如果刷新时新版尚未准备好,本次页面会继续使用旧版,准备完成后再提示更新。自动切换失败不会循环重试,仍可手动应用更新。浏览器标签页与已安装应用行为一致。刷新可能丢弃未保存内容并中断文件传输,请按需先保存。旧版迁移或缓存受损时,可能需要联网、关闭所有同源应用窗口和标签页后重新打开应用。</p><h2 id="最快成功路径" tabindex="-1">最快成功路径 <a class="header-anchor" href="#最快成功路径" aria-label="Permalink to &quot;最快成功路径&quot;">​</a></h2><p>仅在本机体验可选 <a href="./npm-quick-start">npm 快速开始</a>:默认准备本机 Node,也可禁用。正式部署请先完成<a href="./prerequisites">部署前准备</a>并<a href="./server-installation">部署 Server/Web</a>,再独立安装和注册 Node。</p><ol><li>按所选路径准备并启动 Server。</li><li>用 <code>admin</code> 首次登录并修改初始密码。</li><li>确认 Node 在线;正式部署需在工作主机独立安装并注册。</li><li>登记一个工作区,确认所选 Agent 已登录可用。</li><li>新建会话并发送第一条消息。</li></ol><p><strong>成功标志:</strong> “工作”模式的资源树显示 Node 在线;打开 Workspace 后能看到文件树,并能创建可发送消息的会话。</p><p>社区版适合单人使用,不限制登记 Node 数量;企业 License 启用组织、角色、共享、SSO 和审计。详情见<a href="./../concepts/permissions-and-sharing">用户、组织与资源权限</a>。</p><p>已有可用 Server 的用户可从<a href="./first-login">首次登录</a>、<a href="./connect-node">接入 Node</a>或<a href="./first-agent-session">开始第一次 Agent 对话</a>进入;管理员部署时从<a href="./prerequisites">部署前准备</a>开始。</p>',19)])])}const g=t(d,[["render",n]]);export{m as __pageData,g as default};
1
+ import{_ as t,o as a,c as r,a3 as o}from"./chunks/framework.BHjrhdiC.js";const m=JSON.parse('{"title":"MyAgentRoam 是什么","description":"","frontmatter":{"title":"MyAgentRoam 是什么","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/overview.md","filePath":"getting-started/overview.md"}'),d={name:"getting-started/overview.md"};function n(i,e,s,l,p,h){return a(),r("div",null,[...e[0]||(e[0]=[o('<h1 id="myagentroam-是什么" tabindex="-1">MyAgentRoam 是什么 <a class="header-anchor" href="#myagentroam-是什么" aria-label="Permalink to &quot;MyAgentRoam 是什么&quot;">​</a></h1><p>MyAgentRoam 是面向团队私有化部署、支持“工作 / 对话”两种模式的共享 Agent 工作台。团队只需在自己的 Windows、Linux 或 macOS 主机上配置一次 Agent、任意大模型、项目目录和工具链,就能把这个可直接工作的空间授权给成员。“工作”模式提供完整的 Node、Workspace、Agent 会话、文件、Git 和终端能力;“对话”模式让成员从管理员发布并授权的模板直接开始。无需在每台个人设备重复搭建环境。托管对话因依赖 Bubblewrap 沙箱,目前仅可由 Linux Node 承载。</p><p>工作区源码、外部 Agent 的本机凭据和终端留在团队自己的主机中;Server 管理的模型与凭据配置保存在 Server。MyAgentRoam 让获授权的成员共享工作环境并衔接进度,同时保留清晰的数据和权限边界。个人用户也可以用它统一管理自己的多台工作主机。</p><h2 id="四个组件" tabindex="-1">四个组件 <a class="header-anchor" href="#四个组件" aria-label="Permalink to &quot;四个组件&quot;">​</a></h2><table tabindex="0"><thead><tr><th>组件</th><th>放在哪里</th><th>负责什么</th></tr></thead><tbody><tr><td>Web</td><td>浏览器</td><td>工作台、对话、文件和终端界面</td></tr><tr><td>Server</td><td>你的服务器</td><td>登录、Node 登记、授权和浏览器连接</td></tr><tr><td>Node</td><td>每台工作主机</td><td>工作区、Agent、文件、Git 与终端</td></tr><tr><td>Agent</td><td>Node 本机</td><td>使用团队接入的 Agent 与大模型完成工作</td></tr></tbody></table><p>浏览器通过 Server 认证和授权,Node 主动向 Server 建立出站控制连接;普通工作区数据也可在授权后使用 WebRTC 直传。直传的网络条件和回退见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。每个 Workspace 属于一台 Node,不能跨 Node 混用文件、终端或会话。</p><h2 id="界面语言" tabindex="-1">界面语言 <a class="header-anchor" href="#界面语言" aria-label="Permalink to &quot;界面语言&quot;">​</a></h2><p>控制台和文档中心使用当前浏览器保存的语言选择;从控制台打开文档时会进入对应语言。登录或返回控制台时,当前浏览器语言会同步到账号并作为后续通知的生成语言;在设置中切换语言也会更新账号偏好。通知保存创建时的最终文案,切换语言不会改写已有通知。文档中心切换语言时会打开当前文档的对应语言版本;直接打开文档链接时,该链接的语言优先。</p><h2 id="安装、界面缓存与更新" tabindex="-1">安装、界面缓存与更新 <a class="header-anchor" href="#安装、界面缓存与更新" aria-label="Permalink to &quot;安装、界面缓存与更新&quot;">​</a></h2><p>控制台会在首次联网打开时缓存应用界面所需的静态资源,避免之后反复下载相同文件。“设置 → 关于”可查看当前运行方式(浏览器标签页或 PWA 独立窗口)和应用资源缓存状态;运行方式表示当前窗口的打开方式,不表示此设备是否安装过应用。缓存可用时,断网也能打开应用外壳,但登录、会话、文件和终端等功能仍需联网。帮助文档和搜索不进入应用缓存。普通浏览器标签页与已安装应用使用相同机制;浏览器存储可能隔离或被回收,缓存不可用时仍可在线使用。</p><p>如需安装为独立应用窗口,可使用浏览器地址栏或菜单中的“安装应用”入口;支持添加到主屏幕的移动浏览器也可从分享或浏览器菜单选择“添加到主屏幕”。入口名称和位置因浏览器与操作系统而异,无需安装也可使用静态资源缓存。</p><p>离线资源不包含登录状态、权限、会话、工作区文件或终端。冷启动时若无法联系 Server,界面会显示身份尚未确认,可在恢复连接后打开帮助或重试;恢复连接后才能确认身份和使用依赖 Server、Node 的功能。已打开的页面不会仅因断网而退出登录。</p><p>新版资源准备完成后会显示更新通知,不会立即打断当前页面。点击通知、在“设置 → 关于”应用更新,或在更新已准备好后主动刷新页面,都会切换到已准备的新版本,并自动刷新所有已打开的同源应用窗口和标签页;无需逐个关闭、额外确认或等待编辑和文件传输结束。如果刷新时新版尚未准备好,本次页面会继续使用旧版,准备完成后再提示更新。自动切换失败不会循环重试,仍可手动应用更新。浏览器标签页与已安装应用行为一致。刷新可能丢弃未保存内容并中断文件传输,请按需先保存。旧版迁移或缓存受损时,可能需要联网、关闭所有同源应用窗口和标签页后重新打开应用。</p><h2 id="最快成功路径" tabindex="-1">最快成功路径 <a class="header-anchor" href="#最快成功路径" aria-label="Permalink to &quot;最快成功路径&quot;">​</a></h2><p>快速安装可选 <a href="./npm-quick-start">npm 快速开始</a>:默认准备本机 Node,也可禁用。选择 Docker Compose 时,先完成<a href="./prerequisites">部署前准备</a>并<a href="./server-installation">部署 Server/Web</a>,再独立安装和注册 Node。</p><ol><li>按所选路径准备并启动 Server。</li><li>用 <code>admin</code> 首次登录并修改初始密码。</li><li>确认 Node 在线;Docker Compose 部署需在工作主机独立安装并注册。</li><li>登记一个工作区,确认所选 Agent 已登录可用。</li><li>新建会话并发送第一条消息。</li></ol><p><strong>成功标志:</strong> “工作”模式的资源树显示 Node 在线;打开 Workspace 后能看到文件树,并能创建可发送消息的会话。</p><p>社区版适合单人使用,不限制登记 Node 数量;企业 License 启用组织、角色、共享、SSO 和审计。详情见<a href="./../concepts/permissions-and-sharing">用户、组织与资源权限</a>。</p><p>已有可用 Server 的用户可从<a href="./first-login">首次登录</a>、<a href="./connect-node">接入 Node</a>或<a href="./first-agent-session">开始第一次 Agent 对话</a>进入;管理员部署时从<a href="./prerequisites">部署前准备</a>开始。</p>',19)])])}const g=t(d,[["render",n]]);export{m as __pageData,g as default};
@@ -0,0 +1 @@
1
+ import{_ as o,o as a,c as t,a3 as r}from"./chunks/framework.BHjrhdiC.js";const _=JSON.parse('{"title":"部署前准备","description":"","frontmatter":{"title":"部署前准备","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/prerequisites.md","filePath":"getting-started/prerequisites.md"}'),i={name:"getting-started/prerequisites.md"};function d(l,e,n,s,c,p){return a(),t("div",null,[...e[0]||(e[0]=[r('<h1 id="部署前准备" tabindex="-1">部署前准备 <a class="header-anchor" href="#部署前准备" aria-label="Permalink to &quot;部署前准备&quot;">​</a></h1><p>先选择安装方式:使用 <a href="./npm-quick-start">npm 快速开始</a>,无需自行部署 Docker 或 MySQL,也无需手工注册本机 Node;默认通过本机地址访问,远程入口与 HTTPS 由你自行配置。它不会自动配置模型或外部 Agent。</p><p>以下清单用于 Docker Compose 或自行管理 Server/MySQL 的安装。Quick Start 的组件准备和 UUID 规则不同,请按其专页操作;远程访问同样需要安全的网络入口。</p><h2 id="前置条件" tabindex="-1">前置条件 <a class="header-anchor" href="#前置条件" aria-label="Permalink to &quot;前置条件&quot;">​</a></h2><ul><li>一台可运行 Docker Compose 的 Server 主机,或能自行提供 MySQL 8.4、Server 和 Web 的运行环境。</li><li>一个供浏览器访问的 HTTPS 域名;生产环境应由反向代理终止 TLS。</li><li>每台 Windows、Linux 或 macOS 工作主机安装 Node.js <code>&gt;=22.13</code>,并为 Node 运行账号准备可读写的 Workspace;托管对话仅部署在具备 Bubblewrap 的 Linux Node。</li><li>使用内置 MAR Agent:不需要外部 Agent CLI,管理员须先<a href="./../runners/mar-agent">配置、启用并授权模型</a>,且当前用户处于所绑定凭据的作用域内。</li><li>使用 Codex、Claude Code 或 OpenCode:仅安装需要的 Agent CLI,并在同一 Node 服务账号下完成登录或模型服务配置。</li></ul><h2 id="检查清单" tabindex="-1">检查清单 <a class="header-anchor" href="#检查清单" aria-label="Permalink to &quot;检查清单&quot;">​</a></h2><ol><li>为 Server 准备 <code>MAR_PUBLIC_ORIGIN</code>,例如 <code>https://mar.example.com</code>;它必须与浏览器实际访问地址完全一致。</li><li>准备两个强密码:MySQL root 密码和 MySQL 应用账号密码。</li><li>确认 Server 可对外提供 HTTPS,Node 主机可向该地址发起 HTTPS/WSS 出站连接。</li><li>在每台 Node 主机用最终服务账号执行 <code>node --version</code>、<code>npm --version</code>。使用 MAR Agent 时,在管理页测试模型;使用外部 Agent 时再检查对应 CLI 版本。</li><li>记录需要登记的真实 Workspace 路径,不要将整个磁盘作为 <code>allowedRoots</code>。</li></ol><p><strong>成功标志:</strong> 所有 Node 主机都能解析并访问 Server 域名,且服务账号能进入目标 Workspace。</p><h2 id="常见问题" tabindex="-1">常见问题 <a class="header-anchor" href="#常见问题" aria-label="Permalink to &quot;常见问题&quot;">​</a></h2><ul><li>浏览器与 <code>MAR_PUBLIC_ORIGIN</code> 不一致:登录或 WebSocket 可能被 Origin 校验拒绝;先统一协议、域名和端口。</li><li>Agent 在交互终端可用、服务中不可用:通常是服务账号的用户目录或 <code>PATH</code> 不同,按<a href="./../deployment/node-installation">Node 安装与注册</a>配置。</li></ul><p>下一步:<a href="./server-installation">部署 Server 与 Web</a>。</p><p>正式部署的社区与企业状态都要求有效的真实主机 UUID。容器必须将宿主 <code>/sys/class/dmi/id/product_uuid</code> 只读挂载到 <code>/license-host/product_uuid</code>,源文件必须存在;原生正式部署可用 <code>MAR_LICENSE_HOST_PATH</code> 指定真实 UUID 文件。<a href="./npm-quick-start">npm 快速开始</a>无需 UUID,也不支持激活。</p>',12)])])}const h=o(i,[["render",d]]);export{_ as __pageData,h as default};
@@ -1 +1 @@
1
- import{_ as o,o as a,c as t,a3 as r}from"./chunks/framework.BHjrhdiC.js";const _=JSON.parse('{"title":"部署前准备","description":"","frontmatter":{"title":"部署前准备","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/prerequisites.md","filePath":"getting-started/prerequisites.md"}'),i={name:"getting-started/prerequisites.md"};function d(l,e,n,s,c,p){return a(),t("div",null,[...e[0]||(e[0]=[r("",11)])])}const h=o(i,[["render",d]]);export{_ as __pageData,h as default};
1
+ import{_ as o,o as a,c as t,a3 as r}from"./chunks/framework.BHjrhdiC.js";const _=JSON.parse('{"title":"部署前准备","description":"","frontmatter":{"title":"部署前准备","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/prerequisites.md","filePath":"getting-started/prerequisites.md"}'),i={name:"getting-started/prerequisites.md"};function d(l,e,n,s,c,p){return a(),t("div",null,[...e[0]||(e[0]=[r("",12)])])}const h=o(i,[["render",d]]);export{_ as __pageData,h as default};
@@ -1,4 +1,4 @@
1
- import{_ as s,o as i,c as a,a3 as t}from"./chunks/framework.BHjrhdiC.js";const k=JSON.parse('{"title":"部署 MyAgentRoam Server 与 Web","description":"","frontmatter":{"title":"部署 MyAgentRoam Server 与 Web","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/server-installation.md","filePath":"getting-started/server-installation.md"}'),o={name:"getting-started/server-installation.md"};function l(d,e,n,h,p,r){return i(),a("div",null,[...e[0]||(e[0]=[t(`<h1 id="部署-myagentroam-server-与-web" tabindex="-1">部署 MyAgentRoam Server 与 Web <a class="header-anchor" href="#部署-myagentroam-server-与-web" aria-label="Permalink to &quot;部署 MyAgentRoam Server 与 Web&quot;">​</a></h1><p>本页以公开产品根目录的唯一 <code>compose.yaml</code> 部署 MySQL、SearXNG 和自带 Web 的 Server;生产入口由你的反向代理提供 HTTPS。</p><h2 id="正式部署" tabindex="-1">正式部署 <a class="header-anchor" href="#正式部署" aria-label="Permalink to &quot;正式部署&quot;">​</a></h2><p>正式部署使用同一套产品源码和构建,入口为 <code>mar-server/</code>、<code>mar-web-console/</code> 和根 <code>compose.yaml</code>。未激活时显示社区版,提供工作区会话、文件、Git、终端、模型与凭据管理、Skill/MCP,以及个人模板和托管对话;有效企业 License 在同一安装中启用组织、用户、共享授权、SSO 和审计,无需更换镜像。仅供本机体验的另一入口见 <a href="./npm-quick-start">npm 快速开始</a>。</p><p>两种授权状态都使用 <code>/console</code> 工作台和 <code>/docs/</code> 文档中心。原有指向 <code>/</code> 的链接继续可用,浏览器在产品内进入 <code>/console</code>,保留查询参数与片段。部署后应验证实际登录和一次工作区操作,不能仅凭 <code>/health</code> 成功判断完整工作台已可用。</p><h2 id="前置条件" tabindex="-1">前置条件 <a class="header-anchor" href="#前置条件" aria-label="Permalink to &quot;前置条件&quot;">​</a></h2><p>完成<a href="./prerequisites">部署前准备</a>,并取得当前发布版本的项目目录或镜像构建上下文。</p><h2 id="步骤" tabindex="-1">步骤 <a class="header-anchor" href="#步骤" aria-label="Permalink to &quot;步骤&quot;">​</a></h2><ol><li><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:#6F42C1;--shiki-dark:#B392F0;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env.example</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span>
1
+ import{_ as s,o as i,c as a,a3 as t}from"./chunks/framework.BHjrhdiC.js";const k=JSON.parse('{"title":"部署 MyAgentRoam Server 与 Web","description":"","frontmatter":{"title":"部署 MyAgentRoam Server 与 Web","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/server-installation.md","filePath":"getting-started/server-installation.md"}'),o={name:"getting-started/server-installation.md"};function l(d,e,n,h,p,r){return i(),a("div",null,[...e[0]||(e[0]=[t(`<h1 id="部署-myagentroam-server-与-web" tabindex="-1">部署 MyAgentRoam Server 与 Web <a class="header-anchor" href="#部署-myagentroam-server-与-web" aria-label="Permalink to &quot;部署 MyAgentRoam Server 与 Web&quot;">​</a></h1><p>本页以公开产品根目录的唯一 <code>compose.yaml</code> 部署 MySQL、SearXNG 和自带 Web 的 Server;生产入口由你的反向代理提供 HTTPS。</p><h2 id="正式部署" tabindex="-1">正式部署 <a class="header-anchor" href="#正式部署" aria-label="Permalink to &quot;正式部署&quot;">​</a></h2><p>正式部署使用同一套产品源码和构建,入口为 <code>mar-server/</code>、<code>mar-web-console/</code> 和根 <code>compose.yaml</code>。未激活时显示社区版,提供工作区会话、文件、Git、终端、模型与凭据管理、Skill/MCP,以及个人模板和托管对话;有效企业 License 在同一安装中启用组织、用户、共享授权、SSO 和审计,无需更换镜像。另一种安装入口见 <a href="./npm-quick-start">npm 快速开始</a>。</p><p>两种授权状态都使用 <code>/console</code> 工作台和 <code>/docs/</code> 文档中心。原有指向 <code>/</code> 的链接继续可用,浏览器在产品内进入 <code>/console</code>,保留查询参数与片段。部署后应验证实际登录和一次工作区操作,不能仅凭 <code>/health</code> 成功判断完整工作台已可用。</p><h2 id="前置条件" tabindex="-1">前置条件 <a class="header-anchor" href="#前置条件" aria-label="Permalink to &quot;前置条件&quot;">​</a></h2><p>完成<a href="./prerequisites">部署前准备</a>,并取得当前发布版本的项目目录或镜像构建上下文。</p><h2 id="步骤" tabindex="-1">步骤 <a class="header-anchor" href="#步骤" aria-label="Permalink to &quot;步骤&quot;">​</a></h2><ol><li><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:#6F42C1;--shiki-dark:#B392F0;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env.example</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span>
2
2
  <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 600</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span></code></pre></div><p>继续前填写所有空值:<code>MAR_PUBLIC_ORIGIN</code> 为外部 HTTPS 地址;MySQL Root 与应用密码应分别生成高强度值,<code>MAR_SEARXNG_SECRET</code> 使用随机长字符串;<code>MAR_SERVER_SSH_DIR</code> 指向已存在目录的绝对路径。Compose 会把 <code>MAR_MYSQL_PASSWORD</code> 嵌入数据库 URL,因此应用密码应使用 URL 安全字符。模板故意不提供可用秘密值,缺少必填值时 Compose 会拒绝启动。</p><p><code>MAR_SERVER_SSH_DIR</code> 填写当前独立部署账号的 <code>.ssh</code> 绝对路径。Compose 会把整个目录只读挂载到 Server;即使暂不使用 SSH 技能源,也应创建权限正确的空目录。</p></li><li><p>检查该目录及私钥只允许部署账号访问。如果使用 SSH Skill 源,在部署主机以部署账号验证对目标仓库的非交互读取;将下例中的地址替换为你有权访问的仓库:</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:#24292E;--shiki-dark:#E1E4E8;">GIT_SSH_COMMAND</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null&#39;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\</span></span>
3
3
  <span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ls-remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git@</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">repository-hos</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">owne</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">r</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">repositor</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">y</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> HEAD</span></span></code></pre></div><p>上例会连接外部仓库,且与 Server 的 SSH Skill 源一样跳过主机指纹校验,存在冒充服务器的风险;仅对可信网络和仓库使用,不要把该选项设为全局 SSH 默认值。<code>.ssh/config</code> 中的 <code>IdentityFile</code> 应写成 <code>~/.ssh/密钥名</code>,不要引用容器内不存在的宿主机绝对路径。宿主机部署账号 UID 应与镜像内 <code>node</code> 用户 UID 一致(默认 <code>1000</code>),否则 OpenSSH 可能因所有权不匹配拒绝私钥。</p></li><li><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:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build</span></span>
4
- <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ps</span></span></code></pre></div></li><li><p>将反向代理的 HTTPS 流量转发到统一 Server 的宿主机 <code>5190</code> 端口;同时允许 Upgrade/WebSocket 请求,不要把 <code>/api/</code> 或 WebSocket 升级请求缓存。</p></li><li><p>在 Server 主机检查健康状态:</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;"> -fsS</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://127.0.0.1:5190/health</span></span></code></pre></div></li><li><p>用浏览器打开 <code>MAR_PUBLIC_ORIGIN</code>。</p></li></ol><p><strong>成功标志:</strong> <code>docker compose ps</code> 中 MySQL、SearXNG、Server 三个服务健康,打开 HTTPS 站点后可进入 <code>/console</code> 登录。</p><h2 id="失败排查" tabindex="-1">失败排查 <a class="header-anchor" href="#失败排查" aria-label="Permalink to &quot;失败排查&quot;">​</a></h2><ul><li>MySQL 未健康:执行 <code>docker compose logs mysql</code>,确认密码变量已填写且 <code>13006</code> 未被占用。</li><li>SSH 技能源不可读:确认 <code>MAR_SERVER_SSH_DIR</code> 是绝对路径、部署账号 UID 为 <code>1000</code>,并检查 <code>.ssh/config</code> 的 <code>IdentityFile</code> 在容器内仍指向 <code>~/.ssh/</code>。</li><li>登录页打开但请求失败:检查反向代理是否把 <code>/api/</code> 转到同一站点,以及 <code>MAR_PUBLIC_ORIGIN</code> 是否完全匹配外部地址。</li><li>Node 无法连接:Node 控制连接无需开放入站 HTTP API;检查 Node 到 <code>MAR_PUBLIC_ORIGIN</code> 的出站 HTTPS/WSS 与证书链。</li></ul><p>安全提示:<code>.env</code> 含数据库密码,不要提交 Git、贴入对话或放在 Web 根目录。</p><p>下一步:<a href="./first-login">首次登录与修改初始密码</a>;生产网络细节见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。</p><p>正式部署的社区与企业状态都要求有效的真实主机 UUID。容器必须将宿主 <code>/sys/class/dmi/id/product_uuid</code> 只读挂载到 <code>/license-host/product_uuid</code>,源文件必须存在;原生正式部署可用 <code>MAR_LICENSE_HOST_PATH</code> 指定真实 UUID 文件。仅供本机体验的 <a href="./npm-quick-start">npm 快速开始</a>无需 UUID,也不支持激活。</p><h2 id="连接独立-node" tabindex="-1">连接独立 Node <a class="header-anchor" href="#连接独立-node" aria-label="Permalink to &quot;连接独立 Node&quot;">​</a></h2><p>正式部署中,Server 只托管 Web 与 API,不包含 Node 执行器。使用工作区、Agent、文件、终端或托管对话前,请独立<a href="./../deployment/node-installation">安装并注册 Node</a>。托管与浏览器执行依赖配置在 Node 主机上,不在 Server 镜像中。</p>`,17)])])}const g=s(o,[["render",l]]);export{k as __pageData,g as default};
4
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ps</span></span></code></pre></div></li><li><p>将反向代理的 HTTPS 流量转发到统一 Server 的宿主机 <code>5190</code> 端口;同时允许 Upgrade/WebSocket 请求,不要把 <code>/api/</code> 或 WebSocket 升级请求缓存。</p></li><li><p>在 Server 主机检查健康状态:</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;"> -fsS</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://127.0.0.1:5190/health</span></span></code></pre></div></li><li><p>用浏览器打开 <code>MAR_PUBLIC_ORIGIN</code>。</p></li></ol><p><strong>成功标志:</strong> <code>docker compose ps</code> 中 MySQL、SearXNG、Server 三个服务健康,打开 HTTPS 站点后可进入 <code>/console</code> 登录。</p><h2 id="失败排查" tabindex="-1">失败排查 <a class="header-anchor" href="#失败排查" aria-label="Permalink to &quot;失败排查&quot;">​</a></h2><ul><li>MySQL 未健康:执行 <code>docker compose logs mysql</code>,确认密码变量已填写且 <code>13006</code> 未被占用。</li><li>SSH 技能源不可读:确认 <code>MAR_SERVER_SSH_DIR</code> 是绝对路径、部署账号 UID 为 <code>1000</code>,并检查 <code>.ssh/config</code> 的 <code>IdentityFile</code> 在容器内仍指向 <code>~/.ssh/</code>。</li><li>登录页打开但请求失败:检查反向代理是否把 <code>/api/</code> 转到同一站点,以及 <code>MAR_PUBLIC_ORIGIN</code> 是否完全匹配外部地址。</li><li>Node 无法连接:Node 控制连接无需开放入站 HTTP API;检查 Node 到 <code>MAR_PUBLIC_ORIGIN</code> 的出站 HTTPS/WSS 与证书链。</li></ul><p>安全提示:<code>.env</code> 含数据库密码,不要提交 Git、贴入对话或放在 Web 根目录。</p><p>下一步:<a href="./first-login">首次登录与修改初始密码</a>;生产网络细节见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。</p><p>正式部署的社区与企业状态都要求有效的真实主机 UUID。容器必须将宿主 <code>/sys/class/dmi/id/product_uuid</code> 只读挂载到 <code>/license-host/product_uuid</code>,源文件必须存在;原生正式部署可用 <code>MAR_LICENSE_HOST_PATH</code> 指定真实 UUID 文件。<a href="./npm-quick-start">npm 快速开始</a>无需 UUID,也不支持激活。</p><h2 id="连接独立-node" tabindex="-1">连接独立 Node <a class="header-anchor" href="#连接独立-node" aria-label="Permalink to &quot;连接独立 Node&quot;">​</a></h2><p>正式部署中,Server 只托管 Web 与 API,不包含 Node 执行器。使用工作区、Agent、文件、终端或托管对话前,请独立<a href="./../deployment/node-installation">安装并注册 Node</a>。托管与浏览器执行依赖配置在 Node 主机上,不在 Server 镜像中。</p>`,17)])])}const g=s(o,[["render",l]]);export{k as __pageData,g as default};