diff --git a/404.html b/404.html index 2e419a3..67df922 100644 --- a/404.html +++ b/404.html @@ -1,4 +1,4 @@ -找不到页面 | Orbien +找不到页面 | Orbien
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

\ No newline at end of file diff --git a/assets/js/6b77a8a0.48c53b91.js b/assets/js/6b77a8a0.2a944c45.js similarity index 98% rename from assets/js/6b77a8a0.48c53b91.js rename to assets/js/6b77a8a0.2a944c45.js index f99c054..a8f31d5 100644 --- a/assets/js/6b77a8a0.48c53b91.js +++ b/assets/js/6b77a8a0.2a944c45.js @@ -1,2 +1,2 @@ "use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["646"],{1898(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>A,frontMatter:()=>N,contentTitle:()=>S,toc:()=>I,assets:()=>_});var t=JSON.parse('{"id":"integrations/springboot","title":"Spring Boot \u96C6\u6210","description":"Orbien \u63D0\u4F9B\u53EF\u5185\u5D4C\u5230 Spring Boot \u7684 Java \u5BA2\u6237\u7AEF\uFF0C\u5F53\u524D\u80FD\u529B\uFF1A","source":"@site/docs/integrations/springboot.mdx","sourceDirName":"integrations","slug":"/integrations/springboot","permalink":"/orbien/docs/integrations/springboot","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/integrations/springboot.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"SpringBoot\u96C6\u6210"},"sidebar":"docsSidebar","previous":{"title":"\u70ED\u91CD\u8F7D","permalink":"/orbien/docs/features/hot-reload"},"next":{"title":"\u6027\u80FD\u6D4B\u8BD5","permalink":"/orbien/docs/performance"}}'),o=r(1987),a=r(7008),i=r(1763),l=r(3526),s=r(1009),c=r(6532),u=r(9879),d=r(9327),p=r(8292),h=r(8184);function b({value:e,tabValues:n}){return n.some(n=>n.value===e)}let f=(0,i.createContext)(null);function m(){let e=i.useContext(f);if(!e)throw Error("useTabsContext() must be used within a Tabs component");return e}function x(e){return(0,o.jsx)(f.Provider,{value:e.value,children:e.children})}var g=r(8522),v=r(8261);function j({className:e}){let{selectedValue:n,selectValue:r,tabValues:t,block:a}=m(),i=[],{blockElementScrollPositionUntilNextRender:s}=(0,g.a_)(),c=e=>{let o=e.currentTarget,a=t[i.indexOf(o)].value;a!==n&&(s(o),r(a))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let r=i.indexOf(e.currentTarget)+1;n=i[r]??i[0];break}case"ArrowLeft":{let r=i.indexOf(e.currentTarget)-1;n=i[r]??i[i.length-1]}}n?.focus()};return(0,o.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},e),children:t.map(({value:e,label:r,attributes:t})=>(0,o.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>{i.push(e)},onKeyDown:u,onClick:c,...t,className:(0,l.A)("tabs__item","tabItem_Xg_G",t?.className,{"tabs__item--active":n===e}),children:r??e},e))})}function y({children:e}){return(0,o.jsx)("div",{className:"margin-top--md",children:e})}function T({className:e,children:n}){return(0,o.jsxs)("div",{className:(0,l.A)(s.G.tabs.container,"tabs-container","tabList_f3wh"),children:[(0,o.jsx)(j,{className:e}),(0,o.jsx)(y,{children:n})]})}function w(e){var n;let r=(0,v.A)(),t=function(e){let n,{defaultValue:r,queryString:t=!1,groupId:o}=e,a=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=n??i.Children.toArray(r).flatMap(e=>{if(!e)return[];if((0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return[e];let n="string"==typeof e.type?e.type:e.type.name;throw Error(`Docusaurus error: Bad child <${n}>: all children of the component should be , and every should have a unique "value" prop. -If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[l,s]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!b({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[f,m]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[x,g]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=b({value:n=f??x,tabValues:a})?n:null;return(0,u.A)(()=>{v&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!b({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(e),m(e),g(e)},[m,g,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(x,{value:t,children:(0,o.jsx)(T,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function k({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_vIHf",n),hidden:r,children:e})}function C({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=m(),i=r===t;return!i&&a?null:(0,o.jsx)(k,{className:n,hidden:!i,children:e})}let N={sidebar_position:1,sidebar_label:"SpringBoot\u96C6\u6210"},S="Spring Boot \u96C6\u6210",_={},I=[{value:"\u6700\u5C0F\u914D\u7F6E",id:"\u6700\u5C0F\u914D\u7F6E",level:2},{value:"\u5B8C\u6574\u53C2\u8003",id:"\u5B8C\u6574\u53C2\u8003",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-\u96C6\u6210",children:"Spring Boot \u96C6\u6210"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," \u63D0\u4F9B\u53EF\u5185\u5D4C\u5230 Spring Boot \u7684 Java \u5BA2\u6237\u7AEF\uFF0C\u5F53\u524D\u80FD\u529B\uFF1A"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\u96A7\u9053\u534F\u8BAE\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"}),"\u3001",(0,o.jsx)(n.strong,{children:"HTTP"})]}),"\n",(0,o.jsxs)(n.li,{children:["\u4F20\u8F93\u5C42\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"\u4E0D\u652F\u6301 TCP \u591A\u8DEF\u590D\u7528"}),"\uFF1A",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," \u5FC5\u987B\u4E3A ",(0,o.jsx)(n.code,{children:"false"}),"\uFF0C\u670D\u52A1\u7AEF\u4E5F\u9700 ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"}),"\uFF08\u670D\u52A1\u7AEF\u9ED8\u8BA4\u5F00\u542F\u591A\u8DEF\u590D\u7528\uFF0C\u4E0E Java \u5BA2\u6237\u7AEF\u8054\u8C03\u65F6\u9700\u663E\u5F0F\u5173\u95ED\uFF09"]}),"\n"]}),"\n",(0,o.jsxs)(w,{children:[(0,o.jsx)(C,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 3.4.0\n\n"})})}),(0,o.jsx)(C,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.4.0")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"\u6700\u5C0F\u914D\u7F6E",children:"\u6700\u5C0F\u914D\u7F6E"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," / ",(0,o.jsx)(n.code,{children:"name"})," \u53EF\u7701\u7565\uFF1A\u672A\u586B\u65F6\u5206\u522B\u4F7F\u7528 Spring Boot Web \u7AEF\u53E3\u4E0E ",(0,o.jsx)(n.code,{children:"spring.application.name"}),"\uFF08\u6216 ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),"\uFF09\u3002"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server: "127.0.0.1:9527"\n # token: YOUR_TOKEN # \u53EF\u9009\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n'})}),"\n",(0,o.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\u9700\u5173\u95ED\u591A\u8DEF\u590D\u7528\uFF0C\u4F8B\u5982\uFF1A"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # \u5173\u95ED TCP \u591A\u8DEF\u590D\u7528\n'})}),"\n",(0,o.jsx)(n.h2,{id:"\u5B8C\u6574\u53C2\u8003",children:"\u5B8C\u6574\u53C2\u8003"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server: "127.0.0.1:9527"\n token: YOUR_TOKEN\n tcp-mux: false # \u5FC5\u987B\u4E3A false\uFF0C\u4E14\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4\n pool-count: 1 # \u767B\u5F55\u65F6\u9884\u7533\u8BF7\u7684\u6570\u636E\u8FDE\u63A5\u6C60\u5927\u5C0F\n heartbeat-interval-secs: 30\n user: spring-boot-demo # \u53EF\u9009\uFF0C\u5C55\u793A\u5728 Dashboard\n # session-id: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4ECE session-id-file \u6062\u590D\uFF0C\u6216\u81EA\u52A8\u751F\u6210\n # session-id-file: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4F7F\u7528\u7528\u6237\u76EE\u5F55\u4E0B\u7684\u9ED8\u8BA4\u8DEF\u5F84\n tunnel:\n name: web-demo # \u53EF\u9009\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # \u53EF\u9009\uFF1B\u672A\u586B\u5219\u4F7F\u7528 Spring Boot \u76D1\u542C\u7AEF\u53E3\n # remote-port: 9000 # \u4EC5 protocol=tcp \u65F6\u9700\u8981\n domains: # protocol=http \u65F6\u5FC5\u586B\n - web.domain.com\n'})})]})}function A(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>l});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file +If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[l,s]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!b({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[f,m]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[x,g]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=b({value:n=f??x,tabValues:a})?n:null;return(0,u.A)(()=>{v&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!b({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(e),m(e),g(e)},[m,g,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(x,{value:t,children:(0,o.jsx)(T,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function k({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_vIHf",n),hidden:r,children:e})}function C({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=m(),i=r===t;return!i&&a?null:(0,o.jsx)(k,{className:n,hidden:!i,children:e})}let N={sidebar_position:1,sidebar_label:"SpringBoot\u96C6\u6210"},S="Spring Boot \u96C6\u6210",_={},I=[{value:"\u6700\u5C0F\u914D\u7F6E",id:"\u6700\u5C0F\u914D\u7F6E",level:2},{value:"\u5B8C\u6574\u53C2\u8003",id:"\u5B8C\u6574\u53C2\u8003",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-\u96C6\u6210",children:"Spring Boot \u96C6\u6210"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," \u63D0\u4F9B\u53EF\u5185\u5D4C\u5230 Spring Boot \u7684 Java \u5BA2\u6237\u7AEF\uFF0C\u5F53\u524D\u80FD\u529B\uFF1A"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\u96A7\u9053\u534F\u8BAE\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"}),"\u3001",(0,o.jsx)(n.strong,{children:"HTTP"})]}),"\n",(0,o.jsxs)(n.li,{children:["\u4F20\u8F93\u5C42\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"\u4E0D\u652F\u6301 TCP \u591A\u8DEF\u590D\u7528"}),"\uFF1A",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," \u5FC5\u987B\u4E3A ",(0,o.jsx)(n.code,{children:"false"}),"\uFF0C\u670D\u52A1\u7AEF\u4E5F\u9700 ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"}),"\uFF08\u670D\u52A1\u7AEF\u9ED8\u8BA4\u5F00\u542F\u591A\u8DEF\u590D\u7528\uFF0C\u4E0E Java \u5BA2\u6237\u7AEF\u8054\u8C03\u65F6\u9700\u663E\u5F0F\u5173\u95ED\uFF09"]}),"\n"]}),"\n",(0,o.jsxs)(w,{children:[(0,o.jsx)(C,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 3.5.0\n\n"})})}),(0,o.jsx)(C,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.5.0")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"\u6700\u5C0F\u914D\u7F6E",children:"\u6700\u5C0F\u914D\u7F6E"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," / ",(0,o.jsx)(n.code,{children:"name"})," \u53EF\u7701\u7565\uFF1A\u672A\u586B\u65F6\u5206\u522B\u4F7F\u7528 Spring Boot Web \u7AEF\u53E3\u4E0E ",(0,o.jsx)(n.code,{children:"spring.application.name"}),"\uFF08\u6216 ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),"\uFF09\u3002"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server: "127.0.0.1:9527"\n # token: YOUR_TOKEN # \u53EF\u9009\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n'})}),"\n",(0,o.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\u9700\u5173\u95ED\u591A\u8DEF\u590D\u7528\uFF0C\u4F8B\u5982\uFF1A"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # \u5173\u95ED TCP \u591A\u8DEF\u590D\u7528\n'})}),"\n",(0,o.jsx)(n.h2,{id:"\u5B8C\u6574\u53C2\u8003",children:"\u5B8C\u6574\u53C2\u8003"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server: "127.0.0.1:9527"\n token: YOUR_TOKEN\n tcp-mux: false # \u5FC5\u987B\u4E3A false\uFF0C\u4E14\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4\n pool-count: 1 # \u767B\u5F55\u65F6\u9884\u7533\u8BF7\u7684\u6570\u636E\u8FDE\u63A5\u6C60\u5927\u5C0F\n heartbeat-interval-secs: 30\n user: spring-boot-demo # \u53EF\u9009\uFF0C\u5C55\u793A\u5728 Dashboard\n # session-id: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4ECE session-id-file \u6062\u590D\uFF0C\u6216\u81EA\u52A8\u751F\u6210\n # session-id-file: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4F7F\u7528\u7528\u6237\u76EE\u5F55\u4E0B\u7684\u9ED8\u8BA4\u8DEF\u5F84\n tunnel:\n name: web-demo # \u53EF\u9009\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # \u53EF\u9009\uFF1B\u672A\u586B\u5219\u4F7F\u7528 Spring Boot \u76D1\u542C\u7AEF\u53E3\n # remote-port: 9000 # \u4EC5 protocol=tcp \u65F6\u9700\u8981\n domains: # protocol=http \u65F6\u5FC5\u586B\n - web.domain.com\n'})})]})}function A(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>l});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/72e9da6a.440f7b3a.js b/assets/js/72e9da6a.5802bb72.js similarity index 82% rename from assets/js/72e9da6a.440f7b3a.js rename to assets/js/72e9da6a.5802bb72.js index 3c74fc9..aecce4b 100644 --- a/assets/js/72e9da6a.440f7b3a.js +++ b/assets/js/72e9da6a.5802bb72.js @@ -1 +1 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["521"],{369(e,d,r){r.r(d),r.d(d,{metadata:()=>s,default:()=>h,frontMatter:()=>i,contentTitle:()=>c,toc:()=>l,assets:()=>o});var s=JSON.parse('{"id":"features/dashboard","title":"\u7BA1\u7406\u754C\u9762","description":"\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002 port > 0 \u65F6\u542F\u7528\uFF0C\u542F\u7528\u540E \u5FC5\u987B \u914D\u7F6E user \u4E0E","source":"@site/docs/features/dashboard.md","sourceDirName":"features","slug":"/features/dashboard","permalink":"/orbien/docs/features/dashboard","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/dashboard.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u7BA1\u7406\u754C\u9762","title":"\u7BA1\u7406\u754C\u9762"},"sidebar":"docsSidebar","previous":{"title":"\u8EAB\u4EFD\u8BA4\u8BC1","permalink":"/orbien/docs/features/authentication"},"next":{"title":"\u5BF9\u5916\u76D1\u542C\u5730\u5740","permalink":"/orbien/docs/features/public-bind"}}'),n=r(1987),t=r(7008);let i={sidebar_position:2,sidebar_label:"\u7BA1\u7406\u754C\u9762",title:"\u7BA1\u7406\u754C\u9762"},c="\u7BA1\u7406\u754C\u9762",o={},l=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function a(e){let d={admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.header,{children:(0,n.jsx)(d.h1,{id:"\u7BA1\u7406\u754C\u9762",children:"\u7BA1\u7406\u754C\u9762"})}),"\n",(0,n.jsxs)(d.p,{children:["\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002 ",(0,n.jsx)(d.code,{children:"port > 0"})," \u65F6\u542F\u7528\uFF0C\u542F\u7528\u540E ",(0,n.jsx)(d.strong,{children:"\u5FC5\u987B"})," \u914D\u7F6E ",(0,n.jsx)(d.code,{children:"user"})," \u4E0E\n",(0,n.jsx)(d.code,{children:"password"}),"\u3002"]}),"\n",(0,n.jsx)(d.p,{children:(0,n.jsx)(d.img,{alt:"dashboard.png",src:r(9613).A+"",width:"1494",height:"902"})}),"\n",(0,n.jsx)(d.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,n.jsx)(d.pre,{children:(0,n.jsx)(d.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[dashboard]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\n'})}),"\n",(0,n.jsxs)(d.p,{children:["\u6D4F\u89C8\u5668\u8BBF\u95EE ",(0,n.jsx)(d.code,{children:"http://SERVER_IP:8020"}),"\uFF0C\u5728\u5F39\u51FA\u6846\u8F93\u5165\u7528\u6237\u540D\u548C\u5BC6\u7801\u767B\u5F55\u3002"]}),"\n",(0,n.jsx)(d.admonition,{type:"tip",children:(0,n.jsxs)(d.p,{children:[(0,n.jsx)(d.code,{children:"addr"})," \u9ED8\u8BA4\u4E3A ",(0,n.jsx)(d.code,{children:"127.0.0.1"}),"\uFF08\u4EC5\u672C\u673A\uFF09\uFF0C\u9700\u8FDC\u7A0B\u8BBF\u95EE\u65F6\u8BBE\u4E3A ",(0,n.jsx)(d.code,{children:"0.0.0.0"})]})}),"\n",(0,n.jsx)(d.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,n.jsxs)(d.table,{children:[(0,n.jsx)(d.thead,{children:(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.th,{children:"\u53C2\u6570"}),(0,n.jsx)(d.th,{children:"\u5FC5\u586B"}),(0,n.jsx)(d.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(d.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsxs)(d.tbody,{children:[(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.addr"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"127.0.0.1"})}),(0,n.jsxs)(d.td,{children:["\u76D1\u542C\u5730\u5740\uFF1B\u8FDC\u7A0B\u8BBF\u95EE\u9700 ",(0,n.jsx)(d.code,{children:"0.0.0.0"})]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.port"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"0"})}),(0,n.jsxs)(d.td,{children:["\u76D1\u542C\u7AEF\u53E3\uFF1B",(0,n.jsx)(d.code,{children:"0"})," \u8868\u793A\u5173\u95ED"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.user"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"\u767B\u5F55\u7528\u6237\u540D"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.password"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"\u767B\u5F55\u5BC6\u7801"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.staticDir"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"\u9759\u6001\u8D44\u6E90\u76EE\u5F55\uFF1B\u7A7A\u5219\u4F7F\u7528\u5185\u7F6E\u524D\u7AEF"})]})]})]})]})}function h(e={}){let{wrapper:d}={...(0,t.R)(),...e.components};return d?(0,n.jsx)(d,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},9613(e,d,r){r.d(d,{A:()=>s});let s=r.p+"assets/images/dashboard-5d4b9f70ebe8b382f3fbf0a414bad1d3.png"},7008(e,d,r){r.d(d,{R:()=>i,x:()=>c});var s=r(1763);let n={},t=s.createContext(n);function i(e){let d=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(t.Provider,{value:d},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["521"],{369(e,d,r){r.r(d),r.d(d,{metadata:()=>s,default:()=>h,frontMatter:()=>i,contentTitle:()=>c,toc:()=>l,assets:()=>o});var s=JSON.parse('{"id":"features/dashboard","title":"\u7BA1\u7406\u754C\u9762","description":"\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002 port > 0 \u65F6\u542F\u7528\uFF0C\u542F\u7528\u540E \u5FC5\u987B \u914D\u7F6E user \u4E0E","source":"@site/docs/features/dashboard.md","sourceDirName":"features","slug":"/features/dashboard","permalink":"/orbien/docs/features/dashboard","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/dashboard.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u7BA1\u7406\u754C\u9762","title":"\u7BA1\u7406\u754C\u9762"},"sidebar":"docsSidebar","previous":{"title":"\u8EAB\u4EFD\u8BA4\u8BC1","permalink":"/orbien/docs/features/authentication"},"next":{"title":"\u5BF9\u5916\u76D1\u542C\u5730\u5740","permalink":"/orbien/docs/features/public-bind"}}'),n=r(1987),t=r(7008);let i={sidebar_position:2,sidebar_label:"\u7BA1\u7406\u754C\u9762",title:"\u7BA1\u7406\u754C\u9762"},c="\u7BA1\u7406\u754C\u9762",o={},l=[{value:"\u793A\u4F8B",id:"\u793A\u4F8B",level:2},{value:"\u53C2\u6570",id:"\u53C2\u6570",level:2}];function a(e){let d={admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.header,{children:(0,n.jsx)(d.h1,{id:"\u7BA1\u7406\u754C\u9762",children:"\u7BA1\u7406\u754C\u9762"})}),"\n",(0,n.jsxs)(d.p,{children:["\u670D\u52A1\u7AEF Web \u7BA1\u7406\u9762\u677F\u3002 ",(0,n.jsx)(d.code,{children:"port > 0"})," \u65F6\u542F\u7528\uFF0C\u542F\u7528\u540E ",(0,n.jsx)(d.strong,{children:"\u5FC5\u987B"})," \u914D\u7F6E ",(0,n.jsx)(d.code,{children:"user"})," \u4E0E\n",(0,n.jsx)(d.code,{children:"password"}),"\u3002"]}),"\n",(0,n.jsx)(d.p,{children:(0,n.jsx)(d.img,{alt:"dashboard.png",src:r(9613).A+"",width:"1494",height:"902"})}),"\n",(0,n.jsx)(d.h2,{id:"\u793A\u4F8B",children:"\u793A\u4F8B"}),"\n",(0,n.jsx)(d.pre,{children:(0,n.jsx)(d.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[dashboard]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\n'})}),"\n",(0,n.jsxs)(d.p,{children:["\u6D4F\u89C8\u5668\u8BBF\u95EE ",(0,n.jsx)(d.code,{children:"http://SERVER_IP:8020"}),"\uFF0C\u5728\u5F39\u51FA\u6846\u8F93\u5165\u7528\u6237\u540D\u548C\u5BC6\u7801\u767B\u5F55\u3002"]}),"\n",(0,n.jsx)(d.admonition,{type:"tip",children:(0,n.jsxs)(d.p,{children:[(0,n.jsx)(d.code,{children:"addr"})," \u9ED8\u8BA4\u4E3A ",(0,n.jsx)(d.code,{children:"127.0.0.1"}),"\uFF08\u4EC5\u672C\u673A\uFF09\uFF0C\u9700\u8FDC\u7A0B\u8BBF\u95EE\u65F6\u8BBE\u4E3A ",(0,n.jsx)(d.code,{children:"0.0.0.0"})]})}),"\n",(0,n.jsx)(d.h2,{id:"\u53C2\u6570",children:"\u53C2\u6570"}),"\n",(0,n.jsxs)(d.table,{children:[(0,n.jsx)(d.thead,{children:(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.th,{children:"\u53C2\u6570"}),(0,n.jsx)(d.th,{children:"\u5FC5\u586B"}),(0,n.jsx)(d.th,{children:"\u9ED8\u8BA4\u503C"}),(0,n.jsx)(d.th,{children:"\u8BF4\u660E"})]})}),(0,n.jsxs)(d.tbody,{children:[(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.addr"})}),(0,n.jsx)(d.td,{children:"\u5426"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"127.0.0.1"})}),(0,n.jsxs)(d.td,{children:["\u76D1\u542C\u5730\u5740\uFF1B\u8FDC\u7A0B\u8BBF\u95EE\u9700 ",(0,n.jsx)(d.code,{children:"0.0.0.0"})]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.port"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"0"})}),(0,n.jsxs)(d.td,{children:["\u76D1\u542C\u7AEF\u53E3\uFF1B",(0,n.jsx)(d.code,{children:"0"})," \u8868\u793A\u5173\u95ED"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.user"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"\u767B\u5F55\u7528\u6237\u540D"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.password"})}),(0,n.jsx)(d.td,{children:"\u662F"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"\u767B\u5F55\u5BC6\u7801"})]})]})]})]})}function h(e={}){let{wrapper:d}={...(0,t.R)(),...e.components};return d?(0,n.jsx)(d,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},9613(e,d,r){r.d(d,{A:()=>s});let s=r.p+"assets/images/dashboard-5d4b9f70ebe8b382f3fbf0a414bad1d3.png"},7008(e,d,r){r.d(d,{R:()=>i,x:()=>c});var s=r(1763);let n={},t=s.createContext(n);function i(e){let d=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function c(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(t.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6f0c936.74dd2779.js b/assets/js/e6f0c936.9dbf1e8b.js similarity index 99% rename from assets/js/e6f0c936.74dd2779.js rename to assets/js/e6f0c936.9dbf1e8b.js index fcde1d1..2711195 100644 --- a/assets/js/e6f0c936.74dd2779.js +++ b/assets/js/e6f0c936.9dbf1e8b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["440"],{7152(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>I,frontMatter:()=>v,contentTitle:()=>k,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"\u4E0B\u8F7D","description":"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305","source":"@site/docs/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u4E0B\u8F7D"},"sidebar":"docsSidebar","previous":{"title":"\u4ECB\u7ECD","permalink":"/orbien/docs/intro"},"next":{"title":"\u5FEB\u901F\u5F00\u59CB","permalink":"/orbien/docs/quickstart"}}'),i=n(1987),o=n(7008),a=n(1763),d=n(3526),l=n(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},j=[{id:"server",name:"orbien-server",label:(0,i.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,i.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,i.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function g(e,r){if("orbien-desktop"!==e)return"tar.gz";switch(r){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,r]=(0,a.useState)("3.4.0"),[n,s]=(0,a.useState)(null),[o,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let n=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!n.ok)return;let i=await n.json();if(e)return;let o=i.tag_name?.replace(/^v/,"");o&&r(o),i.assets&&s(new Set(i.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let v=(0,a.useMemo)(()=>{let e=new Map,r=0;for(;r(0,i.jsx)("th",{children:e.label},e.id)),(0,i.jsx)("th",{children:(0,i.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,i.jsx)("tbody",{children:x.map((r,s)=>{let a=v.get(s),t=void 0!==a,c="linux"===r.os?r.libc:void 0;return(0,i.jsxs)("tr",{className:(0,d.A)(o===r.os&&"rowHighlight_Rqix"),children:[t?(0,i.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[r.os]}):null,(0,i.jsx)("td",{children:(0,i.jsx)("code",{children:w[r.arch]})}),(0,i.jsx)("td",{children:c?(0,i.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),j.map(s=>{var o,a,d,l,t,u,m,x,p,w;let j,f,v="orbien-desktop"===s.name,k=v?"linux"===r.os&&"gnu"===r.libc?"gnu":void 0:c,_=(o=s.name,a=r.os,d=r.arch,b.has(k?`${o}|${a}|${d}|${k}`:`${o}|${a}|${d}`)),$=(l=s.name,t=r.os,u=v?void 0:c,j=g(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${j}`:j),N=(m=s.name,x=r.os,p=r.arch,w=v?void 0:c,f=g(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!n||n.has(N);return(0,i.jsx)("td",{children:_&&I?(0,i.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,i.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(r.noteId)})]},`${r.os}-${r.arch}-${r.libc??"default"}`)})})]})}),(0,i.jsxs)("div",{className:"docker_YIhP",children:[(0,i.jsx)("h3",{children:"Docker"}),(0,i.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien-server"}),(0,i.jsx)("span",{className:u,children:"server"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien"}),(0,i.jsx)("span",{className:u,children:"client"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let v={sidebar_position:2,sidebar_label:"\u4E0B\u8F7D"},k="\u4E0B\u8F7D",_={},$=[];function N(e){let r={h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"\u4E0B\u8F7D",children:"\u4E0B\u8F7D"})}),"\n",(0,i.jsx)(r.p,{children:"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305"}),"\n",(0,i.jsx)(f,{})]})}function I(e={}){let{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(N,{...e})}):N(e)}},7008(e,r,n){n.d(r,{R:()=>a,x:()=>d});var s=n(1763);let i={},o=s.createContext(i);function a(e){let r=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["440"],{7152(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>I,frontMatter:()=>v,contentTitle:()=>k,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"\u4E0B\u8F7D","description":"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305","source":"@site/docs/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u4E0B\u8F7D"},"sidebar":"docsSidebar","previous":{"title":"\u4ECB\u7ECD","permalink":"/orbien/docs/intro"},"next":{"title":"\u5FEB\u901F\u5F00\u59CB","permalink":"/orbien/docs/quickstart"}}'),i=n(1987),o=n(7008),a=n(1763),d=n(3526),l=n(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},j=[{id:"server",name:"orbien-server",label:(0,i.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,i.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,i.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function g(e,r){if("orbien-desktop"!==e)return"tar.gz";switch(r){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,r]=(0,a.useState)("3.5.0"),[n,s]=(0,a.useState)(null),[o,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let n=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!n.ok)return;let i=await n.json();if(e)return;let o=i.tag_name?.replace(/^v/,"");o&&r(o),i.assets&&s(new Set(i.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let v=(0,a.useMemo)(()=>{let e=new Map,r=0;for(;r(0,i.jsx)("th",{children:e.label},e.id)),(0,i.jsx)("th",{children:(0,i.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,i.jsx)("tbody",{children:x.map((r,s)=>{let a=v.get(s),t=void 0!==a,c="linux"===r.os?r.libc:void 0;return(0,i.jsxs)("tr",{className:(0,d.A)(o===r.os&&"rowHighlight_Rqix"),children:[t?(0,i.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[r.os]}):null,(0,i.jsx)("td",{children:(0,i.jsx)("code",{children:w[r.arch]})}),(0,i.jsx)("td",{children:c?(0,i.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),j.map(s=>{var o,a,d,l,t,u,m,x,p,w;let j,f,v="orbien-desktop"===s.name,k=v?"linux"===r.os&&"gnu"===r.libc?"gnu":void 0:c,_=(o=s.name,a=r.os,d=r.arch,b.has(k?`${o}|${a}|${d}|${k}`:`${o}|${a}|${d}`)),$=(l=s.name,t=r.os,u=v?void 0:c,j=g(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${j}`:j),N=(m=s.name,x=r.os,p=r.arch,w=v?void 0:c,f=g(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!n||n.has(N);return(0,i.jsx)("td",{children:_&&I?(0,i.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,i.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(r.noteId)})]},`${r.os}-${r.arch}-${r.libc??"default"}`)})})]})}),(0,i.jsxs)("div",{className:"docker_YIhP",children:[(0,i.jsx)("h3",{children:"Docker"}),(0,i.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien-server"}),(0,i.jsx)("span",{className:u,children:"server"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien"}),(0,i.jsx)("span",{className:u,children:"client"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let v={sidebar_position:2,sidebar_label:"\u4E0B\u8F7D"},k="\u4E0B\u8F7D",_={},$=[];function N(e){let r={h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"\u4E0B\u8F7D",children:"\u4E0B\u8F7D"})}),"\n",(0,i.jsx)(r.p,{children:"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305"}),"\n",(0,i.jsx)(f,{})]})}function I(e={}){let{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(N,{...e})}):N(e)}},7008(e,r,n){n.d(r,{R:()=>a,x:()=>d});var s=n(1763);let i={},o=s.createContext(i);function a(e){let r=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.2c702c45.js b/assets/js/main.573b019c.js similarity index 99% rename from assets/js/main.2c702c45.js rename to assets/js/main.573b019c.js index 02e1c9c..76cdc51 100644 --- a/assets/js/main.2c702c45.js +++ b/assets/js/main.573b019c.js @@ -24,7 +24,7 @@ function insertBanner() { : actualHomePagePath + '/'; suggestionContainer.textContent = suggestedBaseUrl; } -`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/docs/community","sidebar":"docsSidebar"},{"id":"desktop","path":"/orbien/docs/desktop","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/env","path":"/orbien/docs/features/env","sidebar":"docsSidebar"},{"id":"features/hot-reload","path":"/orbien/docs/features/hot-reload","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/docs/quickstart","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/socks5","path":"/orbien/docs/tunnels/socks5","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/docs/intro","label":"\u4ECB\u7ECD"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"zh-Hans","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.4.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,C=(0,s.A)(A),T=A?.replace("pathname://",""),P=void 0!==T?(y=T,h&&y.startsWith("/")?S(y):y):void 0;"hash"===x&&P?.startsWith("./")&&(P=P?.slice(1)),P&&C&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&C&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,C]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!C||!D||I&&"hash"!==x;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!C&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&C&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". +`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/docs/community","sidebar":"docsSidebar"},{"id":"desktop","path":"/orbien/docs/desktop","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/env","path":"/orbien/docs/features/env","sidebar":"docsSidebar"},{"id":"features/hot-reload","path":"/orbien/docs/features/hot-reload","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/docs/quickstart","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/socks5","path":"/orbien/docs/tunnels/socks5","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/docs/intro","label":"\u4ECB\u7ECD"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"zh-Hans","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.5.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,C=(0,s.A)(A),T=A?.replace("pathname://",""),P=void 0!==T?(y=T,h&&y.startsWith("/")?S(y):y):void 0;"hash"===x&&P?.startsWith("./")&&(P=P?.slice(1)),P&&C&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&C&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,C]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!C||!D||I&&"hash"!==x;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!C&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&C&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". Available sidebar ids are: - ${t.map(e=>e[0]).join("\n- ")}`);return r[1]},[e,n])}function y(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.docs),r=t.find(t=>t.id===e);if(!r){if(n.flatMap(e=>e.draftIds).includes(e))return null;throw Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map(e=>e.name).join(", ")}". Available doc ids are: diff --git a/assets/js/runtime~main.fc004da0.js b/assets/js/runtime~main.ee3adcec.js similarity index 96% rename from assets/js/runtime~main.fc004da0.js rename to assets/js/runtime~main.ee3adcec.js index d7abf93..b9fd822 100644 --- a/assets/js/runtime~main.fc004da0.js +++ b/assets/js/runtime~main.ee3adcec.js @@ -1 +1 @@ -(()=>{"use strict";var e,r,t,a,f,o,d,c={},n={};function b(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={exports:{}};return c[e].call(t.exports,t,t.exports,b),t.exports}b.m=c,b.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return b.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(t,a){if(1&a&&(t=this(t)),8&a||"object"==typeof t&&t&&(4&a&&t.__esModule||16&a&&"function"==typeof t.then))return t;var f=Object.create(null);b.r(f);var o={};e=e||[null,r({}),r([]),r(r)];for(var d=2&a&&t;("object"==typeof d||"function"==typeof d)&&!~e.indexOf(d);d=r(d))Object.getOwnPropertyNames(d).forEach(e=>{o[e]=()=>t[e]});return o.default=()=>t,b.d(f,o),f},b.d=(e,r)=>{for(var t in r)b.o(r,t)&&!b.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((r,t)=>(b.f[t](e,r),r),[])),b.u=e=>"assets/js/"+(({106:"17896441",133:"90358f02",135:"ac5280f2",217:"0e384e19",218:"05d4cacb",229:"cc002db1",267:"ab38dbfe",326:"fe98809a",356:"5ef0e9d6",361:"8c6208d8",364:"fd368041",394:"def3d52a",395:"37f66e80",41:"edefc60b",411:"67e4f9fb",440:"e6f0c936",452:"1df93b7f",475:"f325f636",49:"bbb29017",499:"8070e160",503:"93234bd6",521:"72e9da6a",56:"a7456010",575:"a7bd4aaa",590:"46875d5c",630:"cc0a2bf3",646:"6b77a8a0",668:"5e95c892",688:"cac2e989",69:"97658992",707:"c1cdd282",747:"aba21aa0",785:"a94703ab",795:"9a00739f",817:"b2d27f24",896:"51876da0",960:"80557847"})[e]||e)+"."+({106:"6c48d3c2",133:"32d005bc",135:"e0744c2a",217:"dcfe22a1",218:"7119d8a1",229:"2eec232f",267:"250a4996",326:"94f05a50",356:"bc7a97b0",361:"8e2c2ac2",364:"d1053280",394:"e1de427f",395:"12dd921e",406:"7afbacb1",41:"ec699968",411:"5cd6a9d0",440:"74dd2779",452:"2b0cd58a",475:"9c4028b5",49:"455b90d1",499:"c6dc6b27",503:"42888fa3",521:"440f7b3a",56:"b47ace4d",575:"96f1510e",590:"4f76e68a",627:"5a86db8b",630:"8406ff27",646:"48c53b91",668:"61b67e6b",688:"8ebe344a",69:"d0b6799d",707:"3c5ba703",747:"66a74c66",785:"b81930da",795:"59ea1d8d",817:"ef8809fb",896:"b64acab5",960:"d294fd24"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},b.l=function(e,r,a,f){if(t[e])return void t[e].push(r);if(void 0!==a)for(var o,d,c=document.getElementsByTagName("script"),n=0;n{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a=[],b.O=(e,r,t,f)=>{if(r){f=f||0;for(var o=a.length;o>0&&a[o-1][2]>f;o--)a[o]=a[o-1];a[o]=[r,t,f];return}for(var d=1/0,o=0;o=f)&&Object.keys(b.O).every(e=>b.O[e](r[n]))?r.splice(n--,1):(c=!1,f"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x4cd3717:"960",0x5d22870:"69",edefc60b:"41",bbb29017:"49",a7456010:"56","90358f02":"133",ac5280f2:"135","0e384e19":"217","05d4cacb":"218",cc002db1:"229",ab38dbfe:"267",fe98809a:"326","5ef0e9d6":"356","8c6208d8":"361",fd368041:"364",def3d52a:"394","37f66e80":"395","67e4f9fb":"411",e6f0c936:"440","1df93b7f":"452",f325f636:"475","8070e160":"499","93234bd6":"503","72e9da6a":"521",a7bd4aaa:"575","46875d5c":"590",cc0a2bf3:"630","6b77a8a0":"646","5e95c892":"668",cac2e989:"688",c1cdd282:"707",aba21aa0:"747",a94703ab:"785","9a00739f":"795",b2d27f24:"817","51876da0":"896"})[e]||e,b.p+b.u(e)},f={14:0,783:0},b.f.j=function(e,r){var t=b.o(f,e)?f[e]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(14|783)$/.test(e))f[e]=0;else{var a=new Promise((r,a)=>t=f[e]=[r,a]);r.push(t[2]=a);var o=b.p+b.u(e),d=Error();b.l(o,function(r){if(b.o(f,e)&&(0!==(t=f[e])&&(f[e]=void 0),t)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;d.message="Loading chunk "+e+" failed.\n("+a+": "+o+")",d.name="ChunkLoadError",d.type=a,d.request=o,t[1](d)}},"chunk-"+e,e)}},b.O.j=e=>0===f[e],o=(e,r)=>{var t,a,o=r[0],d=r[1],c=r[2],n=0;if(o.some(e=>0!==f[e])){for(t in d)b.o(d,t)&&(b.m[t]=d[t]);if(c)var i=c(b)}for(e&&e(r);n{"use strict";var e,r,t,a,f,o,d,c={},n={};function b(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={exports:{}};return c[e].call(t.exports,t,t.exports,b),t.exports}b.m=c,b.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return b.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(t,a){if(1&a&&(t=this(t)),8&a||"object"==typeof t&&t&&(4&a&&t.__esModule||16&a&&"function"==typeof t.then))return t;var f=Object.create(null);b.r(f);var o={};e=e||[null,r({}),r([]),r(r)];for(var d=2&a&&t;("object"==typeof d||"function"==typeof d)&&!~e.indexOf(d);d=r(d))Object.getOwnPropertyNames(d).forEach(e=>{o[e]=()=>t[e]});return o.default=()=>t,b.d(f,o),f},b.d=(e,r)=>{for(var t in r)b.o(r,t)&&!b.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((r,t)=>(b.f[t](e,r),r),[])),b.u=e=>"assets/js/"+(({106:"17896441",133:"90358f02",135:"ac5280f2",217:"0e384e19",218:"05d4cacb",229:"cc002db1",267:"ab38dbfe",326:"fe98809a",356:"5ef0e9d6",361:"8c6208d8",364:"fd368041",394:"def3d52a",395:"37f66e80",41:"edefc60b",411:"67e4f9fb",440:"e6f0c936",452:"1df93b7f",475:"f325f636",49:"bbb29017",499:"8070e160",503:"93234bd6",521:"72e9da6a",56:"a7456010",575:"a7bd4aaa",590:"46875d5c",630:"cc0a2bf3",646:"6b77a8a0",668:"5e95c892",688:"cac2e989",69:"97658992",707:"c1cdd282",747:"aba21aa0",785:"a94703ab",795:"9a00739f",817:"b2d27f24",896:"51876da0",960:"80557847"})[e]||e)+"."+({106:"6c48d3c2",133:"32d005bc",135:"e0744c2a",217:"dcfe22a1",218:"7119d8a1",229:"2eec232f",267:"250a4996",326:"94f05a50",356:"bc7a97b0",361:"8e2c2ac2",364:"d1053280",394:"e1de427f",395:"12dd921e",406:"7afbacb1",41:"ec699968",411:"5cd6a9d0",440:"9dbf1e8b",452:"2b0cd58a",475:"9c4028b5",49:"455b90d1",499:"c6dc6b27",503:"42888fa3",521:"5802bb72",56:"b47ace4d",575:"96f1510e",590:"4f76e68a",627:"5a86db8b",630:"8406ff27",646:"2a944c45",668:"61b67e6b",688:"8ebe344a",69:"d0b6799d",707:"3c5ba703",747:"66a74c66",785:"b81930da",795:"59ea1d8d",817:"ef8809fb",896:"b64acab5",960:"d294fd24"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},b.l=function(e,r,a,f){if(t[e])return void t[e].push(r);if(void 0!==a)for(var o,d,c=document.getElementsByTagName("script"),n=0;n{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a=[],b.O=(e,r,t,f)=>{if(r){f=f||0;for(var o=a.length;o>0&&a[o-1][2]>f;o--)a[o]=a[o-1];a[o]=[r,t,f];return}for(var d=1/0,o=0;o=f)&&Object.keys(b.O).every(e=>b.O[e](r[n]))?r.splice(n--,1):(c=!1,f"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x4cd3717:"960",0x5d22870:"69",edefc60b:"41",bbb29017:"49",a7456010:"56","90358f02":"133",ac5280f2:"135","0e384e19":"217","05d4cacb":"218",cc002db1:"229",ab38dbfe:"267",fe98809a:"326","5ef0e9d6":"356","8c6208d8":"361",fd368041:"364",def3d52a:"394","37f66e80":"395","67e4f9fb":"411",e6f0c936:"440","1df93b7f":"452",f325f636:"475","8070e160":"499","93234bd6":"503","72e9da6a":"521",a7bd4aaa:"575","46875d5c":"590",cc0a2bf3:"630","6b77a8a0":"646","5e95c892":"668",cac2e989:"688",c1cdd282:"707",aba21aa0:"747",a94703ab:"785","9a00739f":"795",b2d27f24:"817","51876da0":"896"})[e]||e,b.p+b.u(e)},f={14:0,783:0},b.f.j=function(e,r){var t=b.o(f,e)?f[e]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(14|783)$/.test(e))f[e]=0;else{var a=new Promise((r,a)=>t=f[e]=[r,a]);r.push(t[2]=a);var o=b.p+b.u(e),d=Error();b.l(o,function(r){if(b.o(f,e)&&(0!==(t=f[e])&&(f[e]=void 0),t)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;d.message="Loading chunk "+e+" failed.\n("+a+": "+o+")",d.name="ChunkLoadError",d.type=a,d.request=o,t[1](d)}},"chunk-"+e,e)}},b.O.j=e=>0===f[e],o=(e,r)=>{var t,a,o=r[0],d=r[1],c=r[2],n=0;if(o.some(e=>0!==f[e])){for(t in d)b.o(d,t)&&(b.m[t]=d[t]);if(c)var i=c(b)}for(e&&e(r);n社区和贡献 | Orbien +社区和贡献 | Orbien

社区和贡献

diff --git a/docs/desktop.html b/docs/desktop.html index 412cf47..21a380b 100644 --- a/docs/desktop.html +++ b/docs/desktop.html @@ -1,4 +1,4 @@ -桌面客户端 | Orbien +桌面客户端 | Orbien

桌面客户端

diff --git a/docs/docker.html b/docs/docker.html index 2cb3664..e2e2443 100644 --- a/docs/docker.html +++ b/docs/docker.html @@ -1,4 +1,4 @@ -Docker 安装 | Orbien +Docker 安装 | Orbien

Docker 安装

diff --git a/docs/download.html b/docs/download.html index 9ab524d..f2f2b6f 100644 --- a/docs/download.html +++ b/docs/download.html @@ -1,6 +1,6 @@ -下载 | Orbien +下载 | Orbien

下载

按操作系统与架构选择对应安装包

-
操作系统架构libc服务端命令行客户端桌面客户端说明
Linuxamd64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
amd64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
arm64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
arm64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
FreeBSDamd64tar.gztar.gz
Windowsamd64tar.gztar.gzzip
arm64tar.gztar.gzzip
macOSamd64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行
arm64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行

Docker

  • orbien-serverserver
    docker pull ghcr.io/orbien-org/orbien-server:latest
  • orbienclient
    docker pull ghcr.io/orbien-org/orbien:latest
\ No newline at end of file +
操作系统架构libc服务端命令行客户端桌面客户端说明
Linuxamd64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
amd64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
arm64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
arm64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
FreeBSDamd64tar.gztar.gz
Windowsamd64tar.gztar.gzzip
arm64tar.gztar.gzzip
macOSamd64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行
arm64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行

Docker

  • orbien-serverserver
    docker pull ghcr.io/orbien-org/orbien-server:latest
  • orbienclient
    docker pull ghcr.io/orbien-org/orbien:latest
\ No newline at end of file diff --git a/docs/features/authentication.html b/docs/features/authentication.html index ffea217..9c75f42 100644 --- a/docs/features/authentication.html +++ b/docs/features/authentication.html @@ -1,4 +1,4 @@ -身份认证 | Orbien +身份认证 | Orbien

身份认证

diff --git a/docs/features/bandwidth.html b/docs/features/bandwidth.html index 4c7d8b1..32f15b8 100644 --- a/docs/features/bandwidth.html +++ b/docs/features/bandwidth.html @@ -1,4 +1,4 @@ -带宽限制 | Orbien +带宽限制 | Orbien

带宽限制

diff --git a/docs/features/dashboard.html b/docs/features/dashboard.html index 0ae2917..99612f7 100644 --- a/docs/features/dashboard.html +++ b/docs/features/dashboard.html @@ -1,4 +1,4 @@ -管理界面 | Orbien +管理界面 | Orbien

管理界面

@@ -10,4 +10,4 @@

浏览器访问 http://SERVER_IP:8020,在弹出框输入用户名和密码登录。

提示

addr 默认为 127.0.0.1(仅本机),需远程访问时设为 0.0.0.0

参数

-
参数必填默认值说明
dashboard.addr127.0.0.1监听地址;远程访问需 0.0.0.0
dashboard.port0监听端口;0 表示关闭
dashboard.user登录用户名
dashboard.password登录密码
dashboard.staticDir静态资源目录;空则使用内置前端
\ No newline at end of file +
参数必填默认值说明
dashboard.addr127.0.0.1监听地址;远程访问需 0.0.0.0
dashboard.port0监听端口;0 表示关闭
dashboard.user登录用户名
dashboard.password登录密码
\ No newline at end of file diff --git a/docs/features/env.html b/docs/features/env.html index ad1089b..64c014d 100644 --- a/docs/features/env.html +++ b/docs/features/env.html @@ -1,4 +1,4 @@ -环境变量 | Orbien +环境变量 | Orbien

环境变量

diff --git a/docs/features/hot-reload.html b/docs/features/hot-reload.html index 3df66b3..581799f 100644 --- a/docs/features/hot-reload.html +++ b/docs/features/hot-reload.html @@ -1,4 +1,4 @@ -热重载 | Orbien +热重载 | Orbien

热重载

diff --git a/docs/features/public-bind.html b/docs/features/public-bind.html index 3dfcc09..7a1f159 100644 --- a/docs/features/public-bind.html +++ b/docs/features/public-bind.html @@ -1,4 +1,4 @@ -对外监听地址 | Orbien +对外监听地址 | Orbien

对外监听地址

diff --git a/docs/features/real-ip.html b/docs/features/real-ip.html index 2cc14f7..76b8f85 100644 --- a/docs/features/real-ip.html +++ b/docs/features/real-ip.html @@ -1,4 +1,4 @@ -获取真实 IP | Orbien +获取真实 IP | Orbien

获取真实 IP

diff --git a/docs/integrations/springboot.html b/docs/integrations/springboot.html index bb4ae58..1ac2e58 100644 --- a/docs/integrations/springboot.html +++ b/docs/integrations/springboot.html @@ -1,4 +1,4 @@ -Spring Boot 集成 | Orbien +Spring Boot 集成 | Orbien

Spring Boot 集成

@@ -8,7 +8,7 @@
  • 传输层:仅 TCP
  • 不支持 TCP 多路复用orbien.tcp-mux 必须为 false,服务端也需 [transport].tcpMux = false(服务端默认开启多路复用,与 Java 客户端联调时需显式关闭)
  • -
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.4.0</version>
    </dependency>
    +
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.5.0</version>
    </dependency>

    最小配置

    local-port / name 可省略:未填时分别使用 Spring Boot Web 端口与 spring.application.name(或 orbien-{protocol})。

    # application.yml
    orbien:
    enabled: true
    server: "127.0.0.1:9527"
    # token: YOUR_TOKEN # 可选
    tunnel:
    protocol: http
    domains:
    - web.domain.com
    diff --git a/docs/intro.html b/docs/intro.html index efc22c1..5b87f8b 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -1,4 +1,4 @@ -介绍 | Orbien +介绍 | Orbien

    介绍

    diff --git a/docs/license.html b/docs/license.html index 7ebe93e..5416a2a 100644 --- a/docs/license.html +++ b/docs/license.html @@ -1,4 +1,4 @@ -许可证 | Orbien +许可证 | Orbien

    许可证

    diff --git a/docs/performance.html b/docs/performance.html index 4e87420..f225790 100644 --- a/docs/performance.html +++ b/docs/performance.html @@ -1,4 +1,4 @@ -性能测试 | Orbien +性能测试 | Orbien

    性能测试

    diff --git a/docs/quickstart.html b/docs/quickstart.html index d1f1de0..8bbb0bf 100644 --- a/docs/quickstart.html +++ b/docs/quickstart.html @@ -1,4 +1,4 @@ -快速开始 | Orbien +快速开始 | Orbien

    快速开始

    diff --git a/docs/transport/connect-pool.html b/docs/transport/connect-pool.html index f966297..404ee4a 100644 --- a/docs/transport/connect-pool.html +++ b/docs/transport/connect-pool.html @@ -1,4 +1,4 @@ -连接池 | Orbien +连接池 | Orbien

    连接池

    diff --git a/docs/transport/protocol/kcp.html b/docs/transport/protocol/kcp.html index c68e051..fba1bf5 100644 --- a/docs/transport/protocol/kcp.html +++ b/docs/transport/protocol/kcp.html @@ -1,4 +1,4 @@ -KCP | Orbien +KCP | Orbien

    KCP

    diff --git a/docs/transport/protocol/quic.html b/docs/transport/protocol/quic.html index dc1e88a..038e7a8 100644 --- a/docs/transport/protocol/quic.html +++ b/docs/transport/protocol/quic.html @@ -1,4 +1,4 @@ -QUIC | Orbien +QUIC | Orbien

    QUIC

    diff --git a/docs/transport/protocol/tcp.html b/docs/transport/protocol/tcp.html index f62ba73..adf831a 100644 --- a/docs/transport/protocol/tcp.html +++ b/docs/transport/protocol/tcp.html @@ -1,4 +1,4 @@ -TCP | Orbien +TCP | Orbien

    TCP

    diff --git a/docs/transport/protocol/websocket.html b/docs/transport/protocol/websocket.html index b748c2c..e0676f2 100644 --- a/docs/transport/protocol/websocket.html +++ b/docs/transport/protocol/websocket.html @@ -1,4 +1,4 @@ -WebSocket | Orbien +WebSocket | Orbien

    WebSocket

    diff --git a/docs/transport/tcp-mux.html b/docs/transport/tcp-mux.html index 3ad5907..b71f3c3 100644 --- a/docs/transport/tcp-mux.html +++ b/docs/transport/tcp-mux.html @@ -1,4 +1,4 @@ -TCP 多路复用 | Orbien +TCP 多路复用 | Orbien

    TCP 多路复用

    diff --git a/docs/transport/tls.html b/docs/transport/tls.html index 9aeac9e..e91210b 100644 --- a/docs/transport/tls.html +++ b/docs/transport/tls.html @@ -1,4 +1,4 @@ -TLS | Orbien +TLS | Orbien

    TLS

    diff --git a/docs/tunnels/domains.html b/docs/tunnels/domains.html index 88ef604..829e361 100644 --- a/docs/tunnels/domains.html +++ b/docs/tunnels/domains.html @@ -1,4 +1,4 @@ -域名 | Orbien +域名 | Orbien

    域名

    diff --git a/docs/tunnels/http.html b/docs/tunnels/http.html index e9717a4..7b85f5c 100644 --- a/docs/tunnels/http.html +++ b/docs/tunnels/http.html @@ -1,4 +1,4 @@ -HTTP | Orbien +HTTP | Orbien

    HTTP

    diff --git a/docs/tunnels/https.html b/docs/tunnels/https.html index 01ecb8f..b0e0e99 100644 --- a/docs/tunnels/https.html +++ b/docs/tunnels/https.html @@ -1,4 +1,4 @@ -HTTPS | Orbien +HTTPS | Orbien

    HTTPS

    diff --git a/docs/tunnels/socks5.html b/docs/tunnels/socks5.html index 3a047a8..0e3e112 100644 --- a/docs/tunnels/socks5.html +++ b/docs/tunnels/socks5.html @@ -1,4 +1,4 @@ -SOCKS5 | Orbien +SOCKS5 | Orbien

    SOCKS5

    diff --git a/docs/tunnels/tcp.html b/docs/tunnels/tcp.html index e921f86..3af95fa 100644 --- a/docs/tunnels/tcp.html +++ b/docs/tunnels/tcp.html @@ -1,4 +1,4 @@ -TCP | Orbien +TCP | Orbien

    TCP

    diff --git a/docs/tunnels/udp.html b/docs/tunnels/udp.html index becd4c0..93dbb61 100644 --- a/docs/tunnels/udp.html +++ b/docs/tunnels/udp.html @@ -1,4 +1,4 @@ -UDP | Orbien +UDP | Orbien

    UDP

    diff --git a/en/404.html b/en/404.html index 1cc0bb0..f44bd7f 100644 --- a/en/404.html +++ b/en/404.html @@ -1,4 +1,4 @@ -Page Not Found | Orbien +Page Not Found | Orbien

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    \ No newline at end of file diff --git a/en/assets/js/523c1e1a.5456de3f.js b/en/assets/js/523c1e1a.2982fcdf.js similarity index 98% rename from en/assets/js/523c1e1a.5456de3f.js rename to en/assets/js/523c1e1a.2982fcdf.js index 2f3d314..e85c56d 100644 --- a/en/assets/js/523c1e1a.5456de3f.js +++ b/en/assets/js/523c1e1a.2982fcdf.js @@ -1,2 +1,2 @@ "use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["301"],{790(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>P,frontMatter:()=>k,contentTitle:()=>I,toc:()=>_,assets:()=>S});var t=JSON.parse('{"id":"integrations/springboot","title":"Spring Boot Integration","description":"Orbien provides an embeddable Java client for Spring Boot. Current scope:","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/integrations/springboot.mdx","sourceDirName":"integrations","slug":"/integrations/springboot","permalink":"/orbien/en/docs/integrations/springboot","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/integrations/springboot.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Spring Boot"},"sidebar":"docsSidebar","previous":{"title":"Hot Reload","permalink":"/orbien/en/docs/features/hot-reload"},"next":{"title":"Performance","permalink":"/orbien/en/docs/performance"}}'),o=r(1987),a=r(7008),i=r(1763),l=r(3526),s=r(1009),c=r(6532),u=r(9879),d=r(9327),p=r(8292),h=r(8184);function f({value:e,tabValues:n}){return n.some(n=>n.value===e)}let m=(0,i.createContext)(null);function b(){let e=i.useContext(m);if(!e)throw Error("useTabsContext() must be used within a Tabs component");return e}function g(e){return(0,o.jsx)(m.Provider,{value:e.value,children:e.children})}var x=r(8522),v=r(8261);function j({className:e}){let{selectedValue:n,selectValue:r,tabValues:t,block:a}=b(),i=[],{blockElementScrollPositionUntilNextRender:s}=(0,x.a_)(),c=e=>{let o=e.currentTarget,a=t[i.indexOf(o)].value;a!==n&&(s(o),r(a))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let r=i.indexOf(e.currentTarget)+1;n=i[r]??i[0];break}case"ArrowLeft":{let r=i.indexOf(e.currentTarget)-1;n=i[r]??i[i.length-1]}}n?.focus()};return(0,o.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},e),children:t.map(({value:e,label:r,attributes:t})=>(0,o.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>{i.push(e)},onKeyDown:u,onClick:c,...t,className:(0,l.A)("tabs__item","tabItem_Xg_G",t?.className,{"tabs__item--active":n===e}),children:r??e},e))})}function y({children:e}){return(0,o.jsx)("div",{className:"margin-top--md",children:e})}function w({className:e,children:n}){return(0,o.jsxs)("div",{className:(0,l.A)(s.G.tabs.container,"tabs-container","tabList_f3wh"),children:[(0,o.jsx)(j,{className:e}),(0,o.jsx)(y,{children:n})]})}function T(e){var n;let r=(0,v.A)(),t=function(e){let n,{defaultValue:r,queryString:t=!1,groupId:o}=e,a=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=n??i.Children.toArray(r).flatMap(e=>{if(!e)return[];if((0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return[e];let n="string"==typeof e.type?e.type:e.type.name;throw Error(`Docusaurus error: Bad child <${n}>: all children of the component should be , and every should have a unique "value" prop. -If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[l,s]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!f({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[m,b]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[g,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=f({value:n=m??g,tabValues:a})?n:null;return(0,u.A)(()=>{v&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!f({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(e),b(e),x(e)},[b,x,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(g,{value:t,children:(0,o.jsx)(w,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function C({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_vIHf",n),hidden:r,children:e})}function N({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=b(),i=r===t;return!i&&a?null:(0,o.jsx)(C,{className:n,hidden:!i,children:e})}let k={sidebar_position:1,sidebar_label:"Spring Boot"},I="Spring Boot Integration",S={},_=[{value:"Minimal configuration",id:"minimal-configuration",level:2},{value:"Full reference",id:"full-reference",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-integration",children:"Spring Boot Integration"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," provides an embeddable Java client for Spring Boot. Current scope:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Tunnel protocols: ",(0,o.jsx)(n.strong,{children:"TCP"})," and ",(0,o.jsx)(n.strong,{children:"HTTP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:["Transport: ",(0,o.jsx)(n.strong,{children:"TCP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"No TCP multiplexing"}),": set ",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," to ",(0,o.jsx)(n.code,{children:"false"}),", and set ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"})," on the server (multiplexing is on by default; turn it off when using the Java client)"]}),"\n"]}),"\n",(0,o.jsxs)(T,{children:[(0,o.jsx)(N,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 3.4.0\n\n"})})}),(0,o.jsx)(N,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.4.0")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"minimal-configuration",children:"Minimal configuration"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," and ",(0,o.jsx)(n.code,{children:"name"})," are optional. When omitted, the starter uses the Spring Boot web port and ",(0,o.jsx)(n.code,{children:"spring.application.name"})," (or ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),")."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server: "127.0.0.1:9527"\n # token: YOUR_TOKEN # optional\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n'})}),"\n",(0,o.jsx)(n.p,{children:"Disable multiplexing on the server, for example:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # disable TCP multiplexing\n'})}),"\n",(0,o.jsx)(n.h2,{id:"full-reference",children:"Full reference"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server: "127.0.0.1:9527"\n token: YOUR_TOKEN\n tcp-mux: false # must be false and match the server\n pool-count: 1 # data-connection pool size requested at login\n heartbeat-interval-secs: 30\n user: spring-boot-demo # optional; shown on the dashboard\n # session-id: "" # optional; if empty, restore from session-id-file or generate\n # session-id-file: "" # optional; if empty, use the default path under the user home\n tunnel:\n name: web-demo # optional\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # optional; defaults to the Spring Boot listen port\n # remote-port: 9000 # required when protocol=tcp\n domains: # required when protocol=http\n - web.domain.com\n'})})]})}function P(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>l});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file +If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[l,s]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!f({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[m,b]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[g,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=f({value:n=m??g,tabValues:a})?n:null;return(0,u.A)(()=>{v&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!f({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(e),b(e),x(e)},[b,x,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(g,{value:t,children:(0,o.jsx)(w,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function C({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_vIHf",n),hidden:r,children:e})}function N({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=b(),i=r===t;return!i&&a?null:(0,o.jsx)(C,{className:n,hidden:!i,children:e})}let k={sidebar_position:1,sidebar_label:"Spring Boot"},I="Spring Boot Integration",S={},_=[{value:"Minimal configuration",id:"minimal-configuration",level:2},{value:"Full reference",id:"full-reference",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-integration",children:"Spring Boot Integration"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," provides an embeddable Java client for Spring Boot. Current scope:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Tunnel protocols: ",(0,o.jsx)(n.strong,{children:"TCP"})," and ",(0,o.jsx)(n.strong,{children:"HTTP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:["Transport: ",(0,o.jsx)(n.strong,{children:"TCP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"No TCP multiplexing"}),": set ",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," to ",(0,o.jsx)(n.code,{children:"false"}),", and set ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"})," on the server (multiplexing is on by default; turn it off when using the Java client)"]}),"\n"]}),"\n",(0,o.jsxs)(T,{children:[(0,o.jsx)(N,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 3.5.0\n\n"})})}),(0,o.jsx)(N,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.5.0")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"minimal-configuration",children:"Minimal configuration"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," and ",(0,o.jsx)(n.code,{children:"name"})," are optional. When omitted, the starter uses the Spring Boot web port and ",(0,o.jsx)(n.code,{children:"spring.application.name"})," (or ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),")."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server: "127.0.0.1:9527"\n # token: YOUR_TOKEN # optional\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n'})}),"\n",(0,o.jsx)(n.p,{children:"Disable multiplexing on the server, for example:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # disable TCP multiplexing\n'})}),"\n",(0,o.jsx)(n.h2,{id:"full-reference",children:"Full reference"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server: "127.0.0.1:9527"\n token: YOUR_TOKEN\n tcp-mux: false # must be false and match the server\n pool-count: 1 # data-connection pool size requested at login\n heartbeat-interval-secs: 30\n user: spring-boot-demo # optional; shown on the dashboard\n # session-id: "" # optional; if empty, restore from session-id-file or generate\n # session-id-file: "" # optional; if empty, use the default path under the user home\n tunnel:\n name: web-demo # optional\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # optional; defaults to the Spring Boot listen port\n # remote-port: 9000 # required when protocol=tcp\n domains: # required when protocol=http\n - web.domain.com\n'})})]})}function P(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>l});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/ab4e331a.d1ebe7c6.js b/en/assets/js/ab4e331a.d1ebe7c6.js new file mode 100644 index 0000000..e7bc722 --- /dev/null +++ b/en/assets/js/ab4e331a.d1ebe7c6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["228"],{6612(e,r,d){d.r(r),d.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>a,contentTitle:()=>i,toc:()=>c,assets:()=>o});var s=JSON.parse('{"id":"features/dashboard","title":"Dashboard","description":"Server web dashboard. Enabled when port > 0; user and password are required once enabled.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/features/dashboard.md","sourceDirName":"features","slug":"/features/dashboard","permalink":"/orbien/en/docs/features/dashboard","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/dashboard.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"Dashboard","title":"Dashboard"},"sidebar":"docsSidebar","previous":{"title":"Authentication","permalink":"/orbien/en/docs/features/authentication"},"next":{"title":"Public Bind Address","permalink":"/orbien/en/docs/features/public-bind"}}'),n=d(1987),t=d(7008);let a={sidebar_position:2,sidebar_label:"Dashboard",title:"Dashboard"},i="Dashboard",o={},c=[{value:"Example",id:"example",level:2},{value:"Parameters",id:"parameters",level:2}];function l(e){let r={admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"dashboard",children:"Dashboard"})}),"\n",(0,n.jsxs)(r.p,{children:["Server web dashboard. Enabled when ",(0,n.jsx)(r.code,{children:"port > 0"}),"; ",(0,n.jsxs)(r.strong,{children:[(0,n.jsx)(r.code,{children:"user"})," and ",(0,n.jsx)(r.code,{children:"password"})," are required"]})," once enabled."]}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.img,{alt:"dashboard_en.png",src:d(6699).A+"",width:"1495",height:"894"})}),"\n",(0,n.jsx)(r.h2,{id:"example",children:"Example"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[dashboard]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\n'})}),"\n",(0,n.jsxs)(r.p,{children:["Open ",(0,n.jsx)(r.code,{children:"http://SERVER_IP:8020"})," in a browser and sign in with username and password in the login dialog."]}),"\n",(0,n.jsx)(r.admonition,{type:"tip",children:(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"addr"})," defaults to ",(0,n.jsx)(r.code,{children:"127.0.0.1"})," (localhost only). Set it to ",(0,n.jsx)(r.code,{children:"0.0.0.0"})," for remote access."]})}),"\n",(0,n.jsx)(r.h2,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Parameter"}),(0,n.jsx)(r.th,{children:"Required"}),(0,n.jsx)(r.th,{children:"Default"}),(0,n.jsx)(r.th,{children:"Description"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"dashboard.addr"})}),(0,n.jsx)(r.td,{children:"No"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"127.0.0.1"})}),(0,n.jsxs)(r.td,{children:["Listen address; use ",(0,n.jsx)(r.code,{children:"0.0.0.0"})," for remote access"]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"dashboard.port"})}),(0,n.jsx)(r.td,{children:"Yes"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"0"})}),(0,n.jsxs)(r.td,{children:["Listen port; ",(0,n.jsx)(r.code,{children:"0"})," disables the dashboard"]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"dashboard.user"})}),(0,n.jsx)(r.td,{children:"Yes"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"Login username"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"dashboard.password"})}),(0,n.jsx)(r.td,{children:"Yes"}),(0,n.jsx)(r.td,{}),(0,n.jsx)(r.td,{children:"Login password"})]})]})]})]})}function h(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},6699(e,r,d){d.d(r,{A:()=>s});let s=d.p+"assets/images/dashboard_en-241d6b0471281a1ba6e65b35a3350436.png"},7008(e,r,d){d.d(r,{R:()=>a,x:()=>i});var s=d(1763);let n={},t=s.createContext(n);function a(e){let r=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/ab4e331a.d3fbb368.js b/en/assets/js/ab4e331a.d3fbb368.js deleted file mode 100644 index 78ad7c5..0000000 --- a/en/assets/js/ab4e331a.d3fbb368.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["228"],{6612(e,d,r){r.r(d),r.d(d,{metadata:()=>s,default:()=>h,frontMatter:()=>a,contentTitle:()=>i,toc:()=>c,assets:()=>o});var s=JSON.parse('{"id":"features/dashboard","title":"Dashboard","description":"Server web dashboard. Enabled when port > 0; user and password are required once enabled.","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/features/dashboard.md","sourceDirName":"features","slug":"/features/dashboard","permalink":"/orbien/en/docs/features/dashboard","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/features/dashboard.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"Dashboard","title":"Dashboard"},"sidebar":"docsSidebar","previous":{"title":"Authentication","permalink":"/orbien/en/docs/features/authentication"},"next":{"title":"Public Bind Address","permalink":"/orbien/en/docs/features/public-bind"}}'),n=r(1987),t=r(7008);let a={sidebar_position:2,sidebar_label:"Dashboard",title:"Dashboard"},i="Dashboard",o={},c=[{value:"Example",id:"example",level:2},{value:"Parameters",id:"parameters",level:2}];function l(e){let d={admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.header,{children:(0,n.jsx)(d.h1,{id:"dashboard",children:"Dashboard"})}),"\n",(0,n.jsxs)(d.p,{children:["Server web dashboard. Enabled when ",(0,n.jsx)(d.code,{children:"port > 0"}),"; ",(0,n.jsxs)(d.strong,{children:[(0,n.jsx)(d.code,{children:"user"})," and ",(0,n.jsx)(d.code,{children:"password"})," are required"]})," once enabled."]}),"\n",(0,n.jsx)(d.p,{children:(0,n.jsx)(d.img,{alt:"dashboard_en.png",src:r(6699).A+"",width:"1495",height:"894"})}),"\n",(0,n.jsx)(d.h2,{id:"example",children:"Example"}),"\n",(0,n.jsx)(d.pre,{children:(0,n.jsx)(d.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\n\n[dashboard]\naddr = "0.0.0.0"\nport = 8020\nuser = "admin"\npassword = "123456"\n'})}),"\n",(0,n.jsxs)(d.p,{children:["Open ",(0,n.jsx)(d.code,{children:"http://SERVER_IP:8020"})," in a browser and sign in with username and password in the login dialog."]}),"\n",(0,n.jsx)(d.admonition,{type:"tip",children:(0,n.jsxs)(d.p,{children:[(0,n.jsx)(d.code,{children:"addr"})," defaults to ",(0,n.jsx)(d.code,{children:"127.0.0.1"})," (localhost only). Set it to ",(0,n.jsx)(d.code,{children:"0.0.0.0"})," for remote access."]})}),"\n",(0,n.jsx)(d.h2,{id:"parameters",children:"Parameters"}),"\n",(0,n.jsxs)(d.table,{children:[(0,n.jsx)(d.thead,{children:(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.th,{children:"Parameter"}),(0,n.jsx)(d.th,{children:"Required"}),(0,n.jsx)(d.th,{children:"Default"}),(0,n.jsx)(d.th,{children:"Description"})]})}),(0,n.jsxs)(d.tbody,{children:[(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.addr"})}),(0,n.jsx)(d.td,{children:"No"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"127.0.0.1"})}),(0,n.jsxs)(d.td,{children:["Listen address; use ",(0,n.jsx)(d.code,{children:"0.0.0.0"})," for remote access"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.port"})}),(0,n.jsx)(d.td,{children:"Yes"}),(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"0"})}),(0,n.jsxs)(d.td,{children:["Listen port; ",(0,n.jsx)(d.code,{children:"0"})," disables the dashboard"]})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.user"})}),(0,n.jsx)(d.td,{children:"Yes"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"Login username"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.password"})}),(0,n.jsx)(d.td,{children:"Yes"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"Login password"})]}),(0,n.jsxs)(d.tr,{children:[(0,n.jsx)(d.td,{children:(0,n.jsx)(d.code,{children:"dashboard.staticDir"})}),(0,n.jsx)(d.td,{children:"No"}),(0,n.jsx)(d.td,{}),(0,n.jsx)(d.td,{children:"Static assets directory; empty uses the built-in frontend"})]})]})]})]})}function h(e={}){let{wrapper:d}={...(0,t.R)(),...e.components};return d?(0,n.jsx)(d,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},6699(e,d,r){r.d(d,{A:()=>s});let s=r.p+"assets/images/dashboard_en-241d6b0471281a1ba6e65b35a3350436.png"},7008(e,d,r){r.d(d,{R:()=>a,x:()=>i});var s=r(1763);let n={},t=s.createContext(n);function a(e){let d=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function i(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(t.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/b3adb838.a72bbf5c.js b/en/assets/js/b3adb838.843870a6.js similarity index 99% rename from en/assets/js/b3adb838.a72bbf5c.js rename to en/assets/js/b3adb838.843870a6.js index 3c48a49..38bcc3f 100644 --- a/en/assets/js/b3adb838.a72bbf5c.js +++ b/en/assets/js/b3adb838.843870a6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["431"],{3323(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>I,frontMatter:()=>k,contentTitle:()=>v,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"Download","description":"Choose the package for your OS and architecture","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/en/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"Download"},"sidebar":"docsSidebar","previous":{"title":"Introduction","permalink":"/orbien/en/docs/intro"},"next":{"title":"Quick Start","permalink":"/orbien/en/docs/quickstart"}}'),o=r(1987),i=r(7008),a=r(1763),d=r(3526),l=r(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},g=[{id:"server",name:"orbien-server",label:(0,o.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,o.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,o.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function j(e,n){if("orbien-desktop"!==e)return"tar.gz";switch(n){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,n]=(0,a.useState)("3.4.0"),[r,s]=(0,a.useState)(null),[i,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let r=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!r.ok)return;let o=await r.json();if(e)return;let i=o.tag_name?.replace(/^v/,"");i&&n(i),o.assets&&s(new Set(o.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let k=(0,a.useMemo)(()=>{let e=new Map,n=0;for(;n(0,o.jsx)("th",{children:e.label},e.id)),(0,o.jsx)("th",{children:(0,o.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,o.jsx)("tbody",{children:x.map((n,s)=>{let a=k.get(s),t=void 0!==a,c="linux"===n.os?n.libc:void 0;return(0,o.jsxs)("tr",{className:(0,d.A)(i===n.os&&"rowHighlight_Rqix"),children:[t?(0,o.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[n.os]}):null,(0,o.jsx)("td",{children:(0,o.jsx)("code",{children:w[n.arch]})}),(0,o.jsx)("td",{children:c?(0,o.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),g.map(s=>{var i,a,d,l,t,u,m,x,p,w;let g,f,k="orbien-desktop"===s.name,v=k?"linux"===n.os&&"gnu"===n.libc?"gnu":void 0:c,_=(i=s.name,a=n.os,d=n.arch,b.has(v?`${i}|${a}|${d}|${v}`:`${i}|${a}|${d}`)),$=(l=s.name,t=n.os,u=k?void 0:c,g=j(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${g}`:g),N=(m=s.name,x=n.os,p=n.arch,w=k?void 0:c,f=j(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!r||r.has(N);return(0,o.jsx)("td",{children:_&&I?(0,o.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,o.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(n.noteId)})]},`${n.os}-${n.arch}-${n.libc??"default"}`)})})]})}),(0,o.jsxs)("div",{className:"docker_YIhP",children:[(0,o.jsx)("h3",{children:"Docker"}),(0,o.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien-server"}),(0,o.jsx)("span",{className:u,children:"server"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien"}),(0,o.jsx)("span",{className:u,children:"client"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let k={sidebar_position:2,sidebar_label:"Download"},v="Download",_={},$=[];function N(e){let n={h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"download",children:"Download"})}),"\n",(0,o.jsx)(n.p,{children:"Choose the package for your OS and architecture"}),"\n",(0,o.jsx)(f,{})]})}function I(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(N,{...e})}):N(e)}},7008(e,n,r){r.d(n,{R:()=>a,x:()=>d});var s=r(1763);let o={},i=s.createContext(o);function a(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["431"],{3323(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>I,frontMatter:()=>k,contentTitle:()=>v,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"Download","description":"Choose the package for your OS and architecture","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/en/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"Download"},"sidebar":"docsSidebar","previous":{"title":"Introduction","permalink":"/orbien/en/docs/intro"},"next":{"title":"Quick Start","permalink":"/orbien/en/docs/quickstart"}}'),o=r(1987),i=r(7008),a=r(1763),d=r(3526),l=r(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},g=[{id:"server",name:"orbien-server",label:(0,o.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,o.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,o.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function j(e,n){if("orbien-desktop"!==e)return"tar.gz";switch(n){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,n]=(0,a.useState)("3.5.0"),[r,s]=(0,a.useState)(null),[i,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let r=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!r.ok)return;let o=await r.json();if(e)return;let i=o.tag_name?.replace(/^v/,"");i&&n(i),o.assets&&s(new Set(o.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let k=(0,a.useMemo)(()=>{let e=new Map,n=0;for(;n(0,o.jsx)("th",{children:e.label},e.id)),(0,o.jsx)("th",{children:(0,o.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,o.jsx)("tbody",{children:x.map((n,s)=>{let a=k.get(s),t=void 0!==a,c="linux"===n.os?n.libc:void 0;return(0,o.jsxs)("tr",{className:(0,d.A)(i===n.os&&"rowHighlight_Rqix"),children:[t?(0,o.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[n.os]}):null,(0,o.jsx)("td",{children:(0,o.jsx)("code",{children:w[n.arch]})}),(0,o.jsx)("td",{children:c?(0,o.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),g.map(s=>{var i,a,d,l,t,u,m,x,p,w;let g,f,k="orbien-desktop"===s.name,v=k?"linux"===n.os&&"gnu"===n.libc?"gnu":void 0:c,_=(i=s.name,a=n.os,d=n.arch,b.has(v?`${i}|${a}|${d}|${v}`:`${i}|${a}|${d}`)),$=(l=s.name,t=n.os,u=k?void 0:c,g=j(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${g}`:g),N=(m=s.name,x=n.os,p=n.arch,w=k?void 0:c,f=j(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!r||r.has(N);return(0,o.jsx)("td",{children:_&&I?(0,o.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,o.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(n.noteId)})]},`${n.os}-${n.arch}-${n.libc??"default"}`)})})]})}),(0,o.jsxs)("div",{className:"docker_YIhP",children:[(0,o.jsx)("h3",{children:"Docker"}),(0,o.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien-server"}),(0,o.jsx)("span",{className:u,children:"server"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien"}),(0,o.jsx)("span",{className:u,children:"client"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let k={sidebar_position:2,sidebar_label:"Download"},v="Download",_={},$=[];function N(e){let n={h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"download",children:"Download"})}),"\n",(0,o.jsx)(n.p,{children:"Choose the package for your OS and architecture"}),"\n",(0,o.jsx)(f,{})]})}function I(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(N,{...e})}):N(e)}},7008(e,n,r){r.d(n,{R:()=>a,x:()=>d});var s=r(1763);let o={},i=s.createContext(o);function a(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/main.fbe3ef4c.js b/en/assets/js/main.112ecd98.js similarity index 99% rename from en/assets/js/main.fbe3ef4c.js rename to en/assets/js/main.112ecd98.js index 818e399..555789d 100644 --- a/en/assets/js/main.fbe3ef4c.js +++ b/en/assets/js/main.112ecd98.js @@ -24,7 +24,7 @@ function insertBanner() { : actualHomePagePath + '/'; suggestionContainer.textContent = suggestedBaseUrl; } -`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/en/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/en/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/en/docs/community","sidebar":"docsSidebar"},{"id":"desktop","path":"/orbien/en/docs/desktop","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/en/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/en/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/en/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/en/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/en/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/env","path":"/orbien/en/docs/features/env","sidebar":"docsSidebar"},{"id":"features/hot-reload","path":"/orbien/en/docs/features/hot-reload","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/en/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/en/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/en/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/en/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/en/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/en/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/en/docs/quickstart","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/en/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/en/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/en/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/en/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/en/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/en/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/en/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/en/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/en/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/en/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/socks5","path":"/orbien/en/docs/tunnels/socks5","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/en/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/en/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/en/docs/intro","label":"Introduction"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"en","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.4.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,S=v.future.experimental_router,{withBaseUrl:x}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,T=(0,s.A)(A),C=A?.replace("pathname://",""),P=void 0!==C?(y=C,h&&y.startsWith("/")?x(y):y):void 0;"hash"===S&&P?.startsWith("./")&&(P=P?.slice(1)),P&&T&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&T&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,T]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!T||!D||I&&"hash"!==S;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!T&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&T&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". +`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/en/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/en/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/en/docs/community","sidebar":"docsSidebar"},{"id":"desktop","path":"/orbien/en/docs/desktop","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/en/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/en/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/en/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/en/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/en/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/env","path":"/orbien/en/docs/features/env","sidebar":"docsSidebar"},{"id":"features/hot-reload","path":"/orbien/en/docs/features/hot-reload","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/en/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/en/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/en/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/en/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/en/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/en/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/en/docs/quickstart","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/en/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/en/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/en/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/en/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/en/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/en/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/en/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/en/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/en/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/en/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/socks5","path":"/orbien/en/docs/tunnels/socks5","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/en/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/en/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/en/docs/intro","label":"Introduction"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"en","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.5.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,S=v.future.experimental_router,{withBaseUrl:x}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,T=(0,s.A)(A),C=A?.replace("pathname://",""),P=void 0!==C?(y=C,h&&y.startsWith("/")?x(y):y):void 0;"hash"===S&&P?.startsWith("./")&&(P=P?.slice(1)),P&&T&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&T&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,T]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!T||!D||I&&"hash"!==S;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!T&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&T&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". Available sidebar ids are: - ${t.map(e=>e[0]).join("\n- ")}`);return r[1]},[e,n])}function y(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.docs),r=t.find(t=>t.id===e);if(!r){if(n.flatMap(e=>e.draftIds).includes(e))return null;throw Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map(e=>e.name).join(", ")}". Available doc ids are: diff --git a/en/assets/js/runtime~main.32ca5859.js b/en/assets/js/runtime~main.de71a7a7.js similarity index 96% rename from en/assets/js/runtime~main.32ca5859.js rename to en/assets/js/runtime~main.de71a7a7.js index 8f15949..69468d8 100644 --- a/en/assets/js/runtime~main.32ca5859.js +++ b/en/assets/js/runtime~main.de71a7a7.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,r,t,o,f,c,n={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var r=d[e]={exports:{}};return n[e].call(r.exports,r,r.exports,b),r.exports}b.m=n,b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(r,t){if(1&t&&(r=this(r)),8&t||"object"==typeof r&&r&&(4&t&&r.__esModule||16&t&&"function"==typeof r.then))return r;var o=Object.create(null);b.r(o);var f={};e=e||[null,a({}),a([]),a(a)];for(var c=2&t&&r;("object"==typeof c||"function"==typeof c)&&!~e.indexOf(c);c=a(c))Object.getOwnPropertyNames(c).forEach(e=>{f[e]=()=>r[e]});return f.default=()=>r,b.d(o,f),o},b.d=(e,a)=>{for(var r in a)b.o(a,r)&&!b.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((a,r)=>(b.f[r](e,a),a),[])),b.u=e=>"assets/js/"+(({106:"17896441",173:"5fe4f5d2",177:"4be978ea",188:"7abcf739",206:"772f9d94",210:"ff260d60",228:"ab4e331a",283:"7fe95379",301:"523c1e1a",321:"66aed93e",331:"2f2388ac",413:"2506a922",431:"b3adb838",439:"43054f0e",45:"a89a62ae",451:"20ddc183",452:"1df93b7f",46:"7c4e16d0",518:"f2426367",56:"a7456010",568:"b32b4337",569:"cc5cf7e7",572:"2a662f4c",575:"a7bd4aaa",597:"d58d1957",604:"17bb2c49",608:"814847fd",621:"b6948417",637:"5b44acae",668:"5e95c892",669:"4ac686ed",697:"1bc5dae4",731:"956c2ff8",747:"aba21aa0",785:"a94703ab",891:"affd0631",949:"96706368"})[e]||e)+"."+({106:"6c48d3c2",173:"5fd91e3a",177:"dc6372ef",188:"0cabbc3e",206:"4fd05b25",210:"321a91da",228:"d3fbb368",283:"33146854",301:"5456de3f",321:"70d7565c",331:"edec12c7",406:"7afbacb1",413:"e24c6914",431:"a72bbf5c",439:"104a613e",45:"9e6e77cb",451:"d640f03b",452:"2b0cd58a",46:"c32aabc7",518:"56757d29",56:"b47ace4d",568:"942f4547",569:"94e9fb7c",572:"760b3e84",575:"96f1510e",597:"6eff27f7",604:"a1d1f8df",608:"ec59cc50",621:"e734b237",627:"5a86db8b",637:"a9488ecc",668:"61b67e6b",669:"eb9285c5",697:"3c44fb1d",731:"7e454dd0",747:"66a74c66",785:"b81930da",891:"b62509a7",949:"b33481e9"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},b.l=function(e,a,t,o){if(r[e])return void r[e].push(a);if(void 0!==t)for(var f,c,n=document.getElementsByTagName("script"),d=0;d{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t=[],b.O=(e,a,r,o)=>{if(a){o=o||0;for(var f=t.length;f>0&&t[f-1][2]>o;f--)t[f]=t[f-1];t[f]=[a,r,o];return}for(var c=1/0,f=0;f=o)&&Object.keys(b.O).every(e=>b.O[e](a[d]))?a.splice(d--,1):(n=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x5c39f40:"949",a89a62ae:"45","7c4e16d0":"46",a7456010:"56","5fe4f5d2":"173","4be978ea":"177","7abcf739":"188","772f9d94":"206",ff260d60:"210",ab4e331a:"228","7fe95379":"283","523c1e1a":"301","66aed93e":"321","2f2388ac":"331","2506a922":"413",b3adb838:"431","43054f0e":"439","20ddc183":"451","1df93b7f":"452",f2426367:"518",b32b4337:"568",cc5cf7e7:"569","2a662f4c":"572",a7bd4aaa:"575",d58d1957:"597","17bb2c49":"604","814847fd":"608",b6948417:"621","5b44acae":"637","5e95c892":"668","4ac686ed":"669","1bc5dae4":"697","956c2ff8":"731",aba21aa0:"747",a94703ab:"785",affd0631:"891"})[e]||e,b.p+b.u(e)},o={14:0,783:0},b.f.j=function(e,a){var r=b.o(o,e)?o[e]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(14|783)$/.test(e))o[e]=0;else{var t=new Promise((a,t)=>r=o[e]=[a,t]);a.push(r[2]=t);var f=b.p+b.u(e),c=Error();b.l(f,function(a){if(b.o(o,e)&&(0!==(r=o[e])&&(o[e]=void 0),r)){var t=a&&("load"===a.type?"missing":a.type),f=a&&a.target&&a.target.src;c.message="Loading chunk "+e+" failed.\n("+t+": "+f+")",c.name="ChunkLoadError",c.type=t,c.request=f,r[1](c)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],f=(e,a)=>{var r,t,f=a[0],c=a[1],n=a[2],d=0;if(f.some(e=>0!==o[e])){for(r in c)b.o(c,r)&&(b.m[r]=c[r]);if(n)var i=n(b)}for(e&&e(a);d{"use strict";var e,a,r,t,o,f,c,n={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var r=d[e]={exports:{}};return n[e].call(r.exports,r,r.exports,b),r.exports}b.m=n,b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(r,t){if(1&t&&(r=this(r)),8&t||"object"==typeof r&&r&&(4&t&&r.__esModule||16&t&&"function"==typeof r.then))return r;var o=Object.create(null);b.r(o);var f={};e=e||[null,a({}),a([]),a(a)];for(var c=2&t&&r;("object"==typeof c||"function"==typeof c)&&!~e.indexOf(c);c=a(c))Object.getOwnPropertyNames(c).forEach(e=>{f[e]=()=>r[e]});return f.default=()=>r,b.d(o,f),o},b.d=(e,a)=>{for(var r in a)b.o(a,r)&&!b.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((a,r)=>(b.f[r](e,a),a),[])),b.u=e=>"assets/js/"+(({106:"17896441",173:"5fe4f5d2",177:"4be978ea",188:"7abcf739",206:"772f9d94",210:"ff260d60",228:"ab4e331a",283:"7fe95379",301:"523c1e1a",321:"66aed93e",331:"2f2388ac",413:"2506a922",431:"b3adb838",439:"43054f0e",45:"a89a62ae",451:"20ddc183",452:"1df93b7f",46:"7c4e16d0",518:"f2426367",56:"a7456010",568:"b32b4337",569:"cc5cf7e7",572:"2a662f4c",575:"a7bd4aaa",597:"d58d1957",604:"17bb2c49",608:"814847fd",621:"b6948417",637:"5b44acae",668:"5e95c892",669:"4ac686ed",697:"1bc5dae4",731:"956c2ff8",747:"aba21aa0",785:"a94703ab",891:"affd0631",949:"96706368"})[e]||e)+"."+({106:"6c48d3c2",173:"5fd91e3a",177:"dc6372ef",188:"0cabbc3e",206:"4fd05b25",210:"321a91da",228:"d1ebe7c6",283:"33146854",301:"2982fcdf",321:"70d7565c",331:"edec12c7",406:"7afbacb1",413:"e24c6914",431:"843870a6",439:"104a613e",45:"9e6e77cb",451:"d640f03b",452:"2b0cd58a",46:"c32aabc7",518:"56757d29",56:"b47ace4d",568:"942f4547",569:"94e9fb7c",572:"760b3e84",575:"96f1510e",597:"6eff27f7",604:"a1d1f8df",608:"ec59cc50",621:"e734b237",627:"5a86db8b",637:"a9488ecc",668:"61b67e6b",669:"eb9285c5",697:"3c44fb1d",731:"7e454dd0",747:"66a74c66",785:"b81930da",891:"b62509a7",949:"b33481e9"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},b.l=function(e,a,t,o){if(r[e])return void r[e].push(a);if(void 0!==t)for(var f,c,n=document.getElementsByTagName("script"),d=0;d{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t=[],b.O=(e,a,r,o)=>{if(a){o=o||0;for(var f=t.length;f>0&&t[f-1][2]>o;f--)t[f]=t[f-1];t[f]=[a,r,o];return}for(var c=1/0,f=0;f=o)&&Object.keys(b.O).every(e=>b.O[e](a[d]))?a.splice(d--,1):(n=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x5c39f40:"949",a89a62ae:"45","7c4e16d0":"46",a7456010:"56","5fe4f5d2":"173","4be978ea":"177","7abcf739":"188","772f9d94":"206",ff260d60:"210",ab4e331a:"228","7fe95379":"283","523c1e1a":"301","66aed93e":"321","2f2388ac":"331","2506a922":"413",b3adb838:"431","43054f0e":"439","20ddc183":"451","1df93b7f":"452",f2426367:"518",b32b4337:"568",cc5cf7e7:"569","2a662f4c":"572",a7bd4aaa:"575",d58d1957:"597","17bb2c49":"604","814847fd":"608",b6948417:"621","5b44acae":"637","5e95c892":"668","4ac686ed":"669","1bc5dae4":"697","956c2ff8":"731",aba21aa0:"747",a94703ab:"785",affd0631:"891"})[e]||e,b.p+b.u(e)},o={14:0,783:0},b.f.j=function(e,a){var r=b.o(o,e)?o[e]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(14|783)$/.test(e))o[e]=0;else{var t=new Promise((a,t)=>r=o[e]=[a,t]);a.push(r[2]=t);var f=b.p+b.u(e),c=Error();b.l(f,function(a){if(b.o(o,e)&&(0!==(r=o[e])&&(o[e]=void 0),r)){var t=a&&("load"===a.type?"missing":a.type),f=a&&a.target&&a.target.src;c.message="Loading chunk "+e+" failed.\n("+t+": "+f+")",c.name="ChunkLoadError",c.type=t,c.request=f,r[1](c)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],f=(e,a)=>{var r,t,f=a[0],c=a[1],n=a[2],d=0;if(f.some(e=>0!==o[e])){for(r in c)b.o(c,r)&&(b.m[r]=c[r]);if(n)var i=n(b)}for(e&&e(a);dCommunity & Contributing | Orbien +Community & Contributing | Orbien

    Community & Contributing

    diff --git a/en/docs/desktop.html b/en/docs/desktop.html index 0a11067..0d5195c 100644 --- a/en/docs/desktop.html +++ b/en/docs/desktop.html @@ -1,4 +1,4 @@ -Desktop Client | Orbien +Desktop Client | Orbien

    Desktop Client

    diff --git a/en/docs/docker.html b/en/docs/docker.html index 44cc645..bb33d16 100644 --- a/en/docs/docker.html +++ b/en/docs/docker.html @@ -1,4 +1,4 @@ -Docker | Orbien +Docker | Orbien

    Docker

    diff --git a/en/docs/download.html b/en/docs/download.html index 0bc4308..4ce2087 100644 --- a/en/docs/download.html +++ b/en/docs/download.html @@ -1,6 +1,6 @@ -Download | Orbien +Download | Orbien

    Download

    Choose the package for your OS and architecture

    -
    OSArchlibcServerCLI ClientDesktop ClientNotes
    Linuxamd64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
    amd64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
    arm64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
    arm64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
    FreeBSDamd64tar.gztar.gz
    Windowsamd64tar.gztar.gzzip
    arm64tar.gztar.gzzip
    macOSamd64tar.gztar.gzdmgIf blocked, allow it in System Settings
    arm64tar.gztar.gzdmgIf blocked, allow it in System Settings

    Docker

    • orbien-serverserver
      docker pull ghcr.io/orbien-org/orbien-server:latest
    • orbienclient
      docker pull ghcr.io/orbien-org/orbien:latest
    \ No newline at end of file +
    OSArchlibcServerCLI ClientDesktop ClientNotes
    Linuxamd64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
    amd64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
    arm64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
    arm64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
    FreeBSDamd64tar.gztar.gz
    Windowsamd64tar.gztar.gzzip
    arm64tar.gztar.gzzip
    macOSamd64tar.gztar.gzdmgIf blocked, allow it in System Settings
    arm64tar.gztar.gzdmgIf blocked, allow it in System Settings

    Docker

    • orbien-serverserver
      docker pull ghcr.io/orbien-org/orbien-server:latest
    • orbienclient
      docker pull ghcr.io/orbien-org/orbien:latest
    \ No newline at end of file diff --git a/en/docs/features/authentication.html b/en/docs/features/authentication.html index 3379bce..a31680c 100644 --- a/en/docs/features/authentication.html +++ b/en/docs/features/authentication.html @@ -1,4 +1,4 @@ -Authentication | Orbien +Authentication | Orbien

    Authentication

    diff --git a/en/docs/features/bandwidth.html b/en/docs/features/bandwidth.html index 5544ca4..2e0dc0a 100644 --- a/en/docs/features/bandwidth.html +++ b/en/docs/features/bandwidth.html @@ -1,4 +1,4 @@ -Bandwidth Limit | Orbien +Bandwidth Limit | Orbien

    Bandwidth Limit

    diff --git a/en/docs/features/dashboard.html b/en/docs/features/dashboard.html index 568ebda..65b6205 100644 --- a/en/docs/features/dashboard.html +++ b/en/docs/features/dashboard.html @@ -1,4 +1,4 @@ -Dashboard | Orbien +Dashboard | Orbien

    Dashboard

    @@ -9,4 +9,4 @@

    Open http://SERVER_IP:8020 in a browser and sign in with username and password in the login dialog.

    tip

    addr defaults to 127.0.0.1 (localhost only). Set it to 0.0.0.0 for remote access.

    Parameters

    -
    ParameterRequiredDefaultDescription
    dashboard.addrNo127.0.0.1Listen address; use 0.0.0.0 for remote access
    dashboard.portYes0Listen port; 0 disables the dashboard
    dashboard.userYesLogin username
    dashboard.passwordYesLogin password
    dashboard.staticDirNoStatic assets directory; empty uses the built-in frontend
    \ No newline at end of file +
    ParameterRequiredDefaultDescription
    dashboard.addrNo127.0.0.1Listen address; use 0.0.0.0 for remote access
    dashboard.portYes0Listen port; 0 disables the dashboard
    dashboard.userYesLogin username
    dashboard.passwordYesLogin password
    \ No newline at end of file diff --git a/en/docs/features/env.html b/en/docs/features/env.html index 9673268..2ad33c7 100644 --- a/en/docs/features/env.html +++ b/en/docs/features/env.html @@ -1,4 +1,4 @@ -Environment Variables | Orbien +Environment Variables | Orbien

    Environment Variables

    diff --git a/en/docs/features/hot-reload.html b/en/docs/features/hot-reload.html index 4ffe4a2..ab71817 100644 --- a/en/docs/features/hot-reload.html +++ b/en/docs/features/hot-reload.html @@ -1,4 +1,4 @@ -Hot Reload | Orbien +Hot Reload | Orbien

    Hot Reload

    diff --git a/en/docs/features/public-bind.html b/en/docs/features/public-bind.html index feac331..5376f86 100644 --- a/en/docs/features/public-bind.html +++ b/en/docs/features/public-bind.html @@ -1,4 +1,4 @@ -Public Bind Address | Orbien +Public Bind Address | Orbien

    Public Bind Address

    diff --git a/en/docs/features/real-ip.html b/en/docs/features/real-ip.html index f162afc..9ebe4b2 100644 --- a/en/docs/features/real-ip.html +++ b/en/docs/features/real-ip.html @@ -1,4 +1,4 @@ -Real IP | Orbien +Real IP | Orbien

    Real IP

    diff --git a/en/docs/integrations/springboot.html b/en/docs/integrations/springboot.html index 99959e7..e0c3aa4 100644 --- a/en/docs/integrations/springboot.html +++ b/en/docs/integrations/springboot.html @@ -1,4 +1,4 @@ -Spring Boot Integration | Orbien +Spring Boot Integration | Orbien

    Spring Boot Integration

    @@ -8,7 +8,7 @@
  • Transport: TCP only
  • No TCP multiplexing: set orbien.tcp-mux to false, and set [transport].tcpMux = false on the server (multiplexing is on by default; turn it off when using the Java client)
  • -
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.4.0</version>
    </dependency>
    +
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.5.0</version>
    </dependency>

    Minimal configuration

    local-port and name are optional. When omitted, the starter uses the Spring Boot web port and spring.application.name (or orbien-{protocol}).

    # application.yml
    orbien:
    enabled: true
    server: "127.0.0.1:9527"
    # token: YOUR_TOKEN # optional
    tunnel:
    protocol: http
    domains:
    - web.domain.com
    diff --git a/en/docs/intro.html b/en/docs/intro.html index 0ec860d..44176f2 100644 --- a/en/docs/intro.html +++ b/en/docs/intro.html @@ -1,4 +1,4 @@ -Introduction | Orbien +Introduction | Orbien

    Introduction

    diff --git a/en/docs/license.html b/en/docs/license.html index 04d7b72..21d0ba1 100644 --- a/en/docs/license.html +++ b/en/docs/license.html @@ -1,4 +1,4 @@ -License | Orbien +License | Orbien

    License

    diff --git a/en/docs/performance.html b/en/docs/performance.html index 7575c30..322df30 100644 --- a/en/docs/performance.html +++ b/en/docs/performance.html @@ -1,4 +1,4 @@ -Performance | Orbien +Performance | Orbien

    Performance

    diff --git a/en/docs/quickstart.html b/en/docs/quickstart.html index 4a7a847..49a349f 100644 --- a/en/docs/quickstart.html +++ b/en/docs/quickstart.html @@ -1,4 +1,4 @@ -Quick Start | Orbien +Quick Start | Orbien

    Quick Start

    diff --git a/en/docs/transport/connect-pool.html b/en/docs/transport/connect-pool.html index 4d7ab80..d6579ad 100644 --- a/en/docs/transport/connect-pool.html +++ b/en/docs/transport/connect-pool.html @@ -1,4 +1,4 @@ -Connection Pool | Orbien +Connection Pool | Orbien

    Connection Pool

    diff --git a/en/docs/transport/protocol/kcp.html b/en/docs/transport/protocol/kcp.html index 40cf941..d099f58 100644 --- a/en/docs/transport/protocol/kcp.html +++ b/en/docs/transport/protocol/kcp.html @@ -1,4 +1,4 @@ -KCP | Orbien +KCP | Orbien

    KCP

    diff --git a/en/docs/transport/protocol/quic.html b/en/docs/transport/protocol/quic.html index bd01426..19108b6 100644 --- a/en/docs/transport/protocol/quic.html +++ b/en/docs/transport/protocol/quic.html @@ -1,4 +1,4 @@ -QUIC | Orbien +QUIC | Orbien

    QUIC

    diff --git a/en/docs/transport/protocol/tcp.html b/en/docs/transport/protocol/tcp.html index ae7606e..20a5cce 100644 --- a/en/docs/transport/protocol/tcp.html +++ b/en/docs/transport/protocol/tcp.html @@ -1,4 +1,4 @@ -TCP | Orbien +TCP | Orbien

    TCP

    diff --git a/en/docs/transport/protocol/websocket.html b/en/docs/transport/protocol/websocket.html index d316b56..7c6bbe2 100644 --- a/en/docs/transport/protocol/websocket.html +++ b/en/docs/transport/protocol/websocket.html @@ -1,4 +1,4 @@ -WebSocket | Orbien +WebSocket | Orbien

    WebSocket

    diff --git a/en/docs/transport/tcp-mux.html b/en/docs/transport/tcp-mux.html index b102a2a..61c22b3 100644 --- a/en/docs/transport/tcp-mux.html +++ b/en/docs/transport/tcp-mux.html @@ -1,4 +1,4 @@ -TCP Multiplexing | Orbien +TCP Multiplexing | Orbien

    TCP Multiplexing

    diff --git a/en/docs/transport/tls.html b/en/docs/transport/tls.html index 2918484..192beb6 100644 --- a/en/docs/transport/tls.html +++ b/en/docs/transport/tls.html @@ -1,4 +1,4 @@ -TLS | Orbien +TLS | Orbien

    TLS

    diff --git a/en/docs/tunnels/domains.html b/en/docs/tunnels/domains.html index c9fb5ad..4ea71f4 100644 --- a/en/docs/tunnels/domains.html +++ b/en/docs/tunnels/domains.html @@ -1,4 +1,4 @@ -Domains | Orbien +Domains | Orbien

    Domains

    diff --git a/en/docs/tunnels/http.html b/en/docs/tunnels/http.html index 55cf8a7..e2e9bf1 100644 --- a/en/docs/tunnels/http.html +++ b/en/docs/tunnels/http.html @@ -1,4 +1,4 @@ -HTTP | Orbien +HTTP | Orbien

    HTTP

    diff --git a/en/docs/tunnels/https.html b/en/docs/tunnels/https.html index c331254..6e776f0 100644 --- a/en/docs/tunnels/https.html +++ b/en/docs/tunnels/https.html @@ -1,4 +1,4 @@ -HTTPS | Orbien +HTTPS | Orbien

    HTTPS

    diff --git a/en/docs/tunnels/socks5.html b/en/docs/tunnels/socks5.html index ae3955c..2ad7806 100644 --- a/en/docs/tunnels/socks5.html +++ b/en/docs/tunnels/socks5.html @@ -1,4 +1,4 @@ -SOCKS5 | Orbien +SOCKS5 | Orbien

    SOCKS5

    diff --git a/en/docs/tunnels/tcp.html b/en/docs/tunnels/tcp.html index 43761f7..70464f3 100644 --- a/en/docs/tunnels/tcp.html +++ b/en/docs/tunnels/tcp.html @@ -1,4 +1,4 @@ -TCP | Orbien +TCP | Orbien

    TCP

    diff --git a/en/docs/tunnels/udp.html b/en/docs/tunnels/udp.html index 3afeef2..0e0a6ff 100644 --- a/en/docs/tunnels/udp.html +++ b/en/docs/tunnels/udp.html @@ -1,4 +1,4 @@ -UDP | Orbien +UDP | Orbien

    UDP

    diff --git a/en/index.html b/en/index.html index ccbd270..e35d6cb 100644 --- a/en/index.html +++ b/en/index.html @@ -1,4 +1,4 @@ -Orbien — NAT Traversal | Orbien +Orbien — NAT Traversal | Orbien

    Orbien

    Powered by Rust and Tokio

    Lightweight, high-performance, and secure NAT traversal — binary size about 5MB

    Orbien project dashboardOrbien project dashboard

    High Performance

    High performance, low latency, packet-loss resilient, low memory footprint, and no GC pauses — built for long-running servers

    Multi-Protocol Tunnels

    Supports TCP, UDP, HTTP, HTTPS, and SOCKS5 tunnels

    Multiple Transports

    Supports TCP, QUIC, KCP, and WebSocket transports, plus TCP multiplexing

    Security & Encryption

    Token authentication with TLS / mTLS; HTTPS transparent forwarding and optional client-side TLS termination

    Visual Ops

    Built-in lightweight server web UI and native desktop client for easier ops, monitoring, and higher productivity

    Cross-Platform

    Supports Windows / macOS / Linux / FreeBSD and more

    Desktop Client

    Native Rust desktop client — manage tunnel configs easily with a visual UI

    Download Desktop
    Orbien Desktop client demoOrbien Desktop client demo
    \ No newline at end of file diff --git a/index.html b/index.html index 08718e0..e4d6c28 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -Orbien — 内网穿透 | Orbien +Orbien — 内网穿透 | Orbien

    Orbien

    由 Rust 与 Tokio 驱动

    轻量、高性能、安全的内网穿透,二进制体积大约5MB

    Orbien 项目监控面板Orbien 项目监控面板

    高性能

    高性能、低延迟、抗丢包、内存占用低、无GC停顿,适合长期服务器运行

    多协议隧道

    支持 TCP、UDP、HTTP、HTTPS、SOCKS5 协议隧道

    多传输协议

    支持 TCP、QUIC、KCP、WebSocket 多种传输协议,同时支持TCP多路复用

    安全加密

    支持 Token 鉴权与 TLS /mTLS 加密传输;HTTPS采用透明转发和可选客户端TLS终止

    可视化运维

    内置轻量服务端Web管理界面和原生桌面客户端,便于运维监控,提高效率

    跨平台支持

    支持 Windows / macOS / Linux / freeBSD 等平台

    桌面客户端

    纯Rust原生桌面客户端,通过可视化界面轻松管理隧道配置

    下载桌面端
    Orbien Desktop 客户端演示Orbien Desktop 客户端演示
    \ No newline at end of file