diff --git a/assets/app.0bd0e305.js b/assets/app.0bd0e305.js new file mode 100644 index 00000000..cdc9a7db --- /dev/null +++ b/assets/app.0bd0e305.js @@ -0,0 +1 @@ +var Mo=Object.defineProperty,Oo=Object.defineProperties;var Ro=Object.getOwnPropertyDescriptors;var As=Object.getOwnPropertySymbols;var Uo=Object.prototype.hasOwnProperty,Fo=Object.prototype.propertyIsEnumerable;var Ss=(e,t,n)=>t in e?Mo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ps=(e,t)=>{for(var n in t||(t={}))Uo.call(t,n)&&Ss(e,n,t[n]);if(As)for(var n of As(t))Fo.call(t,n)&&Ss(e,n,t[n]);return e},Is=(e,t)=>Oo(e,Ro(t));const No="modulepreload",Ms={},Ho="/",Bo=function(t,n){return!n||n.length===0?t():Promise.all(n.map(s=>{if(s=`${Ho}${s}`,s in Ms)return;Ms[s]=!0;const r=s.endsWith(".css"),o=r?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${o}`))return;const i=document.createElement("link");if(i.rel=r?"stylesheet":No,r||(i.as="script",i.crossOrigin=""),i.href=s,document.head.appendChild(i),r)return new Promise((l,c)=>{i.addEventListener("load",l),i.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t())};function es(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const Do="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",jo=es(Do);function _r(e){return!!e||e===""}function ts(e){if(O(e)){const t={};for(let n=0;n{if(n){const s=n.split(Ko);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ct(e){let t="";if(he(e))t=e;else if(O(e))for(let n=0;nhe(e)?e:e==null?"":O(e)||ue(e)&&(e.toString===vr||!F(e.toString))?JSON.stringify(e,gr,2):String(e),gr=(e,t)=>t&&t.__v_isRef?gr(e,t.value):bt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:mr(t)?{[`Set(${t.size})`]:[...t.values()]}:ue(t)&&!O(t)&&!xr(t)?String(t):t,Q={},mt=[],Me=()=>{},zo=()=>!1,Vo=/^on[^a-z]/,Wt=e=>Vo.test(e),ns=e=>e.startsWith("onUpdate:"),xe=Object.assign,ss=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Jo=Object.prototype.hasOwnProperty,q=(e,t)=>Jo.call(e,t),O=Array.isArray,bt=e=>mn(e)==="[object Map]",mr=e=>mn(e)==="[object Set]",F=e=>typeof e=="function",he=e=>typeof e=="string",rs=e=>typeof e=="symbol",ue=e=>e!==null&&typeof e=="object",br=e=>ue(e)&&F(e.then)&&F(e.catch),vr=Object.prototype.toString,mn=e=>vr.call(e),Yo=e=>mn(e).slice(8,-1),xr=e=>mn(e)==="[object Object]",os=e=>he(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,St=es(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),bn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Xo=/-(\w)/g,Ne=bn(e=>e.replace(Xo,(t,n)=>n?n.toUpperCase():"")),Zo=/\B([A-Z])/g,kt=bn(e=>e.replace(Zo,"-$1").toLowerCase()),vn=bn(e=>e.charAt(0).toUpperCase()+e.slice(1)),On=bn(e=>e?`on${vn(e)}`:""),Ft=(e,t)=>!Object.is(e,t),Rn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Qo=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Os;const Go=()=>Os||(Os=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Ue;class ei{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Ue&&(this.parent=Ue,this.index=(Ue.scopes||(Ue.scopes=[])).push(this)-1)}run(t){if(this.active){const n=Ue;try{return Ue=this,t()}finally{Ue=n}}}on(){Ue=this}off(){Ue=this.parent}stop(t){if(this.active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},yr=e=>(e.w&Ge)>0,kr=e=>(e.n&Ge)>0,ni=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(f==="length"||f>=s)&&l.push(c)});else switch(n!==void 0&&l.push(i.get(n)),t){case"add":O(e)?os(n)&&l.push(i.get("length")):(l.push(i.get(rt)),bt(e)&&l.push(i.get(qn)));break;case"delete":O(e)||(l.push(i.get(rt)),bt(e)&&l.push(i.get(qn)));break;case"set":bt(e)&&l.push(i.get(rt));break}if(l.length===1)l[0]&&Kn(l[0]);else{const c=[];for(const f of l)f&&c.push(...f);Kn(is(c))}}function Kn(e,t){for(const n of O(e)?e:[...e])(n!==Pe||n.allowRecurse)&&(n.scheduler?n.scheduler():n.run())}const ri=es("__proto__,__v_isRef,__isVue"),Cr=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(rs)),oi=cs(),ii=cs(!1,!0),li=cs(!0),Us=ci();function ci(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=z(this);for(let o=0,i=this.length;o{e[t]=function(...n){wt();const s=z(this)[t].apply(this,n);return $t(),s}}),e}function cs(e=!1,t=!1){return function(s,r,o){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&o===(e?t?$i:Sr:t?Ar:Lr).get(s))return s;const i=O(s);if(!e&&i&&q(Us,r))return Reflect.get(Us,r,o);const l=Reflect.get(s,r,o);return(rs(r)?Cr.has(r):ri(r))||(e||Te(s,"get",r),t)?l:de(l)?!i||!os(r)?l.value:l:ue(l)?e?Pr(l):yn(l):l}}const ai=Er(),ui=Er(!0);function Er(e=!1){return function(n,s,r,o){let i=n[s];if(Nt(i)&&de(i)&&!de(r))return!1;if(!e&&!Nt(r)&&(Ir(r)||(r=z(r),i=z(i)),!O(n)&&de(i)&&!de(r)))return i.value=r,!0;const l=O(n)&&os(s)?Number(s)e,xn=e=>Reflect.getPrototypeOf(e);function Yt(e,t,n=!1,s=!1){e=e.__v_raw;const r=z(e),o=z(t);t!==o&&!n&&Te(r,"get",t),!n&&Te(r,"get",o);const{has:i}=xn(r),l=s?as:n?ds:Ht;if(i.call(r,t))return l(e.get(t));if(i.call(r,o))return l(e.get(o));e!==r&&e.get(t)}function Xt(e,t=!1){const n=this.__v_raw,s=z(n),r=z(e);return e!==r&&!t&&Te(s,"has",e),!t&&Te(s,"has",r),e===r?n.has(e):n.has(e)||n.has(r)}function Zt(e,t=!1){return e=e.__v_raw,!t&&Te(z(e),"iterate",rt),Reflect.get(e,"size",e)}function Fs(e){e=z(e);const t=z(this);return xn(t).has.call(t,e)||(t.add(e),qe(t,"add",e,e)),this}function Ns(e,t){t=z(t);const n=z(this),{has:s,get:r}=xn(n);let o=s.call(n,e);o||(e=z(e),o=s.call(n,e));const i=r.call(n,e);return n.set(e,t),o?Ft(t,i)&&qe(n,"set",e,t):qe(n,"add",e,t),this}function Hs(e){const t=z(this),{has:n,get:s}=xn(t);let r=n.call(t,e);r||(e=z(e),r=n.call(t,e)),s&&s.call(t,e);const o=t.delete(e);return r&&qe(t,"delete",e,void 0),o}function Bs(){const e=z(this),t=e.size!==0,n=e.clear();return t&&qe(e,"clear",void 0,void 0),n}function Qt(e,t){return function(s,r){const o=this,i=o.__v_raw,l=z(i),c=t?as:e?ds:Ht;return!e&&Te(l,"iterate",rt),i.forEach((f,h)=>s.call(r,c(f),c(h),o))}}function Gt(e,t,n){return function(...s){const r=this.__v_raw,o=z(r),i=bt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,f=r[e](...s),h=n?as:t?ds:Ht;return!t&&Te(o,"iterate",c?qn:rt),{next(){const{value:g,done:y}=f.next();return y?{value:g,done:y}:{value:l?[h(g[0]),h(g[1])]:h(g),done:y}},[Symbol.iterator](){return this}}}}function Ve(e){return function(...t){return e==="delete"?!1:this}}function gi(){const e={get(o){return Yt(this,o)},get size(){return Zt(this)},has:Xt,add:Fs,set:Ns,delete:Hs,clear:Bs,forEach:Qt(!1,!1)},t={get(o){return Yt(this,o,!1,!0)},get size(){return Zt(this)},has:Xt,add:Fs,set:Ns,delete:Hs,clear:Bs,forEach:Qt(!1,!0)},n={get(o){return Yt(this,o,!0)},get size(){return Zt(this,!0)},has(o){return Xt.call(this,o,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Qt(!0,!1)},s={get(o){return Yt(this,o,!0,!0)},get size(){return Zt(this,!0)},has(o){return Xt.call(this,o,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Qt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Gt(o,!1,!1),n[o]=Gt(o,!0,!1),t[o]=Gt(o,!1,!0),s[o]=Gt(o,!0,!0)}),[e,n,t,s]}const[mi,bi,vi,xi]=gi();function us(e,t){const n=t?e?xi:vi:e?bi:mi;return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(q(n,r)&&r in s?n:s,r,o)}const yi={get:us(!1,!1)},ki={get:us(!1,!0)},wi={get:us(!0,!1)},Lr=new WeakMap,Ar=new WeakMap,Sr=new WeakMap,$i=new WeakMap;function Ci(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ei(e){return e.__v_skip||!Object.isExtensible(e)?0:Ci(Yo(e))}function yn(e){return Nt(e)?e:fs(e,!1,Tr,yi,Lr)}function Ti(e){return fs(e,!1,_i,ki,Ar)}function Pr(e){return fs(e,!0,pi,wi,Sr)}function fs(e,t,n,s,r){if(!ue(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const i=Ei(e);if(i===0)return e;const l=new Proxy(e,i===2?s:n);return r.set(e,l),l}function vt(e){return Nt(e)?vt(e.__v_raw):!!(e&&e.__v_isReactive)}function Nt(e){return!!(e&&e.__v_isReadonly)}function Ir(e){return!!(e&&e.__v_isShallow)}function Mr(e){return vt(e)||Nt(e)}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Pt(e){return sn(e,"__v_skip",!0),e}const Ht=e=>ue(e)?yn(e):e,ds=e=>ue(e)?Pr(e):e;function Or(e){Ze&&Pe&&(e=z(e),$r(e.dep||(e.dep=is())))}function Rr(e,t){e=z(e),e.dep&&Kn(e.dep)}function de(e){return!!(e&&e.__v_isRef===!0)}function kn(e){return Ur(e,!1)}function Li(e){return Ur(e,!0)}function Ur(e,t){return de(e)?e:new Ai(e,t)}class Ai{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:z(t),this._value=n?t:Ht(t)}get value(){return Or(this),this._value}set value(t){t=this.__v_isShallow?t:z(t),Ft(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:Ht(t),Rr(this))}}function $(e){return de(e)?e.value:e}const Si={get:(e,t,n)=>$(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return de(r)&&!de(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Fr(e){return vt(e)?e:new Proxy(e,Si)}function Nr(e){const t=O(e)?new Array(e.length):{};for(const n in e)t[n]=Ii(e,n);return t}class Pi{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function Ii(e,t,n){const s=e[t];return de(s)?s:new Pi(e,t,n)}class Mi{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new ls(t,()=>{this._dirty||(this._dirty=!0,Rr(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=z(this);return Or(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Oi(e,t,n=!1){let s,r;const o=F(e);return o?(s=e,r=Me):(s=e.get,r=e.set),new Mi(s,r,o||!r,n)}function Qe(e,t,n,s){let r;try{r=s?e(...s):e()}catch(o){wn(o,t,n)}return r}function Oe(e,t,n,s){if(F(e)){const o=Qe(e,t,n,s);return o&&br(o)&&o.catch(i=>{wn(i,t,n)}),o}const r=[];for(let o=0;o>>1;Bt(Ee[s])je&&Ee.splice(t,1)}function qr(e,t,n,s){O(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?s+1:s))&&n.push(e),jr()}function Ni(e){qr(e,At,It,pt)}function Hi(e){qr(e,Ye,Mt,_t)}function ps(e,t=null){if(It.length){for(zn=t,At=[...new Set(It)],It.length=0,pt=0;ptBt(n)-Bt(s)),_t=0;_te.id==null?1/0:e.id;function Kr(e){Wn=!1,rn=!0,ps(e),Ee.sort((n,s)=>Bt(n)-Bt(s));const t=Me;try{for(je=0;jeL.trim()):g&&(r=n.map(Qo))}let l,c=s[l=On(t)]||s[l=On(Ne(t))];!c&&o&&(c=s[l=On(kt(t))]),c&&Oe(c,e,6,r);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Oe(f,e,6,r)}}function Wr(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},l=!1;if(!F(e)){const c=f=>{const h=Wr(f,t,!0);h&&(l=!0,xe(i,h))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(s.set(e,null),null):(O(o)?o.forEach(c=>i[c]=null):xe(i,o),s.set(e,i),i)}function $n(e,t){return!e||!Wt(t)?!1:(t=t.slice(2).replace(/Once$/,""),q(e,t[0].toLowerCase()+t.slice(1))||q(e,kt(t))||q(e,t))}let $e=null,Cn=null;function ln(e){const t=$e;return $e=e,Cn=e&&e.type.__scopeId||null,t}function zr(e){Cn=e}function Vr(){Cn=null}function De(e,t=$e,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Xs(-1);const o=ln(t),i=e(...r);return ln(o),s._d&&Xs(1),i};return s._n=!0,s._c=!0,s._d=!0,s}function Un(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:o,propsOptions:[i],slots:l,attrs:c,emit:f,render:h,renderCache:g,data:y,setupState:L,ctx:M,inheritAttrs:V}=e;let m,k;const K=ln(e);try{if(n.shapeFlag&4){const H=r||s;m=Se(h.call(H,H,g,o,L,y,M)),k=c}else{const H=t;m=Se(H.length>1?H(o,{attrs:c,slots:l,emit:f}):H(o,null)),k=t.props?c:Di(c)}}catch(H){Ut.length=0,wn(H,e,1),m=N(Ke)}let P=m;if(k&&V!==!1){const H=Object.keys(k),{shapeFlag:X}=P;H.length&&X&7&&(i&&H.some(ns)&&(k=ji(k,i)),P=qt(P,k))}return n.dirs&&(P.dirs=P.dirs?P.dirs.concat(n.dirs):n.dirs),n.transition&&(P.transition=n.transition),m=P,ln(K),m}const Di=e=>{let t;for(const n in e)(n==="class"||n==="style"||Wt(n))&&((t||(t={}))[n]=e[n]);return t},ji=(e,t)=>{const n={};for(const s in e)(!ns(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function qi(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:l,patchFlag:c}=t,f=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Ds(s,i,f):!!i;if(c&8){const h=t.dynamicProps;for(let g=0;ge.__isSuspense;function Jr(e,t){t&&t.pendingBranch?O(e)?t.effects.push(...e):t.effects.push(e):Hi(e)}function zi(e,t){if(_e){let n=_e.provides;const s=_e.parent&&_e.parent.provides;s===n&&(n=_e.provides=Object.create(s)),n[e]=t}}function Ot(e,t,n=!1){const s=_e||$e;if(s){const r=s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&F(t)?t.call(s.proxy):t}}function Yr(e,t){return _s(e,null,t)}const js={};function ot(e,t,n){return _s(e,t,n)}function _s(e,t,{immediate:n,deep:s,flush:r,onTrack:o,onTrigger:i}=Q){const l=_e;let c,f=!1,h=!1;if(de(e)?(c=()=>e.value,f=Ir(e)):vt(e)?(c=()=>e,s=!0):O(e)?(h=!0,f=e.some(vt),c=()=>e.map(k=>{if(de(k))return k.value;if(vt(k))return gt(k);if(F(k))return Qe(k,l,2)})):F(e)?t?c=()=>Qe(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return g&&g(),Oe(e,l,3,[y])}:c=Me,t&&s){const k=c;c=()=>gt(k())}let g,y=k=>{g=m.onStop=()=>{Qe(k,l,4)}};if(Kt)return y=Me,t?n&&Oe(t,l,3,[c(),h?[]:void 0,y]):c(),Me;let L=h?[]:js;const M=()=>{if(!!m.active)if(t){const k=m.run();(s||f||(h?k.some((K,P)=>Ft(K,L[P])):Ft(k,L)))&&(g&&g(),Oe(t,l,3,[k,L===js?void 0:L,y]),L=k)}else m.run()};M.allowRecurse=!!t;let V;r==="sync"?V=M:r==="post"?V=()=>we(M,l&&l.suspense):V=()=>{!l||l.isMounted?Ni(M):M()};const m=new ls(c,V);return t?n?M():L=m.run():r==="post"?we(m.run.bind(m),l&&l.suspense):m.run(),()=>{m.stop(),l&&l.scope&&ss(l.scope.effects,m)}}function Vi(e,t,n){const s=this.proxy,r=he(e)?e.includes(".")?Xr(s,e):()=>s[e]:e.bind(s,s);let o;F(t)?o=t:(o=t.handler,n=t);const i=_e;xt(this);const l=_s(r,o.bind(s),n);return i?xt(i):lt(),l}function Xr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{gt(n,t)});else if(xr(e))for(const n in e)gt(e[n],t);return e}function ie(e){return F(e)?{setup:e,name:e.name}:e}const Dt=e=>!!e.type.__asyncLoader,Zr=e=>e.type.__isKeepAlive;function Ji(e,t){Qr(e,"a",t)}function Yi(e,t){Qr(e,"da",t)}function Qr(e,t,n=_e){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(En(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Zr(r.parent.vnode)&&Xi(s,t,n,r),r=r.parent}}function Xi(e,t,n,s){const r=En(t,e,s,!0);Tn(()=>{ss(s[t],r)},n)}function En(e,t,n=_e,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;wt(),xt(n);const l=Oe(t,n,e,i);return lt(),$t(),l});return s?r.unshift(o):r.push(o),o}}const We=e=>(t,n=_e)=>(!Kt||e==="sp")&&En(e,t,n),Zi=We("bm"),ut=We("m"),Qi=We("bu"),Gr=We("u"),Gi=We("bum"),Tn=We("um"),el=We("sp"),tl=We("rtg"),nl=We("rtc");function sl(e,t=_e){En("ec",e,t)}let Vn=!0;function rl(e){const t=to(e),n=e.proxy,s=e.ctx;Vn=!1,t.beforeCreate&&qs(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:l,provide:c,inject:f,created:h,beforeMount:g,mounted:y,beforeUpdate:L,updated:M,activated:V,deactivated:m,beforeDestroy:k,beforeUnmount:K,destroyed:P,unmounted:H,render:X,renderTracked:Z,renderTriggered:B,errorCaptured:le,serverPrefetch:ne,expose:re,inheritAttrs:ge,components:j,directives:oe,filters:ye}=t;if(f&&ol(f,s,null,e.appContext.config.unwrapInjectedRef),i)for(const se in i){const G=i[se];F(G)&&(s[se]=G.bind(n))}if(r){const se=r.call(n,n);ue(se)&&(e.data=yn(se))}if(Vn=!0,o)for(const se in o){const G=o[se],He=F(G)?G.bind(n,n):F(G.get)?G.get.bind(n,n):Me,Pn=!F(G)&&F(G.set)?G.set.bind(n):Me,Ct=D({get:He,set:Pn});Object.defineProperty(s,se,{enumerable:!0,configurable:!0,get:()=>Ct.value,set:ft=>Ct.value=ft})}if(l)for(const se in l)eo(l[se],s,n,se);if(c){const se=F(c)?c.call(n):c;Reflect.ownKeys(se).forEach(G=>{zi(G,se[G])})}h&&qs(h,e,"c");function ke(se,G){O(G)?G.forEach(He=>se(He.bind(n))):G&&se(G.bind(n))}if(ke(Zi,g),ke(ut,y),ke(Qi,L),ke(Gr,M),ke(Ji,V),ke(Yi,m),ke(sl,le),ke(nl,Z),ke(tl,B),ke(Gi,K),ke(Tn,H),ke(el,ne),O(re))if(re.length){const se=e.exposed||(e.exposed={});re.forEach(G=>{Object.defineProperty(se,G,{get:()=>n[G],set:He=>n[G]=He})})}else e.exposed||(e.exposed={});X&&e.render===Me&&(e.render=X),ge!=null&&(e.inheritAttrs=ge),j&&(e.components=j),oe&&(e.directives=oe)}function ol(e,t,n=Me,s=!1){O(e)&&(e=Jn(e));for(const r in e){const o=e[r];let i;ue(o)?"default"in o?i=Ot(o.from||r,o.default,!0):i=Ot(o.from||r):i=Ot(o),de(i)&&s?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[r]=i}}function qs(e,t,n){Oe(O(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function eo(e,t,n,s){const r=s.includes(".")?Xr(n,s):()=>n[s];if(he(e)){const o=t[e];F(o)&&ot(r,o)}else if(F(e))ot(r,e.bind(n));else if(ue(e))if(O(e))e.forEach(o=>eo(o,t,n,s));else{const o=F(e.handler)?e.handler.bind(n):t[e.handler];F(o)&&ot(r,o,e)}}function to(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(f=>cn(c,f,i,!0)),cn(c,t,i)),o.set(t,c),c}function cn(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&cn(e,o,n,!0),r&&r.forEach(i=>cn(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=il[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const il={data:Ks,props:nt,emits:nt,methods:nt,computed:nt,beforeCreate:be,created:be,beforeMount:be,mounted:be,beforeUpdate:be,updated:be,beforeDestroy:be,beforeUnmount:be,destroyed:be,unmounted:be,activated:be,deactivated:be,errorCaptured:be,serverPrefetch:be,components:nt,directives:nt,watch:cl,provide:Ks,inject:ll};function Ks(e,t){return t?e?function(){return xe(F(e)?e.call(this,this):e,F(t)?t.call(this,this):t)}:t:e}function ll(e,t){return nt(Jn(e),Jn(t))}function Jn(e){if(O(e)){const t={};for(let n=0;n0)&&!(i&16)){if(i&8){const h=e.vnode.dynamicProps;for(let g=0;g{c=!0;const[y,L]=so(g,t,!0);xe(i,y),L&&l.push(...L)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!o&&!c)return s.set(e,mt),mt;if(O(o))for(let h=0;h-1,L[1]=V<0||M-1||q(L,"default"))&&l.push(g)}}}const f=[i,l];return s.set(e,f),f}function Ws(e){return e[0]!=="$"}function zs(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Vs(e,t){return zs(e)===zs(t)}function Js(e,t){return O(t)?t.findIndex(n=>Vs(n,e)):F(t)&&Vs(t,e)?0:-1}const ro=e=>e[0]==="_"||e==="$stable",gs=e=>O(e)?e.map(Se):[Se(e)],fl=(e,t,n)=>{const s=De((...r)=>gs(t(...r)),n);return s._c=!1,s},oo=(e,t,n)=>{const s=e._ctx;for(const r in e){if(ro(r))continue;const o=e[r];if(F(o))t[r]=fl(r,o,s);else if(o!=null){const i=gs(o);t[r]=()=>i}}},io=(e,t)=>{const n=gs(t);e.slots.default=()=>n},dl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=z(t),sn(t,"_",n)):oo(t,e.slots={})}else e.slots={},t&&io(e,t);sn(e.slots,Ln,1)},hl=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=Q;if(s.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(xe(r,t),!n&&l===1&&delete r._):(o=!t.$stable,oo(t,r)),i=t}else t&&(io(e,t),i={default:1});if(o)for(const l in r)!ro(l)&&!(l in i)&&delete r[l]};function Fe(e,t,n,s){const r=e.dirs,o=t&&t.dirs;for(let i=0;ian(y,t&&(O(t)?t[L]:t),n,s,r));return}if(Dt(s)&&!r)return;const o=s.shapeFlag&4?vs(s.component)||s.component.proxy:s.el,i=r?null:o,{i:l,r:c}=e,f=t&&t.r,h=l.refs===Q?l.refs={}:l.refs,g=l.setupState;if(f!=null&&f!==c&&(he(f)?(h[f]=null,q(g,f)&&(g[f]=null)):de(f)&&(f.value=null)),F(c))Qe(c,l,12,[i,h]);else{const y=he(c),L=de(c);if(y||L){const M=()=>{if(e.f){const V=y?h[c]:c.value;r?O(V)&&ss(V,o):O(V)?V.includes(o)||V.push(o):y?(h[c]=[o],q(g,c)&&(g[c]=h[c])):(c.value=[o],e.k&&(h[e.k]=c.value))}else y?(h[c]=i,q(g,c)&&(g[c]=i)):de(c)&&(c.value=i,e.k&&(h[e.k]=i))};i?(M.id=-1,we(M,n)):M()}}}let Je=!1;const en=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Fn=e=>e.nodeType===8;function gl(e){const{mt:t,p:n,o:{patchProp:s,nextSibling:r,parentNode:o,remove:i,insert:l,createComment:c}}=e,f=(m,k)=>{if(!k.hasChildNodes()){n(null,m,k),on();return}Je=!1,h(k.firstChild,m,null,null,null),on(),Je&&console.error("Hydration completed but contains mismatches.")},h=(m,k,K,P,H,X=!1)=>{const Z=Fn(m)&&m.data==="[",B=()=>M(m,k,K,P,H,Z),{type:le,ref:ne,shapeFlag:re}=k,ge=m.nodeType;k.el=m;let j=null;switch(le){case jt:ge!==3?j=B():(m.data!==k.children&&(Je=!0,m.data=k.children),j=r(m));break;case Ke:ge!==8||Z?j=B():j=r(m);break;case Rt:if(ge!==1)j=B();else{j=m;const oe=!k.children.length;for(let ye=0;ye{X=X||!!k.dynamicChildren;const{type:Z,props:B,patchFlag:le,shapeFlag:ne,dirs:re}=k,ge=Z==="input"&&re||Z==="option";if(ge||le!==-1){if(re&&Fe(k,null,K,"created"),B)if(ge||!X||le&48)for(const oe in B)(ge&&oe.endsWith("value")||Wt(oe)&&!St(oe))&&s(m,oe,null,B[oe],!1,void 0,K);else B.onClick&&s(m,"onClick",null,B.onClick,!1,void 0,K);let j;if((j=B&&B.onVnodeBeforeMount)&&Le(j,K,k),re&&Fe(k,null,K,"beforeMount"),((j=B&&B.onVnodeMounted)||re)&&Jr(()=>{j&&Le(j,K,k),re&&Fe(k,null,K,"mounted")},P),ne&16&&!(B&&(B.innerHTML||B.textContent))){let oe=y(m.firstChild,k,m,K,P,H,X);for(;oe;){Je=!0;const ye=oe;oe=oe.nextSibling,i(ye)}}else ne&8&&m.textContent!==k.children&&(Je=!0,m.textContent=k.children)}return m.nextSibling},y=(m,k,K,P,H,X,Z)=>{Z=Z||!!k.dynamicChildren;const B=k.children,le=B.length;for(let ne=0;ne{const{slotScopeIds:Z}=k;Z&&(H=H?H.concat(Z):Z);const B=o(m),le=y(r(m),k,B,K,P,H,X);return le&&Fn(le)&&le.data==="]"?r(k.anchor=le):(Je=!0,l(k.anchor=c("]"),B,le),le)},M=(m,k,K,P,H,X)=>{if(Je=!0,k.el=null,X){const le=V(m);for(;;){const ne=r(m);if(ne&&ne!==le)i(ne);else break}}const Z=r(m),B=o(m);return i(m),n(null,k,B,Z,K,P,en(B),H),Z},V=m=>{let k=0;for(;m;)if(m=r(m),m&&Fn(m)&&(m.data==="["&&k++,m.data==="]")){if(k===0)return r(m);k--}return m};return[f,h]}const we=Jr;function ml(e){return bl(e,gl)}function bl(e,t){const n=Go();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:l,createComment:c,setText:f,setElementText:h,parentNode:g,nextSibling:y,setScopeId:L=Me,cloneNode:M,insertStaticContent:V}=e,m=(a,u,d,_=null,p=null,x=null,C=!1,v=null,w=!!u.dynamicChildren)=>{if(a===u)return;a&&!Tt(a,u)&&(_=Jt(a),ze(a,p,x,!0),a=null),u.patchFlag===-2&&(w=!1,u.dynamicChildren=null);const{type:b,ref:A,shapeFlag:E}=u;switch(b){case jt:k(a,u,d,_);break;case Ke:K(a,u,d,_);break;case Rt:a==null&&P(u,d,_,C);break;case fe:oe(a,u,d,_,p,x,C,v,w);break;default:E&1?Z(a,u,d,_,p,x,C,v,w):E&6?ye(a,u,d,_,p,x,C,v,w):(E&64||E&128)&&b.process(a,u,d,_,p,x,C,v,w,dt)}A!=null&&p&&an(A,a&&a.ref,x,u||a,!u)},k=(a,u,d,_)=>{if(a==null)s(u.el=l(u.children),d,_);else{const p=u.el=a.el;u.children!==a.children&&f(p,u.children)}},K=(a,u,d,_)=>{a==null?s(u.el=c(u.children||""),d,_):u.el=a.el},P=(a,u,d,_)=>{[a.el,a.anchor]=V(a.children,u,d,_,a.el,a.anchor)},H=({el:a,anchor:u},d,_)=>{let p;for(;a&&a!==u;)p=y(a),s(a,d,_),a=p;s(u,d,_)},X=({el:a,anchor:u})=>{let d;for(;a&&a!==u;)d=y(a),r(a),a=d;r(u)},Z=(a,u,d,_,p,x,C,v,w)=>{C=C||u.type==="svg",a==null?B(u,d,_,p,x,C,v,w):re(a,u,p,x,C,v,w)},B=(a,u,d,_,p,x,C,v)=>{let w,b;const{type:A,props:E,shapeFlag:S,transition:I,patchFlag:W,dirs:te}=a;if(a.el&&M!==void 0&&W===-1)w=a.el=M(a.el);else{if(w=a.el=i(a.type,x,E&&E.is,E),S&8?h(w,a.children):S&16&&ne(a.children,w,null,_,p,x&&A!=="foreignObject",C,v),te&&Fe(a,null,_,"created"),E){for(const ee in E)ee!=="value"&&!St(ee)&&o(w,ee,null,E[ee],x,a.children,_,p,Be);"value"in E&&o(w,"value",null,E.value),(b=E.onVnodeBeforeMount)&&Le(b,_,a)}le(w,a,a.scopeId,C,_)}te&&Fe(a,null,_,"beforeMount");const Y=(!p||p&&!p.pendingBranch)&&I&&!I.persisted;Y&&I.beforeEnter(w),s(w,u,d),((b=E&&E.onVnodeMounted)||Y||te)&&we(()=>{b&&Le(b,_,a),Y&&I.enter(w),te&&Fe(a,null,_,"mounted")},p)},le=(a,u,d,_,p)=>{if(d&&L(a,d),_)for(let x=0;x<_.length;x++)L(a,_[x]);if(p){let x=p.subTree;if(u===x){const C=p.vnode;le(a,C,C.scopeId,C.slotScopeIds,p.parent)}}},ne=(a,u,d,_,p,x,C,v,w=0)=>{for(let b=w;b{const v=u.el=a.el;let{patchFlag:w,dynamicChildren:b,dirs:A}=u;w|=a.patchFlag&16;const E=a.props||Q,S=u.props||Q;let I;d&&tt(d,!1),(I=S.onVnodeBeforeUpdate)&&Le(I,d,u,a),A&&Fe(u,a,d,"beforeUpdate"),d&&tt(d,!0);const W=p&&u.type!=="foreignObject";if(b?ge(a.dynamicChildren,b,v,d,_,W,x):C||He(a,u,v,null,d,_,W,x,!1),w>0){if(w&16)j(v,u,E,S,d,_,p);else if(w&2&&E.class!==S.class&&o(v,"class",null,S.class,p),w&4&&o(v,"style",E.style,S.style,p),w&8){const te=u.dynamicProps;for(let Y=0;Y{I&&Le(I,d,u,a),A&&Fe(u,a,d,"updated")},_)},ge=(a,u,d,_,p,x,C)=>{for(let v=0;v{if(d!==_){for(const v in _){if(St(v))continue;const w=_[v],b=d[v];w!==b&&v!=="value"&&o(a,v,b,w,C,u.children,p,x,Be)}if(d!==Q)for(const v in d)!St(v)&&!(v in _)&&o(a,v,d[v],null,C,u.children,p,x,Be);"value"in _&&o(a,"value",d.value,_.value)}},oe=(a,u,d,_,p,x,C,v,w)=>{const b=u.el=a?a.el:l(""),A=u.anchor=a?a.anchor:l("");let{patchFlag:E,dynamicChildren:S,slotScopeIds:I}=u;I&&(v=v?v.concat(I):I),a==null?(s(b,d,_),s(A,d,_),ne(u.children,d,A,p,x,C,v,w)):E>0&&E&64&&S&&a.dynamicChildren?(ge(a.dynamicChildren,S,d,p,x,C,v),(u.key!=null||p&&u===p.subTree)&&co(a,u,!0)):He(a,u,d,A,p,x,C,v,w)},ye=(a,u,d,_,p,x,C,v,w)=>{u.slotScopeIds=v,a==null?u.shapeFlag&512?p.ctx.activate(u,d,_,C,w):Sn(u,d,_,p,x,C,w):ke(a,u,w)},Sn=(a,u,d,_,p,x,C)=>{const v=a.component=Al(a,_,p);if(Zr(a)&&(v.ctx.renderer=dt),Sl(v),v.asyncDep){if(p&&p.registerDep(v,se),!a.el){const w=v.subTree=N(Ke);K(null,w,u,d)}return}se(v,a,u,d,p,x,C)},ke=(a,u,d)=>{const _=u.component=a.component;if(qi(a,u,d))if(_.asyncDep&&!_.asyncResolved){G(_,u,d);return}else _.next=u,Fi(_.update),_.update();else u.component=a.component,u.el=a.el,_.vnode=u},se=(a,u,d,_,p,x,C)=>{const v=()=>{if(a.isMounted){let{next:A,bu:E,u:S,parent:I,vnode:W}=a,te=A,Y;tt(a,!1),A?(A.el=W.el,G(a,A,C)):A=W,E&&Rn(E),(Y=A.props&&A.props.onVnodeBeforeUpdate)&&Le(Y,I,A,W),tt(a,!0);const ee=Un(a),Ae=a.subTree;a.subTree=ee,m(Ae,ee,g(Ae.el),Jt(Ae),a,p,x),A.el=ee.el,te===null&&Ki(a,ee.el),S&&we(S,p),(Y=A.props&&A.props.onVnodeUpdated)&&we(()=>Le(Y,I,A,W),p)}else{let A;const{el:E,props:S}=u,{bm:I,m:W,parent:te}=a,Y=Dt(u);if(tt(a,!1),I&&Rn(I),!Y&&(A=S&&S.onVnodeBeforeMount)&&Le(A,te,u),tt(a,!0),E&&Mn){const ee=()=>{a.subTree=Un(a),Mn(E,a.subTree,a,p,null)};Y?u.type.__asyncLoader().then(()=>!a.isUnmounted&&ee()):ee()}else{const ee=a.subTree=Un(a);m(null,ee,d,_,a,p,x),u.el=ee.el}if(W&&we(W,p),!Y&&(A=S&&S.onVnodeMounted)){const ee=u;we(()=>Le(A,te,ee),p)}u.shapeFlag&256&&a.a&&we(a.a,p),a.isMounted=!0,u=d=_=null}},w=a.effect=new ls(v,()=>Dr(a.update),a.scope),b=a.update=w.run.bind(w);b.id=a.uid,tt(a,!0),b()},G=(a,u,d)=>{u.component=a;const _=a.vnode.props;a.vnode=u,a.next=null,ul(a,u.props,_,d),hl(a,u.children,d),wt(),ps(void 0,a.update),$t()},He=(a,u,d,_,p,x,C,v,w=!1)=>{const b=a&&a.children,A=a?a.shapeFlag:0,E=u.children,{patchFlag:S,shapeFlag:I}=u;if(S>0){if(S&128){Ct(b,E,d,_,p,x,C,v,w);return}else if(S&256){Pn(b,E,d,_,p,x,C,v,w);return}}I&8?(A&16&&Be(b,p,x),E!==b&&h(d,E)):A&16?I&16?Ct(b,E,d,_,p,x,C,v,w):Be(b,p,x,!0):(A&8&&h(d,""),I&16&&ne(E,d,_,p,x,C,v,w))},Pn=(a,u,d,_,p,x,C,v,w)=>{a=a||mt,u=u||mt;const b=a.length,A=u.length,E=Math.min(b,A);let S;for(S=0;SA?Be(a,p,x,!0,!1,E):ne(u,d,_,p,x,C,v,w,E)},Ct=(a,u,d,_,p,x,C,v,w)=>{let b=0;const A=u.length;let E=a.length-1,S=A-1;for(;b<=E&&b<=S;){const I=a[b],W=u[b]=w?Xe(u[b]):Se(u[b]);if(Tt(I,W))m(I,W,d,null,p,x,C,v,w);else break;b++}for(;b<=E&&b<=S;){const I=a[E],W=u[S]=w?Xe(u[S]):Se(u[S]);if(Tt(I,W))m(I,W,d,null,p,x,C,v,w);else break;E--,S--}if(b>E){if(b<=S){const I=S+1,W=IS)for(;b<=E;)ze(a[b],p,x,!0),b++;else{const I=b,W=b,te=new Map;for(b=W;b<=S;b++){const Ce=u[b]=w?Xe(u[b]):Se(u[b]);Ce.key!=null&&te.set(Ce.key,b)}let Y,ee=0;const Ae=S-W+1;let ht=!1,Es=0;const Et=new Array(Ae);for(b=0;b=Ae){ze(Ce,p,x,!0);continue}let Re;if(Ce.key!=null)Re=te.get(Ce.key);else for(Y=W;Y<=S;Y++)if(Et[Y-W]===0&&Tt(Ce,u[Y])){Re=Y;break}Re===void 0?ze(Ce,p,x,!0):(Et[Re-W]=b+1,Re>=Es?Es=Re:ht=!0,m(Ce,u[Re],d,null,p,x,C,v,w),ee++)}const Ts=ht?vl(Et):mt;for(Y=Ts.length-1,b=Ae-1;b>=0;b--){const Ce=W+b,Re=u[Ce],Ls=Ce+1{const{el:x,type:C,transition:v,children:w,shapeFlag:b}=a;if(b&6){ft(a.component.subTree,u,d,_);return}if(b&128){a.suspense.move(u,d,_);return}if(b&64){C.move(a,u,d,dt);return}if(C===fe){s(x,u,d);for(let E=0;Ev.enter(x),p);else{const{leave:E,delayLeave:S,afterLeave:I}=v,W=()=>s(x,u,d),te=()=>{E(x,()=>{W(),I&&I()})};S?S(x,W,te):te()}else s(x,u,d)},ze=(a,u,d,_=!1,p=!1)=>{const{type:x,props:C,ref:v,children:w,dynamicChildren:b,shapeFlag:A,patchFlag:E,dirs:S}=a;if(v!=null&&an(v,null,d,a,!0),A&256){u.ctx.deactivate(a);return}const I=A&1&&S,W=!Dt(a);let te;if(W&&(te=C&&C.onVnodeBeforeUnmount)&&Le(te,u,a),A&6)Io(a.component,d,_);else{if(A&128){a.suspense.unmount(d,_);return}I&&Fe(a,null,u,"beforeUnmount"),A&64?a.type.remove(a,u,d,p,dt,_):b&&(x!==fe||E>0&&E&64)?Be(b,u,d,!1,!0):(x===fe&&E&384||!p&&A&16)&&Be(w,u,d),_&&$s(a)}(W&&(te=C&&C.onVnodeUnmounted)||I)&&we(()=>{te&&Le(te,u,a),I&&Fe(a,null,u,"unmounted")},d)},$s=a=>{const{type:u,el:d,anchor:_,transition:p}=a;if(u===fe){Po(d,_);return}if(u===Rt){X(a);return}const x=()=>{r(d),p&&!p.persisted&&p.afterLeave&&p.afterLeave()};if(a.shapeFlag&1&&p&&!p.persisted){const{leave:C,delayLeave:v}=p,w=()=>C(d,x);v?v(a.el,x,w):w()}else x()},Po=(a,u)=>{let d;for(;a!==u;)d=y(a),r(a),a=d;r(u)},Io=(a,u,d)=>{const{bum:_,scope:p,update:x,subTree:C,um:v}=a;_&&Rn(_),p.stop(),x&&(x.active=!1,ze(C,a,u,d)),v&&we(v,u),we(()=>{a.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},Be=(a,u,d,_=!1,p=!1,x=0)=>{for(let C=x;Ca.shapeFlag&6?Jt(a.component.subTree):a.shapeFlag&128?a.suspense.next():y(a.anchor||a.el),Cs=(a,u,d)=>{a==null?u._vnode&&ze(u._vnode,null,null,!0):m(u._vnode||null,a,u,null,null,null,d),on(),u._vnode=a},dt={p:m,um:ze,m:ft,r:$s,mt:Sn,mc:ne,pc:He,pbc:ge,n:Jt,o:e};let In,Mn;return t&&([In,Mn]=t(dt)),{render:Cs,hydrate:In,createApp:_l(Cs,In)}}function tt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function co(e,t,n=!1){const s=e.children,r=t.children;if(O(s)&&O(r))for(let o=0;o>1,e[n[l]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}const xl=e=>e.__isTeleport,ao="components";function un(e,t){return kl(ao,e,!0,t)||e}const yl=Symbol();function kl(e,t,n=!0,s=!1){const r=$e||_e;if(r){const o=r.type;if(e===ao){const l=Ol(o);if(l&&(l===t||l===Ne(t)||l===vn(Ne(t))))return o}const i=Ys(r[e]||o[e],t)||Ys(r.appContext[e],t);return!i&&s?o:i}}function Ys(e,t){return e&&(e[t]||e[Ne(t)]||e[vn(Ne(t))])}const fe=Symbol(void 0),jt=Symbol(void 0),Ke=Symbol(void 0),Rt=Symbol(void 0),Ut=[];let it=null;function T(e=!1){Ut.push(it=e?null:[])}function wl(){Ut.pop(),it=Ut[Ut.length-1]||null}let fn=1;function Xs(e){fn+=e}function uo(e){return e.dynamicChildren=fn>0?it||mt:null,wl(),fn>0&&it&&it.push(e),e}function R(e,t,n,s,r,o){return uo(U(e,t,n,s,r,o,!0))}function pe(e,t,n,s,r){return uo(N(e,t,n,s,r,!0))}function dn(e){return e?e.__v_isVNode===!0:!1}function Tt(e,t){return e.type===t.type&&e.key===t.key}const Ln="__vInternal",fo=({key:e})=>e!=null?e:null,nn=({ref:e,ref_key:t,ref_for:n})=>e!=null?he(e)||de(e)||F(e)?{i:$e,r:e,k:t,f:!!n}:e:null;function U(e,t=null,n=null,s=0,r=null,o=e===fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&fo(t),ref:t&&nn(t),scopeId:Cn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null};return l?(ms(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=he(n)?8:16),fn>0&&!i&&it&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&it.push(c),c}const N=$l;function $l(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===yl)&&(e=Ke),dn(e)){const l=qt(e,t,!0);return n&&ms(l,n),l}if(Rl(e)&&(e=e.__vccOpts),t){t=Cl(t);let{class:l,style:c}=t;l&&!he(l)&&(t.class=ct(l)),ue(c)&&(Mr(c)&&!O(c)&&(c=xe({},c)),t.style=ts(c))}const i=he(e)?1:Wi(e)?128:xl(e)?64:ue(e)?4:F(e)?2:0;return U(e,t,n,s,r,i,o,!0)}function Cl(e){return e?Mr(e)||Ln in e?xe({},e):e:null}function qt(e,t,n=!1){const{props:s,ref:r,patchFlag:o,children:i}=e,l=t?bs(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&fo(l),ref:t&&t.ref?n&&r?O(r)?r.concat(nn(t)):[r,nn(t)]:nn(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==fe?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&qt(e.ssContent),ssFallback:e.ssFallback&&qt(e.ssFallback),el:e.el,anchor:e.anchor}}function zt(e=" ",t=0){return N(jt,null,e,t)}function hf(e,t){const n=N(Rt,null,e);return n.staticCount=t,n}function J(e="",t=!1){return t?(T(),pe(Ke,null,e)):N(Ke,null,e)}function Se(e){return e==null||typeof e=="boolean"?N(Ke):O(e)?N(fe,null,e.slice()):typeof e=="object"?Xe(e):N(jt,null,String(e))}function Xe(e){return e.el===null||e.memo?e:qt(e)}function ms(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(O(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),ms(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Ln in t)?t._ctx=$e:r===3&&$e&&($e.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else F(t)?(t={default:t,_ctx:$e},n=32):(t=String(t),s&64?(n=16,t=[zt(t)]):n=8);e.children=t,e.shapeFlag|=n}function bs(...e){const t={};for(let n=0;nt(i,l,void 0,o&&o[l]));else{const i=Object.keys(e);r=new Array(i.length);for(let l=0,c=i.length;ldn(t)?!(t.type===Ke||t.type===fe&&!ho(t.children)):!0)?e:null}const Xn=e=>e?po(e)?vs(e)||e.proxy:Xn(e.parent):null,hn=xe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Xn(e.parent),$root:e=>Xn(e.root),$emit:e=>e.emit,$options:e=>to(e),$forceUpdate:e=>()=>Dr(e.update),$nextTick:e=>Br.bind(e.proxy),$watch:e=>Vi.bind(e)}),El={get({_:e},t){const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const L=i[t];if(L!==void 0)switch(L){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(s!==Q&&q(s,t))return i[t]=1,s[t];if(r!==Q&&q(r,t))return i[t]=2,r[t];if((f=e.propsOptions[0])&&q(f,t))return i[t]=3,o[t];if(n!==Q&&q(n,t))return i[t]=4,n[t];Vn&&(i[t]=0)}}const h=hn[t];let g,y;if(h)return t==="$attrs"&&Te(e,"get",t),h(e);if((g=l.__cssModules)&&(g=g[t]))return g;if(n!==Q&&q(n,t))return i[t]=4,n[t];if(y=c.config.globalProperties,q(y,t))return y[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return r!==Q&&q(r,t)?(r[t]=n,!0):s!==Q&&q(s,t)?(s[t]=n,!0):q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o}},i){let l;return!!n[i]||e!==Q&&q(e,i)||t!==Q&&q(t,i)||(l=o[0])&&q(l,i)||q(s,i)||q(hn,i)||q(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},Tl=lo();let Ll=0;function Al(e,t,n){const s=e.type,r=(t?t.appContext:e.appContext)||Tl,o={uid:Ll++,vnode:e,type:s,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,scope:new ei(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:so(s,r),emitsOptions:Wr(s,r),emit:null,emitted:null,propsDefaults:Q,inheritAttrs:s.inheritAttrs,ctx:Q,data:Q,props:Q,attrs:Q,slots:Q,refs:Q,setupState:Q,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=Bi.bind(null,o),e.ce&&e.ce(o),o}let _e=null;const xt=e=>{_e=e,e.scope.on()},lt=()=>{_e&&_e.scope.off(),_e=null};function po(e){return e.vnode.shapeFlag&4}let Kt=!1;function Sl(e,t=!1){Kt=t;const{props:n,children:s}=e.vnode,r=po(e);al(e,n,r,t),dl(e,s);const o=r?Pl(e,t):void 0;return Kt=!1,o}function Pl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Pt(new Proxy(e.ctx,El));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?Ml(e):null;xt(e),wt();const o=Qe(s,e,0,[e.props,r]);if($t(),lt(),br(o)){if(o.then(lt,lt),t)return o.then(i=>{Zs(e,i,t)}).catch(i=>{wn(i,e,0)});e.asyncDep=o}else Zs(e,o,t)}else _o(e,t)}function Zs(e,t,n){F(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ue(t)&&(e.setupState=Fr(t)),_o(e,n)}let Qs;function _o(e,t,n){const s=e.type;if(!e.render){if(!t&&Qs&&!s.render){const r=s.template;if(r){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,f=xe(xe({isCustomElement:o,delimiters:l},i),c);s.render=Qs(r,f)}}e.render=s.render||Me}xt(e),wt(),rl(e),$t(),lt()}function Il(e){return new Proxy(e.attrs,{get(t,n){return Te(e,"get","$attrs"),t[n]}})}function Ml(e){const t=s=>{e.exposed=s||{}};let n;return{get attrs(){return n||(n=Il(e))},slots:e.slots,emit:e.emit,expose:t}}function vs(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Fr(Pt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in hn)return hn[n](e)}}))}function Ol(e){return F(e)&&e.displayName||e.name}function Rl(e){return F(e)&&"__vccOpts"in e}const D=(e,t)=>Oi(e,t,Kt);function at(e,t,n){const s=arguments.length;return s===2?ue(t)&&!O(t)?dn(t)?N(e,null,[t]):N(e,t):N(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&dn(n)&&(n=[n]),N(e,t,n))}const Ul="3.2.33",Fl="http://www.w3.org/2000/svg",st=typeof document!="undefined"?document:null,Gs=st&&st.createElement("template"),Nl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?st.createElementNS(Fl,e):st.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>st.createTextNode(e),createComment:e=>st.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>st.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{Gs.innerHTML=s?`${e}`:e;const l=Gs.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Hl(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Bl(e,t,n){const s=e.style,r=he(n);if(n&&!r){for(const o in n)Zn(s,o,n[o]);if(t&&!he(t))for(const o in t)n[o]==null&&Zn(s,o,"")}else{const o=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=o)}}const er=/\s*!important$/;function Zn(e,t,n){if(O(n))n.forEach(s=>Zn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Dl(e,t);er.test(n)?e.setProperty(kt(s),n.replace(er,""),"important"):e[s]=n}}const tr=["Webkit","Moz","ms"],Nn={};function Dl(e,t){const n=Nn[t];if(n)return n;let s=Ne(t);if(s!=="filter"&&s in e)return Nn[t]=s;s=vn(s);for(let r=0;r{let e=Date.now,t=!1;if(typeof window!="undefined"){Date.now()>document.createEvent("Event").timeStamp&&(e=()=>performance.now());const n=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let Qn=0;const Wl=Promise.resolve(),zl=()=>{Qn=0},Vl=()=>Qn||(Wl.then(zl),Qn=go());function Jl(e,t,n,s){e.addEventListener(t,n,s)}function Yl(e,t,n,s){e.removeEventListener(t,n,s)}function Xl(e,t,n,s,r=null){const o=e._vei||(e._vei={}),i=o[t];if(s&&i)i.value=s;else{const[l,c]=Zl(t);if(s){const f=o[t]=Ql(s,r);Jl(e,l,f,c)}else i&&(Yl(e,l,i,c),o[t]=void 0)}}const sr=/(?:Once|Passive|Capture)$/;function Zl(e){let t;if(sr.test(e)){t={};let n;for(;n=e.match(sr);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[kt(e.slice(2)),t]}function Ql(e,t){const n=s=>{const r=s.timeStamp||go();(Kl||r>=n.attached-1)&&Oe(Gl(s,n.value),t,5,[s])};return n.value=e,n.attached=Vl(),n}function Gl(e,t){if(O(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const rr=/^on[a-z]/,ec=(e,t,n,s,r=!1,o,i,l,c)=>{t==="class"?Hl(e,s,r):t==="style"?Bl(e,n,s):Wt(t)?ns(t)||Xl(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):tc(e,t,s,r))?ql(e,t,s,o,i,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),jl(e,t,s,r))};function tc(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&rr.test(t)&&F(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||rr.test(t)&&he(n)?!1:t in e}const nc=xe({patchProp:ec},Nl);let Hn,or=!1;function sc(){return Hn=or?Hn:ml(nc),or=!0,Hn}const rc=(...e)=>{const t=sc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=oc(s);if(r)return n(r,!0,r instanceof SVGElement)},t};function oc(e){return he(e)?document.querySelector(e):e}var ic='{"lang":"en-US","title":"VitePress","description":"A VitePress site","base":"/","head":[],"themeConfig":{"locales":{"/":{"label":"\u7B80\u4F53\u4E2D\u6587","nav":[{"text":"\u4F7F\u7528\u6307\u5357","link":"/","activeMatch":"^/$|^/guide/"},{"text":"\u5F00\u53D1\u624B\u518C","link":"/developer/basics","activeMatch":"^/developer/"}],"sidebar":{"/guide/":[{"text":"\u5B89\u88C5\u624B\u518C","children":[{"text":"\u5B89\u88C5 Dashboard","link":"/guide/dashboard"},{"text":"\u5B89\u88C5 Agent","link":"/guide/agent"}]},{"text":"\u7BA1\u7406\u9762\u677F\u914D\u7F6E","children":[{"text":"\u4E3B\u673A","link":"/guide/servers"},{"text":"\u670D\u52A1","link":"/guide/services"},{"text":"\u5B9A\u65F6\u4EFB\u52A1","link":"/guide/tasks"},{"text":"\u62A5\u8B66\u901A\u77E5","link":"/guide/notifications"},{"text":"\u8BBE\u7F6E","link":"/guide/settings"}]},{"text":"\u5E38\u89C1\u95EE\u9898","children":[{"text":"TG api\u88AB\u5899","link":"/guide/q1"},{"text":"Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B","link":"/guide/q2"},{"text":"\u5982\u4F55\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3","link":"/guide/q3"},{"text":"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","link":"/guide/q4"},{"text":"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","link":"/guide/q5"}]}],"/developer/":[{"text":"App Config","children":[{"text":"Basics","link":"/developer/basics"}]},{"text":"Theme Config","children":[{"text":"Homepage","link":"/developer/homepage"},{"text":"Algolia Search","link":"/developer/algolia-search"},{"text":"Carbon Ads","link":"/developer/carbon-ads"}]}],"/":[{"text":"\u5B89\u88C5\u624B\u518C","children":[{"text":"\u5B89\u88C5 Dashboard","link":"/guide/dashboard"},{"text":"\u5B89\u88C5 Agent","link":"/guide/agent"}]},{"text":"\u7BA1\u7406\u9762\u677F\u914D\u7F6E","children":[{"text":"\u4E3B\u673A","link":"/guide/servers"},{"text":"\u670D\u52A1","link":"/guide/services"},{"text":"\u5B9A\u65F6\u4EFB\u52A1","link":"/guide/tasks"},{"text":"\u62A5\u8B66\u901A\u77E5","link":"/guide/notifications"},{"text":"\u8BBE\u7F6E","link":"/guide/settings"}]},{"text":"\u5E38\u89C1\u95EE\u9898","children":[{"text":"TG api\u88AB\u5899","link":"/guide/q1"},{"text":"Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B","link":"/guide/q2"},{"text":"\u5982\u4F55\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3","link":"/guide/q3"},{"text":"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","link":"/guide/q4"},{"text":"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","link":"/guide/q5"}]}]},"repo":"nezhahq/nezhahq.github.io","docsDir":"docs","docsBranch":"main","editLinks":true,"editLinkText":"\u5728GitHub\u4E2D\u7F16\u8F91","lastUpdated":"\u4E0A\u6B21\u66F4\u65B0"},"/en_US/":{"label":"English","nav":[{"text":"User Guide","link":"/en_US/","activeMatch":"^/$|^/en_US/guide/"},{"text":"Development Manual","link":"/en_US/developer/basics","activeMatch":"^/en_US/developer/"}],"sidebar":{"/en_US/guide/":[{"text":"Installation Manual","children":[{"text":"Install Dashboard","link":"/en_US/guide/dashboard"},{"text":"Install Agent","link":"/en_US/guide/agent"}]},{"text":"Admin Panel","children":[{"text":"Servers","link":"/en_US/guide/servers"},{"text":"Services","link":"/en_US/guide/services"},{"text":"Tasks","link":"/en_US/guide/tasks"},{"text":"Notifications","link":"/en_US/guide/notifications"},{"text":"Settings","link":"/en_US/guide/settings"}]},{"text":"FAQ","children":[{"text":"Let the Agent start/on-line, and the self-test process of the problem","link":"/en_US/guide/q2"},{"text":"Reverse Proxy gRPC Port (support Cloudflare CDN)","link":"/en_US/guide/q3"},{"text":"Real-time channel disconnection/online terminal connection failure","link":"/en_US/guide/q4"},{"text":"How do I migrate my data to the new server and restore my backups?","link":"/en_US/guide/q5"}]}],"/en_US/developer/":[{"text":"App Config","children":[{"text":"Basics","link":"/en_US/developer/basics"}]},{"text":"Theme Config","children":[{"text":"Homepage","link":"/en_US/developer/homepage"},{"text":"Algolia Search","link":"/en_US/developer/algolia-search"},{"text":"Carbon Ads","link":"/en_US/developer/carbon-ads"}]}],"/en_US/":[{"text":"Installation Manual","children":[{"text":"Install Dashboard","link":"/en_US/guide/dashboard"},{"text":"Install Agent","link":"/en_US/guide/agent"}]},{"text":"Admin Panel","children":[{"text":"Servers","link":"/en_US/guide/servers"},{"text":"Services","link":"/en_US/guide/services"},{"text":"Tasks","link":"/en_US/guide/tasks"},{"text":"Notifications","link":"/en_US/guide/notifications"},{"text":"Settings","link":"/en_US/guide/settings"}]},{"text":"FAQ","children":[{"text":"Let the Agent start/on-line, and the self-test process of the problem","link":"/en_US/guide/q2"},{"text":"Reverse Proxy gRPC Port (support Cloudflare CDN)","link":"/en_US/guide/q3"},{"text":"Real-time channel disconnection/online terminal connection failure","link":"/en_US/guide/q4"},{"text":"How do I migrate my data to the new server and restore my backups?","link":"/en_US/guide/q5"}]}]},"repo":"nezhahq/nezhahq.github.io","docsDir":"docs","docsBranch":"main","editLinks":true,"editLinkText":"Edit this page on GitHub","lastUpdated":"Last Updated"}}},"locales":{"/":{"lang":"zh-CN","title":"\u54EA\u5412\u76D1\u63A7","description":"\u54EA\u5412\u76D1\u63A7\u662F\u4E00\u4E2A\u8F7B\u91CF\u5316\u7684\u8FD0\u7EF4\u5DE5\u5177"},"/en_US/":{"lang":"en-US","title":"Nezha Monitoring","description":"Nezha Monitoring is a lightweight O&M tool"}},"langs":{"/":{"label":"\u7B80\u4F53\u4E2D\u6587","lang":"zh-CN"},"/en_US/":{"label":"English","lang":"en-US"}},"scrollOffset":90}';const mo=/^https?:/i,Ie=typeof window!="undefined";function lc(e,t){t.sort((n,s)=>{const r=s.split("/").length-n.split("/").length;return r!==0?r:s.length-n.length});for(const n of t)if(e.startsWith(n))return n}function ir(e,t){const n=lc(t,Object.keys(e));return n?e[n]:void 0}function cc(e){const{locales:t}=e.themeConfig||{},n=e.locales;return t&&n?Object.keys(t).reduce((s,r)=>(s[r]={label:t[r].label,lang:n[r].lang},s),{}):{}}function ac(e,t){t=uc(e,t);const n=ir(e.locales||{},t),s=ir(e.themeConfig.locales||{},t);return Object.assign({},e,n,{themeConfig:Object.assign({},e.themeConfig,s,{locales:{}}),lang:(n||e).lang,locales:{},langs:cc(e)})}function uc(e,t){if(!Ie)return t;const n=e.base,s=n.endsWith("/")?n.slice(0,-1):n;return t.slice(s.length)}const bo=Symbol(),Vt=Li(fc(ic));function fc(e){return JSON.parse(e)}function dc(e){const t=D(()=>ac(Vt.value,e.path));return{site:t,theme:D(()=>t.value.themeConfig),page:D(()=>e.data),frontmatter:D(()=>e.data.frontmatter),lang:D(()=>t.value.lang),localePath:D(()=>{const{langs:n,lang:s}=t.value,r=Object.keys(n).find(o=>n[o].lang===s);return yt(r||"/")}),title:D(()=>e.data.title?e.data.title+" | "+t.value.title:t.value.title),description:D(()=>e.data.description||t.value.description)}}function me(){const e=Ot(bo);if(!e)throw new Error("vitepress data not properly injected in app");return e}function hc(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function yt(e){return mo.test(e)?e:hc(Vt.value.base,e)}function vo(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t.endsWith("/")&&(t+="index"),Ie){const n="/";t=t.slice(n.length).replace(/\//g,"_")+".md";const s=__VP_HASH_MAP__[t.toLowerCase()];t=`${n}assets/${t}.${s}.js`}else t=`./${t.slice(1).replace(/\//g,"_")}.md.js`;return t}const xo=Symbol(),lr="http://a.com",yo={relativePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{},lastUpdated:0},pc=()=>({path:"/",component:null,data:yo});function _c(e,t){const n=yn(pc());function s(i=Ie?location.href:"/"){const l=new URL(i,lr);return!l.pathname.endsWith("/")&&!l.pathname.endsWith(".html")&&(l.pathname+=".html",i=l.pathname+l.search+l.hash),Ie&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",i)),o(i)}let r=null;async function o(i,l=0,c=!1){const f=new URL(i,lr),h=r=f.pathname;try{let g=e(h);if("then"in g&&typeof g.then=="function"&&(g=await g),r===h){r=null;const{default:y,__pageData:L}=g;if(!y)throw new Error(`Invalid route component: ${y}`);n.path=h,n.component=Pt(y),n.data=Pt(JSON.parse(L)),Ie&&Br(()=>{if(f.hash&&!l){let M=null;try{M=document.querySelector(decodeURIComponent(f.hash))}catch(V){console.warn(V)}if(M){cr(M,f.hash);return}}window.scrollTo(0,l)})}}catch(g){if(g.message.match(/fetch/)||console.error(g),!c)try{const y=await fetch(Vt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await y.json(),await o(i,l,!0);return}catch{}r===h&&(r=null,n.path=h,n.component=t?Pt(t):null,n.data=yo)}}return Ie&&(window.addEventListener("click",i=>{const l=i.target.closest("a");if(l){const{href:c,protocol:f,hostname:h,pathname:g,hash:y,target:L}=l,M=window.location,V=g.match(/\.\w+$/);!i.ctrlKey&&!i.shiftKey&&!i.altKey&&!i.metaKey&&L!=="_blank"&&f===M.protocol&&h===M.hostname&&!(V&&V[0]!==".html")&&(i.preventDefault(),g===M.pathname?y&&y!==M.hash&&(history.pushState(null,"",y),window.dispatchEvent(new Event("hashchange")),cr(l,y,l.classList.contains("header-anchor"))):s(c))}},{capture:!0}),window.addEventListener("popstate",i=>{o(location.href,i.state&&i.state.scrollPosition||0)}),window.addEventListener("hashchange",i=>{i.preventDefault()})),{route:n,go:s}}function gc(){const e=Ot(xo);if(!e)throw new Error("useRouter() is called without provider.");return e}function et(){return gc().route}function cr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(r){console.warn(r)}if(s){let r=Vt.value.scrollOffset;typeof r=="string"&&(r=document.querySelector(r).getBoundingClientRect().bottom+24);const o=parseInt(window.getComputedStyle(s).paddingTop,10),i=window.scrollY+s.getBoundingClientRect().top-r+o;!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})}}function mc(e,t){let n=[],s=!0;const r=o=>{if(s){s=!1;return}const i=[],l=Math.min(n.length,o.length);for(let c=0;cdocument.head.removeChild(c)),o.slice(l).forEach(c=>{const f=ar(c);document.head.appendChild(f),i.push(f)}),n=i};Yr(()=>{const o=e.data,i=t.value,l=o&&o.title,c=o&&o.description,f=o&&o.frontmatter.head;document.title=(l?l+" | ":"")+i.title,document.querySelector("meta[name=description]").setAttribute("content",c||i.description),r([...f?vc(f):[]])})}function ar([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function bc(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function vc(e){return e.filter(t=>!bc(t))}const xc=ie({name:"VitePressContent",setup(){const e=et();return()=>at("div",{style:{position:"relative"}},[e.component?at(e.component):null])}});var ce=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n};const yc=/#.*$/,kc=/(index)?\.(md|html)$/,pn=/\/$/,wc=/^[a-z]+:/i;function xs(e){return Array.isArray(e)}function ys(e){return wc.test(e)}function $c(e,t){if(t===void 0)return!1;const n=ur(`/${e.data.relativePath}`),s=ur(t);return n===s}function ur(e){return decodeURI(e).replace(yc,"").replace(kc,"")}function Cc(e,t){const n=e.endsWith("/"),s=t.startsWith("/");return n&&s?e.slice(0,-1)+t:!n&&!s?`${e}/${t}`:e+t}function Gn(e){return/^\//.test(e)?e:`/${e}`}function ko(e){return e.replace(/(index)?(\.(md|html))?$/,"")||"/"}function Ec(e){return e===!1||e==="auto"||xs(e)}function Tc(e){return e.children!==void 0}function Lc(e){return xs(e)?e.length===0:!e}function ks(e,t){if(Ec(e))return e;t=Gn(t);for(const n in e)if(t.startsWith(Gn(n)))return e[n];return"auto"}function wo(e){return e.reduce((t,n)=>(n.link&&t.push({text:n.text,link:ko(n.link)}),Tc(n)&&(t=[...t,...wo(n.children)]),t),[])}function $o(e){const t=et(),n=ys(e.value.link);return{props:D(()=>{const r=fr(`/${t.data.relativePath}`);let o=!1;if(e.value.activeMatch)o=new RegExp(e.value.activeMatch).test(r);else{const i=fr(e.value.link);o=i==="/"?i===r:r.startsWith(i)}return{class:{active:o,isExternal:n},href:n?e.value.link:yt(e.value.link),target:e.value.target||(n?"_blank":null),rel:e.value.rel||(n?"noopener noreferrer":null),"aria-label":e.value.ariaLabel}}),isExternal:n}}function fr(e){return e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\.(html|md)$/,"").replace(/\/index$/,"/")}const Ac={},Sc={class:"icon outbound",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},Pc=U("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"},null,-1),Ic=U("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"},null,-1),Mc=[Pc,Ic];function Oc(e,t){return T(),R("svg",Sc,Mc)}var ws=ce(Ac,[["render",Oc]]);const Rc={class:"nav-link"},Uc=ie({props:{item:null},setup(e){const n=Nr(e),{props:s,isExternal:r}=$o(n.item);return(o,i)=>(T(),R("div",Rc,[U("a",bs({class:"item"},$(s)),[zt(ve(e.item.text)+" ",1),$(r)?(T(),pe(ws,{key:0})):J("",!0)],16)]))}});var _n=ce(Uc,[["__scopeId","data-v-b8818f8c"]]);const Fc={key:0,class:"home-hero"},Nc={key:0,class:"figure"},Hc=["src","alt"],Bc={key:1,id:"main-title",class:"title"},Dc={key:2,class:"tagline"},jc=ie({setup(e){const{site:t,frontmatter:n}=me(),s=D(()=>{const{heroImage:i,heroText:l,tagline:c,actionLink:f,actionText:h}=n.value;return i||l||c||f&&h}),r=D(()=>n.value.heroText||t.value.title),o=D(()=>n.value.tagline||t.value.description);return(i,l)=>$(s)?(T(),R("header",Fc,[$(n).heroImage?(T(),R("figure",Nc,[U("img",{class:"image",src:$(yt)($(n).heroImage),alt:$(n).heroAlt},null,8,Hc)])):J("",!0),$(r)?(T(),R("h1",Bc,ve($(r)),1)):J("",!0),$(o)?(T(),R("p",Dc,ve($(o)),1)):J("",!0),$(n).actionLink&&$(n).actionText?(T(),pe(_n,{key:3,item:{link:$(n).actionLink,text:$(n).actionText},class:"action"},null,8,["item"])):J("",!0),$(n).altActionLink&&$(n).altActionText?(T(),pe(_n,{key:4,item:{link:$(n).altActionLink,text:$(n).altActionText},class:"action alt"},null,8,["item"])):J("",!0)])):J("",!0)}});var qc=ce(jc,[["__scopeId","data-v-370f18c0"]]);const Kc={key:0,class:"home-features"},Wc={class:"wrapper"},zc={class:"container"},Vc={class:"features"},Jc={key:0,class:"title"},Yc={key:1,class:"details"},Xc=ie({setup(e){const{frontmatter:t}=me(),n=D(()=>t.value.features&&t.value.features.length>0),s=D(()=>t.value.features?t.value.features:[]);return(r,o)=>$(n)?(T(),R("div",Kc,[U("div",Wc,[U("div",zc,[U("div",Vc,[(T(!0),R(fe,null,An($(s),(i,l)=>(T(),R("section",{key:l,class:"feature"},[i.title?(T(),R("h2",Jc,ve(i.title),1)):J("",!0),i.details?(T(),R("p",Yc,ve(i.details),1)):J("",!0)]))),128))])])])])):J("",!0)}});var Zc=ce(Xc,[["__scopeId","data-v-e39c13e0"]]);const Qc={key:0,class:"footer"},Gc={class:"container"},ea={class:"text"},ta=ie({setup(e){const{frontmatter:t}=me();return(n,s)=>$(t).footer?(T(),R("footer",Qc,[U("div",Gc,[U("p",ea,ve($(t).footer),1)])])):J("",!0)}});var na=ce(ta,[["__scopeId","data-v-30918238"]]);const sa={class:"home","aria-labelledby":"main-title"},ra={class:"home-content"},oa=ie({setup(e){return(t,n)=>{const s=un("Content");return T(),R("main",sa,[N(qc),ae(t.$slots,"hero",{},void 0,!0),N(Zc),U("div",ra,[N(s)]),ae(t.$slots,"features",{},void 0,!0),N(na),ae(t.$slots,"footer",{},void 0,!0)])}}});var ia=ce(oa,[["__scopeId","data-v-10122c92"]]);const la=["href","aria-label"],ca=["src"],aa=ie({setup(e){const{site:t,theme:n,localePath:s}=me();return(r,o)=>(T(),R("a",{class:"nav-bar-title",href:$(s),"aria-label":`${$(t).title}, back to home`},[$(n).logo?(T(),R("img",{key:0,class:"logo",src:$(yt)($(n).logo),alt:"Logo"},null,8,ca)):J("",!0),zt(" "+ve($(t).title),1)],8,la))}});var ua=ce(aa,[["__scopeId","data-v-cc01ef16"]]);function fa(){const{site:e,localePath:t,theme:n}=me();return D(()=>{const s=e.value.langs,r=Object.keys(s);if(r.length<2)return null;const i=et().path.replace(t.value,""),l=r.map(f=>({text:s[f].label,link:`${f}${i}`}));return{text:n.value.selectText||"Languages",items:l}})}const da=["GitHub","GitLab","Bitbucket"].map(e=>[e,new RegExp(e,"i")]);function ha(){const{site:e}=me();return D(()=>{const t=e.value.themeConfig,n=t.docsRepo||t.repo;if(!n)return null;const s=pa(n);return{text:_a(s,t.repoLabel),link:s}})}function pa(e){return mo.test(e)?e:`https://github.com/${e}`}function _a(e,t){if(t)return t;const n=e.match(/^https?:\/\/[^/]+/);if(!n)return"Source";const s=da.find(([r,o])=>o.test(n[0]));return s&&s[0]?s[0]:"Source"}const ga=e=>(zr("data-v-bbc27490"),e=e(),Vr(),e),ma={class:"nav-dropdown-link-item"},ba=ga(()=>U("span",{class:"arrow"},null,-1)),va={class:"text"},xa={class:"icon"},ya=ie({props:{item:null},setup(e){const n=Nr(e),{props:s,isExternal:r}=$o(n.item);return(o,i)=>(T(),R("div",ma,[U("a",bs({class:"item"},$(s)),[ba,U("span",va,ve(e.item.text),1),U("span",xa,[$(r)?(T(),pe(ws,{key:0})):J("",!0)])],16)]))}});var ka=ce(ya,[["__scopeId","data-v-bbc27490"]]);const wa=["aria-label"],$a={class:"button-text"},Ca={class:"dialog"},Ea=ie({props:{item:null},setup(e){const t=et(),n=kn(!1);ot(()=>t.path,()=>{n.value=!1});function s(){n.value=!n.value}return(r,o)=>(T(),R("div",{class:ct(["nav-dropdown-link",{open:n.value}])},[U("button",{class:"button","aria-label":e.item.ariaLabel,onClick:s},[U("span",$a,ve(e.item.text),1),U("span",{class:ct(["button-arrow",n.value?"down":"right"])},null,2)],8,wa),U("ul",Ca,[(T(!0),R(fe,null,An(e.item.items,i=>(T(),R("li",{key:i.text,class:"dialog-item"},[N(ka,{item:i},null,8,["item"])]))),128))])],2))}});var dr=ce(Ea,[["__scopeId","data-v-56bf3a3f"]]);const Ta={key:0,class:"nav-links"},La={key:1,class:"item"},Aa={key:2,class:"item"},Sa=ie({setup(e){const{theme:t}=me(),n=fa(),s=ha(),r=D(()=>t.value.nav||s.value||n.value);return(o,i)=>$(r)?(T(),R("nav",Ta,[$(t).nav?(T(!0),R(fe,{key:0},An($(t).nav,l=>(T(),R("div",{key:l.text,class:"item"},[l.items?(T(),pe(dr,{key:0,item:l},null,8,["item"])):(T(),pe(_n,{key:1,item:l},null,8,["item"]))]))),128)):J("",!0),$(n)?(T(),R("div",La,[N(dr,{item:$(n)},null,8,["item"])])):J("",!0),$(s)?(T(),R("div",Aa,[N(_n,{item:$(s)},null,8,["item"])])):J("",!0)])):J("",!0)}});var Co=ce(Sa,[["__scopeId","data-v-eab3edfe"]]);const Pa={emits:["toggle"]},Ia=U("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"},[U("path",{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z",class:""})],-1),Ma=[Ia];function Oa(e,t,n,s,r,o){return T(),R("div",{class:"sidebar-button",onClick:t[0]||(t[0]=i=>e.$emit("toggle"))},Ma)}var Ra=ce(Pa,[["render",Oa]]);const Ua=e=>(zr("data-v-675d8756"),e=e(),Vr(),e),Fa={class:"nav-bar"},Na=Ua(()=>U("div",{class:"flex-grow"},null,-1)),Ha={class:"nav"},Ba=ie({emits:["toggle"],setup(e){return(t,n)=>(T(),R("header",Fa,[N(Ra,{onToggle:n[0]||(n[0]=s=>t.$emit("toggle"))}),N(ua),Na,U("div",Ha,[N(Co)]),ae(t.$slots,"search",{},void 0,!0)]))}});var Da=ce(Ba,[["__scopeId","data-v-675d8756"]]);function ja(){let e=null,t=null;const n=Va(s,300);function s(){const i=qa(),l=Ka(i);for(let c=0;c ul > li");l&&l!==t.parentElement?(e=l.querySelector("a"),e&&e.classList.add("active")):e=null}function o(i){i&&i.classList.remove("active")}ut(()=>{s(),window.addEventListener("scroll",n)}),Gr(()=>{r(decodeURIComponent(location.hash))}),Tn(()=>{window.removeEventListener("scroll",n)})}function qa(){return[].slice.call(document.querySelectorAll(".sidebar a.sidebar-link-item"))}function Ka(e){return[].slice.call(document.querySelectorAll(".header-anchor")).filter(t=>e.some(n=>n.hash===t.hash))}function Wa(){return document.querySelector(".nav-bar").offsetHeight}function hr(e){const t=Wa();return e.parentElement.offsetTop-t-15}function za(e,t,n){const s=window.scrollY;return e===0&&s===0?[!0,null]:s{n&&clearTimeout(n),s?n=setTimeout(e,t):(e(),s=!0,setTimeout(()=>{s=!1},t))}}function Ja(){const e=et(),{site:t}=me();return ja(),D(()=>{const n=e.data.headers,s=e.data.frontmatter.sidebar,r=e.data.frontmatter.sidebarDepth;if(s===!1)return[];if(s==="auto")return pr(n,r);const o=ks(t.value.themeConfig.sidebar,e.data.relativePath);return o===!1?[]:o==="auto"?pr(n,r):o})}function pr(e,t){const n=[];if(e===void 0)return[];let s;return e.forEach(({level:r,title:o,slug:i})=>{if(r-1>t)return;const l={text:o,link:`#${i}`};r===2?(s=l,n.push(l)):s&&(s.children||(s.children=[])).push(l)}),n}const Eo=e=>{const t=et(),{site:n,frontmatter:s}=me(),r=e.depth||1,o=s.value.sidebarDepth||1/0,i=t.data.headers,l=e.item.text,c=Ya(n.value.base,e.item.link),f=e.item.children,h=$c(t,e.item.link),g=r0?at("ul",{class:"sidebar-links"},t.map(r=>at(Eo,{item:r,depth:s}))):e&&n?To(!1,Xa(n),void 0,s):null}function Xa(e){return Lo(Za(e))}function Za(e){e=e.map(n=>Object.assign({},n));let t;return e.forEach(n=>{n.level===2?t=n:t&&(t.children||(t.children=[])).push(n)}),e.filter(n=>n.level===2)}function Lo(e){return e.map(t=>({text:t.title,link:`#${t.slug}`,children:t.children?Lo(t.children):void 0}))}const Qa={key:0,class:"sidebar-links"},Ga=ie({setup(e){const t=Ja();return(n,s)=>$(t).length>0?(T(),R("ul",Qa,[(T(!0),R(fe,null,An($(t),r=>(T(),pe($(Eo),{item:r},null,8,["item"]))),256))])):J("",!0)}});const eu=ie({props:{open:{type:Boolean}},setup(e){return(t,n)=>(T(),R("aside",{class:ct(["sidebar",{open:e.open}])},[N(Co,{class:"nav"}),ae(t.$slots,"sidebar-top",{},void 0,!0),N(Ga),ae(t.$slots,"sidebar-bottom",{},void 0,!0)],2))}});var tu=ce(eu,[["__scopeId","data-v-83e92a68"]]);const nu=/bitbucket.org/;function su(){const{page:e,theme:t,frontmatter:n}=me(),s=D(()=>{const{repo:o,docsDir:i="",docsBranch:l="master",docsRepo:c=o,editLinks:f}=t.value,h=n.value.editLink!=null?n.value.editLink:f,{relativePath:g}=e.value;return!h||!g||!o?null:ru(o,c,i,l,g)}),r=D(()=>t.value.editLinkText||"Edit this page");return{url:s,text:r}}function ru(e,t,n,s,r){return nu.test(e)?iu(e,t,n,s,r):ou(e,t,n,s,r)}function ou(e,t,n,s,r){return(ys(t)?t:`https://github.com/${t}`).replace(pn,"")+`/edit/${s}/`+(n?n.replace(pn,"")+"/":"")+r}function iu(e,t,n,s,r){return(ys(t)?t:e).replace(pn,"")+`/src/${s}/`+(n?n.replace(pn,"")+"/":"")+r+`?mode=edit&spa=0&at=${s}&fileviewer=file-view-default`}const lu={class:"edit-link"},cu=["href"],au=ie({setup(e){const{url:t,text:n}=su();return(s,r)=>(T(),R("div",lu,[$(t)?(T(),R("a",{key:0,class:"link",href:$(t),target:"_blank",rel:"noopener noreferrer"},[zt(ve($(n))+" ",1),N(ws,{class:"icon"})],8,cu)):J("",!0)]))}});var uu=ce(au,[["__scopeId","data-v-1ed99556"]]);const fu={key:0,class:"last-updated"},du={class:"prefix"},hu={class:"datetime"},pu=ie({setup(e){const{theme:t,page:n}=me(),s=D(()=>{const i=t.value.lastUpdated;return i!==void 0&&i!==!1&&n.value.lastUpdated!==0}),r=D(()=>{const i=t.value.lastUpdated;return i===!0?"Last Updated":i}),o=kn("");return ut(()=>{Yr(()=>{o.value=new Date(n.value.lastUpdated).toLocaleString("en-US")})}),(i,l)=>$(s)?(T(),R("p",fu,[U("span",du,ve($(r))+":",1),U("span",hu,ve(o.value),1)])):J("",!0)}});var _u=ce(pu,[["__scopeId","data-v-abce3432"]]);const gu={class:"page-footer"},mu={class:"edit"},bu={class:"updated"},vu=ie({setup(e){const{page:t}=me();return(n,s)=>(T(),R("footer",gu,[U("div",mu,[N(uu)]),U("div",bu,[$(t).lastUpdated?(T(),pe(_u,{key:0})):J("",!0)])]))}});var xu=ce(vu,[["__scopeId","data-v-07c132fc"]]);function yu(){const{page:e,theme:t}=me(),n=D(()=>ko(Gn(e.value.relativePath))),s=D(()=>{const c=ks(t.value.sidebar,n.value);return xs(c)?wo(c):[]}),r=D(()=>s.value.findIndex(c=>c.link===n.value)),o=D(()=>{if(t.value.nextLinks!==!1&&r.value>-1&&r.value{if(t.value.prevLinks!==!1&&r.value>0)return s.value[r.value-1]}),l=D(()=>!!o.value||!!i.value);return{next:o,prev:i,hasLinks:l}}const ku={},wu={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},$u=U("path",{d:"M19,11H7.4l5.3-5.3c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0l-7,7c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.2-0.1,0.5,0,0.8c0.1,0.1,0.1,0.2,0.2,0.3l7,7c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4L7.4,13H19c0.6,0,1-0.4,1-1S19.6,11,19,11z"},null,-1),Cu=[$u];function Eu(e,t){return T(),R("svg",wu,Cu)}var Tu=ce(ku,[["render",Eu]]);const Lu={},Au={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Su=U("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),Pu=[Su];function Iu(e,t){return T(),R("svg",Au,Pu)}var Mu=ce(Lu,[["render",Iu]]);const Ou={key:0,class:"next-and-prev-link"},Ru={class:"container"},Uu={class:"prev"},Fu=["href"],Nu={class:"text"},Hu={class:"next"},Bu=["href"],Du={class:"text"},ju=ie({setup(e){const{hasLinks:t,prev:n,next:s}=yu();return(r,o)=>$(t)?(T(),R("div",Ou,[U("div",Ru,[U("div",Uu,[$(n)?(T(),R("a",{key:0,class:"link",href:$(yt)($(n).link)},[N(Tu,{class:"icon icon-prev"}),U("span",Nu,ve($(n).text),1)],8,Fu)):J("",!0)]),U("div",Hu,[$(s)?(T(),R("a",{key:0,class:"link",href:$(yt)($(s).link)},[U("span",Du,ve($(s).text),1),N(Mu,{class:"icon icon-next"})],8,Bu)):J("",!0)])])])):J("",!0)}});var qu=ce(ju,[["__scopeId","data-v-38ede35f"]]);const Ku={class:"page"},Wu={class:"container"},zu=ie({setup(e){return(t,n)=>{const s=un("Content");return T(),R("main",Ku,[U("div",Wu,[ae(t.$slots,"top",{},void 0,!0),N(s,{class:"content"}),N(xu),N(qu),ae(t.$slots,"bottom",{},void 0,!0)])])}}});var Vu=ce(zu,[["__scopeId","data-v-7eddb2c4"]]);const Ju={key:0,id:"ads-container"},Yu=ie({setup(e){const t=()=>null,n=t,s=t,r=t,o=et(),{site:i,page:l,theme:c,frontmatter:f}=me(),h=D(()=>!!f.value.customLayout),g=D(()=>!!f.value.home),y=D(()=>Object.keys(i.value.langs).length>1),L=D(()=>{const P=c.value;return f.value.navbar===!1||P.navbar===!1?!1:i.value.title||P.logo||P.repo||P.nav}),M=kn(!1),V=D(()=>f.value.home||f.value.sidebar===!1?!1:!Lc(ks(c.value.sidebar,o.data.relativePath))),m=P=>{M.value=typeof P=="boolean"?P:!M.value},k=m.bind(null,!1);ot(o,k);const K=D(()=>[{"no-navbar":!L.value,"sidebar-open":M.value,"no-sidebar":!V.value}]);return(P,H)=>{const X=un("Content"),Z=un("Debug");return T(),R(fe,null,[U("div",{class:ct(["theme",$(K)])},[$(L)?(T(),pe(Da,{key:0,onToggle:m},{search:De(()=>[ae(P.$slots,"navbar-search",{},()=>[$(c).algolia?(T(),pe($(r),{key:0,options:$(c).algolia,multilang:$(y)},null,8,["options","multilang"])):J("",!0)])]),_:3})):J("",!0),N(tu,{open:M.value},{"sidebar-top":De(()=>[ae(P.$slots,"sidebar-top")]),"sidebar-bottom":De(()=>[ae(P.$slots,"sidebar-bottom")]),_:3},8,["open"]),U("div",{class:"sidebar-mask",onClick:H[0]||(H[0]=B=>m(!1))}),$(h)?(T(),pe(X,{key:1})):$(g)?ae(P.$slots,"home",{key:2},()=>[N(ia,null,{hero:De(()=>[ae(P.$slots,"home-hero")]),features:De(()=>[ae(P.$slots,"home-features")]),footer:De(()=>[ae(P.$slots,"home-footer")]),_:3})]):(T(),pe(Vu,{key:3},{top:De(()=>[ae(P.$slots,"page-top-ads",{},()=>[$(c).carbonAds&&$(c).carbonAds.carbon?(T(),R("div",Ju,[(T(),pe($(n),{key:"carbon"+$(l).relativePath,code:$(c).carbonAds.carbon,placement:$(c).carbonAds.placement},null,8,["code","placement"]))])):J("",!0)]),ae(P.$slots,"page-top")]),bottom:De(()=>[ae(P.$slots,"page-bottom"),ae(P.$slots,"page-bottom-ads",{},()=>[$(c).carbonAds&&$(c).carbonAds.custom?(T(),pe($(s),{key:"custom"+$(l).relativePath,code:$(c).carbonAds.custom,placement:$(c).carbonAds.placement},null,8,["code","placement"])):J("",!0)])]),_:3}))],2),N(Z)],64)}}}),Xu={class:"theme"},Zu=U("h1",null,"404",-1),Qu=["href"],Gu=ie({setup(e){const{site:t}=me(),n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."];function s(){return n[Math.floor(Math.random()*n.length)]}return(r,o)=>(T(),R("div",Xu,[Zu,U("blockquote",null,ve(s()),1),U("a",{href:$(t).base,"aria-label":"go to home"},"Take me home.",8,Qu)]))}}),Ao={Layout:Yu,NotFound:Gu},ef={setup(e){const{Layout:t}=Ao;return ut(()=>{window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&(console.log("setting as dark"),document.body.classList.add("dark")),setTimeout(()=>{let n=document.body.classList.contains("dark")?"\u{1F506}":"\u{1F319}",s=document.getElementsByClassName("nav-links");if(s){let r=s[0];r&&r.insertAdjacentHTML("beforeend",`
${n}
`),r=s[1],r&&r.insertAdjacentHTML("beforeend",`
${n}
`)}},100)}),(n,s)=>(T(),pe($(t)))}};var gn=Is(Ps({},Ao),{Layout:ef});const Bn=new Set,So=()=>document.createElement("link"),tf=e=>{const t=So();t.rel="prefetch",t.href=e,document.head.appendChild(t)},nf=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let tn;const sf=Ie&&(tn=So())&&tn.relList&&tn.relList.supports&&tn.relList.supports("prefetch")?tf:nf;function rf(){if(!Ie||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!Bn.has(c)){Bn.add(c);const f=vo(c);sf(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{target:i,hostname:l,pathname:c}=o,f=c.match(/\.\w+$/);f&&f[0]!==".html"||i!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(o):Bn.add(c))})})};ut(s);const r=et();ot(()=>r.path,s),Tn(()=>{n&&n.disconnect()})}const of=ie({setup(e,{slots:t}){const n=kn(!1);return ut(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}}),lf=gn.NotFound||(()=>"404 Not Found"),cf={name:"VitePressApp",setup(){const{site:e}=me();return ut(()=>{ot(()=>e.value.lang,t=>{document.documentElement.lang=t},{immediate:!0})}),rf(),()=>at(gn.Layout)}};function af(){const e=ff(),t=uf();t.provide(xo,e);const n=dc(e.route);return t.provide(bo,n),t.component("Content",xc),t.component("ClientOnly",of),t.component("Debug",()=>null),Object.defineProperty(t.config.globalProperties,"$frontmatter",{get(){return n.frontmatter.value}}),gn.enhanceApp&&gn.enhanceApp({app:t,router:e,siteData:Vt}),{app:t,router:e,data:n}}function uf(){return rc(cf)}function ff(){let e=Ie,t;return _c(n=>{let s=vo(n);return e&&(t=s),(e||t===s)&&(s=s.replace(/\.js$/,".lean.js")),Ie?(e=!1,Bo(()=>import(s),[])):require(s)},lf)}if(Ie){const{app:e,router:t,data:n}=af();t.go().then(()=>{mc(t.route,n.site),e.mount("#app")})}export{ce as _,hf as a,U as b,R as c,af as createApp,zt as d,T as o}; diff --git a/assets/app.32957174.js b/assets/app.32957174.js deleted file mode 100644 index 7280758f..00000000 --- a/assets/app.32957174.js +++ /dev/null @@ -1 +0,0 @@ -const Ti="modulepreload",Ps={},Ai="/",Pi=function(t,n){return!n||n.length===0?t():Promise.all(n.map(s=>{if(s=`${Ai}${s}`,s in Ps)return;Ps[s]=!0;const r=s.endsWith(".css"),i=r?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${i}`))return;const o=document.createElement("link");if(o.rel=r?"stylesheet":Ti,r||(o.as="script",o.crossOrigin=""),o.href=s,document.head.appendChild(o),r)return new Promise((l,c)=>{o.addEventListener("load",l),o.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t())};function es(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const Si="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Li=es(Si);function fr(e){return!!e||e===""}function ts(e){if(O(e)){const t={};for(let n=0;n{if(n){const s=n.split(Mi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ct(e){let t="";if(he(e))t=e;else if(O(e))for(let n=0;nhe(e)?e:e==null?"":O(e)||ue(e)&&(e.toString===_r||!F(e.toString))?JSON.stringify(e,dr,2):String(e),dr=(e,t)=>t&&t.__v_isRef?dr(e,t.value):mt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:hr(t)?{[`Set(${t.size})`]:[...t.values()]}:ue(t)&&!O(t)&&!gr(t)?String(t):t,Q={},gt=[],Me=()=>{},Ri=()=>!1,Ui=/^on[^a-z]/,Wt=e=>Ui.test(e),ns=e=>e.startsWith("onUpdate:"),xe=Object.assign,ss=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Fi=Object.prototype.hasOwnProperty,q=(e,t)=>Fi.call(e,t),O=Array.isArray,mt=e=>mn(e)==="[object Map]",hr=e=>mn(e)==="[object Set]",F=e=>typeof e=="function",he=e=>typeof e=="string",rs=e=>typeof e=="symbol",ue=e=>e!==null&&typeof e=="object",pr=e=>ue(e)&&F(e.then)&&F(e.catch),_r=Object.prototype.toString,mn=e=>_r.call(e),Ni=e=>mn(e).slice(8,-1),gr=e=>mn(e)==="[object Object]",is=e=>he(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,St=es(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),vn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Hi=/-(\w)/g,Ne=vn(e=>e.replace(Hi,(t,n)=>n?n.toUpperCase():"")),Bi=/\B([A-Z])/g,yt=vn(e=>e.replace(Bi,"-$1").toLowerCase()),bn=vn(e=>e.charAt(0).toUpperCase()+e.slice(1)),On=vn(e=>e?`on${bn(e)}`:""),Ft=(e,t)=>!Object.is(e,t),Rn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Di=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Ss;const ji=()=>Ss||(Ss=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Ue;class qi{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Ue&&(this.parent=Ue,this.index=(Ue.scopes||(Ue.scopes=[])).push(this)-1)}run(t){if(this.active){const n=Ue;try{return Ue=this,t()}finally{Ue=n}}}on(){Ue=this}off(){Ue=this.parent}stop(t){if(this.active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},mr=e=>(e.w&Ge)>0,vr=e=>(e.n&Ge)>0,Wi=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(f==="length"||f>=s)&&l.push(c)});else switch(n!==void 0&&l.push(o.get(n)),t){case"add":O(e)?is(n)&&l.push(o.get("length")):(l.push(o.get(rt)),mt(e)&&l.push(o.get(qn)));break;case"delete":O(e)||(l.push(o.get(rt)),mt(e)&&l.push(o.get(qn)));break;case"set":mt(e)&&l.push(o.get(rt));break}if(l.length===1)l[0]&&Kn(l[0]);else{const c=[];for(const f of l)f&&c.push(...f);Kn(os(c))}}function Kn(e,t){for(const n of O(e)?e:[...e])(n!==Le||n.allowRecurse)&&(n.scheduler?n.scheduler():n.run())}const Vi=es("__proto__,__v_isRef,__isVue"),yr=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(rs)),Ji=cs(),Yi=cs(!1,!0),Xi=cs(!0),Is=Zi();function Zi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=z(this);for(let i=0,o=this.length;i{e[t]=function(...n){wt();const s=z(this)[t].apply(this,n);return kt(),s}}),e}function cs(e=!1,t=!1){return function(s,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?po:Er:t?Cr:$r).get(s))return s;const o=O(s);if(!e&&o&&q(Is,r))return Reflect.get(Is,r,i);const l=Reflect.get(s,r,i);return(rs(r)?yr.has(r):Vi(r))||(e||Te(s,"get",r),t)?l:de(l)?!o||!is(r)?l.value:l:ue(l)?e?Tr(l):yn(l):l}}const Qi=wr(),Gi=wr(!0);function wr(e=!1){return function(n,s,r,i){let o=n[s];if(Nt(o)&&de(o)&&!de(r))return!1;if(!e&&!Nt(r)&&(Ar(r)||(r=z(r),o=z(o)),!O(n)&&de(o)&&!de(r)))return o.value=r,!0;const l=O(n)&&is(s)?Number(s)e,xn=e=>Reflect.getPrototypeOf(e);function Yt(e,t,n=!1,s=!1){e=e.__v_raw;const r=z(e),i=z(t);t!==i&&!n&&Te(r,"get",t),!n&&Te(r,"get",i);const{has:o}=xn(r),l=s?as:n?ds:Ht;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function Xt(e,t=!1){const n=this.__v_raw,s=z(n),r=z(e);return e!==r&&!t&&Te(s,"has",e),!t&&Te(s,"has",r),e===r?n.has(e):n.has(e)||n.has(r)}function Zt(e,t=!1){return e=e.__v_raw,!t&&Te(z(e),"iterate",rt),Reflect.get(e,"size",e)}function Ms(e){e=z(e);const t=z(this);return xn(t).has.call(t,e)||(t.add(e),qe(t,"add",e,e)),this}function Os(e,t){t=z(t);const n=z(this),{has:s,get:r}=xn(n);let i=s.call(n,e);i||(e=z(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Ft(t,o)&&qe(n,"set",e,t):qe(n,"add",e,t),this}function Rs(e){const t=z(this),{has:n,get:s}=xn(t);let r=n.call(t,e);r||(e=z(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&qe(t,"delete",e,void 0),i}function Us(){const e=z(this),t=e.size!==0,n=e.clear();return t&&qe(e,"clear",void 0,void 0),n}function Qt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=z(o),c=t?as:e?ds:Ht;return!e&&Te(l,"iterate",rt),o.forEach((f,h)=>s.call(r,c(f),c(h),i))}}function Gt(e,t,n){return function(...s){const r=this.__v_raw,i=z(r),o=mt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=r[e](...s),h=n?as:t?ds:Ht;return!t&&Te(i,"iterate",c?qn:rt),{next(){const{value:g,done:y}=f.next();return y?{value:g,done:y}:{value:l?[h(g[0]),h(g[1])]:h(g),done:y}},[Symbol.iterator](){return this}}}}function Ve(e){return function(...t){return e==="delete"?!1:this}}function io(){const e={get(i){return Yt(this,i)},get size(){return Zt(this)},has:Xt,add:Ms,set:Os,delete:Rs,clear:Us,forEach:Qt(!1,!1)},t={get(i){return Yt(this,i,!1,!0)},get size(){return Zt(this)},has:Xt,add:Ms,set:Os,delete:Rs,clear:Us,forEach:Qt(!1,!0)},n={get(i){return Yt(this,i,!0)},get size(){return Zt(this,!0)},has(i){return Xt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Qt(!0,!1)},s={get(i){return Yt(this,i,!0,!0)},get size(){return Zt(this,!0)},has(i){return Xt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Qt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Gt(i,!1,!1),n[i]=Gt(i,!0,!1),t[i]=Gt(i,!1,!0),s[i]=Gt(i,!0,!0)}),[e,n,t,s]}const[oo,lo,co,ao]=io();function us(e,t){const n=t?e?ao:co:e?lo:oo;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(q(n,r)&&r in s?n:s,r,i)}const uo={get:us(!1,!1)},fo={get:us(!1,!0)},ho={get:us(!0,!1)},$r=new WeakMap,Cr=new WeakMap,Er=new WeakMap,po=new WeakMap;function _o(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function go(e){return e.__v_skip||!Object.isExtensible(e)?0:_o(Ni(e))}function yn(e){return Nt(e)?e:fs(e,!1,kr,uo,$r)}function mo(e){return fs(e,!1,ro,fo,Cr)}function Tr(e){return fs(e,!0,so,ho,Er)}function fs(e,t,n,s,r){if(!ue(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=go(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function vt(e){return Nt(e)?vt(e.__v_raw):!!(e&&e.__v_isReactive)}function Nt(e){return!!(e&&e.__v_isReadonly)}function Ar(e){return!!(e&&e.__v_isShallow)}function Pr(e){return vt(e)||Nt(e)}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Lt(e){return sn(e,"__v_skip",!0),e}const Ht=e=>ue(e)?yn(e):e,ds=e=>ue(e)?Tr(e):e;function Sr(e){Ze&&Le&&(e=z(e),xr(e.dep||(e.dep=os())))}function Lr(e,t){e=z(e),e.dep&&Kn(e.dep)}function de(e){return!!(e&&e.__v_isRef===!0)}function wn(e){return Ir(e,!1)}function vo(e){return Ir(e,!0)}function Ir(e,t){return de(e)?e:new bo(e,t)}class bo{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:z(t),this._value=n?t:Ht(t)}get value(){return Sr(this),this._value}set value(t){t=this.__v_isShallow?t:z(t),Ft(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:Ht(t),Lr(this))}}function $(e){return de(e)?e.value:e}const xo={get:(e,t,n)=>$(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return de(r)&&!de(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Mr(e){return vt(e)?e:new Proxy(e,xo)}function Or(e){const t=O(e)?new Array(e.length):{};for(const n in e)t[n]=wo(e,n);return t}class yo{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function wo(e,t,n){const s=e[t];return de(s)?s:new yo(e,t,n)}class ko{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new ls(t,()=>{this._dirty||(this._dirty=!0,Lr(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=z(this);return Sr(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function $o(e,t,n=!1){let s,r;const i=F(e);return i?(s=e,r=Me):(s=e.get,r=e.set),new ko(s,r,i||!r,n)}function Qe(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){kn(i,t,n)}return r}function Oe(e,t,n,s){if(F(e)){const i=Qe(e,t,n,s);return i&&pr(i)&&i.catch(o=>{kn(o,t,n)}),i}const r=[];for(let i=0;i>>1;Bt(Ee[s])je&&Ee.splice(t,1)}function Hr(e,t,n,s){O(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?s+1:s))&&n.push(e),Nr()}function Ao(e){Hr(e,Pt,It,ht)}function Po(e){Hr(e,Ye,Mt,pt)}function ps(e,t=null){if(It.length){for(zn=t,Pt=[...new Set(It)],It.length=0,ht=0;htBt(n)-Bt(s)),pt=0;pte.id==null?1/0:e.id;function Br(e){Wn=!1,rn=!0,ps(e),Ee.sort((n,s)=>Bt(n)-Bt(s));const t=Me;try{for(je=0;jeA.trim()):g&&(r=n.map(Di))}let l,c=s[l=On(t)]||s[l=On(Ne(t))];!c&&i&&(c=s[l=On(yt(t))]),c&&Oe(c,e,6,r);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Oe(f,e,6,r)}}function Dr(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!F(e)){const c=f=>{const h=Dr(f,t,!0);h&&(l=!0,xe(o,h))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(s.set(e,null),null):(O(i)?i.forEach(c=>o[c]=null):xe(o,i),s.set(e,o),o)}function $n(e,t){return!e||!Wt(t)?!1:(t=t.slice(2).replace(/Once$/,""),q(e,t[0].toLowerCase()+t.slice(1))||q(e,yt(t))||q(e,t))}let $e=null,Cn=null;function ln(e){const t=$e;return $e=e,Cn=e&&e.type.__scopeId||null,t}function jr(e){Cn=e}function qr(){Cn=null}function De(e,t=$e,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&zs(-1);const i=ln(t),o=e(...r);return ln(i),s._d&&zs(1),o};return s._n=!0,s._c=!0,s._d=!0,s}function Un(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:f,render:h,renderCache:g,data:y,setupState:A,ctx:M,inheritAttrs:V}=e;let m,w;const K=ln(e);try{if(n.shapeFlag&4){const H=r||s;m=Se(h.call(H,H,g,i,A,y,M)),w=c}else{const H=t;m=Se(H.length>1?H(i,{attrs:c,slots:l,emit:f}):H(i,null)),w=t.props?c:Lo(c)}}catch(H){Ut.length=0,kn(H,e,1),m=N(Ke)}let L=m;if(w&&V!==!1){const H=Object.keys(w),{shapeFlag:X}=L;H.length&&X&7&&(o&&H.some(ns)&&(w=Io(w,o)),L=qt(L,w))}return n.dirs&&(L.dirs=L.dirs?L.dirs.concat(n.dirs):n.dirs),n.transition&&(L.transition=n.transition),m=L,ln(K),m}const Lo=e=>{let t;for(const n in e)(n==="class"||n==="style"||Wt(n))&&((t||(t={}))[n]=e[n]);return t},Io=(e,t)=>{const n={};for(const s in e)(!ns(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Mo(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Fs(s,o,f):!!o;if(c&8){const h=t.dynamicProps;for(let g=0;ge.__isSuspense;function Kr(e,t){t&&t.pendingBranch?O(e)?t.effects.push(...e):t.effects.push(e):Po(e)}function Uo(e,t){if(pe){let n=pe.provides;const s=pe.parent&&pe.parent.provides;s===n&&(n=pe.provides=Object.create(s)),n[e]=t}}function Ot(e,t,n=!1){const s=pe||$e;if(s){const r=s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&F(t)?t.call(s.proxy):t}}function Wr(e,t){return _s(e,null,t)}const Ns={};function it(e,t,n){return _s(e,t,n)}function _s(e,t,{immediate:n,deep:s,flush:r,onTrack:i,onTrigger:o}=Q){const l=pe;let c,f=!1,h=!1;if(de(e)?(c=()=>e.value,f=Ar(e)):vt(e)?(c=()=>e,s=!0):O(e)?(h=!0,f=e.some(vt),c=()=>e.map(w=>{if(de(w))return w.value;if(vt(w))return _t(w);if(F(w))return Qe(w,l,2)})):F(e)?t?c=()=>Qe(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return g&&g(),Oe(e,l,3,[y])}:c=Me,t&&s){const w=c;c=()=>_t(w())}let g,y=w=>{g=m.onStop=()=>{Qe(w,l,4)}};if(Kt)return y=Me,t?n&&Oe(t,l,3,[c(),h?[]:void 0,y]):c(),Me;let A=h?[]:Ns;const M=()=>{if(!!m.active)if(t){const w=m.run();(s||f||(h?w.some((K,L)=>Ft(K,A[L])):Ft(w,A)))&&(g&&g(),Oe(t,l,3,[w,A===Ns?void 0:A,y]),A=w)}else m.run()};M.allowRecurse=!!t;let V;r==="sync"?V=M:r==="post"?V=()=>ke(M,l&&l.suspense):V=()=>{!l||l.isMounted?Ao(M):M()};const m=new ls(c,V);return t?n?M():A=m.run():r==="post"?ke(m.run.bind(m),l&&l.suspense):m.run(),()=>{m.stop(),l&&l.scope&&ss(l.scope.effects,m)}}function Fo(e,t,n){const s=this.proxy,r=he(e)?e.includes(".")?zr(s,e):()=>s[e]:e.bind(s,s);let i;F(t)?i=t:(i=t.handler,n=t);const o=pe;bt(this);const l=_s(r,i.bind(s),n);return o?bt(o):lt(),l}function zr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{_t(n,t)});else if(gr(e))for(const n in e)_t(e[n],t);return e}function oe(e){return F(e)?{setup:e,name:e.name}:e}const Dt=e=>!!e.type.__asyncLoader,Vr=e=>e.type.__isKeepAlive;function No(e,t){Jr(e,"a",t)}function Ho(e,t){Jr(e,"da",t)}function Jr(e,t,n=pe){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(En(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Vr(r.parent.vnode)&&Bo(s,t,n,r),r=r.parent}}function Bo(e,t,n,s){const r=En(t,e,s,!0);Tn(()=>{ss(s[t],r)},n)}function En(e,t,n=pe,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;wt(),bt(n);const l=Oe(t,n,e,o);return lt(),kt(),l});return s?r.unshift(i):r.push(i),i}}const We=e=>(t,n=pe)=>(!Kt||e==="sp")&&En(e,t,n),Do=We("bm"),$t=We("m"),jo=We("bu"),Yr=We("u"),qo=We("bum"),Tn=We("um"),Ko=We("sp"),Wo=We("rtg"),zo=We("rtc");function Vo(e,t=pe){En("ec",e,t)}let Vn=!0;function Jo(e){const t=Zr(e),n=e.proxy,s=e.ctx;Vn=!1,t.beforeCreate&&Hs(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:f,created:h,beforeMount:g,mounted:y,beforeUpdate:A,updated:M,activated:V,deactivated:m,beforeDestroy:w,beforeUnmount:K,destroyed:L,unmounted:H,render:X,renderTracked:Z,renderTriggered:B,errorCaptured:le,serverPrefetch:ne,expose:re,inheritAttrs:_e,components:j,directives:ie,filters:ye}=t;if(f&&Yo(f,s,null,e.appContext.config.unwrapInjectedRef),o)for(const se in o){const G=o[se];F(G)&&(s[se]=G.bind(n))}if(r){const se=r.call(n,n);ue(se)&&(e.data=yn(se))}if(Vn=!0,i)for(const se in i){const G=i[se],He=F(G)?G.bind(n,n):F(G.get)?G.get.bind(n,n):Me,Ln=!F(G)&&F(G.set)?G.set.bind(n):Me,Ct=D({get:He,set:Ln});Object.defineProperty(s,se,{enumerable:!0,configurable:!0,get:()=>Ct.value,set:ut=>Ct.value=ut})}if(l)for(const se in l)Xr(l[se],s,n,se);if(c){const se=F(c)?c.call(n):c;Reflect.ownKeys(se).forEach(G=>{Uo(G,se[G])})}h&&Hs(h,e,"c");function we(se,G){O(G)?G.forEach(He=>se(He.bind(n))):G&&se(G.bind(n))}if(we(Do,g),we($t,y),we(jo,A),we(Yr,M),we(No,V),we(Ho,m),we(Vo,le),we(zo,Z),we(Wo,B),we(qo,K),we(Tn,H),we(Ko,ne),O(re))if(re.length){const se=e.exposed||(e.exposed={});re.forEach(G=>{Object.defineProperty(se,G,{get:()=>n[G],set:He=>n[G]=He})})}else e.exposed||(e.exposed={});X&&e.render===Me&&(e.render=X),_e!=null&&(e.inheritAttrs=_e),j&&(e.components=j),ie&&(e.directives=ie)}function Yo(e,t,n=Me,s=!1){O(e)&&(e=Jn(e));for(const r in e){const i=e[r];let o;ue(i)?"default"in i?o=Ot(i.from||r,i.default,!0):o=Ot(i.from||r):o=Ot(i),de(o)&&s?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:l=>o.value=l}):t[r]=o}}function Hs(e,t,n){Oe(O(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Xr(e,t,n,s){const r=s.includes(".")?zr(n,s):()=>n[s];if(he(e)){const i=t[e];F(i)&&it(r,i)}else if(F(e))it(r,e.bind(n));else if(ue(e))if(O(e))e.forEach(i=>Xr(i,t,n,s));else{const i=F(e.handler)?e.handler.bind(n):t[e.handler];F(i)&&it(r,i,e)}}function Zr(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(f=>cn(c,f,o,!0)),cn(c,t,o)),i.set(t,c),c}function cn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&cn(e,i,n,!0),r&&r.forEach(o=>cn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Xo[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Xo={data:Bs,props:nt,emits:nt,methods:nt,computed:nt,beforeCreate:ve,created:ve,beforeMount:ve,mounted:ve,beforeUpdate:ve,updated:ve,beforeDestroy:ve,beforeUnmount:ve,destroyed:ve,unmounted:ve,activated:ve,deactivated:ve,errorCaptured:ve,serverPrefetch:ve,components:nt,directives:nt,watch:Qo,provide:Bs,inject:Zo};function Bs(e,t){return t?e?function(){return xe(F(e)?e.call(this,this):e,F(t)?t.call(this,this):t)}:t:e}function Zo(e,t){return nt(Jn(e),Jn(t))}function Jn(e){if(O(e)){const t={};for(let n=0;n0)&&!(o&16)){if(o&8){const h=e.vnode.dynamicProps;for(let g=0;g{c=!0;const[y,A]=Gr(g,t,!0);xe(o,y),A&&l.push(...A)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!i&&!c)return s.set(e,gt),gt;if(O(i))for(let h=0;h-1,A[1]=V<0||M-1||q(A,"default"))&&l.push(g)}}}const f=[o,l];return s.set(e,f),f}function Ds(e){return e[0]!=="$"}function js(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function qs(e,t){return js(e)===js(t)}function Ks(e,t){return O(t)?t.findIndex(n=>qs(n,e)):F(t)&&qs(t,e)?0:-1}const ei=e=>e[0]==="_"||e==="$stable",gs=e=>O(e)?e.map(Se):[Se(e)],tl=(e,t,n)=>{const s=De((...r)=>gs(t(...r)),n);return s._c=!1,s},ti=(e,t,n)=>{const s=e._ctx;for(const r in e){if(ei(r))continue;const i=e[r];if(F(i))t[r]=tl(r,i,s);else if(i!=null){const o=gs(i);t[r]=()=>o}}},ni=(e,t)=>{const n=gs(t);e.slots.default=()=>n},nl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=z(t),sn(t,"_",n)):ti(t,e.slots={})}else e.slots={},t&&ni(e,t);sn(e.slots,An,1)},sl=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=Q;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(xe(r,t),!n&&l===1&&delete r._):(i=!t.$stable,ti(t,r)),o=t}else t&&(ni(e,t),o={default:1});if(i)for(const l in r)!ei(l)&&!(l in o)&&delete r[l]};function Fe(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;oan(y,t&&(O(t)?t[A]:t),n,s,r));return}if(Dt(s)&&!r)return;const i=s.shapeFlag&4?bs(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,f=t&&t.r,h=l.refs===Q?l.refs={}:l.refs,g=l.setupState;if(f!=null&&f!==c&&(he(f)?(h[f]=null,q(g,f)&&(g[f]=null)):de(f)&&(f.value=null)),F(c))Qe(c,l,12,[o,h]);else{const y=he(c),A=de(c);if(y||A){const M=()=>{if(e.f){const V=y?h[c]:c.value;r?O(V)&&ss(V,i):O(V)?V.includes(i)||V.push(i):y?(h[c]=[i],q(g,c)&&(g[c]=h[c])):(c.value=[i],e.k&&(h[e.k]=c.value))}else y?(h[c]=o,q(g,c)&&(g[c]=o)):de(c)&&(c.value=o,e.k&&(h[e.k]=o))};o?(M.id=-1,ke(M,n)):M()}}}let Je=!1;const en=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Fn=e=>e.nodeType===8;function ol(e){const{mt:t,p:n,o:{patchProp:s,nextSibling:r,parentNode:i,remove:o,insert:l,createComment:c}}=e,f=(m,w)=>{if(!w.hasChildNodes()){n(null,m,w),on();return}Je=!1,h(w.firstChild,m,null,null,null),on(),Je&&console.error("Hydration completed but contains mismatches.")},h=(m,w,K,L,H,X=!1)=>{const Z=Fn(m)&&m.data==="[",B=()=>M(m,w,K,L,H,Z),{type:le,ref:ne,shapeFlag:re}=w,_e=m.nodeType;w.el=m;let j=null;switch(le){case jt:_e!==3?j=B():(m.data!==w.children&&(Je=!0,m.data=w.children),j=r(m));break;case Ke:_e!==8||Z?j=B():j=r(m);break;case Rt:if(_e!==1)j=B();else{j=m;const ie=!w.children.length;for(let ye=0;ye{X=X||!!w.dynamicChildren;const{type:Z,props:B,patchFlag:le,shapeFlag:ne,dirs:re}=w,_e=Z==="input"&&re||Z==="option";if(_e||le!==-1){if(re&&Fe(w,null,K,"created"),B)if(_e||!X||le&48)for(const ie in B)(_e&&ie.endsWith("value")||Wt(ie)&&!St(ie))&&s(m,ie,null,B[ie],!1,void 0,K);else B.onClick&&s(m,"onClick",null,B.onClick,!1,void 0,K);let j;if((j=B&&B.onVnodeBeforeMount)&&Ae(j,K,w),re&&Fe(w,null,K,"beforeMount"),((j=B&&B.onVnodeMounted)||re)&&Kr(()=>{j&&Ae(j,K,w),re&&Fe(w,null,K,"mounted")},L),ne&16&&!(B&&(B.innerHTML||B.textContent))){let ie=y(m.firstChild,w,m,K,L,H,X);for(;ie;){Je=!0;const ye=ie;ie=ie.nextSibling,o(ye)}}else ne&8&&m.textContent!==w.children&&(Je=!0,m.textContent=w.children)}return m.nextSibling},y=(m,w,K,L,H,X,Z)=>{Z=Z||!!w.dynamicChildren;const B=w.children,le=B.length;for(let ne=0;ne{const{slotScopeIds:Z}=w;Z&&(H=H?H.concat(Z):Z);const B=i(m),le=y(r(m),w,B,K,L,H,X);return le&&Fn(le)&&le.data==="]"?r(w.anchor=le):(Je=!0,l(w.anchor=c("]"),B,le),le)},M=(m,w,K,L,H,X)=>{if(Je=!0,w.el=null,X){const le=V(m);for(;;){const ne=r(m);if(ne&&ne!==le)o(ne);else break}}const Z=r(m),B=i(m);return o(m),n(null,w,B,Z,K,L,en(B),H),Z},V=m=>{let w=0;for(;m;)if(m=r(m),m&&Fn(m)&&(m.data==="["&&w++,m.data==="]")){if(w===0)return r(m);w--}return m};return[f,h]}const ke=Kr;function ll(e){return cl(e,ol)}function cl(e,t){const n=ji();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:h,parentNode:g,nextSibling:y,setScopeId:A=Me,cloneNode:M,insertStaticContent:V}=e,m=(a,u,d,_=null,p=null,x=null,C=!1,b=null,k=!!u.dynamicChildren)=>{if(a===u)return;a&&!Tt(a,u)&&(_=Jt(a),ze(a,p,x,!0),a=null),u.patchFlag===-2&&(k=!1,u.dynamicChildren=null);const{type:v,ref:P,shapeFlag:E}=u;switch(v){case jt:w(a,u,d,_);break;case Ke:K(a,u,d,_);break;case Rt:a==null&&L(u,d,_,C);break;case fe:ie(a,u,d,_,p,x,C,b,k);break;default:E&1?Z(a,u,d,_,p,x,C,b,k):E&6?ye(a,u,d,_,p,x,C,b,k):(E&64||E&128)&&v.process(a,u,d,_,p,x,C,b,k,ft)}P!=null&&p&&an(P,a&&a.ref,x,u||a,!u)},w=(a,u,d,_)=>{if(a==null)s(u.el=l(u.children),d,_);else{const p=u.el=a.el;u.children!==a.children&&f(p,u.children)}},K=(a,u,d,_)=>{a==null?s(u.el=c(u.children||""),d,_):u.el=a.el},L=(a,u,d,_)=>{[a.el,a.anchor]=V(a.children,u,d,_,a.el,a.anchor)},H=({el:a,anchor:u},d,_)=>{let p;for(;a&&a!==u;)p=y(a),s(a,d,_),a=p;s(u,d,_)},X=({el:a,anchor:u})=>{let d;for(;a&&a!==u;)d=y(a),r(a),a=d;r(u)},Z=(a,u,d,_,p,x,C,b,k)=>{C=C||u.type==="svg",a==null?B(u,d,_,p,x,C,b,k):re(a,u,p,x,C,b,k)},B=(a,u,d,_,p,x,C,b)=>{let k,v;const{type:P,props:E,shapeFlag:S,transition:I,patchFlag:W,dirs:te}=a;if(a.el&&M!==void 0&&W===-1)k=a.el=M(a.el);else{if(k=a.el=o(a.type,x,E&&E.is,E),S&8?h(k,a.children):S&16&&ne(a.children,k,null,_,p,x&&P!=="foreignObject",C,b),te&&Fe(a,null,_,"created"),E){for(const ee in E)ee!=="value"&&!St(ee)&&i(k,ee,null,E[ee],x,a.children,_,p,Be);"value"in E&&i(k,"value",null,E.value),(v=E.onVnodeBeforeMount)&&Ae(v,_,a)}le(k,a,a.scopeId,C,_)}te&&Fe(a,null,_,"beforeMount");const Y=(!p||p&&!p.pendingBranch)&&I&&!I.persisted;Y&&I.beforeEnter(k),s(k,u,d),((v=E&&E.onVnodeMounted)||Y||te)&&ke(()=>{v&&Ae(v,_,a),Y&&I.enter(k),te&&Fe(a,null,_,"mounted")},p)},le=(a,u,d,_,p)=>{if(d&&A(a,d),_)for(let x=0;x<_.length;x++)A(a,_[x]);if(p){let x=p.subTree;if(u===x){const C=p.vnode;le(a,C,C.scopeId,C.slotScopeIds,p.parent)}}},ne=(a,u,d,_,p,x,C,b,k=0)=>{for(let v=k;v{const b=u.el=a.el;let{patchFlag:k,dynamicChildren:v,dirs:P}=u;k|=a.patchFlag&16;const E=a.props||Q,S=u.props||Q;let I;d&&tt(d,!1),(I=S.onVnodeBeforeUpdate)&&Ae(I,d,u,a),P&&Fe(u,a,d,"beforeUpdate"),d&&tt(d,!0);const W=p&&u.type!=="foreignObject";if(v?_e(a.dynamicChildren,v,b,d,_,W,x):C||He(a,u,b,null,d,_,W,x,!1),k>0){if(k&16)j(b,u,E,S,d,_,p);else if(k&2&&E.class!==S.class&&i(b,"class",null,S.class,p),k&4&&i(b,"style",E.style,S.style,p),k&8){const te=u.dynamicProps;for(let Y=0;Y{I&&Ae(I,d,u,a),P&&Fe(u,a,d,"updated")},_)},_e=(a,u,d,_,p,x,C)=>{for(let b=0;b{if(d!==_){for(const b in _){if(St(b))continue;const k=_[b],v=d[b];k!==v&&b!=="value"&&i(a,b,v,k,C,u.children,p,x,Be)}if(d!==Q)for(const b in d)!St(b)&&!(b in _)&&i(a,b,d[b],null,C,u.children,p,x,Be);"value"in _&&i(a,"value",d.value,_.value)}},ie=(a,u,d,_,p,x,C,b,k)=>{const v=u.el=a?a.el:l(""),P=u.anchor=a?a.anchor:l("");let{patchFlag:E,dynamicChildren:S,slotScopeIds:I}=u;I&&(b=b?b.concat(I):I),a==null?(s(v,d,_),s(P,d,_),ne(u.children,d,P,p,x,C,b,k)):E>0&&E&64&&S&&a.dynamicChildren?(_e(a.dynamicChildren,S,d,p,x,C,b),(u.key!=null||p&&u===p.subTree)&&ri(a,u,!0)):He(a,u,d,P,p,x,C,b,k)},ye=(a,u,d,_,p,x,C,b,k)=>{u.slotScopeIds=b,a==null?u.shapeFlag&512?p.ctx.activate(u,d,_,C,k):Sn(u,d,_,p,x,C,k):we(a,u,k)},Sn=(a,u,d,_,p,x,C)=>{const b=a.component=bl(a,_,p);if(Vr(a)&&(b.ctx.renderer=ft),xl(b),b.asyncDep){if(p&&p.registerDep(b,se),!a.el){const k=b.subTree=N(Ke);K(null,k,u,d)}return}se(b,a,u,d,p,x,C)},we=(a,u,d)=>{const _=u.component=a.component;if(Mo(a,u,d))if(_.asyncDep&&!_.asyncResolved){G(_,u,d);return}else _.next=u,To(_.update),_.update();else u.component=a.component,u.el=a.el,_.vnode=u},se=(a,u,d,_,p,x,C)=>{const b=()=>{if(a.isMounted){let{next:P,bu:E,u:S,parent:I,vnode:W}=a,te=P,Y;tt(a,!1),P?(P.el=W.el,G(a,P,C)):P=W,E&&Rn(E),(Y=P.props&&P.props.onVnodeBeforeUpdate)&&Ae(Y,I,P,W),tt(a,!0);const ee=Un(a),Pe=a.subTree;a.subTree=ee,m(Pe,ee,g(Pe.el),Jt(Pe),a,p,x),P.el=ee.el,te===null&&Oo(a,ee.el),S&&ke(S,p),(Y=P.props&&P.props.onVnodeUpdated)&&ke(()=>Ae(Y,I,P,W),p)}else{let P;const{el:E,props:S}=u,{bm:I,m:W,parent:te}=a,Y=Dt(u);if(tt(a,!1),I&&Rn(I),!Y&&(P=S&&S.onVnodeBeforeMount)&&Ae(P,te,u),tt(a,!0),E&&Mn){const ee=()=>{a.subTree=Un(a),Mn(E,a.subTree,a,p,null)};Y?u.type.__asyncLoader().then(()=>!a.isUnmounted&&ee()):ee()}else{const ee=a.subTree=Un(a);m(null,ee,d,_,a,p,x),u.el=ee.el}if(W&&ke(W,p),!Y&&(P=S&&S.onVnodeMounted)){const ee=u;ke(()=>Ae(P,te,ee),p)}u.shapeFlag&256&&a.a&&ke(a.a,p),a.isMounted=!0,u=d=_=null}},k=a.effect=new ls(b,()=>Fr(a.update),a.scope),v=a.update=k.run.bind(k);v.id=a.uid,tt(a,!0),v()},G=(a,u,d)=>{u.component=a;const _=a.vnode.props;a.vnode=u,a.next=null,el(a,u.props,_,d),sl(a,u.children,d),wt(),ps(void 0,a.update),kt()},He=(a,u,d,_,p,x,C,b,k=!1)=>{const v=a&&a.children,P=a?a.shapeFlag:0,E=u.children,{patchFlag:S,shapeFlag:I}=u;if(S>0){if(S&128){Ct(v,E,d,_,p,x,C,b,k);return}else if(S&256){Ln(v,E,d,_,p,x,C,b,k);return}}I&8?(P&16&&Be(v,p,x),E!==v&&h(d,E)):P&16?I&16?Ct(v,E,d,_,p,x,C,b,k):Be(v,p,x,!0):(P&8&&h(d,""),I&16&&ne(E,d,_,p,x,C,b,k))},Ln=(a,u,d,_,p,x,C,b,k)=>{a=a||gt,u=u||gt;const v=a.length,P=u.length,E=Math.min(v,P);let S;for(S=0;SP?Be(a,p,x,!0,!1,E):ne(u,d,_,p,x,C,b,k,E)},Ct=(a,u,d,_,p,x,C,b,k)=>{let v=0;const P=u.length;let E=a.length-1,S=P-1;for(;v<=E&&v<=S;){const I=a[v],W=u[v]=k?Xe(u[v]):Se(u[v]);if(Tt(I,W))m(I,W,d,null,p,x,C,b,k);else break;v++}for(;v<=E&&v<=S;){const I=a[E],W=u[S]=k?Xe(u[S]):Se(u[S]);if(Tt(I,W))m(I,W,d,null,p,x,C,b,k);else break;E--,S--}if(v>E){if(v<=S){const I=S+1,W=IS)for(;v<=E;)ze(a[v],p,x,!0),v++;else{const I=v,W=v,te=new Map;for(v=W;v<=S;v++){const Ce=u[v]=k?Xe(u[v]):Se(u[v]);Ce.key!=null&&te.set(Ce.key,v)}let Y,ee=0;const Pe=S-W+1;let dt=!1,Es=0;const Et=new Array(Pe);for(v=0;v=Pe){ze(Ce,p,x,!0);continue}let Re;if(Ce.key!=null)Re=te.get(Ce.key);else for(Y=W;Y<=S;Y++)if(Et[Y-W]===0&&Tt(Ce,u[Y])){Re=Y;break}Re===void 0?ze(Ce,p,x,!0):(Et[Re-W]=v+1,Re>=Es?Es=Re:dt=!0,m(Ce,u[Re],d,null,p,x,C,b,k),ee++)}const Ts=dt?al(Et):gt;for(Y=Ts.length-1,v=Pe-1;v>=0;v--){const Ce=W+v,Re=u[Ce],As=Ce+1{const{el:x,type:C,transition:b,children:k,shapeFlag:v}=a;if(v&6){ut(a.component.subTree,u,d,_);return}if(v&128){a.suspense.move(u,d,_);return}if(v&64){C.move(a,u,d,ft);return}if(C===fe){s(x,u,d);for(let E=0;Eb.enter(x),p);else{const{leave:E,delayLeave:S,afterLeave:I}=b,W=()=>s(x,u,d),te=()=>{E(x,()=>{W(),I&&I()})};S?S(x,W,te):te()}else s(x,u,d)},ze=(a,u,d,_=!1,p=!1)=>{const{type:x,props:C,ref:b,children:k,dynamicChildren:v,shapeFlag:P,patchFlag:E,dirs:S}=a;if(b!=null&&an(b,null,d,a,!0),P&256){u.ctx.deactivate(a);return}const I=P&1&&S,W=!Dt(a);let te;if(W&&(te=C&&C.onVnodeBeforeUnmount)&&Ae(te,u,a),P&6)Ei(a.component,d,_);else{if(P&128){a.suspense.unmount(d,_);return}I&&Fe(a,null,u,"beforeUnmount"),P&64?a.type.remove(a,u,d,p,ft,_):v&&(x!==fe||E>0&&E&64)?Be(v,u,d,!1,!0):(x===fe&&E&384||!p&&P&16)&&Be(k,u,d),_&&$s(a)}(W&&(te=C&&C.onVnodeUnmounted)||I)&&ke(()=>{te&&Ae(te,u,a),I&&Fe(a,null,u,"unmounted")},d)},$s=a=>{const{type:u,el:d,anchor:_,transition:p}=a;if(u===fe){Ci(d,_);return}if(u===Rt){X(a);return}const x=()=>{r(d),p&&!p.persisted&&p.afterLeave&&p.afterLeave()};if(a.shapeFlag&1&&p&&!p.persisted){const{leave:C,delayLeave:b}=p,k=()=>C(d,x);b?b(a.el,x,k):k()}else x()},Ci=(a,u)=>{let d;for(;a!==u;)d=y(a),r(a),a=d;r(u)},Ei=(a,u,d)=>{const{bum:_,scope:p,update:x,subTree:C,um:b}=a;_&&Rn(_),p.stop(),x&&(x.active=!1,ze(C,a,u,d)),b&&ke(b,u),ke(()=>{a.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},Be=(a,u,d,_=!1,p=!1,x=0)=>{for(let C=x;Ca.shapeFlag&6?Jt(a.component.subTree):a.shapeFlag&128?a.suspense.next():y(a.anchor||a.el),Cs=(a,u,d)=>{a==null?u._vnode&&ze(u._vnode,null,null,!0):m(u._vnode||null,a,u,null,null,null,d),on(),u._vnode=a},ft={p:m,um:ze,m:ut,r:$s,mt:Sn,mc:ne,pc:He,pbc:_e,n:Jt,o:e};let In,Mn;return t&&([In,Mn]=t(ft)),{render:Cs,hydrate:In,createApp:il(Cs,In)}}function tt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ri(e,t,n=!1){const s=e.children,r=t.children;if(O(s)&&O(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}const ul=e=>e.__isTeleport,ii="components";function un(e,t){return dl(ii,e,!0,t)||e}const fl=Symbol();function dl(e,t,n=!0,s=!1){const r=$e||pe;if(r){const i=r.type;if(e===ii){const l=$l(i);if(l&&(l===t||l===Ne(t)||l===bn(Ne(t))))return i}const o=Ws(r[e]||i[e],t)||Ws(r.appContext[e],t);return!o&&s?i:o}}function Ws(e,t){return e&&(e[t]||e[Ne(t)]||e[bn(Ne(t))])}const fe=Symbol(void 0),jt=Symbol(void 0),Ke=Symbol(void 0),Rt=Symbol(void 0),Ut=[];let ot=null;function T(e=!1){Ut.push(ot=e?null:[])}function hl(){Ut.pop(),ot=Ut[Ut.length-1]||null}let fn=1;function zs(e){fn+=e}function oi(e){return e.dynamicChildren=fn>0?ot||gt:null,hl(),fn>0&&ot&&ot.push(e),e}function R(e,t,n,s,r,i){return oi(U(e,t,n,s,r,i,!0))}function ge(e,t,n,s,r){return oi(N(e,t,n,s,r,!0))}function dn(e){return e?e.__v_isVNode===!0:!1}function Tt(e,t){return e.type===t.type&&e.key===t.key}const An="__vInternal",li=({key:e})=>e!=null?e:null,nn=({ref:e,ref_key:t,ref_for:n})=>e!=null?he(e)||de(e)||F(e)?{i:$e,r:e,k:t,f:!!n}:e:null;function U(e,t=null,n=null,s=0,r=null,i=e===fe?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&li(t),ref:t&&nn(t),scopeId:Cn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null};return l?(ms(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=he(n)?8:16),fn>0&&!o&&ot&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&ot.push(c),c}const N=pl;function pl(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===fl)&&(e=Ke),dn(e)){const l=qt(e,t,!0);return n&&ms(l,n),l}if(Cl(e)&&(e=e.__vccOpts),t){t=_l(t);let{class:l,style:c}=t;l&&!he(l)&&(t.class=ct(l)),ue(c)&&(Pr(c)&&!O(c)&&(c=xe({},c)),t.style=ts(c))}const o=he(e)?1:Ro(e)?128:ul(e)?64:ue(e)?4:F(e)?2:0;return U(e,t,n,s,r,o,i,!0)}function _l(e){return e?Pr(e)||An in e?xe({},e):e:null}function qt(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?vs(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&li(l),ref:t&&t.ref?n&&r?O(r)?r.concat(nn(t)):[r,nn(t)]:nn(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==fe?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&qt(e.ssContent),ssFallback:e.ssFallback&&qt(e.ssFallback),el:e.el,anchor:e.anchor}}function zt(e=" ",t=0){return N(jt,null,e,t)}function ef(e,t){const n=N(Rt,null,e);return n.staticCount=t,n}function J(e="",t=!1){return t?(T(),ge(Ke,null,e)):N(Ke,null,e)}function Se(e){return e==null||typeof e=="boolean"?N(Ke):O(e)?N(fe,null,e.slice()):typeof e=="object"?Xe(e):N(jt,null,String(e))}function Xe(e){return e.el===null||e.memo?e:qt(e)}function ms(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(O(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),ms(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(An in t)?t._ctx=$e:r===3&&$e&&($e.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else F(t)?(t={default:t,_ctx:$e},n=32):(t=String(t),s&64?(n=16,t=[zt(t)]):n=8);e.children=t,e.shapeFlag|=n}function vs(...e){const t={};for(let n=0;nt(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;ldn(t)?!(t.type===Ke||t.type===fe&&!ci(t.children)):!0)?e:null}const Xn=e=>e?ai(e)?bs(e)||e.proxy:Xn(e.parent):null,hn=xe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Xn(e.parent),$root:e=>Xn(e.root),$emit:e=>e.emit,$options:e=>Zr(e),$forceUpdate:e=>()=>Fr(e.update),$nextTick:e=>Ur.bind(e.proxy),$watch:e=>Fo.bind(e)}),gl={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const A=o[t];if(A!==void 0)switch(A){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(s!==Q&&q(s,t))return o[t]=1,s[t];if(r!==Q&&q(r,t))return o[t]=2,r[t];if((f=e.propsOptions[0])&&q(f,t))return o[t]=3,i[t];if(n!==Q&&q(n,t))return o[t]=4,n[t];Vn&&(o[t]=0)}}const h=hn[t];let g,y;if(h)return t==="$attrs"&&Te(e,"get",t),h(e);if((g=l.__cssModules)&&(g=g[t]))return g;if(n!==Q&&q(n,t))return o[t]=4,n[t];if(y=c.config.globalProperties,q(y,t))return y[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return r!==Q&&q(r,t)?(r[t]=n,!0):s!==Q&&q(s,t)?(s[t]=n,!0):q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==Q&&q(e,o)||t!==Q&&q(t,o)||(l=i[0])&&q(l,o)||q(s,o)||q(hn,o)||q(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},ml=si();let vl=0;function bl(e,t,n){const s=e.type,r=(t?t.appContext:e.appContext)||ml,i={uid:vl++,vnode:e,type:s,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,scope:new qi(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Gr(s,r),emitsOptions:Dr(s,r),emit:null,emitted:null,propsDefaults:Q,inheritAttrs:s.inheritAttrs,ctx:Q,data:Q,props:Q,attrs:Q,slots:Q,refs:Q,setupState:Q,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=So.bind(null,i),e.ce&&e.ce(i),i}let pe=null;const bt=e=>{pe=e,e.scope.on()},lt=()=>{pe&&pe.scope.off(),pe=null};function ai(e){return e.vnode.shapeFlag&4}let Kt=!1;function xl(e,t=!1){Kt=t;const{props:n,children:s}=e.vnode,r=ai(e);Go(e,n,r,t),nl(e,s);const i=r?yl(e,t):void 0;return Kt=!1,i}function yl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Lt(new Proxy(e.ctx,gl));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?kl(e):null;bt(e),wt();const i=Qe(s,e,0,[e.props,r]);if(kt(),lt(),pr(i)){if(i.then(lt,lt),t)return i.then(o=>{Vs(e,o,t)}).catch(o=>{kn(o,e,0)});e.asyncDep=i}else Vs(e,i,t)}else ui(e,t)}function Vs(e,t,n){F(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ue(t)&&(e.setupState=Mr(t)),ui(e,n)}let Js;function ui(e,t,n){const s=e.type;if(!e.render){if(!t&&Js&&!s.render){const r=s.template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,f=xe(xe({isCustomElement:i,delimiters:l},o),c);s.render=Js(r,f)}}e.render=s.render||Me}bt(e),wt(),Jo(e),kt(),lt()}function wl(e){return new Proxy(e.attrs,{get(t,n){return Te(e,"get","$attrs"),t[n]}})}function kl(e){const t=s=>{e.exposed=s||{}};let n;return{get attrs(){return n||(n=wl(e))},slots:e.slots,emit:e.emit,expose:t}}function bs(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Mr(Lt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in hn)return hn[n](e)}}))}function $l(e){return F(e)&&e.displayName||e.name}function Cl(e){return F(e)&&"__vccOpts"in e}const D=(e,t)=>$o(e,t,Kt);function at(e,t,n){const s=arguments.length;return s===2?ue(t)&&!O(t)?dn(t)?N(e,null,[t]):N(e,t):N(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&dn(n)&&(n=[n]),N(e,t,n))}const El="3.2.33",Tl="http://www.w3.org/2000/svg",st=typeof document!="undefined"?document:null,Ys=st&&st.createElement("template"),Al={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?st.createElementNS(Tl,e):st.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>st.createTextNode(e),createComment:e=>st.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>st.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Ys.innerHTML=s?`${e}`:e;const l=Ys.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Pl(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Sl(e,t,n){const s=e.style,r=he(n);if(n&&!r){for(const i in n)Zn(s,i,n[i]);if(t&&!he(t))for(const i in t)n[i]==null&&Zn(s,i,"")}else{const i=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=i)}}const Xs=/\s*!important$/;function Zn(e,t,n){if(O(n))n.forEach(s=>Zn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Ll(e,t);Xs.test(n)?e.setProperty(yt(s),n.replace(Xs,""),"important"):e[s]=n}}const Zs=["Webkit","Moz","ms"],Nn={};function Ll(e,t){const n=Nn[t];if(n)return n;let s=Ne(t);if(s!=="filter"&&s in e)return Nn[t]=s;s=bn(s);for(let r=0;r{let e=Date.now,t=!1;if(typeof window!="undefined"){Date.now()>document.createEvent("Event").timeStamp&&(e=()=>performance.now());const n=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let Qn=0;const Rl=Promise.resolve(),Ul=()=>{Qn=0},Fl=()=>Qn||(Rl.then(Ul),Qn=fi());function Nl(e,t,n,s){e.addEventListener(t,n,s)}function Hl(e,t,n,s){e.removeEventListener(t,n,s)}function Bl(e,t,n,s,r=null){const i=e._vei||(e._vei={}),o=i[t];if(s&&o)o.value=s;else{const[l,c]=Dl(t);if(s){const f=i[t]=jl(s,r);Nl(e,l,f,c)}else o&&(Hl(e,l,o,c),i[t]=void 0)}}const Gs=/(?:Once|Passive|Capture)$/;function Dl(e){let t;if(Gs.test(e)){t={};let n;for(;n=e.match(Gs);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[yt(e.slice(2)),t]}function jl(e,t){const n=s=>{const r=s.timeStamp||fi();(Ol||r>=n.attached-1)&&Oe(ql(s,n.value),t,5,[s])};return n.value=e,n.attached=Fl(),n}function ql(e,t){if(O(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const er=/^on[a-z]/,Kl=(e,t,n,s,r=!1,i,o,l,c)=>{t==="class"?Pl(e,s,r):t==="style"?Sl(e,n,s):Wt(t)?ns(t)||Bl(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Wl(e,t,s,r))?Ml(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Il(e,t,s,r))};function Wl(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&er.test(t)&&F(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||er.test(t)&&he(n)?!1:t in e}const zl=xe({patchProp:Kl},Al);let Hn,tr=!1;function Vl(){return Hn=tr?Hn:ll(zl),tr=!0,Hn}const Jl=(...e)=>{const t=Vl().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Yl(s);if(r)return n(r,!0,r instanceof SVGElement)},t};function Yl(e){return he(e)?document.querySelector(e):e}var Xl='{"lang":"en-US","title":"VitePress","description":"A VitePress site","base":"/","head":[],"themeConfig":{"locales":{"/":{"label":"\u7B80\u4F53\u4E2D\u6587","nav":[{"text":"\u4F7F\u7528\u6307\u5357","link":"/","activeMatch":"^/$|^/guide/"},{"text":"\u5F00\u53D1\u624B\u518C","link":"/developer/basics","activeMatch":"^/developer/"}],"sidebar":{"/guide/":[{"text":"\u5B89\u88C5\u624B\u518C","children":[{"text":"\u5B89\u88C5 Dashboard","link":"/guide/dashboard"},{"text":"\u5B89\u88C5 Agent","link":"/guide/agent"}]},{"text":"\u7BA1\u7406\u9762\u677F\u914D\u7F6E","children":[{"text":"\u4E3B\u673A","link":"/guide/servers"},{"text":"\u670D\u52A1","link":"/guide/services"},{"text":"\u5B9A\u65F6\u4EFB\u52A1","link":"/guide/tasks"},{"text":"\u62A5\u8B66\u901A\u77E5","link":"/guide/notifications"},{"text":"\u8BBE\u7F6E","link":"/guide/settings"}]},{"text":"\u5E38\u89C1\u95EE\u9898","children":[{"text":"TG api\u88AB\u5899","link":"/guide/q1"},{"text":"Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B","link":"/guide/q2"},{"text":"\u5982\u4F55\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3","link":"/guide/q3"},{"text":"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","link":"/guide/q4"},{"text":"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","link":"/guide/q5"}]}],"/developer/":[{"text":"App Config","children":[{"text":"Basics","link":"/developer/basics"}]},{"text":"Theme Config","children":[{"text":"Homepage","link":"/developer/homepage"},{"text":"Algolia Search","link":"/developer/algolia-search"},{"text":"Carbon Ads","link":"/developer/carbon-ads"}]}],"/":[{"text":"\u5B89\u88C5\u624B\u518C","children":[{"text":"\u5B89\u88C5 Dashboard","link":"/guide/dashboard"},{"text":"\u5B89\u88C5 Agent","link":"/guide/agent"}]},{"text":"\u7BA1\u7406\u9762\u677F\u914D\u7F6E","children":[{"text":"\u4E3B\u673A","link":"/guide/servers"},{"text":"\u670D\u52A1","link":"/guide/services"},{"text":"\u5B9A\u65F6\u4EFB\u52A1","link":"/guide/tasks"},{"text":"\u62A5\u8B66\u901A\u77E5","link":"/guide/notifications"},{"text":"\u8BBE\u7F6E","link":"/guide/settings"}]},{"text":"\u5E38\u89C1\u95EE\u9898","children":[{"text":"TG api\u88AB\u5899","link":"/guide/q1"},{"text":"Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B","link":"/guide/q2"},{"text":"\u5982\u4F55\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3","link":"/guide/q3"},{"text":"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","link":"/guide/q4"},{"text":"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","link":"/guide/q5"}]}]},"repo":"nezhahq/nezhahq.github.io","docsDir":"docs","docsBranch":"main","editLinks":true,"editLinkText":"\u5728GitHub\u4E2D\u7F16\u8F91","lastUpdated":"\u4E0A\u6B21\u66F4\u65B0"},"/en_US/":{"label":"English","nav":[{"text":"User Guide","link":"/en_US/","activeMatch":"^/$|^/en_US/guide/"},{"text":"Development Manual","link":"/en_US/developer/basics","activeMatch":"^/en_US/developer/"}],"sidebar":{"/en_US/guide/":[{"text":"Installation Manual","children":[{"text":"Install Dashboard","link":"/en_US/guide/dashboard"},{"text":"Install Agent","link":"/en_US/guide/agent"}]},{"text":"Admin Panel","children":[{"text":"Servers","link":"/en_US/guide/servers"},{"text":"Services","link":"/en_US/guide/services"},{"text":"Tasks","link":"/en_US/guide/tasks"},{"text":"Notifications","link":"/en_US/guide/notifications"},{"text":"Settings","link":"/en_US/guide/settings"}]},{"text":"FAQ","children":[{"text":"Let the Agent start/on-line, and the self-test process of the problem","link":"/en_US/guide/q2"},{"text":"Reverse Proxy gRPC Port (support Cloudflare CDN)","link":"/en_US/guide/q3"},{"text":"Real-time channel disconnection/online terminal connection failure","link":"/en_US/guide/q4"},{"text":"How do I migrate my data to the new server and restore my backups?","link":"/en_US/guide/q5"}]}],"/en_US/developer/":[{"text":"App Config","children":[{"text":"Basics","link":"/en_US/developer/basics"}]},{"text":"Theme Config","children":[{"text":"Homepage","link":"/en_US/developer/homepage"},{"text":"Algolia Search","link":"/en_US/developer/algolia-search"},{"text":"Carbon Ads","link":"/en_US/developer/carbon-ads"}]}],"/en_US/":[{"text":"Installation Manual","children":[{"text":"Install Dashboard","link":"/en_US/guide/dashboard"},{"text":"Install Agent","link":"/en_US/guide/agent"}]},{"text":"Admin Panel","children":[{"text":"Servers","link":"/en_US/guide/servers"},{"text":"Services","link":"/en_US/guide/services"},{"text":"Tasks","link":"/en_US/guide/tasks"},{"text":"Notifications","link":"/en_US/guide/notifications"},{"text":"Settings","link":"/en_US/guide/settings"}]},{"text":"FAQ","children":[{"text":"Let the Agent start/on-line, and the self-test process of the problem","link":"/en_US/guide/q2"},{"text":"Reverse Proxy gRPC Port (support Cloudflare CDN)","link":"/en_US/guide/q3"},{"text":"Real-time channel disconnection/online terminal connection failure","link":"/en_US/guide/q4"},{"text":"How do I migrate my data to the new server and restore my backups?","link":"/en_US/guide/q5"}]}]},"repo":"nezhahq/nezhahq.github.io","docsDir":"docs","docsBranch":"main","editLinks":true,"editLinkText":"Edit this page on GitHub","lastUpdated":"Last Updated"}}},"locales":{"/":{"lang":"zh-CN","title":"\u54EA\u5412\u76D1\u63A7","description":"\u54EA\u5412\u76D1\u63A7\u662F\u4E00\u4E2A\u8F7B\u91CF\u5316\u7684\u8FD0\u7EF4\u5DE5\u5177"},"/en_US/":{"lang":"en-US","title":"Nezha Monitoring","description":"Nezha Monitoring is a lightweight O&M tool"}},"langs":{"/":{"label":"\u7B80\u4F53\u4E2D\u6587","lang":"zh-CN"},"/en_US/":{"label":"English","lang":"en-US"}},"scrollOffset":90}';const di=/^https?:/i,Ie=typeof window!="undefined";function Zl(e,t){t.sort((n,s)=>{const r=s.split("/").length-n.split("/").length;return r!==0?r:s.length-n.length});for(const n of t)if(e.startsWith(n))return n}function nr(e,t){const n=Zl(t,Object.keys(e));return n?e[n]:void 0}function Ql(e){const{locales:t}=e.themeConfig||{},n=e.locales;return t&&n?Object.keys(t).reduce((s,r)=>(s[r]={label:t[r].label,lang:n[r].lang},s),{}):{}}function Gl(e,t){t=ec(e,t);const n=nr(e.locales||{},t),s=nr(e.themeConfig.locales||{},t);return Object.assign({},e,n,{themeConfig:Object.assign({},e.themeConfig,s,{locales:{}}),lang:(n||e).lang,locales:{},langs:Ql(e)})}function ec(e,t){if(!Ie)return t;const n=e.base,s=n.endsWith("/")?n.slice(0,-1):n;return t.slice(s.length)}const hi=Symbol(),Vt=vo(tc(Xl));function tc(e){return JSON.parse(e)}function nc(e){const t=D(()=>Gl(Vt.value,e.path));return{site:t,theme:D(()=>t.value.themeConfig),page:D(()=>e.data),frontmatter:D(()=>e.data.frontmatter),lang:D(()=>t.value.lang),localePath:D(()=>{const{langs:n,lang:s}=t.value,r=Object.keys(n).find(i=>n[i].lang===s);return xt(r||"/")}),title:D(()=>e.data.title?e.data.title+" | "+t.value.title:t.value.title),description:D(()=>e.data.description||t.value.description)}}function me(){const e=Ot(hi);if(!e)throw new Error("vitepress data not properly injected in app");return e}function sc(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function xt(e){return di.test(e)?e:sc(Vt.value.base,e)}function pi(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t.endsWith("/")&&(t+="index"),Ie){const n="/";t=t.slice(n.length).replace(/\//g,"_")+".md";const s=__VP_HASH_MAP__[t.toLowerCase()];t=`${n}assets/${t}.${s}.js`}else t=`./${t.slice(1).replace(/\//g,"_")}.md.js`;return t}const _i=Symbol(),sr="http://a.com",gi={relativePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{},lastUpdated:0},rc=()=>({path:"/",component:null,data:gi});function ic(e,t){const n=yn(rc());function s(o=Ie?location.href:"/"){const l=new URL(o,sr);return!l.pathname.endsWith("/")&&!l.pathname.endsWith(".html")&&(l.pathname+=".html",o=l.pathname+l.search+l.hash),Ie&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",o)),i(o)}let r=null;async function i(o,l=0,c=!1){const f=new URL(o,sr),h=r=f.pathname;try{let g=e(h);if("then"in g&&typeof g.then=="function"&&(g=await g),r===h){r=null;const{default:y,__pageData:A}=g;if(!y)throw new Error(`Invalid route component: ${y}`);n.path=h,n.component=Lt(y),n.data=Lt(JSON.parse(A)),Ie&&Ur(()=>{if(f.hash&&!l){let M=null;try{M=document.querySelector(decodeURIComponent(f.hash))}catch(V){console.warn(V)}if(M){rr(M,f.hash);return}}window.scrollTo(0,l)})}}catch(g){if(g.message.match(/fetch/)||console.error(g),!c)try{const y=await fetch(Vt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await y.json(),await i(o,l,!0);return}catch{}r===h&&(r=null,n.path=h,n.component=t?Lt(t):null,n.data=gi)}}return Ie&&(window.addEventListener("click",o=>{const l=o.target.closest("a");if(l){const{href:c,protocol:f,hostname:h,pathname:g,hash:y,target:A}=l,M=window.location,V=g.match(/\.\w+$/);!o.ctrlKey&&!o.shiftKey&&!o.altKey&&!o.metaKey&&A!=="_blank"&&f===M.protocol&&h===M.hostname&&!(V&&V[0]!==".html")&&(o.preventDefault(),g===M.pathname?y&&y!==M.hash&&(history.pushState(null,"",y),window.dispatchEvent(new Event("hashchange")),rr(l,y,l.classList.contains("header-anchor"))):s(c))}},{capture:!0}),window.addEventListener("popstate",o=>{i(location.href,o.state&&o.state.scrollPosition||0)}),window.addEventListener("hashchange",o=>{o.preventDefault()})),{route:n,go:s}}function oc(){const e=Ot(_i);if(!e)throw new Error("useRouter() is called without provider.");return e}function et(){return oc().route}function rr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(r){console.warn(r)}if(s){let r=Vt.value.scrollOffset;typeof r=="string"&&(r=document.querySelector(r).getBoundingClientRect().bottom+24);const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-r+i;!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})}}function lc(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}const o=[],l=Math.min(n.length,i.length);for(let c=0;cdocument.head.removeChild(c)),i.slice(l).forEach(c=>{const f=ir(c);document.head.appendChild(f),o.push(f)}),n=o};Wr(()=>{const i=e.data,o=t.value,l=i&&i.title,c=i&&i.description,f=i&&i.frontmatter.head;document.title=(l?l+" | ":"")+o.title,document.querySelector("meta[name=description]").setAttribute("content",c||o.description),r([...f?ac(f):[]])})}function ir([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function cc(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function ac(e){return e.filter(t=>!cc(t))}const uc=oe({name:"VitePressContent",setup(){const e=et();return()=>at("div",{style:{position:"relative"}},[e.component?at(e.component):null])}});var ce=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n};const fc=/#.*$/,dc=/(index)?\.(md|html)$/,pn=/\/$/,hc=/^[a-z]+:/i;function xs(e){return Array.isArray(e)}function ys(e){return hc.test(e)}function pc(e,t){if(t===void 0)return!1;const n=or(`/${e.data.relativePath}`),s=or(t);return n===s}function or(e){return decodeURI(e).replace(fc,"").replace(dc,"")}function _c(e,t){const n=e.endsWith("/"),s=t.startsWith("/");return n&&s?e.slice(0,-1)+t:!n&&!s?`${e}/${t}`:e+t}function Gn(e){return/^\//.test(e)?e:`/${e}`}function mi(e){return e.replace(/(index)?(\.(md|html))?$/,"")||"/"}function gc(e){return e===!1||e==="auto"||xs(e)}function mc(e){return e.children!==void 0}function vc(e){return xs(e)?e.length===0:!e}function ws(e,t){if(gc(e))return e;t=Gn(t);for(const n in e)if(t.startsWith(Gn(n)))return e[n];return"auto"}function vi(e){return e.reduce((t,n)=>(n.link&&t.push({text:n.text,link:mi(n.link)}),mc(n)&&(t=[...t,...vi(n.children)]),t),[])}function bi(e){const t=et(),n=ys(e.value.link);return{props:D(()=>{const r=lr(`/${t.data.relativePath}`);let i=!1;if(e.value.activeMatch)i=new RegExp(e.value.activeMatch).test(r);else{const o=lr(e.value.link);i=o==="/"?o===r:r.startsWith(o)}return{class:{active:i,isExternal:n},href:n?e.value.link:xt(e.value.link),target:e.value.target||(n?"_blank":null),rel:e.value.rel||(n?"noopener noreferrer":null),"aria-label":e.value.ariaLabel}}),isExternal:n}}function lr(e){return e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\.(html|md)$/,"").replace(/\/index$/,"/")}const bc={},xc={class:"icon outbound",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},yc=U("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"},null,-1),wc=U("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"},null,-1),kc=[yc,wc];function $c(e,t){return T(),R("svg",xc,kc)}var ks=ce(bc,[["render",$c]]);const Cc={class:"nav-link"},Ec=oe({props:{item:null},setup(e){const n=Or(e),{props:s,isExternal:r}=bi(n.item);return(i,o)=>(T(),R("div",Cc,[U("a",vs({class:"item"},$(s)),[zt(be(e.item.text)+" ",1),$(r)?(T(),ge(ks,{key:0})):J("",!0)],16)]))}});var _n=ce(Ec,[["__scopeId","data-v-b8818f8c"]]);const Tc={key:0,class:"home-hero"},Ac={key:0,class:"figure"},Pc=["src","alt"],Sc={key:1,id:"main-title",class:"title"},Lc={key:2,class:"tagline"},Ic=oe({setup(e){const{site:t,frontmatter:n}=me(),s=D(()=>{const{heroImage:o,heroText:l,tagline:c,actionLink:f,actionText:h}=n.value;return o||l||c||f&&h}),r=D(()=>n.value.heroText||t.value.title),i=D(()=>n.value.tagline||t.value.description);return(o,l)=>$(s)?(T(),R("header",Tc,[$(n).heroImage?(T(),R("figure",Ac,[U("img",{class:"image",src:$(xt)($(n).heroImage),alt:$(n).heroAlt},null,8,Pc)])):J("",!0),$(r)?(T(),R("h1",Sc,be($(r)),1)):J("",!0),$(i)?(T(),R("p",Lc,be($(i)),1)):J("",!0),$(n).actionLink&&$(n).actionText?(T(),ge(_n,{key:3,item:{link:$(n).actionLink,text:$(n).actionText},class:"action"},null,8,["item"])):J("",!0),$(n).altActionLink&&$(n).altActionText?(T(),ge(_n,{key:4,item:{link:$(n).altActionLink,text:$(n).altActionText},class:"action alt"},null,8,["item"])):J("",!0)])):J("",!0)}});var Mc=ce(Ic,[["__scopeId","data-v-370f18c0"]]);const Oc={key:0,class:"home-features"},Rc={class:"wrapper"},Uc={class:"container"},Fc={class:"features"},Nc={key:0,class:"title"},Hc={key:1,class:"details"},Bc=oe({setup(e){const{frontmatter:t}=me(),n=D(()=>t.value.features&&t.value.features.length>0),s=D(()=>t.value.features?t.value.features:[]);return(r,i)=>$(n)?(T(),R("div",Oc,[U("div",Rc,[U("div",Uc,[U("div",Fc,[(T(!0),R(fe,null,Pn($(s),(o,l)=>(T(),R("section",{key:l,class:"feature"},[o.title?(T(),R("h2",Nc,be(o.title),1)):J("",!0),o.details?(T(),R("p",Hc,be(o.details),1)):J("",!0)]))),128))])])])])):J("",!0)}});var Dc=ce(Bc,[["__scopeId","data-v-e39c13e0"]]);const jc={key:0,class:"footer"},qc={class:"container"},Kc={class:"text"},Wc=oe({setup(e){const{frontmatter:t}=me();return(n,s)=>$(t).footer?(T(),R("footer",jc,[U("div",qc,[U("p",Kc,be($(t).footer),1)])])):J("",!0)}});var zc=ce(Wc,[["__scopeId","data-v-30918238"]]);const Vc={class:"home","aria-labelledby":"main-title"},Jc={class:"home-content"},Yc=oe({setup(e){return(t,n)=>{const s=un("Content");return T(),R("main",Vc,[N(Mc),ae(t.$slots,"hero",{},void 0,!0),N(Dc),U("div",Jc,[N(s)]),ae(t.$slots,"features",{},void 0,!0),N(zc),ae(t.$slots,"footer",{},void 0,!0)])}}});var Xc=ce(Yc,[["__scopeId","data-v-10122c92"]]);const Zc=["href","aria-label"],Qc=["src"],Gc=oe({setup(e){const{site:t,theme:n,localePath:s}=me();return(r,i)=>(T(),R("a",{class:"nav-bar-title",href:$(s),"aria-label":`${$(t).title}, back to home`},[$(n).logo?(T(),R("img",{key:0,class:"logo",src:$(xt)($(n).logo),alt:"Logo"},null,8,Qc)):J("",!0),zt(" "+be($(t).title),1)],8,Zc))}});var ea=ce(Gc,[["__scopeId","data-v-cc01ef16"]]);function ta(){const{site:e,localePath:t,theme:n}=me();return D(()=>{const s=e.value.langs,r=Object.keys(s);if(r.length<2)return null;const o=et().path.replace(t.value,""),l=r.map(f=>({text:s[f].label,link:`${f}${o}`}));return{text:n.value.selectText||"Languages",items:l}})}const na=["GitHub","GitLab","Bitbucket"].map(e=>[e,new RegExp(e,"i")]);function sa(){const{site:e}=me();return D(()=>{const t=e.value.themeConfig,n=t.docsRepo||t.repo;if(!n)return null;const s=ra(n);return{text:ia(s,t.repoLabel),link:s}})}function ra(e){return di.test(e)?e:`https://github.com/${e}`}function ia(e,t){if(t)return t;const n=e.match(/^https?:\/\/[^/]+/);if(!n)return"Source";const s=na.find(([r,i])=>i.test(n[0]));return s&&s[0]?s[0]:"Source"}const oa=e=>(jr("data-v-bbc27490"),e=e(),qr(),e),la={class:"nav-dropdown-link-item"},ca=oa(()=>U("span",{class:"arrow"},null,-1)),aa={class:"text"},ua={class:"icon"},fa=oe({props:{item:null},setup(e){const n=Or(e),{props:s,isExternal:r}=bi(n.item);return(i,o)=>(T(),R("div",la,[U("a",vs({class:"item"},$(s)),[ca,U("span",aa,be(e.item.text),1),U("span",ua,[$(r)?(T(),ge(ks,{key:0})):J("",!0)])],16)]))}});var da=ce(fa,[["__scopeId","data-v-bbc27490"]]);const ha=["aria-label"],pa={class:"button-text"},_a={class:"dialog"},ga=oe({props:{item:null},setup(e){const t=et(),n=wn(!1);it(()=>t.path,()=>{n.value=!1});function s(){n.value=!n.value}return(r,i)=>(T(),R("div",{class:ct(["nav-dropdown-link",{open:n.value}])},[U("button",{class:"button","aria-label":e.item.ariaLabel,onClick:s},[U("span",pa,be(e.item.text),1),U("span",{class:ct(["button-arrow",n.value?"down":"right"])},null,2)],8,ha),U("ul",_a,[(T(!0),R(fe,null,Pn(e.item.items,o=>(T(),R("li",{key:o.text,class:"dialog-item"},[N(da,{item:o},null,8,["item"])]))),128))])],2))}});var cr=ce(ga,[["__scopeId","data-v-56bf3a3f"]]);const ma={key:0,class:"nav-links"},va={key:1,class:"item"},ba={key:2,class:"item"},xa=oe({setup(e){const{theme:t}=me(),n=ta(),s=sa(),r=D(()=>t.value.nav||s.value||n.value);return(i,o)=>$(r)?(T(),R("nav",ma,[$(t).nav?(T(!0),R(fe,{key:0},Pn($(t).nav,l=>(T(),R("div",{key:l.text,class:"item"},[l.items?(T(),ge(cr,{key:0,item:l},null,8,["item"])):(T(),ge(_n,{key:1,item:l},null,8,["item"]))]))),128)):J("",!0),$(n)?(T(),R("div",va,[N(cr,{item:$(n)},null,8,["item"])])):J("",!0),$(s)?(T(),R("div",ba,[N(_n,{item:$(s)},null,8,["item"])])):J("",!0)])):J("",!0)}});var xi=ce(xa,[["__scopeId","data-v-eab3edfe"]]);const ya={emits:["toggle"]},wa=U("svg",{class:"icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"},[U("path",{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z",class:""})],-1),ka=[wa];function $a(e,t,n,s,r,i){return T(),R("div",{class:"sidebar-button",onClick:t[0]||(t[0]=o=>e.$emit("toggle"))},ka)}var Ca=ce(ya,[["render",$a]]);const Ea=e=>(jr("data-v-675d8756"),e=e(),qr(),e),Ta={class:"nav-bar"},Aa=Ea(()=>U("div",{class:"flex-grow"},null,-1)),Pa={class:"nav"},Sa=oe({emits:["toggle"],setup(e){return(t,n)=>(T(),R("header",Ta,[N(Ca,{onToggle:n[0]||(n[0]=s=>t.$emit("toggle"))}),N(ea),Aa,U("div",Pa,[N(xi)]),ae(t.$slots,"search",{},void 0,!0)]))}});var La=ce(Sa,[["__scopeId","data-v-675d8756"]]);function Ia(){let e=null,t=null;const n=Fa(s,300);function s(){const o=Ma(),l=Oa(o);for(let c=0;c ul > li");l&&l!==t.parentElement?(e=l.querySelector("a"),e&&e.classList.add("active")):e=null}function i(o){o&&o.classList.remove("active")}$t(()=>{s(),window.addEventListener("scroll",n)}),Yr(()=>{r(decodeURIComponent(location.hash))}),Tn(()=>{window.removeEventListener("scroll",n)})}function Ma(){return[].slice.call(document.querySelectorAll(".sidebar a.sidebar-link-item"))}function Oa(e){return[].slice.call(document.querySelectorAll(".header-anchor")).filter(t=>e.some(n=>n.hash===t.hash))}function Ra(){return document.querySelector(".nav-bar").offsetHeight}function ar(e){const t=Ra();return e.parentElement.offsetTop-t-15}function Ua(e,t,n){const s=window.scrollY;return e===0&&s===0?[!0,null]:s{n&&clearTimeout(n),s?n=setTimeout(e,t):(e(),s=!0,setTimeout(()=>{s=!1},t))}}function Na(){const e=et(),{site:t}=me();return Ia(),D(()=>{const n=e.data.headers,s=e.data.frontmatter.sidebar,r=e.data.frontmatter.sidebarDepth;if(s===!1)return[];if(s==="auto")return ur(n,r);const i=ws(t.value.themeConfig.sidebar,e.data.relativePath);return i===!1?[]:i==="auto"?ur(n,r):i})}function ur(e,t){const n=[];if(e===void 0)return[];let s;return e.forEach(({level:r,title:i,slug:o})=>{if(r-1>t)return;const l={text:i,link:`#${o}`};r===2?(s=l,n.push(l)):s&&(s.children||(s.children=[])).push(l)}),n}const yi=e=>{const t=et(),{site:n,frontmatter:s}=me(),r=e.depth||1,i=s.value.sidebarDepth||1/0,o=t.data.headers,l=e.item.text,c=Ha(n.value.base,e.item.link),f=e.item.children,h=pc(t,e.item.link),g=r0?at("ul",{class:"sidebar-links"},t.map(r=>at(yi,{item:r,depth:s}))):e&&n?wi(!1,Ba(n),void 0,s):null}function Ba(e){return ki(Da(e))}function Da(e){e=e.map(n=>Object.assign({},n));let t;return e.forEach(n=>{n.level===2?t=n:t&&(t.children||(t.children=[])).push(n)}),e.filter(n=>n.level===2)}function ki(e){return e.map(t=>({text:t.title,link:`#${t.slug}`,children:t.children?ki(t.children):void 0}))}const ja={key:0,class:"sidebar-links"},qa=oe({setup(e){const t=Na();return(n,s)=>$(t).length>0?(T(),R("ul",ja,[(T(!0),R(fe,null,Pn($(t),r=>(T(),ge($(yi),{item:r},null,8,["item"]))),256))])):J("",!0)}});const Ka=oe({props:{open:{type:Boolean}},setup(e){return(t,n)=>(T(),R("aside",{class:ct(["sidebar",{open:e.open}])},[N(xi,{class:"nav"}),ae(t.$slots,"sidebar-top",{},void 0,!0),N(qa),ae(t.$slots,"sidebar-bottom",{},void 0,!0)],2))}});var Wa=ce(Ka,[["__scopeId","data-v-83e92a68"]]);const za=/bitbucket.org/;function Va(){const{page:e,theme:t,frontmatter:n}=me(),s=D(()=>{const{repo:i,docsDir:o="",docsBranch:l="master",docsRepo:c=i,editLinks:f}=t.value,h=n.value.editLink!=null?n.value.editLink:f,{relativePath:g}=e.value;return!h||!g||!i?null:Ja(i,c,o,l,g)}),r=D(()=>t.value.editLinkText||"Edit this page");return{url:s,text:r}}function Ja(e,t,n,s,r){return za.test(e)?Xa(e,t,n,s,r):Ya(e,t,n,s,r)}function Ya(e,t,n,s,r){return(ys(t)?t:`https://github.com/${t}`).replace(pn,"")+`/edit/${s}/`+(n?n.replace(pn,"")+"/":"")+r}function Xa(e,t,n,s,r){return(ys(t)?t:e).replace(pn,"")+`/src/${s}/`+(n?n.replace(pn,"")+"/":"")+r+`?mode=edit&spa=0&at=${s}&fileviewer=file-view-default`}const Za={class:"edit-link"},Qa=["href"],Ga=oe({setup(e){const{url:t,text:n}=Va();return(s,r)=>(T(),R("div",Za,[$(t)?(T(),R("a",{key:0,class:"link",href:$(t),target:"_blank",rel:"noopener noreferrer"},[zt(be($(n))+" ",1),N(ks,{class:"icon"})],8,Qa)):J("",!0)]))}});var eu=ce(Ga,[["__scopeId","data-v-1ed99556"]]);const tu={key:0,class:"last-updated"},nu={class:"prefix"},su={class:"datetime"},ru=oe({setup(e){const{theme:t,page:n}=me(),s=D(()=>{const o=t.value.lastUpdated;return o!==void 0&&o!==!1&&n.value.lastUpdated!==0}),r=D(()=>{const o=t.value.lastUpdated;return o===!0?"Last Updated":o}),i=wn("");return $t(()=>{Wr(()=>{i.value=new Date(n.value.lastUpdated).toLocaleString("en-US")})}),(o,l)=>$(s)?(T(),R("p",tu,[U("span",nu,be($(r))+":",1),U("span",su,be(i.value),1)])):J("",!0)}});var iu=ce(ru,[["__scopeId","data-v-abce3432"]]);const ou={class:"page-footer"},lu={class:"edit"},cu={class:"updated"},au=oe({setup(e){const{page:t}=me();return(n,s)=>(T(),R("footer",ou,[U("div",lu,[N(eu)]),U("div",cu,[$(t).lastUpdated?(T(),ge(iu,{key:0})):J("",!0)])]))}});var uu=ce(au,[["__scopeId","data-v-07c132fc"]]);function fu(){const{page:e,theme:t}=me(),n=D(()=>mi(Gn(e.value.relativePath))),s=D(()=>{const c=ws(t.value.sidebar,n.value);return xs(c)?vi(c):[]}),r=D(()=>s.value.findIndex(c=>c.link===n.value)),i=D(()=>{if(t.value.nextLinks!==!1&&r.value>-1&&r.value{if(t.value.prevLinks!==!1&&r.value>0)return s.value[r.value-1]}),l=D(()=>!!i.value||!!o.value);return{next:i,prev:o,hasLinks:l}}const du={},hu={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},pu=U("path",{d:"M19,11H7.4l5.3-5.3c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0l-7,7c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.2-0.1,0.5,0,0.8c0.1,0.1,0.1,0.2,0.2,0.3l7,7c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4L7.4,13H19c0.6,0,1-0.4,1-1S19.6,11,19,11z"},null,-1),_u=[pu];function gu(e,t){return T(),R("svg",hu,_u)}var mu=ce(du,[["render",gu]]);const vu={},bu={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},xu=U("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),yu=[xu];function wu(e,t){return T(),R("svg",bu,yu)}var ku=ce(vu,[["render",wu]]);const $u={key:0,class:"next-and-prev-link"},Cu={class:"container"},Eu={class:"prev"},Tu=["href"],Au={class:"text"},Pu={class:"next"},Su=["href"],Lu={class:"text"},Iu=oe({setup(e){const{hasLinks:t,prev:n,next:s}=fu();return(r,i)=>$(t)?(T(),R("div",$u,[U("div",Cu,[U("div",Eu,[$(n)?(T(),R("a",{key:0,class:"link",href:$(xt)($(n).link)},[N(mu,{class:"icon icon-prev"}),U("span",Au,be($(n).text),1)],8,Tu)):J("",!0)]),U("div",Pu,[$(s)?(T(),R("a",{key:0,class:"link",href:$(xt)($(s).link)},[U("span",Lu,be($(s).text),1),N(ku,{class:"icon icon-next"})],8,Su)):J("",!0)])])])):J("",!0)}});var Mu=ce(Iu,[["__scopeId","data-v-38ede35f"]]);const Ou={class:"page"},Ru={class:"container"},Uu=oe({setup(e){return(t,n)=>{const s=un("Content");return T(),R("main",Ou,[U("div",Ru,[ae(t.$slots,"top",{},void 0,!0),N(s,{class:"content"}),N(uu),N(Mu),ae(t.$slots,"bottom",{},void 0,!0)])])}}});var Fu=ce(Uu,[["__scopeId","data-v-7eddb2c4"]]);const Nu={key:0,id:"ads-container"},Hu=oe({setup(e){const t=()=>null,n=t,s=t,r=t,i=et(),{site:o,page:l,theme:c,frontmatter:f}=me(),h=D(()=>!!f.value.customLayout),g=D(()=>!!f.value.home),y=D(()=>Object.keys(o.value.langs).length>1),A=D(()=>{const L=c.value;return f.value.navbar===!1||L.navbar===!1?!1:o.value.title||L.logo||L.repo||L.nav}),M=wn(!1),V=D(()=>f.value.home||f.value.sidebar===!1?!1:!vc(ws(c.value.sidebar,i.data.relativePath))),m=L=>{M.value=typeof L=="boolean"?L:!M.value},w=m.bind(null,!1);it(i,w);const K=D(()=>[{"no-navbar":!A.value,"sidebar-open":M.value,"no-sidebar":!V.value}]);return(L,H)=>{const X=un("Content"),Z=un("Debug");return T(),R(fe,null,[U("div",{class:ct(["theme",$(K)])},[$(A)?(T(),ge(La,{key:0,onToggle:m},{search:De(()=>[ae(L.$slots,"navbar-search",{},()=>[$(c).algolia?(T(),ge($(r),{key:0,options:$(c).algolia,multilang:$(y)},null,8,["options","multilang"])):J("",!0)])]),_:3})):J("",!0),N(Wa,{open:M.value},{"sidebar-top":De(()=>[ae(L.$slots,"sidebar-top")]),"sidebar-bottom":De(()=>[ae(L.$slots,"sidebar-bottom")]),_:3},8,["open"]),U("div",{class:"sidebar-mask",onClick:H[0]||(H[0]=B=>m(!1))}),$(h)?(T(),ge(X,{key:1})):$(g)?ae(L.$slots,"home",{key:2},()=>[N(Xc,null,{hero:De(()=>[ae(L.$slots,"home-hero")]),features:De(()=>[ae(L.$slots,"home-features")]),footer:De(()=>[ae(L.$slots,"home-footer")]),_:3})]):(T(),ge(Fu,{key:3},{top:De(()=>[ae(L.$slots,"page-top-ads",{},()=>[$(c).carbonAds&&$(c).carbonAds.carbon?(T(),R("div",Nu,[(T(),ge($(n),{key:"carbon"+$(l).relativePath,code:$(c).carbonAds.carbon,placement:$(c).carbonAds.placement},null,8,["code","placement"]))])):J("",!0)]),ae(L.$slots,"page-top")]),bottom:De(()=>[ae(L.$slots,"page-bottom"),ae(L.$slots,"page-bottom-ads",{},()=>[$(c).carbonAds&&$(c).carbonAds.custom?(T(),ge($(s),{key:"custom"+$(l).relativePath,code:$(c).carbonAds.custom,placement:$(c).carbonAds.placement},null,8,["code","placement"])):J("",!0)])]),_:3}))],2),N(Z)],64)}}}),Bu={class:"theme"},Du=U("h1",null,"404",-1),ju=["href"],qu=oe({setup(e){const{site:t}=me(),n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."];function s(){return n[Math.floor(Math.random()*n.length)]}return(r,i)=>(T(),R("div",Bu,[Du,U("blockquote",null,be(s()),1),U("a",{href:$(t).base,"aria-label":"go to home"},"Take me home.",8,ju)]))}}),gn={Layout:Hu,NotFound:qu},Bn=new Set,$i=()=>document.createElement("link"),Ku=e=>{const t=$i();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Wu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let tn;const zu=Ie&&(tn=$i())&&tn.relList&&tn.relList.supports&&tn.relList.supports("prefetch")?Ku:Wu;function Vu(){if(!Ie||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Bn.has(c)){Bn.add(c);const f=pi(c);zu(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{target:o,hostname:l,pathname:c}=i,f=c.match(/\.\w+$/);f&&f[0]!==".html"||o!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(i):Bn.add(c))})})};$t(s);const r=et();it(()=>r.path,s),Tn(()=>{n&&n.disconnect()})}const Ju=oe({setup(e,{slots:t}){const n=wn(!1);return $t(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}}),Yu=gn.NotFound||(()=>"404 Not Found"),Xu={name:"VitePressApp",setup(){const{site:e}=me();return $t(()=>{it(()=>e.value.lang,t=>{document.documentElement.lang=t},{immediate:!0})}),Vu(),()=>at(gn.Layout)}};function Zu(){const e=Gu(),t=Qu();t.provide(_i,e);const n=nc(e.route);return t.provide(hi,n),t.component("Content",uc),t.component("ClientOnly",Ju),t.component("Debug",()=>null),Object.defineProperty(t.config.globalProperties,"$frontmatter",{get(){return n.frontmatter.value}}),gn.enhanceApp&&gn.enhanceApp({app:t,router:e,siteData:Vt}),{app:t,router:e,data:n}}function Qu(){return Jl(Xu)}function Gu(){let e=Ie,t;return ic(n=>{let s=pi(n);return e&&(t=s),(e||t===s)&&(s=s.replace(/\.js$/,".lean.js")),Ie?(e=!1,Pi(()=>import(s),[])):require(s)},Yu)}if(Ie){const{app:e,router:t,data:n}=Zu();t.go().then(()=>{lc(t.route,n.site),e.mount("#app")})}export{ce as _,ef as a,U as b,R as c,Zu as createApp,zt as d,T as o}; diff --git a/assets/developer_algolia-search.md.0e57e75f.js b/assets/developer_algolia-search.md.64bfe4e3.js similarity index 98% rename from assets/developer_algolia-search.md.0e57e75f.js rename to assets/developer_algolia-search.md.64bfe4e3.js index 58473bbf..5d6a3968 100644 --- a/assets/developer_algolia-search.md.0e57e75f.js +++ b/assets/developer_algolia-search.md.64bfe4e3.js @@ -1,4 +1,4 @@ -import{_ as a,c as n,o as s,a as e}from"./app.32957174.js";const y='{"title":"Theme Config: Algolia Search","description":"","frontmatter":{},"headers":[{"level":2,"title":"Internationalization (i18n)","slug":"internationalization-i18n"}],"relativePath":"developer/algolia-search.md"}',t={},p=e(`

Theme Config: Algolia Search

The themeConfig.algolia option allows you to use Algolia DocSearch. To enable it, you need to provide at least appId, apiKey and indexName:

module.exports = {
+import{_ as a,c as n,o as s,a as e}from"./app.0bd0e305.js";const y='{"title":"Theme Config: Algolia Search","description":"","frontmatter":{},"headers":[{"level":2,"title":"Internationalization (i18n)","slug":"internationalization-i18n"}],"relativePath":"developer/algolia-search.md"}',t={},p=e(`

Theme Config: Algolia Search

The themeConfig.algolia option allows you to use Algolia DocSearch. To enable it, you need to provide at least appId, apiKey and indexName:

module.exports = {
   themeConfig: {
     algolia: {
       appId: 'your_app_id',
diff --git a/assets/developer_algolia-search.md.0e57e75f.lean.js b/assets/developer_algolia-search.md.64bfe4e3.lean.js
similarity index 84%
rename from assets/developer_algolia-search.md.0e57e75f.lean.js
rename to assets/developer_algolia-search.md.64bfe4e3.lean.js
index 9a106639..ab6efe68 100644
--- a/assets/developer_algolia-search.md.0e57e75f.lean.js
+++ b/assets/developer_algolia-search.md.64bfe4e3.lean.js
@@ -1 +1 @@
-import{_ as a,c as n,o as s,a as e}from"./app.32957174.js";const y='{"title":"Theme Config: Algolia Search","description":"","frontmatter":{},"headers":[{"level":2,"title":"Internationalization (i18n)","slug":"internationalization-i18n"}],"relativePath":"developer/algolia-search.md"}',t={},p=e("",9),o=[p];function r(l,c,i,u,k,d){return s(),n("div",null,o)}var g=a(t,[["render",r]]);export{y as __pageData,g as default};
+import{_ as a,c as n,o as s,a as e}from"./app.0bd0e305.js";const y='{"title":"Theme Config: Algolia Search","description":"","frontmatter":{},"headers":[{"level":2,"title":"Internationalization (i18n)","slug":"internationalization-i18n"}],"relativePath":"developer/algolia-search.md"}',t={},p=e("",9),o=[p];function r(l,c,i,u,k,d){return s(),n("div",null,o)}var g=a(t,[["render",r]]);export{y as __pageData,g as default};
diff --git a/assets/developer_basics.md.934280ae.js b/assets/developer_basics.md.5633887d.js
similarity index 98%
rename from assets/developer_basics.md.934280ae.js
rename to assets/developer_basics.md.5633887d.js
index a955f6b8..b9e8b670 100644
--- a/assets/developer_basics.md.934280ae.js
+++ b/assets/developer_basics.md.5633887d.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,o as s,a as t}from"./app.32957174.js";const f='{"title":"App Config: Basics","description":"","frontmatter":{},"headers":[{"level":2,"title":"base","slug":"base"},{"level":2,"title":"lang","slug":"lang"},{"level":2,"title":"title","slug":"title"},{"level":2,"title":"description","slug":"description"}],"relativePath":"developer/basics.md"}',n={},o=t(`

App Config: Basics

TIP

The config reference is incomplete since the config format may still receive further changes. For a complete reference of the current available options, refer to config.ts.

base

  • Type: string
  • Default: /

The base URL the site will be deployed at. You will need to set this if you plan to deploy your site under a sub path, for example, GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/, then you should set base to '/bar/'. It should always start and end with a slash.

The base is automatically prepended to all the URLs that start with / in other options, so you only need to specify it once.

module.exports = {
+import{_ as e,c as a,o as s,a as t}from"./app.0bd0e305.js";const f='{"title":"App Config: Basics","description":"","frontmatter":{},"headers":[{"level":2,"title":"base","slug":"base"},{"level":2,"title":"lang","slug":"lang"},{"level":2,"title":"title","slug":"title"},{"level":2,"title":"description","slug":"description"}],"relativePath":"developer/basics.md"}',n={},o=t(`

App Config: Basics

TIP

The config reference is incomplete since the config format may still receive further changes. For a complete reference of the current available options, refer to config.ts.

base

  • Type: string
  • Default: /

The base URL the site will be deployed at. You will need to set this if you plan to deploy your site under a sub path, for example, GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/, then you should set base to '/bar/'. It should always start and end with a slash.

The base is automatically prepended to all the URLs that start with / in other options, so you only need to specify it once.

module.exports = {
   base: '/base/'
 }
 

lang

  • Type: string
  • Default: en-US

The lang attribute for the site. This will render as a <html lang="en-US"> tag in the page HTML.

module.exports = {
diff --git a/assets/developer_basics.md.934280ae.lean.js b/assets/developer_basics.md.5633887d.lean.js
similarity index 87%
rename from assets/developer_basics.md.934280ae.lean.js
rename to assets/developer_basics.md.5633887d.lean.js
index a8b733a3..52022f26 100644
--- a/assets/developer_basics.md.934280ae.lean.js
+++ b/assets/developer_basics.md.5633887d.lean.js
@@ -1 +1 @@
-import{_ as e,c as a,o as s,a as t}from"./app.32957174.js";const f='{"title":"App Config: Basics","description":"","frontmatter":{},"headers":[{"level":2,"title":"base","slug":"base"},{"level":2,"title":"lang","slug":"lang"},{"level":2,"title":"title","slug":"title"},{"level":2,"title":"description","slug":"description"}],"relativePath":"developer/basics.md"}',n={},o=t("",19),i=[o];function p(l,r,c,d,u,h){return s(),a("div",null,i)}var b=e(n,[["render",p]]);export{f as __pageData,b as default};
+import{_ as e,c as a,o as s,a as t}from"./app.0bd0e305.js";const f='{"title":"App Config: Basics","description":"","frontmatter":{},"headers":[{"level":2,"title":"base","slug":"base"},{"level":2,"title":"lang","slug":"lang"},{"level":2,"title":"title","slug":"title"},{"level":2,"title":"description","slug":"description"}],"relativePath":"developer/basics.md"}',n={},o=t("",19),i=[o];function p(l,r,c,d,u,h){return s(),a("div",null,i)}var b=e(n,[["render",p]]);export{f as __pageData,b as default};
diff --git a/assets/developer_carbon-ads.md.550ab585.js b/assets/developer_carbon-ads.md.3455e72e.js
similarity index 96%
rename from assets/developer_carbon-ads.md.550ab585.js
rename to assets/developer_carbon-ads.md.3455e72e.js
index 438eb520..77d6114a 100644
--- a/assets/developer_carbon-ads.md.550ab585.js
+++ b/assets/developer_carbon-ads.md.3455e72e.js
@@ -1,4 +1,4 @@
-import{_ as n,c as a,o as s,a as e}from"./app.32957174.js";const h='{"title":"Theme Config: Carbon Ads","description":"","frontmatter":{},"headers":[],"relativePath":"developer/carbon-ads.md"}',t={},o=e(`

Theme Config: Carbon Ads

VitePress has built in native support for Carbon Ads. By defining the Carbon Ads credentials in config, VitePress will display ads on the page.

module.exports = {
+import{_ as n,c as a,o as s,a as e}from"./app.0bd0e305.js";const h='{"title":"Theme Config: Carbon Ads","description":"","frontmatter":{},"headers":[],"relativePath":"developer/carbon-ads.md"}',t={},o=e(`

Theme Config: Carbon Ads

VitePress has built in native support for Carbon Ads. By defining the Carbon Ads credentials in config, VitePress will display ads on the page.

module.exports = {
   themeConfig: {
     carbonAds: {
       carbon: 'your-carbon-key',
diff --git a/assets/developer_carbon-ads.md.550ab585.lean.js b/assets/developer_carbon-ads.md.3455e72e.lean.js
similarity index 80%
rename from assets/developer_carbon-ads.md.550ab585.lean.js
rename to assets/developer_carbon-ads.md.3455e72e.lean.js
index 250b340c..785c5d0a 100644
--- a/assets/developer_carbon-ads.md.550ab585.lean.js
+++ b/assets/developer_carbon-ads.md.3455e72e.lean.js
@@ -1 +1 @@
-import{_ as n,c as a,o as s,a as e}from"./app.32957174.js";const h='{"title":"Theme Config: Carbon Ads","description":"","frontmatter":{},"headers":[],"relativePath":"developer/carbon-ads.md"}',t={},o=e("",3),p=[o];function r(c,l,i,d,u,_){return s(),a("div",null,p)}var f=n(t,[["render",r]]);export{h as __pageData,f as default};
+import{_ as n,c as a,o as s,a as e}from"./app.0bd0e305.js";const h='{"title":"Theme Config: Carbon Ads","description":"","frontmatter":{},"headers":[],"relativePath":"developer/carbon-ads.md"}',t={},o=e("",3),p=[o];function r(c,l,i,d,u,_){return s(),a("div",null,p)}var f=n(t,[["render",r]]);export{h as __pageData,f as default};
diff --git a/assets/developer_homepage.md.7e908f8c.js b/assets/developer_homepage.md.5fcd3da5.js
similarity index 97%
rename from assets/developer_homepage.md.7e908f8c.js
rename to assets/developer_homepage.md.5fcd3da5.js
index 41aa3e6c..c18c6b14 100644
--- a/assets/developer_homepage.md.7e908f8c.js
+++ b/assets/developer_homepage.md.5fcd3da5.js
@@ -1,4 +1,4 @@
-import{_ as n,c as a,o as s,a as e}from"./app.32957174.js";const h='{"title":"Theme Config: Homepage","description":"","frontmatter":{},"headers":[],"relativePath":"developer/homepage.md"}',t={},o=e(`

Theme Config: Homepage

VitePress provides a homepage layout. To use it, specify home: true plus some other metadata in your root index.md's YAML frontmatter. This is an example of how it works:

---
+import{_ as n,c as a,o as s,a as e}from"./app.0bd0e305.js";const h='{"title":"Theme Config: Homepage","description":"","frontmatter":{},"headers":[],"relativePath":"developer/homepage.md"}',t={},o=e(`

Theme Config: Homepage

VitePress provides a homepage layout. To use it, specify home: true plus some other metadata in your root index.md's YAML frontmatter. This is an example of how it works:

---
 home: true
 heroImage: /logo.png
 heroAlt: Logo image
diff --git a/assets/developer_homepage.md.7e908f8c.lean.js b/assets/developer_homepage.md.5fcd3da5.lean.js
similarity index 80%
rename from assets/developer_homepage.md.7e908f8c.lean.js
rename to assets/developer_homepage.md.5fcd3da5.lean.js
index 52021931..81864449 100644
--- a/assets/developer_homepage.md.7e908f8c.lean.js
+++ b/assets/developer_homepage.md.5fcd3da5.lean.js
@@ -1 +1 @@
-import{_ as n,c as a,o as s,a as e}from"./app.32957174.js";const h='{"title":"Theme Config: Homepage","description":"","frontmatter":{},"headers":[],"relativePath":"developer/homepage.md"}',t={},o=e("",3),p=[o];function c(u,l,i,r,k,d){return s(),a("div",null,p)}var _=n(t,[["render",c]]);export{h as __pageData,_ as default};
+import{_ as n,c as a,o as s,a as e}from"./app.0bd0e305.js";const h='{"title":"Theme Config: Homepage","description":"","frontmatter":{},"headers":[],"relativePath":"developer/homepage.md"}',t={},o=e("",3),p=[o];function c(u,l,i,r,k,d){return s(),a("div",null,p)}var _=n(t,[["render",c]]);export{h as __pageData,_ as default};
diff --git a/assets/en_US_developer_algolia-search.md.62e6f034.js b/assets/en_US_developer_algolia-search.md.8cc4bbdc.js
similarity index 87%
rename from assets/en_US_developer_algolia-search.md.62e6f034.js
rename to assets/en_US_developer_algolia-search.md.8cc4bbdc.js
index f4b9c0a6..43b6eb6f 100644
--- a/assets/en_US_developer_algolia-search.md.62e6f034.js
+++ b/assets/en_US_developer_algolia-search.md.8cc4bbdc.js
@@ -1 +1 @@
-import{_ as a,c as o,o as t,b as e,d as r}from"./app.32957174.js";const m='{"title":"Theme Config: Algolia Search","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/algolia-search.md"}',c={},s=e("h1",{id:"theme-config-algolia-search",tabindex:"-1"},[r("Theme Config: Algolia Search "),e("a",{class:"header-anchor",href:"#theme-config-algolia-search","aria-hidden":"true"},"#")],-1),i=[s];function n(l,h,d,_,f,g){return t(),o("div",null,i)}var u=a(c,[["render",n]]);export{m as __pageData,u as default};
+import{_ as a,c as o,o as t,b as e,d as r}from"./app.0bd0e305.js";const m='{"title":"Theme Config: Algolia Search","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/algolia-search.md"}',c={},s=e("h1",{id:"theme-config-algolia-search",tabindex:"-1"},[r("Theme Config: Algolia Search "),e("a",{class:"header-anchor",href:"#theme-config-algolia-search","aria-hidden":"true"},"#")],-1),i=[s];function n(l,h,d,_,f,g){return t(),o("div",null,i)}var u=a(c,[["render",n]]);export{m as __pageData,u as default};
diff --git a/assets/en_US_developer_algolia-search.md.62e6f034.lean.js b/assets/en_US_developer_algolia-search.md.8cc4bbdc.lean.js
similarity index 87%
rename from assets/en_US_developer_algolia-search.md.62e6f034.lean.js
rename to assets/en_US_developer_algolia-search.md.8cc4bbdc.lean.js
index f4b9c0a6..43b6eb6f 100644
--- a/assets/en_US_developer_algolia-search.md.62e6f034.lean.js
+++ b/assets/en_US_developer_algolia-search.md.8cc4bbdc.lean.js
@@ -1 +1 @@
-import{_ as a,c as o,o as t,b as e,d as r}from"./app.32957174.js";const m='{"title":"Theme Config: Algolia Search","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/algolia-search.md"}',c={},s=e("h1",{id:"theme-config-algolia-search",tabindex:"-1"},[r("Theme Config: Algolia Search "),e("a",{class:"header-anchor",href:"#theme-config-algolia-search","aria-hidden":"true"},"#")],-1),i=[s];function n(l,h,d,_,f,g){return t(),o("div",null,i)}var u=a(c,[["render",n]]);export{m as __pageData,u as default};
+import{_ as a,c as o,o as t,b as e,d as r}from"./app.0bd0e305.js";const m='{"title":"Theme Config: Algolia Search","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/algolia-search.md"}',c={},s=e("h1",{id:"theme-config-algolia-search",tabindex:"-1"},[r("Theme Config: Algolia Search "),e("a",{class:"header-anchor",href:"#theme-config-algolia-search","aria-hidden":"true"},"#")],-1),i=[s];function n(l,h,d,_,f,g){return t(),o("div",null,i)}var u=a(c,[["render",n]]);export{m as __pageData,u as default};
diff --git a/assets/en_US_developer_basics.md.4b39fb0b.js b/assets/en_US_developer_basics.md.413898e4.js
similarity index 86%
rename from assets/en_US_developer_basics.md.4b39fb0b.js
rename to assets/en_US_developer_basics.md.413898e4.js
index 70239e84..6bea5191 100644
--- a/assets/en_US_developer_basics.md.4b39fb0b.js
+++ b/assets/en_US_developer_basics.md.413898e4.js
@@ -1 +1 @@
-import{_ as a,c as s,o as t,b as e,d as c}from"./app.32957174.js";const m='{"title":"App Config: Basics","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/basics.md"}',o={},r=e("h1",{id:"app-config-basics",tabindex:"-1"},[c("App Config: Basics "),e("a",{class:"header-anchor",href:"#app-config-basics","aria-hidden":"true"},"#")],-1),i=[r];function n(d,p,_,f,h,l){return t(),s("div",null,i)}var u=a(o,[["render",n]]);export{m as __pageData,u as default};
+import{_ as a,c as s,o as t,b as e,d as c}from"./app.0bd0e305.js";const m='{"title":"App Config: Basics","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/basics.md"}',o={},r=e("h1",{id:"app-config-basics",tabindex:"-1"},[c("App Config: Basics "),e("a",{class:"header-anchor",href:"#app-config-basics","aria-hidden":"true"},"#")],-1),i=[r];function n(d,p,_,f,h,l){return t(),s("div",null,i)}var u=a(o,[["render",n]]);export{m as __pageData,u as default};
diff --git a/assets/en_US_developer_basics.md.4b39fb0b.lean.js b/assets/en_US_developer_basics.md.413898e4.lean.js
similarity index 86%
rename from assets/en_US_developer_basics.md.4b39fb0b.lean.js
rename to assets/en_US_developer_basics.md.413898e4.lean.js
index 70239e84..6bea5191 100644
--- a/assets/en_US_developer_basics.md.4b39fb0b.lean.js
+++ b/assets/en_US_developer_basics.md.413898e4.lean.js
@@ -1 +1 @@
-import{_ as a,c as s,o as t,b as e,d as c}from"./app.32957174.js";const m='{"title":"App Config: Basics","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/basics.md"}',o={},r=e("h1",{id:"app-config-basics",tabindex:"-1"},[c("App Config: Basics "),e("a",{class:"header-anchor",href:"#app-config-basics","aria-hidden":"true"},"#")],-1),i=[r];function n(d,p,_,f,h,l){return t(),s("div",null,i)}var u=a(o,[["render",n]]);export{m as __pageData,u as default};
+import{_ as a,c as s,o as t,b as e,d as c}from"./app.0bd0e305.js";const m='{"title":"App Config: Basics","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/basics.md"}',o={},r=e("h1",{id:"app-config-basics",tabindex:"-1"},[c("App Config: Basics "),e("a",{class:"header-anchor",href:"#app-config-basics","aria-hidden":"true"},"#")],-1),i=[r];function n(d,p,_,f,h,l){return t(),s("div",null,i)}var u=a(o,[["render",n]]);export{m as __pageData,u as default};
diff --git a/assets/en_US_developer_carbon-ads.md.c3d13f3d.js b/assets/en_US_developer_carbon-ads.md.6c85c102.js
similarity index 87%
rename from assets/en_US_developer_carbon-ads.md.c3d13f3d.js
rename to assets/en_US_developer_carbon-ads.md.6c85c102.js
index f84242dd..66a7796f 100644
--- a/assets/en_US_developer_carbon-ads.md.c3d13f3d.js
+++ b/assets/en_US_developer_carbon-ads.md.6c85c102.js
@@ -1 +1 @@
-import{_ as a,c as o,o as t,b as e,d as r}from"./app.32957174.js";const b='{"title":"Theme Config: Carbon Ads","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/carbon-ads.md"}',n={},s=e("h1",{id:"theme-config-carbon-ads",tabindex:"-1"},[r("Theme Config: Carbon Ads "),e("a",{class:"header-anchor",href:"#theme-config-carbon-ads","aria-hidden":"true"},"#")],-1),c=[s];function d(i,_,h,f,p,l){return t(),o("div",null,c)}var u=a(n,[["render",d]]);export{b as __pageData,u as default};
+import{_ as a,c as o,o as t,b as e,d as r}from"./app.0bd0e305.js";const b='{"title":"Theme Config: Carbon Ads","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/carbon-ads.md"}',n={},s=e("h1",{id:"theme-config-carbon-ads",tabindex:"-1"},[r("Theme Config: Carbon Ads "),e("a",{class:"header-anchor",href:"#theme-config-carbon-ads","aria-hidden":"true"},"#")],-1),c=[s];function d(i,_,h,f,p,l){return t(),o("div",null,c)}var u=a(n,[["render",d]]);export{b as __pageData,u as default};
diff --git a/assets/en_US_developer_carbon-ads.md.c3d13f3d.lean.js b/assets/en_US_developer_carbon-ads.md.6c85c102.lean.js
similarity index 87%
rename from assets/en_US_developer_carbon-ads.md.c3d13f3d.lean.js
rename to assets/en_US_developer_carbon-ads.md.6c85c102.lean.js
index f84242dd..66a7796f 100644
--- a/assets/en_US_developer_carbon-ads.md.c3d13f3d.lean.js
+++ b/assets/en_US_developer_carbon-ads.md.6c85c102.lean.js
@@ -1 +1 @@
-import{_ as a,c as o,o as t,b as e,d as r}from"./app.32957174.js";const b='{"title":"Theme Config: Carbon Ads","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/carbon-ads.md"}',n={},s=e("h1",{id:"theme-config-carbon-ads",tabindex:"-1"},[r("Theme Config: Carbon Ads "),e("a",{class:"header-anchor",href:"#theme-config-carbon-ads","aria-hidden":"true"},"#")],-1),c=[s];function d(i,_,h,f,p,l){return t(),o("div",null,c)}var u=a(n,[["render",d]]);export{b as __pageData,u as default};
+import{_ as a,c as o,o as t,b as e,d as r}from"./app.0bd0e305.js";const b='{"title":"Theme Config: Carbon Ads","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/carbon-ads.md"}',n={},s=e("h1",{id:"theme-config-carbon-ads",tabindex:"-1"},[r("Theme Config: Carbon Ads "),e("a",{class:"header-anchor",href:"#theme-config-carbon-ads","aria-hidden":"true"},"#")],-1),c=[s];function d(i,_,h,f,p,l){return t(),o("div",null,c)}var u=a(n,[["render",d]]);export{b as __pageData,u as default};
diff --git a/assets/en_US_developer_homepage.md.8c3b632f.js b/assets/en_US_developer_homepage.md.04079155.js
similarity index 87%
rename from assets/en_US_developer_homepage.md.8c3b632f.js
rename to assets/en_US_developer_homepage.md.04079155.js
index 8a5d812a..5abea70f 100644
--- a/assets/en_US_developer_homepage.md.8c3b632f.js
+++ b/assets/en_US_developer_homepage.md.04079155.js
@@ -1 +1 @@
-import{_ as a,c as o,o as t,b as e,d as r}from"./app.32957174.js";const l='{"title":"Theme Config: Homepage","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/homepage.md"}',n={},s=e("h1",{id:"theme-config-homepage",tabindex:"-1"},[r("Theme Config: Homepage "),e("a",{class:"header-anchor",href:"#theme-config-homepage","aria-hidden":"true"},"#")],-1),c=[s];function d(i,h,p,m,_,f){return t(),o("div",null,c)}var u=a(n,[["render",d]]);export{l as __pageData,u as default};
+import{_ as a,c as o,o as t,b as e,d as r}from"./app.0bd0e305.js";const l='{"title":"Theme Config: Homepage","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/homepage.md"}',n={},s=e("h1",{id:"theme-config-homepage",tabindex:"-1"},[r("Theme Config: Homepage "),e("a",{class:"header-anchor",href:"#theme-config-homepage","aria-hidden":"true"},"#")],-1),c=[s];function d(i,h,p,m,_,f){return t(),o("div",null,c)}var u=a(n,[["render",d]]);export{l as __pageData,u as default};
diff --git a/assets/en_US_developer_homepage.md.8c3b632f.lean.js b/assets/en_US_developer_homepage.md.04079155.lean.js
similarity index 87%
rename from assets/en_US_developer_homepage.md.8c3b632f.lean.js
rename to assets/en_US_developer_homepage.md.04079155.lean.js
index 8a5d812a..5abea70f 100644
--- a/assets/en_US_developer_homepage.md.8c3b632f.lean.js
+++ b/assets/en_US_developer_homepage.md.04079155.lean.js
@@ -1 +1 @@
-import{_ as a,c as o,o as t,b as e,d as r}from"./app.32957174.js";const l='{"title":"Theme Config: Homepage","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/homepage.md"}',n={},s=e("h1",{id:"theme-config-homepage",tabindex:"-1"},[r("Theme Config: Homepage "),e("a",{class:"header-anchor",href:"#theme-config-homepage","aria-hidden":"true"},"#")],-1),c=[s];function d(i,h,p,m,_,f){return t(),o("div",null,c)}var u=a(n,[["render",d]]);export{l as __pageData,u as default};
+import{_ as a,c as o,o as t,b as e,d as r}from"./app.0bd0e305.js";const l='{"title":"Theme Config: Homepage","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/homepage.md"}',n={},s=e("h1",{id:"theme-config-homepage",tabindex:"-1"},[r("Theme Config: Homepage "),e("a",{class:"header-anchor",href:"#theme-config-homepage","aria-hidden":"true"},"#")],-1),c=[s];function d(i,h,p,m,_,f){return t(),o("div",null,c)}var u=a(n,[["render",d]]);export{l as __pageData,u as default};
diff --git a/assets/en_US_guide_agent.md.82a9d62c.js b/assets/en_US_guide_agent.md.743f0cf3.js
similarity index 99%
rename from assets/en_US_guide_agent.md.82a9d62c.js
rename to assets/en_US_guide_agent.md.743f0cf3.js
index 040611b7..88726858 100644
--- a/assets/en_US_guide_agent.md.82a9d62c.js
+++ b/assets/en_US_guide_agent.md.743f0cf3.js
@@ -1,4 +1,4 @@
-import{_ as n,c as e,o as a,a as t}from"./app.32957174.js";const b='{"title":"Install Agent using one-click script","description":"","frontmatter":{},"headers":[{"level":2,"title":"Install Agent using one-click script","slug":"install-agent-using-one-click-script"},{"level":3,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":3,"title":"Linux\u4E00\u952E\u5B89\u88C5","slug":"linux\u4E00\u952E\u5B89\u88C5"},{"level":3,"title":"Windows\u4E00\u952E\u5B89\u88C5","slug":"windows\u4E00\u952E\u5B89\u88C5"},{"level":2,"title":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent","slug":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5agent"},{"level":3,"title":"Linux\u5B89\u88C5Agent","slug":"linux\u5B89\u88C5agent"},{"level":3,"title":"Windows\u5B89\u88C5Agent","slug":"windows\u5B89\u88C5agent"},{"level":3,"title":"OpenWRT\u5B89\u88C5Agent","slug":"openwrt\u5B89\u88C5agent"},{"level":2,"title":"\u81EA\u5B9A\u4E49Agent\u76D1\u63A7\u9879\u76EE","slug":"\u81EA\u5B9A\u4E49agent\u76D1\u63A7\u9879\u76EE"}],"relativePath":"en_US/guide/agent.md"}',s={},i=t(`

\u54EA\u5412\u76D1\u63A7\u7684\u88AB\u63A7\u7AEF\u670D\u52A1\u88AB\u79F0\u4E3AAgent\uFF0C\u672C\u6587\u6863\u5C06\u4ECB\u7ECD\u5982\u4F55\u5728\u88AB\u63A7\u7AEF\u670D\u52A1\u5668\u4E0A\u5B89\u88C5Agent\uFF0C\u5E76\u4E0EDashboard\u8FDE\u63A5

Install Agent using one-click script

\u76EE\u524D\u54EA\u5412\u76D1\u63A7\u5DF2\u652F\u6301\u5728WIndows\u548CLinux\u4E0A\u4E00\u952E\u5B89\u88C5Agent\uFF0C\u9075\u5FAA\u672C\u6587\u6863\u7684\u6B65\u9AA4\uFF0C\u4F60\u53EF\u4EE5\u5F88\u8F7B\u677E\u7684\u5728\u670D\u52A1\u5668\u4E0A\u90E8\u7F72\u5B83

\u51C6\u5907\u5DE5\u4F5C


\u4F60\u9700\u8981\u63D0\u524D\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u8BBE\u7F6E\u597D\u901A\u4FE1\u57DF\u540D\uFF0C\u6B64\u57DF\u540D\u4E0D\u53EF\u4EE5\u63A5\u5165CDN\uFF0C\u8FD9\u91CC\u4EE5\u524D\u9762\u63D0\u5230\u8FC7\u7684\u793A\u4F8B\u901A\u4FE1\u57DF\u540D \u201Cdata.example.com\u201D \u6765\u505A\u6F14\u793A
\u8FDB\u5165\u540E\u53F0\u7BA1\u7406\u9762\u677F\uFF0C\u8F6C\u5230\u201C\u8BBE\u7F6E\u201D\u9875\uFF0C\u5728\u201C\u672A\u63A5\u5165CDN\u7684\u9762\u677F\u670D\u52A1\u5668\u57DF\u540D/IP\u201D\u9879\u4E2D\u586B\u5165\u901A\u4FE1\u57DF\u540D\uFF0C\u7136\u540E\u70B9\u51FB"\u4FDD\u5B58"

Linux\u4E00\u952E\u5B89\u88C5


  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u70B9\u51FB\u65B0\u6DFB\u52A0\u7684\u670D\u52A1\u5668\u65C1\uFF0C\u7EFF\u8272\u7684Linux\u56FE\u6807\u6309\u94AE\uFF0C\u590D\u5236\u4E00\u952E\u5B89\u88C5\u547D\u4EE4
  • \u5728\u88AB\u63A7\u7AEF\u670D\u52A1\u5668\u4E2D\u8FD0\u884C\u590D\u5236\u7684\u4E00\u952E\u5B89\u88C5\u547D\u4EE4\uFF0C\u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DE\u5230Dashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF

Windows\u4E00\u952E\u5B89\u88C5


  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u70B9\u51FB\u65B0\u6DFB\u52A0\u7684\u670D\u52A1\u5668\u65C1\uFF0C\u7EFF\u8272\u7684Windows\u56FE\u6807\u6309\u94AE\uFF0C\u590D\u5236\u4E00\u952E\u5B89\u88C5\u547D\u4EE4
  • \u8FDB\u5165Windows\u670D\u52A1\u5668\uFF0C\u8FD0\u884CPowerShell\uFF0C\u5728PowerShell\u4E2D\u8FD0\u884C\u590D\u5236\u7684\u5B89\u88C5\u547D\u4EE4
  • \u5982\u9047\u5230\u786E\u8BA4\u300C\u6267\u884C\u7B56\u7565\u53D8\u66F4\u300D\u8BF7\u9009\u62E9 Y
  • \u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DEDashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF



\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent



Linux\u5B89\u88C5Agent


  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u5728\u88AB\u63A7\u670D\u52A1\u5668\u4E2D\uFF0C\u8FD0\u884C\u811A\u672C\uFF08\u4F4D\u4E8E\u4E2D\u56FD\u5927\u9646\u7684\u670D\u52A1\u5668\u8BF7\u4F7F\u7528\u955C\u50CF\uFF09\uFF1A
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
+import{_ as n,c as e,o as a,a as t}from"./app.0bd0e305.js";const b='{"title":"Install Agent using one-click script","description":"","frontmatter":{},"headers":[{"level":2,"title":"Install Agent using one-click script","slug":"install-agent-using-one-click-script"},{"level":3,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":3,"title":"Linux\u4E00\u952E\u5B89\u88C5","slug":"linux\u4E00\u952E\u5B89\u88C5"},{"level":3,"title":"Windows\u4E00\u952E\u5B89\u88C5","slug":"windows\u4E00\u952E\u5B89\u88C5"},{"level":2,"title":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent","slug":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5agent"},{"level":3,"title":"Linux\u5B89\u88C5Agent","slug":"linux\u5B89\u88C5agent"},{"level":3,"title":"Windows\u5B89\u88C5Agent","slug":"windows\u5B89\u88C5agent"},{"level":3,"title":"OpenWRT\u5B89\u88C5Agent","slug":"openwrt\u5B89\u88C5agent"},{"level":2,"title":"\u81EA\u5B9A\u4E49Agent\u76D1\u63A7\u9879\u76EE","slug":"\u81EA\u5B9A\u4E49agent\u76D1\u63A7\u9879\u76EE"}],"relativePath":"en_US/guide/agent.md"}',s={},i=t(`

\u54EA\u5412\u76D1\u63A7\u7684\u88AB\u63A7\u7AEF\u670D\u52A1\u88AB\u79F0\u4E3AAgent\uFF0C\u672C\u6587\u6863\u5C06\u4ECB\u7ECD\u5982\u4F55\u5728\u88AB\u63A7\u7AEF\u670D\u52A1\u5668\u4E0A\u5B89\u88C5Agent\uFF0C\u5E76\u4E0EDashboard\u8FDE\u63A5

Install Agent using one-click script

\u76EE\u524D\u54EA\u5412\u76D1\u63A7\u5DF2\u652F\u6301\u5728WIndows\u548CLinux\u4E0A\u4E00\u952E\u5B89\u88C5Agent\uFF0C\u9075\u5FAA\u672C\u6587\u6863\u7684\u6B65\u9AA4\uFF0C\u4F60\u53EF\u4EE5\u5F88\u8F7B\u677E\u7684\u5728\u670D\u52A1\u5668\u4E0A\u90E8\u7F72\u5B83

\u51C6\u5907\u5DE5\u4F5C


\u4F60\u9700\u8981\u63D0\u524D\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u8BBE\u7F6E\u597D\u901A\u4FE1\u57DF\u540D\uFF0C\u6B64\u57DF\u540D\u4E0D\u53EF\u4EE5\u63A5\u5165CDN\uFF0C\u8FD9\u91CC\u4EE5\u524D\u9762\u63D0\u5230\u8FC7\u7684\u793A\u4F8B\u901A\u4FE1\u57DF\u540D \u201Cdata.example.com\u201D \u6765\u505A\u6F14\u793A
\u8FDB\u5165\u540E\u53F0\u7BA1\u7406\u9762\u677F\uFF0C\u8F6C\u5230\u201C\u8BBE\u7F6E\u201D\u9875\uFF0C\u5728\u201C\u672A\u63A5\u5165CDN\u7684\u9762\u677F\u670D\u52A1\u5668\u57DF\u540D/IP\u201D\u9879\u4E2D\u586B\u5165\u901A\u4FE1\u57DF\u540D\uFF0C\u7136\u540E\u70B9\u51FB"\u4FDD\u5B58"

Linux\u4E00\u952E\u5B89\u88C5


  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u70B9\u51FB\u65B0\u6DFB\u52A0\u7684\u670D\u52A1\u5668\u65C1\uFF0C\u7EFF\u8272\u7684Linux\u56FE\u6807\u6309\u94AE\uFF0C\u590D\u5236\u4E00\u952E\u5B89\u88C5\u547D\u4EE4
  • \u5728\u88AB\u63A7\u7AEF\u670D\u52A1\u5668\u4E2D\u8FD0\u884C\u590D\u5236\u7684\u4E00\u952E\u5B89\u88C5\u547D\u4EE4\uFF0C\u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DE\u5230Dashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF

Windows\u4E00\u952E\u5B89\u88C5


  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u70B9\u51FB\u65B0\u6DFB\u52A0\u7684\u670D\u52A1\u5668\u65C1\uFF0C\u7EFF\u8272\u7684Windows\u56FE\u6807\u6309\u94AE\uFF0C\u590D\u5236\u4E00\u952E\u5B89\u88C5\u547D\u4EE4
  • \u8FDB\u5165Windows\u670D\u52A1\u5668\uFF0C\u8FD0\u884CPowerShell\uFF0C\u5728PowerShell\u4E2D\u8FD0\u884C\u590D\u5236\u7684\u5B89\u88C5\u547D\u4EE4
  • \u5982\u9047\u5230\u786E\u8BA4\u300C\u6267\u884C\u7B56\u7565\u53D8\u66F4\u300D\u8BF7\u9009\u62E9 Y
  • \u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DEDashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF



\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent



Linux\u5B89\u88C5Agent


  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u5728\u88AB\u63A7\u670D\u52A1\u5668\u4E2D\uFF0C\u8FD0\u884C\u811A\u672C\uFF08\u4F4D\u4E8E\u4E2D\u56FD\u5927\u9646\u7684\u670D\u52A1\u5668\u8BF7\u4F7F\u7528\u955C\u50CF\uFF09\uFF1A
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
 
 
  • \u9009\u62E9\u201C\u5B89\u88C5\u76D1\u63A7Agent\u201D
  • \u8F93\u5165\u901A\u4FE1\u57DF\u540D\uFF0C\u5982\uFF1A\u201Ddata.example.com\u201C
  • \u8F93\u5165\u9762\u677F\u901A\u4FE1\u7AEF\u53E3\uFF0C\u9ED8\u8BA4\u4E3A5555
  • \u8F93\u5165Agent\u5BC6\u94A5\uFF0CAgent\u5BC6\u94A5\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u670D\u52A1\u5668\u65F6\u751F\u6210\uFF0C\u53EF\u4EE5\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u7684\u201C\u4E3B\u673A\u201D\u9875\u4E2D\u627E\u5230
  • \u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DEDashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF

Windows\u5B89\u88C5Agent


OpenWRT\u5B89\u88C5Agent


\u5982\u4F55\u4F7F \u65E7\u7248OpenWRT/LEDE \u81EA\u542F\u52A8

\u5982\u4F55\u4F7F \u65B0\u7248OpenWRT \u81EA\u542F\u52A8\uFF1F\u6765\u81EA @\u827E\u65AF\u5FB7\u65AF

  • \u9996\u5148\u5728 release \u4E0B\u8F7D\u5BF9\u5E94\u7684\u4E8C\u8FDB\u5236\u89E3\u538B zip \u5305\u540E\u653E\u7F6E\u5230 /root
  • \u8FD0\u884C chmod +x /root/nezha-agent \u8D4B\u4E88\u6267\u884C\u6743\u9650\uFF0C\u7136\u540E\u521B\u5EFA /etc/init.d/nezha-service\uFF1A
#!/bin/sh /etc/rc.common
 
diff --git a/assets/en_US_guide_agent.md.82a9d62c.lean.js b/assets/en_US_guide_agent.md.743f0cf3.lean.js
similarity index 94%
rename from assets/en_US_guide_agent.md.82a9d62c.lean.js
rename to assets/en_US_guide_agent.md.743f0cf3.lean.js
index 7ea1a44e..2f7d1ce6 100644
--- a/assets/en_US_guide_agent.md.82a9d62c.lean.js
+++ b/assets/en_US_guide_agent.md.743f0cf3.lean.js
@@ -1 +1 @@
-import{_ as n,c as e,o as a,a as t}from"./app.32957174.js";const b='{"title":"Install Agent using one-click script","description":"","frontmatter":{},"headers":[{"level":2,"title":"Install Agent using one-click script","slug":"install-agent-using-one-click-script"},{"level":3,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":3,"title":"Linux\u4E00\u952E\u5B89\u88C5","slug":"linux\u4E00\u952E\u5B89\u88C5"},{"level":3,"title":"Windows\u4E00\u952E\u5B89\u88C5","slug":"windows\u4E00\u952E\u5B89\u88C5"},{"level":2,"title":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent","slug":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5agent"},{"level":3,"title":"Linux\u5B89\u88C5Agent","slug":"linux\u5B89\u88C5agent"},{"level":3,"title":"Windows\u5B89\u88C5Agent","slug":"windows\u5B89\u88C5agent"},{"level":3,"title":"OpenWRT\u5B89\u88C5Agent","slug":"openwrt\u5B89\u88C5agent"},{"level":2,"title":"\u81EA\u5B9A\u4E49Agent\u76D1\u63A7\u9879\u76EE","slug":"\u81EA\u5B9A\u4E49agent\u76D1\u63A7\u9879\u76EE"}],"relativePath":"en_US/guide/agent.md"}',s={},i=t("",38),l=[i];function o(r,c,p,d,h,u){return a(),e("div",null,l)}var k=n(s,[["render",o]]);export{b as __pageData,k as default};
+import{_ as n,c as e,o as a,a as t}from"./app.0bd0e305.js";const b='{"title":"Install Agent using one-click script","description":"","frontmatter":{},"headers":[{"level":2,"title":"Install Agent using one-click script","slug":"install-agent-using-one-click-script"},{"level":3,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":3,"title":"Linux\u4E00\u952E\u5B89\u88C5","slug":"linux\u4E00\u952E\u5B89\u88C5"},{"level":3,"title":"Windows\u4E00\u952E\u5B89\u88C5","slug":"windows\u4E00\u952E\u5B89\u88C5"},{"level":2,"title":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent","slug":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5agent"},{"level":3,"title":"Linux\u5B89\u88C5Agent","slug":"linux\u5B89\u88C5agent"},{"level":3,"title":"Windows\u5B89\u88C5Agent","slug":"windows\u5B89\u88C5agent"},{"level":3,"title":"OpenWRT\u5B89\u88C5Agent","slug":"openwrt\u5B89\u88C5agent"},{"level":2,"title":"\u81EA\u5B9A\u4E49Agent\u76D1\u63A7\u9879\u76EE","slug":"\u81EA\u5B9A\u4E49agent\u76D1\u63A7\u9879\u76EE"}],"relativePath":"en_US/guide/agent.md"}',s={},i=t("",38),l=[i];function o(r,c,p,d,h,u){return a(),e("div",null,l)}var k=n(s,[["render",o]]);export{b as __pageData,k as default};
diff --git a/assets/en_US_guide_dashboard.md.98ff237d.js b/assets/en_US_guide_dashboard.md.2126504b.js
similarity index 99%
rename from assets/en_US_guide_dashboard.md.98ff237d.js
rename to assets/en_US_guide_dashboard.md.2126504b.js
index b5ac90d4..283b3a68 100644
--- a/assets/en_US_guide_dashboard.md.98ff237d.js
+++ b/assets/en_US_guide_dashboard.md.2126504b.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,o as n,a as t}from"./app.32957174.js";const k='{"title":"Preparations","description":"","frontmatter":{},"headers":[{"level":3,"title":"Preparations","slug":"preparations"},{"level":3,"title":"\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5","slug":"\u83B7\u53D6github\u7684client-id\u548C\u5BC6\u94A5"},{"level":3,"title":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard","slug":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5dashboard"},{"level":3,"title":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406","slug":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},{"level":3,"title":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6ESSL","slug":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6Essl"}],"relativePath":"en_US/guide/dashboard.md"}',s={},o=t(`

Preparations


\u642D\u5EFA\u4E00\u4E2A\u54EA\u5412\u76D1\u63A7\uFF0C\u4F60\u9700\u8981\uFF1A

  1. \u4E00\u53F0\u53EF\u4EE5\u8FDE\u63A5\u516C\u7F51\u7684VPS\uFF0C\u9632\u706B\u5899\u548C\u5B89\u5168\u7B56\u7565\u9700\u8981\u653E\u884C8008\u548C5555\u7AEF\u53E3\uFF0C\u5426\u5219\u4F1A\u65E0\u6CD5\u8BBF\u95EE\u548C\u65E0\u6CD5\u63A5\u6536\u6570\u636E\u3002\u5355\u6838512MB\u5185\u5B58\u7684\u670D\u52A1\u5668\u914D\u7F6E\u5C31\u8DB3\u4EE5\u6EE1\u8DB3\u5927\u591A\u6570\u4F7F\u7528\u573A\u666F
  2. \u4E00\u4E2A\u5DF2\u7ECF\u8BBE\u7F6E\u597DA\u8BB0\u5F55\uFF0C\u6307\u5411Dashboard\u670D\u52A1\u5668ip\u7684\u57DF\u540D

TIP

\u5982\u679C\u4F60\u60F3\u4F7F\u7528CDN\uFF0C\u8BF7\u51C6\u5907\u4E24\u4E2A\u57DF\u540D\uFF0C\u4E00\u4E2A\u914D\u7F6E\u597DCDN\u7528\u4F5C\u516C\u5F00\u8BBF\u95EE\uFF0CCDN\u9700\u8981\u652F\u6301WebSocket\u534F\u8BAE\uFF1B\u53E6\u4E00\u4E2A\u57DF\u540D\u4E0D\u8981\u4F7F\u7528CDN\uFF0C\u7528\u4F5CAgent\u7AEF\u4E0EDashboard\u7684\u901A\u4FE1
\u672C\u6587\u6863\u5206\u522B\u4EE5 "cdn.example.com" \u548C "data.example.com" \u4E24\u4E2A\u57DF\u540D\u6765\u6F14\u793A

  1. \u4E00\u4E2AGithub/Gitee\u8D26\u53F7

\u672C\u6587\u6863\u5C06\u4EE5\u5B9D\u5854\u9762\u677F\u53CD\u4EE3\u9762\u677F\u7684\u8FC7\u7A0B\u4F5C\u4E3A\u8303\u4F8B\uFF0C\u968F\u7740\u672A\u6765\u7248\u672C\u7684\u53D8\u5316\uFF0C\u90E8\u5206\u529F\u80FD\u7684\u5165\u53E3\u53EF\u80FD\u4F1A\u53D1\u751F\u6539\u53D8\uFF0C\u672C\u6587\u6863\u4EC5\u4F9B\u53C2\u8003

\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5


\u54EA\u5412\u76D1\u63A7\u63A5\u5165Github\u548CGitee\u4F5C\u4E3A\u540E\u53F0\u7BA1\u7406\u5458\u8D26\u53F7

  • \u9996\u5148\u6211\u4EEC\u9700\u8981\u65B0\u5EFA\u4E00\u4E2A\u9A8C\u8BC1\u5E94\u7528\uFF0C\u4EE5Github\u4E3A\u4F8B\uFF0C\u767B\u9646Github\u540E\uFF0C\u6253\u5F00 https://github.com/settings/developers \uFF0C\u4F9D\u6B21\u9009\u62E9\u201COAuth Apps\u201D - \u201CNew OAuth App\u201D
    Application name - \u968F\u610F\u586B\u5199
    Homepage URL - \u586B\u5199\u9762\u677F\u7684\u8BBF\u95EE\u57DF\u540D\uFF0C\u5982\uFF1A"http://cdn.example.com"
    Authorization callback URL - \u586B\u5199\u56DE\u8C03\u5730\u5740\uFF0C\u5982\uFF1A"http://cdn.example.com/oauth2/callback"
  • \u70B9\u51FB\u201CRegister application\u201D
  • \u4FDD\u5B58\u9875\u9762\u4E2D\u7684Client ID\uFF0C\u7136\u540E\u70B9\u51FB \u201CGenerate a new client secret\u201C\uFF0C\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684Client Secret\uFF0C\u65B0\u5EFA\u7684\u5BC6\u94A5\u4EC5\u4F1A\u663E\u793A\u4E00\u6B21\uFF0C\u8BF7\u59A5\u5584\u4FDD\u5B58

\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard


  • \u5728\u9762\u677F\u670D\u52A1\u5668\u4E2D\uFF0C\u8FD0\u884C\u5B89\u88C5\u811A\u672C\uFF1A
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
+import{_ as e,c as a,o as n,a as t}from"./app.0bd0e305.js";const k='{"title":"Preparations","description":"","frontmatter":{},"headers":[{"level":3,"title":"Preparations","slug":"preparations"},{"level":3,"title":"\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5","slug":"\u83B7\u53D6github\u7684client-id\u548C\u5BC6\u94A5"},{"level":3,"title":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard","slug":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5dashboard"},{"level":3,"title":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406","slug":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},{"level":3,"title":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6ESSL","slug":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6Essl"}],"relativePath":"en_US/guide/dashboard.md"}',s={},o=t(`

Preparations


\u642D\u5EFA\u4E00\u4E2A\u54EA\u5412\u76D1\u63A7\uFF0C\u4F60\u9700\u8981\uFF1A

  1. \u4E00\u53F0\u53EF\u4EE5\u8FDE\u63A5\u516C\u7F51\u7684VPS\uFF0C\u9632\u706B\u5899\u548C\u5B89\u5168\u7B56\u7565\u9700\u8981\u653E\u884C8008\u548C5555\u7AEF\u53E3\uFF0C\u5426\u5219\u4F1A\u65E0\u6CD5\u8BBF\u95EE\u548C\u65E0\u6CD5\u63A5\u6536\u6570\u636E\u3002\u5355\u6838512MB\u5185\u5B58\u7684\u670D\u52A1\u5668\u914D\u7F6E\u5C31\u8DB3\u4EE5\u6EE1\u8DB3\u5927\u591A\u6570\u4F7F\u7528\u573A\u666F
  2. \u4E00\u4E2A\u5DF2\u7ECF\u8BBE\u7F6E\u597DA\u8BB0\u5F55\uFF0C\u6307\u5411Dashboard\u670D\u52A1\u5668ip\u7684\u57DF\u540D

TIP

\u5982\u679C\u4F60\u60F3\u4F7F\u7528CDN\uFF0C\u8BF7\u51C6\u5907\u4E24\u4E2A\u57DF\u540D\uFF0C\u4E00\u4E2A\u914D\u7F6E\u597DCDN\u7528\u4F5C\u516C\u5F00\u8BBF\u95EE\uFF0CCDN\u9700\u8981\u652F\u6301WebSocket\u534F\u8BAE\uFF1B\u53E6\u4E00\u4E2A\u57DF\u540D\u4E0D\u8981\u4F7F\u7528CDN\uFF0C\u7528\u4F5CAgent\u7AEF\u4E0EDashboard\u7684\u901A\u4FE1
\u672C\u6587\u6863\u5206\u522B\u4EE5 "cdn.example.com" \u548C "data.example.com" \u4E24\u4E2A\u57DF\u540D\u6765\u6F14\u793A

  1. \u4E00\u4E2AGithub/Gitee\u8D26\u53F7

\u672C\u6587\u6863\u5C06\u4EE5\u5B9D\u5854\u9762\u677F\u53CD\u4EE3\u9762\u677F\u7684\u8FC7\u7A0B\u4F5C\u4E3A\u8303\u4F8B\uFF0C\u968F\u7740\u672A\u6765\u7248\u672C\u7684\u53D8\u5316\uFF0C\u90E8\u5206\u529F\u80FD\u7684\u5165\u53E3\u53EF\u80FD\u4F1A\u53D1\u751F\u6539\u53D8\uFF0C\u672C\u6587\u6863\u4EC5\u4F9B\u53C2\u8003

\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5


\u54EA\u5412\u76D1\u63A7\u63A5\u5165Github\u548CGitee\u4F5C\u4E3A\u540E\u53F0\u7BA1\u7406\u5458\u8D26\u53F7

  • \u9996\u5148\u6211\u4EEC\u9700\u8981\u65B0\u5EFA\u4E00\u4E2A\u9A8C\u8BC1\u5E94\u7528\uFF0C\u4EE5Github\u4E3A\u4F8B\uFF0C\u767B\u9646Github\u540E\uFF0C\u6253\u5F00 https://github.com/settings/developers \uFF0C\u4F9D\u6B21\u9009\u62E9\u201COAuth Apps\u201D - \u201CNew OAuth App\u201D
    Application name - \u968F\u610F\u586B\u5199
    Homepage URL - \u586B\u5199\u9762\u677F\u7684\u8BBF\u95EE\u57DF\u540D\uFF0C\u5982\uFF1A"http://cdn.example.com"
    Authorization callback URL - \u586B\u5199\u56DE\u8C03\u5730\u5740\uFF0C\u5982\uFF1A"http://cdn.example.com/oauth2/callback"
  • \u70B9\u51FB\u201CRegister application\u201D
  • \u4FDD\u5B58\u9875\u9762\u4E2D\u7684Client ID\uFF0C\u7136\u540E\u70B9\u51FB \u201CGenerate a new client secret\u201C\uFF0C\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684Client Secret\uFF0C\u65B0\u5EFA\u7684\u5BC6\u94A5\u4EC5\u4F1A\u663E\u793A\u4E00\u6B21\uFF0C\u8BF7\u59A5\u5584\u4FDD\u5B58

\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard


  • \u5728\u9762\u677F\u670D\u52A1\u5668\u4E2D\uFF0C\u8FD0\u884C\u5B89\u88C5\u811A\u672C\uFF1A
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
 

\u5982\u679C\u4F60\u7684\u9762\u677F\u670D\u52A1\u5668\u4F4D\u4E8E\u4E2D\u56FD\u5927\u9646\uFF0C\u53EF\u4EE5\u4F7F\u7528\u955C\u50CF\uFF1A

curl -L https://fastly.jsdelivr.net/gh/naiba/nezha@master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
 
  • \u7B49\u5F85Docker\u5B89\u88C5\u5B8C\u6BD5\u540E\uFF0C\u5206\u522B\u8F93\u5165\u4EE5\u4E0B\u503C\uFF1A
    OAuth\u63D0\u4F9B\u5546 - Github\u6216Gitee
    Client ID - \u4E4B\u524D\u4FDD\u5B58\u7684Client ID
    Client Secret - \u4E4B\u524D\u4FDD\u5B58\u7684\u5BC6\u94A5
    \u7528\u6237\u540D - Github\u6216Gitee\u7684\u7528\u6237\u540D
    \u7AD9\u70B9\u6807\u9898 - \u81EA\u5B9A\u4E49\u7AD9\u70B9\u6807\u9898
    \u8BBF\u95EE\u7AEF\u53E3 - \u516C\u5F00\u8BBF\u95EE\u7AEF\u53E3\uFF0C\u53EF\u81EA\u5B9A\u4E49\uFF0C\u9ED8\u8BA48008
    Agent\u7684\u901A\u4FE1\u7AEF\u53E3 - Agent\u4E0EDashboard\u7684\u901A\u4FE1\u7AEF\u53E3\uFF0C\u9ED8\u8BA45555

  • \u8F93\u5165\u5B8C\u6210\u540E\uFF0C\u7B49\u5F85\u62C9\u53D6\u955C\u50CF
    \u5B89\u88C5\u7ED3\u675F\u540E\uFF0C\u5982\u679C\u4E00\u5207\u6B63\u5E38\uFF0C\u6B64\u65F6\u4F60\u53EF\u4EE5\u8BBF\u95EE\u57DF\u540D+\u7AEF\u53E3\u53F7\uFF0C\u5982 \u201Chttp://cdn.example.com:8008\u201D \u6765\u67E5\u770B\u9762\u677F

  • \u5C06\u6765\u5982\u679C\u9700\u8981\u518D\u6B21\u8FD0\u884C\u811A\u672C\uFF0C\u53EF\u4EE5\u8FD0\u884C\uFF1A

./nezha.sh
 

\u6765\u6253\u5F00\u7BA1\u7406\u811A\u672C


\u914D\u7F6E\u53CD\u5411\u4EE3\u7406


  • \u5728\u5B9D\u5854\u9762\u677F\u4E2D\u65B0\u5EFA\u4E00\u4E2A\u7AD9\u70B9\uFF0C\u57DF\u540D\u586B\u5199\u516C\u5F00\u8BBF\u95EE\u57DF\u540D\uFF0C\u5982 \u201Chttp://cdn.example.com\u201C \uFF0C\u7136\u540E\u70B9\u51FB\u201C\u8BBE\u7F6E\u201D\u8FDB\u5165\u7AD9\u70B9\u8BBE\u7F6E\u9009\u9879\uFF0C\u9009\u62E9\u201C\u53CD\u5411\u4EE3\u7406\u201D - \u201C\u65B0\u5EFA\u53CD\u5411\u4EE3\u7406\u201D

  • \u81EA\u5B9A\u4E49\u4E00\u4E2A\u4EE3\u7406\u540D\u79F0\uFF0C\u5728\u4E0B\u65B9\u201C\u76EE\u6807URL\u201D\u4E2D\u586B\u5165 http://127.0.0.1 \u7136\u540E\u70B9\u51FB\u201C\u4FDD\u5B58\u201D

  • \u6253\u5F00\u521A\u521A\u65B0\u5EFA\u7684\u53CD\u5411\u4EE3\u7406\u53F3\u8FB9\u7684\u201C\u914D\u7F6E\u6587\u4EF6\u201D\uFF0C\u5C06\u914D\u7F6E\u6587\u4EF6\u66FF\u6362\u4E3A\u4EE5\u4E0B\u5185\u5BB9\uFF1A

#PROXY-START/
diff --git a/assets/en_US_guide_dashboard.md.98ff237d.lean.js b/assets/en_US_guide_dashboard.md.2126504b.lean.js
similarity index 92%
rename from assets/en_US_guide_dashboard.md.98ff237d.lean.js
rename to assets/en_US_guide_dashboard.md.2126504b.lean.js
index 7de6a691..31586bf7 100644
--- a/assets/en_US_guide_dashboard.md.98ff237d.lean.js
+++ b/assets/en_US_guide_dashboard.md.2126504b.lean.js
@@ -1 +1 @@
-import{_ as e,c as a,o as n,a as t}from"./app.32957174.js";const k='{"title":"Preparations","description":"","frontmatter":{},"headers":[{"level":3,"title":"Preparations","slug":"preparations"},{"level":3,"title":"\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5","slug":"\u83B7\u53D6github\u7684client-id\u548C\u5BC6\u94A5"},{"level":3,"title":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard","slug":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5dashboard"},{"level":3,"title":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406","slug":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},{"level":3,"title":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6ESSL","slug":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6Essl"}],"relativePath":"en_US/guide/dashboard.md"}',s={},o=t("",32),r=[o];function p(l,c,i,d,h,u){return n(),a("div",null,r)}var m=e(s,[["render",p]]);export{k as __pageData,m as default};
+import{_ as e,c as a,o as n,a as t}from"./app.0bd0e305.js";const k='{"title":"Preparations","description":"","frontmatter":{},"headers":[{"level":3,"title":"Preparations","slug":"preparations"},{"level":3,"title":"\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5","slug":"\u83B7\u53D6github\u7684client-id\u548C\u5BC6\u94A5"},{"level":3,"title":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard","slug":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5dashboard"},{"level":3,"title":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406","slug":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},{"level":3,"title":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6ESSL","slug":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6Essl"}],"relativePath":"en_US/guide/dashboard.md"}',s={},o=t("",32),r=[o];function p(l,c,i,d,h,u){return n(),a("div",null,r)}var m=e(s,[["render",p]]);export{k as __pageData,m as default};
diff --git a/assets/en_US_guide_notifications.md.e9ca4955.js b/assets/en_US_guide_notifications.md.fd0fbc68.js
similarity index 80%
rename from assets/en_US_guide_notifications.md.e9ca4955.js
rename to assets/en_US_guide_notifications.md.fd0fbc68.js
index e00c2562..02e0c654 100644
--- a/assets/en_US_guide_notifications.md.e9ca4955.js
+++ b/assets/en_US_guide_notifications.md.fd0fbc68.js
@@ -1 +1 @@
-import{_ as t,c as e,o,b as a}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/notifications.md"}',n={},s=a("p",null,"notifications",-1),i=[s];function c(r,_,d,p,f,l){return o(),e("div",null,i)}var h=t(n,[["render",c]]);export{m as __pageData,h as default};
+import{_ as t,c as e,o,b as a}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/notifications.md"}',n={},s=a("p",null,"notifications",-1),i=[s];function c(r,_,d,p,f,l){return o(),e("div",null,i)}var h=t(n,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_notifications.md.e9ca4955.lean.js b/assets/en_US_guide_notifications.md.fd0fbc68.lean.js
similarity index 80%
rename from assets/en_US_guide_notifications.md.e9ca4955.lean.js
rename to assets/en_US_guide_notifications.md.fd0fbc68.lean.js
index e00c2562..02e0c654 100644
--- a/assets/en_US_guide_notifications.md.e9ca4955.lean.js
+++ b/assets/en_US_guide_notifications.md.fd0fbc68.lean.js
@@ -1 +1 @@
-import{_ as t,c as e,o,b as a}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/notifications.md"}',n={},s=a("p",null,"notifications",-1),i=[s];function c(r,_,d,p,f,l){return o(),e("div",null,i)}var h=t(n,[["render",c]]);export{m as __pageData,h as default};
+import{_ as t,c as e,o,b as a}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/notifications.md"}',n={},s=a("p",null,"notifications",-1),i=[s];function c(r,_,d,p,f,l){return o(),e("div",null,i)}var h=t(n,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_q2.md.100c5279.js b/assets/en_US_guide_q2.md.2ef984ad.js
similarity index 79%
rename from assets/en_US_guide_q2.md.100c5279.js
rename to assets/en_US_guide_q2.md.2ef984ad.js
index 2969602b..1f0d8e12 100644
--- a/assets/en_US_guide_q2.md.100c5279.js
+++ b/assets/en_US_guide_q2.md.2ef984ad.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,b as o}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q2.md"}',s={},r=o("p",null,"q2",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as a,b as o}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q2.md"}',s={},r=o("p",null,"q2",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_q2.md.100c5279.lean.js b/assets/en_US_guide_q2.md.2ef984ad.lean.js
similarity index 79%
rename from assets/en_US_guide_q2.md.100c5279.lean.js
rename to assets/en_US_guide_q2.md.2ef984ad.lean.js
index 2969602b..1f0d8e12 100644
--- a/assets/en_US_guide_q2.md.100c5279.lean.js
+++ b/assets/en_US_guide_q2.md.2ef984ad.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,b as o}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q2.md"}',s={},r=o("p",null,"q2",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as a,b as o}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q2.md"}',s={},r=o("p",null,"q2",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_q3.md.7ea9ad8f.js b/assets/en_US_guide_q3.md.5a2ee1b2.js
similarity index 79%
rename from assets/en_US_guide_q3.md.7ea9ad8f.js
rename to assets/en_US_guide_q3.md.5a2ee1b2.js
index c2180ac2..a7853e95 100644
--- a/assets/en_US_guide_q3.md.7ea9ad8f.js
+++ b/assets/en_US_guide_q3.md.5a2ee1b2.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,b as o}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q3.md"}',s={},r=o("p",null,"q3",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as a,b as o}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q3.md"}',s={},r=o("p",null,"q3",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_q3.md.7ea9ad8f.lean.js b/assets/en_US_guide_q3.md.5a2ee1b2.lean.js
similarity index 79%
rename from assets/en_US_guide_q3.md.7ea9ad8f.lean.js
rename to assets/en_US_guide_q3.md.5a2ee1b2.lean.js
index c2180ac2..a7853e95 100644
--- a/assets/en_US_guide_q3.md.7ea9ad8f.lean.js
+++ b/assets/en_US_guide_q3.md.5a2ee1b2.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,b as o}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q3.md"}',s={},r=o("p",null,"q3",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as a,b as o}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q3.md"}',s={},r=o("p",null,"q3",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_q4.md.16f5519f.js b/assets/en_US_guide_q4.md.5fd3c2e1.js
similarity index 79%
rename from assets/en_US_guide_q4.md.16f5519f.js
rename to assets/en_US_guide_q4.md.5fd3c2e1.js
index e07c796e..488feeec 100644
--- a/assets/en_US_guide_q4.md.16f5519f.js
+++ b/assets/en_US_guide_q4.md.5fd3c2e1.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,b as o}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q4.md"}',s={},r=o("p",null,"q4",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as a,b as o}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q4.md"}',s={},r=o("p",null,"q4",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_q4.md.16f5519f.lean.js b/assets/en_US_guide_q4.md.5fd3c2e1.lean.js
similarity index 79%
rename from assets/en_US_guide_q4.md.16f5519f.lean.js
rename to assets/en_US_guide_q4.md.5fd3c2e1.lean.js
index e07c796e..488feeec 100644
--- a/assets/en_US_guide_q4.md.16f5519f.lean.js
+++ b/assets/en_US_guide_q4.md.5fd3c2e1.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,b as o}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q4.md"}',s={},r=o("p",null,"q4",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as a,b as o}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q4.md"}',s={},r=o("p",null,"q4",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_q5.md.3f63ffe8.js b/assets/en_US_guide_q5.md.9213a1d9.js
similarity index 79%
rename from assets/en_US_guide_q5.md.3f63ffe8.js
rename to assets/en_US_guide_q5.md.9213a1d9.js
index 4f2d23d9..27d4915c 100644
--- a/assets/en_US_guide_q5.md.3f63ffe8.js
+++ b/assets/en_US_guide_q5.md.9213a1d9.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,b as o}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q5.md"}',s={},r=o("p",null,"q5",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as a,b as o}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q5.md"}',s={},r=o("p",null,"q5",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_q5.md.3f63ffe8.lean.js b/assets/en_US_guide_q5.md.9213a1d9.lean.js
similarity index 79%
rename from assets/en_US_guide_q5.md.3f63ffe8.lean.js
rename to assets/en_US_guide_q5.md.9213a1d9.lean.js
index 4f2d23d9..27d4915c 100644
--- a/assets/en_US_guide_q5.md.3f63ffe8.lean.js
+++ b/assets/en_US_guide_q5.md.9213a1d9.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,b as o}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q5.md"}',s={},r=o("p",null,"q5",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as a,b as o}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/q5.md"}',s={},r=o("p",null,"q5",-1),n=[r];function c(_,d,i,p,l,f){return a(),t("div",null,n)}var h=e(s,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_servers.md.a2d37d9f.js b/assets/en_US_guide_servers.md.81fca59f.js
similarity index 80%
rename from assets/en_US_guide_servers.md.a2d37d9f.js
rename to assets/en_US_guide_servers.md.81fca59f.js
index fbaad711..33601b16 100644
--- a/assets/en_US_guide_servers.md.a2d37d9f.js
+++ b/assets/en_US_guide_servers.md.81fca59f.js
@@ -1 +1 @@
-import{_ as e,c as t,o as s,b as r}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/servers.md"}',a={},o=r("p",null,"servers",-1),n=[o];function c(_,d,i,p,l,f){return s(),t("div",null,n)}var v=e(a,[["render",c]]);export{m as __pageData,v as default};
+import{_ as e,c as t,o as s,b as r}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/servers.md"}',a={},o=r("p",null,"servers",-1),n=[o];function c(_,d,i,p,l,f){return s(),t("div",null,n)}var v=e(a,[["render",c]]);export{m as __pageData,v as default};
diff --git a/assets/en_US_guide_servers.md.a2d37d9f.lean.js b/assets/en_US_guide_servers.md.81fca59f.lean.js
similarity index 80%
rename from assets/en_US_guide_servers.md.a2d37d9f.lean.js
rename to assets/en_US_guide_servers.md.81fca59f.lean.js
index fbaad711..33601b16 100644
--- a/assets/en_US_guide_servers.md.a2d37d9f.lean.js
+++ b/assets/en_US_guide_servers.md.81fca59f.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as s,b as r}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/servers.md"}',a={},o=r("p",null,"servers",-1),n=[o];function c(_,d,i,p,l,f){return s(),t("div",null,n)}var v=e(a,[["render",c]]);export{m as __pageData,v as default};
+import{_ as e,c as t,o as s,b as r}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/servers.md"}',a={},o=r("p",null,"servers",-1),n=[o];function c(_,d,i,p,l,f){return s(),t("div",null,n)}var v=e(a,[["render",c]]);export{m as __pageData,v as default};
diff --git a/assets/en_US_guide_services.md.03d39940.js b/assets/en_US_guide_services.md.454a41ef.js
similarity index 80%
rename from assets/en_US_guide_services.md.03d39940.js
rename to assets/en_US_guide_services.md.454a41ef.js
index 1812a863..b60d40ef 100644
--- a/assets/en_US_guide_services.md.03d39940.js
+++ b/assets/en_US_guide_services.md.454a41ef.js
@@ -1 +1 @@
-import{_ as e,c as t,o as s,b as r}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/services.md"}',a={},o=r("p",null,"services",-1),c=[o];function n(_,i,d,p,l,f){return s(),t("div",null,c)}var v=e(a,[["render",n]]);export{m as __pageData,v as default};
+import{_ as e,c as t,o as s,b as r}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/services.md"}',a={},o=r("p",null,"services",-1),c=[o];function n(_,i,d,p,l,f){return s(),t("div",null,c)}var v=e(a,[["render",n]]);export{m as __pageData,v as default};
diff --git a/assets/en_US_guide_services.md.03d39940.lean.js b/assets/en_US_guide_services.md.454a41ef.lean.js
similarity index 80%
rename from assets/en_US_guide_services.md.03d39940.lean.js
rename to assets/en_US_guide_services.md.454a41ef.lean.js
index 1812a863..b60d40ef 100644
--- a/assets/en_US_guide_services.md.03d39940.lean.js
+++ b/assets/en_US_guide_services.md.454a41ef.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as s,b as r}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/services.md"}',a={},o=r("p",null,"services",-1),c=[o];function n(_,i,d,p,l,f){return s(),t("div",null,c)}var v=e(a,[["render",n]]);export{m as __pageData,v as default};
+import{_ as e,c as t,o as s,b as r}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/services.md"}',a={},o=r("p",null,"services",-1),c=[o];function n(_,i,d,p,l,f){return s(),t("div",null,c)}var v=e(a,[["render",n]]);export{m as __pageData,v as default};
diff --git a/assets/en_US_guide_settings.md.fa7d6803.js b/assets/en_US_guide_settings.md.434d82b0.js
similarity index 80%
rename from assets/en_US_guide_settings.md.fa7d6803.js
rename to assets/en_US_guide_settings.md.434d82b0.js
index 20514ccc..9ceeae9e 100644
--- a/assets/en_US_guide_settings.md.fa7d6803.js
+++ b/assets/en_US_guide_settings.md.434d82b0.js
@@ -1 +1 @@
-import{_ as e,c as t,o as s,b as a}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/settings.md"}',n={},o=a("p",null,"settings",-1),r=[o];function c(_,i,d,p,l,f){return s(),t("div",null,r)}var g=e(n,[["render",c]]);export{m as __pageData,g as default};
+import{_ as e,c as t,o as s,b as a}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/settings.md"}',n={},o=a("p",null,"settings",-1),r=[o];function c(_,i,d,p,l,f){return s(),t("div",null,r)}var g=e(n,[["render",c]]);export{m as __pageData,g as default};
diff --git a/assets/en_US_guide_settings.md.fa7d6803.lean.js b/assets/en_US_guide_settings.md.434d82b0.lean.js
similarity index 80%
rename from assets/en_US_guide_settings.md.fa7d6803.lean.js
rename to assets/en_US_guide_settings.md.434d82b0.lean.js
index 20514ccc..9ceeae9e 100644
--- a/assets/en_US_guide_settings.md.fa7d6803.lean.js
+++ b/assets/en_US_guide_settings.md.434d82b0.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as s,b as a}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/settings.md"}',n={},o=a("p",null,"settings",-1),r=[o];function c(_,i,d,p,l,f){return s(),t("div",null,r)}var g=e(n,[["render",c]]);export{m as __pageData,g as default};
+import{_ as e,c as t,o as s,b as a}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/settings.md"}',n={},o=a("p",null,"settings",-1),r=[o];function c(_,i,d,p,l,f){return s(),t("div",null,r)}var g=e(n,[["render",c]]);export{m as __pageData,g as default};
diff --git a/assets/en_US_guide_tasks.md.7584bcd8.js b/assets/en_US_guide_tasks.md.c8eb4c7e.js
similarity index 79%
rename from assets/en_US_guide_tasks.md.7584bcd8.js
rename to assets/en_US_guide_tasks.md.c8eb4c7e.js
index ea9f4a10..1f5c2ac0 100644
--- a/assets/en_US_guide_tasks.md.7584bcd8.js
+++ b/assets/en_US_guide_tasks.md.c8eb4c7e.js
@@ -1 +1 @@
-import{_ as e,c as t,o as s,b as a}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/tasks.md"}',o={},r=a("p",null,"tasks",-1),n=[r];function c(_,d,i,p,l,f){return s(),t("div",null,n)}var h=e(o,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as s,b as a}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/tasks.md"}',o={},r=a("p",null,"tasks",-1),n=[r];function c(_,d,i,p,l,f){return s(),t("div",null,n)}var h=e(o,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_guide_tasks.md.7584bcd8.lean.js b/assets/en_US_guide_tasks.md.c8eb4c7e.lean.js
similarity index 79%
rename from assets/en_US_guide_tasks.md.7584bcd8.lean.js
rename to assets/en_US_guide_tasks.md.c8eb4c7e.lean.js
index ea9f4a10..1f5c2ac0 100644
--- a/assets/en_US_guide_tasks.md.7584bcd8.lean.js
+++ b/assets/en_US_guide_tasks.md.c8eb4c7e.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as s,b as a}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/tasks.md"}',o={},r=a("p",null,"tasks",-1),n=[r];function c(_,d,i,p,l,f){return s(),t("div",null,n)}var h=e(o,[["render",c]]);export{m as __pageData,h as default};
+import{_ as e,c as t,o as s,b as a}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/tasks.md"}',o={},r=a("p",null,"tasks",-1),n=[r];function c(_,d,i,p,l,f){return s(),t("div",null,n)}var h=e(o,[["render",c]]);export{m as __pageData,h as default};
diff --git a/assets/en_US_index.md.6f844d9a.js b/assets/en_US_index.md.a675940b.js
similarity index 95%
rename from assets/en_US_index.md.6f844d9a.js
rename to assets/en_US_index.md.a675940b.js
index 36ebbe1c..cf4283cb 100644
--- a/assets/en_US_index.md.6f844d9a.js
+++ b/assets/en_US_index.md.a675940b.js
@@ -1 +1 @@
-import{_ as o,c as a,o as n,b as e,d as t}from"./app.32957174.js";const f='{"title":"Home","description":"","frontmatter":{"home":true,"heroImage":"https://raw.githubusercontent.com/naiba/nezha/master/resource/static/brand.svg","heroText":"Nezha Monitoring","tagline":"A open source, lightweight server and website monitoring and O&M tool","actionText":"Learn more \u2192","actionLink":"/en_US/guide/dashboard","features":[{"title":"One-Click Installation","details":"Support use one-click script to install Dashboard and Agent services; Linux, WIndows, MacOS, OpenWRT and other mainstream systems are supported"},{"title":"Monitoring at any time","details":"Support monitoring the system status of multiple servers at the same time, support monitoring the status of web pages, ports, SSL certificates; support notifications in case of failure, out of data and other status. Support multiple notification methods (Telegram, email, WeChat, etc.)"},{"title":"Lightweight O&M tool","details":"Support WebSSH, support cyclic monitoring data, support setting scheduled tasks and running command on multiple servers"}],"footer":"Copyright \xA9 2022-present Nezhahq"},"headers":[],"relativePath":"en_US/index.md"}',s={},i=e("p",null,[e("br"),t("This work is licensed under a "),e("a",{rel:"license",href:"http://creativecommons.org/licenses/by-nc-sa/4.0/"},"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License"),t(".")],-1),r=[i];function c(l,p,d,m,u,h){return n(),a("div",null,r)}var _=o(s,[["render",c]]);export{f as __pageData,_ as default};
+import{_ as o,c as a,o as n,b as e,d as t}from"./app.0bd0e305.js";const f='{"title":"Home","description":"","frontmatter":{"home":true,"heroImage":"https://raw.githubusercontent.com/naiba/nezha/master/resource/static/brand.svg","heroText":"Nezha Monitoring","tagline":"A open source, lightweight server and website monitoring and O&M tool","actionText":"Learn more \u2192","actionLink":"/en_US/guide/dashboard","features":[{"title":"One-Click Installation","details":"Support use one-click script to install Dashboard and Agent services; Linux, WIndows, MacOS, OpenWRT and other mainstream systems are supported"},{"title":"Monitoring at any time","details":"Support monitoring the system status of multiple servers at the same time, support monitoring the status of web pages, ports, SSL certificates; support notifications in case of failure, out of data and other status. Support multiple notification methods (Telegram, email, WeChat, etc.)"},{"title":"Lightweight O&M tool","details":"Support WebSSH, support cyclic monitoring data, support setting scheduled tasks and running command on multiple servers"}],"footer":"Copyright \xA9 2022-present Nezhahq"},"headers":[],"relativePath":"en_US/index.md"}',s={},i=e("p",null,[e("br"),t("This work is licensed under a "),e("a",{rel:"license",href:"http://creativecommons.org/licenses/by-nc-sa/4.0/"},"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License"),t(".")],-1),r=[i];function c(l,p,d,m,u,h){return n(),a("div",null,r)}var _=o(s,[["render",c]]);export{f as __pageData,_ as default};
diff --git a/assets/en_US_index.md.6f844d9a.lean.js b/assets/en_US_index.md.a675940b.lean.js
similarity index 95%
rename from assets/en_US_index.md.6f844d9a.lean.js
rename to assets/en_US_index.md.a675940b.lean.js
index 36ebbe1c..cf4283cb 100644
--- a/assets/en_US_index.md.6f844d9a.lean.js
+++ b/assets/en_US_index.md.a675940b.lean.js
@@ -1 +1 @@
-import{_ as o,c as a,o as n,b as e,d as t}from"./app.32957174.js";const f='{"title":"Home","description":"","frontmatter":{"home":true,"heroImage":"https://raw.githubusercontent.com/naiba/nezha/master/resource/static/brand.svg","heroText":"Nezha Monitoring","tagline":"A open source, lightweight server and website monitoring and O&M tool","actionText":"Learn more \u2192","actionLink":"/en_US/guide/dashboard","features":[{"title":"One-Click Installation","details":"Support use one-click script to install Dashboard and Agent services; Linux, WIndows, MacOS, OpenWRT and other mainstream systems are supported"},{"title":"Monitoring at any time","details":"Support monitoring the system status of multiple servers at the same time, support monitoring the status of web pages, ports, SSL certificates; support notifications in case of failure, out of data and other status. Support multiple notification methods (Telegram, email, WeChat, etc.)"},{"title":"Lightweight O&M tool","details":"Support WebSSH, support cyclic monitoring data, support setting scheduled tasks and running command on multiple servers"}],"footer":"Copyright \xA9 2022-present Nezhahq"},"headers":[],"relativePath":"en_US/index.md"}',s={},i=e("p",null,[e("br"),t("This work is licensed under a "),e("a",{rel:"license",href:"http://creativecommons.org/licenses/by-nc-sa/4.0/"},"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License"),t(".")],-1),r=[i];function c(l,p,d,m,u,h){return n(),a("div",null,r)}var _=o(s,[["render",c]]);export{f as __pageData,_ as default};
+import{_ as o,c as a,o as n,b as e,d as t}from"./app.0bd0e305.js";const f='{"title":"Home","description":"","frontmatter":{"home":true,"heroImage":"https://raw.githubusercontent.com/naiba/nezha/master/resource/static/brand.svg","heroText":"Nezha Monitoring","tagline":"A open source, lightweight server and website monitoring and O&M tool","actionText":"Learn more \u2192","actionLink":"/en_US/guide/dashboard","features":[{"title":"One-Click Installation","details":"Support use one-click script to install Dashboard and Agent services; Linux, WIndows, MacOS, OpenWRT and other mainstream systems are supported"},{"title":"Monitoring at any time","details":"Support monitoring the system status of multiple servers at the same time, support monitoring the status of web pages, ports, SSL certificates; support notifications in case of failure, out of data and other status. Support multiple notification methods (Telegram, email, WeChat, etc.)"},{"title":"Lightweight O&M tool","details":"Support WebSSH, support cyclic monitoring data, support setting scheduled tasks and running command on multiple servers"}],"footer":"Copyright \xA9 2022-present Nezhahq"},"headers":[],"relativePath":"en_US/index.md"}',s={},i=e("p",null,[e("br"),t("This work is licensed under a "),e("a",{rel:"license",href:"http://creativecommons.org/licenses/by-nc-sa/4.0/"},"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License"),t(".")],-1),r=[i];function c(l,p,d,m,u,h){return n(),a("div",null,r)}var _=o(s,[["render",c]]);export{f as __pageData,_ as default};
diff --git a/assets/guide_agent.md.01d4ef4a.js b/assets/guide_agent.md.913e362f.js
similarity index 99%
rename from assets/guide_agent.md.01d4ef4a.js
rename to assets/guide_agent.md.913e362f.js
index b10e3cbe..9aaf975a 100644
--- a/assets/guide_agent.md.01d4ef4a.js
+++ b/assets/guide_agent.md.913e362f.js
@@ -1,4 +1,4 @@
-import{_ as e,c as n,o as a,a as t}from"./app.32957174.js";const b='{"title":"\u4E00\u952E\u5B89\u88C5Agent","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u4E00\u952E\u5B89\u88C5Agent","slug":"\u4E00\u952E\u5B89\u88C5agent"},{"level":3,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":3,"title":"Linux\u4E00\u952E\u5B89\u88C5","slug":"linux\u4E00\u952E\u5B89\u88C5"},{"level":3,"title":"Windows\u4E00\u952E\u5B89\u88C5","slug":"windows\u4E00\u952E\u5B89\u88C5"},{"level":2,"title":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent","slug":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5agent"},{"level":3,"title":"Linux\u5B89\u88C5Agent","slug":"linux\u5B89\u88C5agent"},{"level":3,"title":"Windows\u5B89\u88C5Agent","slug":"windows\u5B89\u88C5agent"},{"level":3,"title":"OpenWRT\u5B89\u88C5Agent","slug":"openwrt\u5B89\u88C5agent"},{"level":2,"title":"\u81EA\u5B9A\u4E49Agent\u76D1\u63A7\u9879\u76EE","slug":"\u81EA\u5B9A\u4E49agent\u76D1\u63A7\u9879\u76EE"}],"relativePath":"guide/agent.md"}',s={},o=t(`

\u54EA\u5412\u76D1\u63A7\u7684\u88AB\u63A7\u7AEF\u670D\u52A1\u88AB\u79F0\u4E3AAgent\uFF0C\u672C\u6587\u6863\u5C06\u4ECB\u7ECD\u5982\u4F55\u5728\u88AB\u63A7\u7AEF\u670D\u52A1\u5668\u4E0A\u5B89\u88C5Agent\uFF0C\u5E76\u4E0EDashboard\u8FDE\u63A5

\u4E00\u952E\u5B89\u88C5Agent

\u76EE\u524D\u54EA\u5412\u76D1\u63A7\u5DF2\u652F\u6301\u5728WIndows\u548CLinux\u4E0A\u4E00\u952E\u5B89\u88C5Agent\uFF0C\u9075\u5FAA\u672C\u6587\u6863\u7684\u6B65\u9AA4\uFF0C\u4F60\u53EF\u4EE5\u5F88\u8F7B\u677E\u7684\u5728\u670D\u52A1\u5668\u4E0A\u90E8\u7F72\u5B83

\u51C6\u5907\u5DE5\u4F5C

\u4F60\u9700\u8981\u63D0\u524D\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u8BBE\u7F6E\u597D\u901A\u4FE1\u57DF\u540D\uFF0C\u6B64\u57DF\u540D\u4E0D\u53EF\u4EE5\u63A5\u5165CDN\uFF0C\u8FD9\u91CC\u4EE5\u524D\u9762\u63D0\u5230\u8FC7\u7684\u793A\u4F8B\u901A\u4FE1\u57DF\u540D \u201Cdata.example.com\u201D \u6765\u505A\u6F14\u793A
\u8FDB\u5165\u540E\u53F0\u7BA1\u7406\u9762\u677F\uFF0C\u8F6C\u5230\u201C\u8BBE\u7F6E\u201D\u9875\uFF0C\u5728\u201C\u672A\u63A5\u5165CDN\u7684\u9762\u677F\u670D\u52A1\u5668\u57DF\u540D/IP\u201D\u9879\u4E2D\u586B\u5165\u901A\u4FE1\u57DF\u540D\uFF0C\u7136\u540E\u70B9\u51FB"\u4FDD\u5B58"

Linux\u4E00\u952E\u5B89\u88C5

  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u70B9\u51FB\u65B0\u6DFB\u52A0\u7684\u670D\u52A1\u5668\u65C1\uFF0C\u7EFF\u8272\u7684Linux\u56FE\u6807\u6309\u94AE\uFF0C\u590D\u5236\u4E00\u952E\u5B89\u88C5\u547D\u4EE4
  • \u5728\u88AB\u63A7\u7AEF\u670D\u52A1\u5668\u4E2D\u8FD0\u884C\u590D\u5236\u7684\u4E00\u952E\u5B89\u88C5\u547D\u4EE4\uFF0C\u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DE\u5230Dashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF

Windows\u4E00\u952E\u5B89\u88C5

  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u70B9\u51FB\u65B0\u6DFB\u52A0\u7684\u670D\u52A1\u5668\u65C1\uFF0C\u7EFF\u8272\u7684Windows\u56FE\u6807\u6309\u94AE\uFF0C\u590D\u5236\u4E00\u952E\u5B89\u88C5\u547D\u4EE4
  • \u8FDB\u5165Windows\u670D\u52A1\u5668\uFF0C\u8FD0\u884CPowerShell\uFF0C\u5728PowerShell\u4E2D\u8FD0\u884C\u590D\u5236\u7684\u5B89\u88C5\u547D\u4EE4
  • \u5982\u9047\u5230\u786E\u8BA4\u300C\u6267\u884C\u7B56\u7565\u53D8\u66F4\u300D\u8BF7\u9009\u62E9 Y
  • \u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DEDashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF



\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent

Linux\u5B89\u88C5Agent

  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u5728\u88AB\u63A7\u670D\u52A1\u5668\u4E2D\uFF0C\u8FD0\u884C\u811A\u672C\uFF08\u4F4D\u4E8E\u4E2D\u56FD\u5927\u9646\u7684\u670D\u52A1\u5668\u8BF7\u4F7F\u7528\u955C\u50CF\uFF09\uFF1A
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
+import{_ as e,c as n,o as a,a as t}from"./app.0bd0e305.js";const b='{"title":"\u4E00\u952E\u5B89\u88C5Agent","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u4E00\u952E\u5B89\u88C5Agent","slug":"\u4E00\u952E\u5B89\u88C5agent"},{"level":3,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":3,"title":"Linux\u4E00\u952E\u5B89\u88C5","slug":"linux\u4E00\u952E\u5B89\u88C5"},{"level":3,"title":"Windows\u4E00\u952E\u5B89\u88C5","slug":"windows\u4E00\u952E\u5B89\u88C5"},{"level":2,"title":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent","slug":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5agent"},{"level":3,"title":"Linux\u5B89\u88C5Agent","slug":"linux\u5B89\u88C5agent"},{"level":3,"title":"Windows\u5B89\u88C5Agent","slug":"windows\u5B89\u88C5agent"},{"level":3,"title":"OpenWRT\u5B89\u88C5Agent","slug":"openwrt\u5B89\u88C5agent"},{"level":2,"title":"\u81EA\u5B9A\u4E49Agent\u76D1\u63A7\u9879\u76EE","slug":"\u81EA\u5B9A\u4E49agent\u76D1\u63A7\u9879\u76EE"}],"relativePath":"guide/agent.md"}',s={},o=t(`

\u54EA\u5412\u76D1\u63A7\u7684\u88AB\u63A7\u7AEF\u670D\u52A1\u88AB\u79F0\u4E3AAgent\uFF0C\u672C\u6587\u6863\u5C06\u4ECB\u7ECD\u5982\u4F55\u5728\u88AB\u63A7\u7AEF\u670D\u52A1\u5668\u4E0A\u5B89\u88C5Agent\uFF0C\u5E76\u4E0EDashboard\u8FDE\u63A5

\u4E00\u952E\u5B89\u88C5Agent

\u76EE\u524D\u54EA\u5412\u76D1\u63A7\u5DF2\u652F\u6301\u5728WIndows\u548CLinux\u4E0A\u4E00\u952E\u5B89\u88C5Agent\uFF0C\u9075\u5FAA\u672C\u6587\u6863\u7684\u6B65\u9AA4\uFF0C\u4F60\u53EF\u4EE5\u5F88\u8F7B\u677E\u7684\u5728\u670D\u52A1\u5668\u4E0A\u90E8\u7F72\u5B83

\u51C6\u5907\u5DE5\u4F5C

\u4F60\u9700\u8981\u63D0\u524D\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u8BBE\u7F6E\u597D\u901A\u4FE1\u57DF\u540D\uFF0C\u6B64\u57DF\u540D\u4E0D\u53EF\u4EE5\u63A5\u5165CDN\uFF0C\u8FD9\u91CC\u4EE5\u524D\u9762\u63D0\u5230\u8FC7\u7684\u793A\u4F8B\u901A\u4FE1\u57DF\u540D \u201Cdata.example.com\u201D \u6765\u505A\u6F14\u793A
\u8FDB\u5165\u540E\u53F0\u7BA1\u7406\u9762\u677F\uFF0C\u8F6C\u5230\u201C\u8BBE\u7F6E\u201D\u9875\uFF0C\u5728\u201C\u672A\u63A5\u5165CDN\u7684\u9762\u677F\u670D\u52A1\u5668\u57DF\u540D/IP\u201D\u9879\u4E2D\u586B\u5165\u901A\u4FE1\u57DF\u540D\uFF0C\u7136\u540E\u70B9\u51FB"\u4FDD\u5B58"

Linux\u4E00\u952E\u5B89\u88C5

  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u70B9\u51FB\u65B0\u6DFB\u52A0\u7684\u670D\u52A1\u5668\u65C1\uFF0C\u7EFF\u8272\u7684Linux\u56FE\u6807\u6309\u94AE\uFF0C\u590D\u5236\u4E00\u952E\u5B89\u88C5\u547D\u4EE4
  • \u5728\u88AB\u63A7\u7AEF\u670D\u52A1\u5668\u4E2D\u8FD0\u884C\u590D\u5236\u7684\u4E00\u952E\u5B89\u88C5\u547D\u4EE4\uFF0C\u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DE\u5230Dashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF

Windows\u4E00\u952E\u5B89\u88C5

  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u70B9\u51FB\u65B0\u6DFB\u52A0\u7684\u670D\u52A1\u5668\u65C1\uFF0C\u7EFF\u8272\u7684Windows\u56FE\u6807\u6309\u94AE\uFF0C\u590D\u5236\u4E00\u952E\u5B89\u88C5\u547D\u4EE4
  • \u8FDB\u5165Windows\u670D\u52A1\u5668\uFF0C\u8FD0\u884CPowerShell\uFF0C\u5728PowerShell\u4E2D\u8FD0\u884C\u590D\u5236\u7684\u5B89\u88C5\u547D\u4EE4
  • \u5982\u9047\u5230\u786E\u8BA4\u300C\u6267\u884C\u7B56\u7565\u53D8\u66F4\u300D\u8BF7\u9009\u62E9 Y
  • \u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DEDashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF



\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent

Linux\u5B89\u88C5Agent

  • \u9996\u5148\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u4E00\u53F0\u670D\u52A1\u5668
  • \u5728\u88AB\u63A7\u670D\u52A1\u5668\u4E2D\uFF0C\u8FD0\u884C\u811A\u672C\uFF08\u4F4D\u4E8E\u4E2D\u56FD\u5927\u9646\u7684\u670D\u52A1\u5668\u8BF7\u4F7F\u7528\u955C\u50CF\uFF09\uFF1A
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
 
 
  • \u9009\u62E9\u201C\u5B89\u88C5\u76D1\u63A7Agent\u201D
  • \u8F93\u5165\u901A\u4FE1\u57DF\u540D\uFF0C\u5982\uFF1A\u201Ddata.example.com\u201C
  • \u8F93\u5165\u9762\u677F\u901A\u4FE1\u7AEF\u53E3\uFF08RPC\u7AEF\u53E3\uFF09\uFF0C\u9ED8\u8BA4\u4E3A5555
  • \u8F93\u5165Agent\u5BC6\u94A5\uFF0CAgent\u5BC6\u94A5\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u6DFB\u52A0\u670D\u52A1\u5668\u65F6\u751F\u6210\uFF0C\u53EF\u4EE5\u5728\u7BA1\u7406\u9762\u677F\u4E2D\u7684\u201C\u4E3B\u673A\u201D\u9875\u4E2D\u627E\u5230
  • \u7B49\u5F85\u5B89\u88C5\u5B8C\u6210\u540E\u8FD4\u56DEDashboard\u4E3B\u9875\u67E5\u770B\u670D\u52A1\u5668\u662F\u5426\u4E0A\u7EBF

Windows\u5B89\u88C5Agent

OpenWRT\u5B89\u88C5Agent

\u5982\u4F55\u4F7F \u65E7\u7248OpenWRT/LEDE \u81EA\u542F\u52A8

\u5982\u4F55\u4F7F \u65B0\u7248OpenWRT \u81EA\u542F\u52A8\uFF1F\u6765\u81EA @\u827E\u65AF\u5FB7\u65AF

  • \u9996\u5148\u5728 release \u4E0B\u8F7D\u5BF9\u5E94\u7684\u4E8C\u8FDB\u5236\u89E3\u538B zip \u5305\u540E\u653E\u7F6E\u5230 /root
  • \u8FD0\u884C chmod +x /root/nezha-agent \u8D4B\u4E88\u6267\u884C\u6743\u9650\uFF0C\u7136\u540E\u521B\u5EFA /etc/init.d/nezha-service\uFF1A
#!/bin/sh /etc/rc.common
 
diff --git a/assets/guide_agent.md.01d4ef4a.lean.js b/assets/guide_agent.md.913e362f.lean.js
similarity index 94%
rename from assets/guide_agent.md.01d4ef4a.lean.js
rename to assets/guide_agent.md.913e362f.lean.js
index d4b5493f..08a3e0b0 100644
--- a/assets/guide_agent.md.01d4ef4a.lean.js
+++ b/assets/guide_agent.md.913e362f.lean.js
@@ -1 +1 @@
-import{_ as e,c as n,o as a,a as t}from"./app.32957174.js";const b='{"title":"\u4E00\u952E\u5B89\u88C5Agent","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u4E00\u952E\u5B89\u88C5Agent","slug":"\u4E00\u952E\u5B89\u88C5agent"},{"level":3,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":3,"title":"Linux\u4E00\u952E\u5B89\u88C5","slug":"linux\u4E00\u952E\u5B89\u88C5"},{"level":3,"title":"Windows\u4E00\u952E\u5B89\u88C5","slug":"windows\u4E00\u952E\u5B89\u88C5"},{"level":2,"title":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent","slug":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5agent"},{"level":3,"title":"Linux\u5B89\u88C5Agent","slug":"linux\u5B89\u88C5agent"},{"level":3,"title":"Windows\u5B89\u88C5Agent","slug":"windows\u5B89\u88C5agent"},{"level":3,"title":"OpenWRT\u5B89\u88C5Agent","slug":"openwrt\u5B89\u88C5agent"},{"level":2,"title":"\u81EA\u5B9A\u4E49Agent\u76D1\u63A7\u9879\u76EE","slug":"\u81EA\u5B9A\u4E49agent\u76D1\u63A7\u9879\u76EE"}],"relativePath":"guide/agent.md"}',s={},o=t("",29),i=[o];function l(r,c,p,d,h,u){return a(),n("div",null,i)}var m=e(s,[["render",l]]);export{b as __pageData,m as default};
+import{_ as e,c as n,o as a,a as t}from"./app.0bd0e305.js";const b='{"title":"\u4E00\u952E\u5B89\u88C5Agent","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u4E00\u952E\u5B89\u88C5Agent","slug":"\u4E00\u952E\u5B89\u88C5agent"},{"level":3,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":3,"title":"Linux\u4E00\u952E\u5B89\u88C5","slug":"linux\u4E00\u952E\u5B89\u88C5"},{"level":3,"title":"Windows\u4E00\u952E\u5B89\u88C5","slug":"windows\u4E00\u952E\u5B89\u88C5"},{"level":2,"title":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5Agent","slug":"\u5176\u4ED6\u65B9\u5F0F\u5B89\u88C5agent"},{"level":3,"title":"Linux\u5B89\u88C5Agent","slug":"linux\u5B89\u88C5agent"},{"level":3,"title":"Windows\u5B89\u88C5Agent","slug":"windows\u5B89\u88C5agent"},{"level":3,"title":"OpenWRT\u5B89\u88C5Agent","slug":"openwrt\u5B89\u88C5agent"},{"level":2,"title":"\u81EA\u5B9A\u4E49Agent\u76D1\u63A7\u9879\u76EE","slug":"\u81EA\u5B9A\u4E49agent\u76D1\u63A7\u9879\u76EE"}],"relativePath":"guide/agent.md"}',s={},o=t("",29),i=[o];function l(r,c,p,d,h,u){return a(),n("div",null,i)}var m=e(s,[["render",l]]);export{b as __pageData,m as default};
diff --git a/assets/guide_dashboard.md.7365bdde.js b/assets/guide_dashboard.md.9f2fda52.js
similarity index 99%
rename from assets/guide_dashboard.md.7365bdde.js
rename to assets/guide_dashboard.md.9f2fda52.js
index d96f92df..ffecb61d 100644
--- a/assets/guide_dashboard.md.7365bdde.js
+++ b/assets/guide_dashboard.md.9f2fda52.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,o as n,a as t}from"./app.32957174.js";const k='{"title":"\u51C6\u5907\u5DE5\u4F5C","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":2,"title":"\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5","slug":"\u83B7\u53D6github\u7684client-id\u548C\u5BC6\u94A5"},{"level":2,"title":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard","slug":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5dashboard"},{"level":2,"title":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406","slug":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},{"level":2,"title":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6ESSL","slug":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6Essl"}],"relativePath":"guide/dashboard.md"}',s={},o=t(`

\u51C6\u5907\u5DE5\u4F5C

\u642D\u5EFA\u4E00\u4E2A\u54EA\u5412\u76D1\u63A7\uFF0C\u4F60\u9700\u8981\uFF1A

  1. \u4E00\u53F0\u53EF\u4EE5\u8FDE\u63A5\u516C\u7F51\u7684VPS\uFF0C\u9632\u706B\u5899\u548C\u5B89\u5168\u7B56\u7565\u9700\u8981\u653E\u884C8008\u548C5555\u7AEF\u53E3\uFF0C\u5426\u5219\u4F1A\u65E0\u6CD5\u8BBF\u95EE\u548C\u65E0\u6CD5\u63A5\u6536\u6570\u636E\u3002\u5355\u6838512MB\u5185\u5B58\u7684\u670D\u52A1\u5668\u914D\u7F6E\u5C31\u8DB3\u4EE5\u6EE1\u8DB3\u5927\u591A\u6570\u4F7F\u7528\u573A\u666F
  2. \u4E00\u4E2A\u5DF2\u7ECF\u8BBE\u7F6E\u597DA\u8BB0\u5F55\uFF0C\u6307\u5411Dashboard\u670D\u52A1\u5668ip\u7684\u57DF\u540D

TIP

\u5982\u679C\u4F60\u60F3\u4F7F\u7528CDN\uFF0C\u8BF7\u51C6\u5907\u4E24\u4E2A\u57DF\u540D\uFF0C\u4E00\u4E2A\u914D\u7F6E\u597DCDN\u7528\u4F5C\u516C\u5F00\u8BBF\u95EE\uFF0CCDN\u9700\u8981\u652F\u6301WebSocket\u534F\u8BAE\uFF1B\u53E6\u4E00\u4E2A\u57DF\u540D\u4E0D\u8981\u4F7F\u7528CDN\uFF0C\u7528\u4F5CAgent\u7AEF\u4E0EDashboard\u7684\u901A\u4FE1
\u672C\u6587\u6863\u5206\u522B\u4EE5 "cdn.example.com" \u548C "data.example.com" \u4E24\u4E2A\u57DF\u540D\u6765\u6F14\u793A

  1. \u4E00\u4E2AGithub/Gitee\u8D26\u53F7

\u672C\u6587\u6863\u5C06\u4EE5\u5B9D\u5854\u9762\u677F\u53CD\u4EE3\u9762\u677F\u7684\u8FC7\u7A0B\u4F5C\u4E3A\u8303\u4F8B\uFF0C\u968F\u7740\u672A\u6765\u7248\u672C\u7684\u53D8\u5316\uFF0C\u90E8\u5206\u529F\u80FD\u7684\u5165\u53E3\u53EF\u80FD\u4F1A\u53D1\u751F\u6539\u53D8\uFF0C\u672C\u6587\u6863\u4EC5\u4F9B\u53C2\u8003

\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5

\u54EA\u5412\u76D1\u63A7\u63A5\u5165Github\u548CGitee\u4F5C\u4E3A\u540E\u53F0\u7BA1\u7406\u5458\u8D26\u53F7

  • \u9996\u5148\u6211\u4EEC\u9700\u8981\u65B0\u5EFA\u4E00\u4E2A\u9A8C\u8BC1\u5E94\u7528\uFF0C\u4EE5Github\u4E3A\u4F8B\uFF0C\u767B\u9646Github\u540E\uFF0C\u6253\u5F00 https://github.com/settings/developers \uFF0C\u4F9D\u6B21\u9009\u62E9\u201COAuth Apps\u201D - \u201CNew OAuth App\u201D
    Application name - \u968F\u610F\u586B\u5199
    Homepage URL - \u586B\u5199\u9762\u677F\u7684\u8BBF\u95EE\u57DF\u540D\uFF0C\u5982\uFF1A"http://cdn.example.com"
    Authorization callback URL - \u586B\u5199\u56DE\u8C03\u5730\u5740\uFF0C\u5982\uFF1A"http://cdn.example.com/oauth2/callback"
  • \u70B9\u51FB\u201CRegister application\u201D
  • \u4FDD\u5B58\u9875\u9762\u4E2D\u7684Client ID\uFF0C\u7136\u540E\u70B9\u51FB \u201CGenerate a new client secret\u201C\uFF0C\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684Client Secret\uFF0C\u65B0\u5EFA\u7684\u5BC6\u94A5\u4EC5\u4F1A\u663E\u793A\u4E00\u6B21\uFF0C\u8BF7\u59A5\u5584\u4FDD\u5B58

\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard

  • \u5728\u9762\u677F\u670D\u52A1\u5668\u4E2D\uFF0C\u8FD0\u884C\u5B89\u88C5\u811A\u672C\uFF1A
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
+import{_ as e,c as a,o as n,a as t}from"./app.0bd0e305.js";const k='{"title":"\u51C6\u5907\u5DE5\u4F5C","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":2,"title":"\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5","slug":"\u83B7\u53D6github\u7684client-id\u548C\u5BC6\u94A5"},{"level":2,"title":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard","slug":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5dashboard"},{"level":2,"title":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406","slug":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},{"level":2,"title":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6ESSL","slug":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6Essl"}],"relativePath":"guide/dashboard.md"}',s={},o=t(`

\u51C6\u5907\u5DE5\u4F5C

\u642D\u5EFA\u4E00\u4E2A\u54EA\u5412\u76D1\u63A7\uFF0C\u4F60\u9700\u8981\uFF1A

  1. \u4E00\u53F0\u53EF\u4EE5\u8FDE\u63A5\u516C\u7F51\u7684VPS\uFF0C\u9632\u706B\u5899\u548C\u5B89\u5168\u7B56\u7565\u9700\u8981\u653E\u884C8008\u548C5555\u7AEF\u53E3\uFF0C\u5426\u5219\u4F1A\u65E0\u6CD5\u8BBF\u95EE\u548C\u65E0\u6CD5\u63A5\u6536\u6570\u636E\u3002\u5355\u6838512MB\u5185\u5B58\u7684\u670D\u52A1\u5668\u914D\u7F6E\u5C31\u8DB3\u4EE5\u6EE1\u8DB3\u5927\u591A\u6570\u4F7F\u7528\u573A\u666F
  2. \u4E00\u4E2A\u5DF2\u7ECF\u8BBE\u7F6E\u597DA\u8BB0\u5F55\uFF0C\u6307\u5411Dashboard\u670D\u52A1\u5668ip\u7684\u57DF\u540D

TIP

\u5982\u679C\u4F60\u60F3\u4F7F\u7528CDN\uFF0C\u8BF7\u51C6\u5907\u4E24\u4E2A\u57DF\u540D\uFF0C\u4E00\u4E2A\u914D\u7F6E\u597DCDN\u7528\u4F5C\u516C\u5F00\u8BBF\u95EE\uFF0CCDN\u9700\u8981\u652F\u6301WebSocket\u534F\u8BAE\uFF1B\u53E6\u4E00\u4E2A\u57DF\u540D\u4E0D\u8981\u4F7F\u7528CDN\uFF0C\u7528\u4F5CAgent\u7AEF\u4E0EDashboard\u7684\u901A\u4FE1
\u672C\u6587\u6863\u5206\u522B\u4EE5 "cdn.example.com" \u548C "data.example.com" \u4E24\u4E2A\u57DF\u540D\u6765\u6F14\u793A

  1. \u4E00\u4E2AGithub/Gitee\u8D26\u53F7

\u672C\u6587\u6863\u5C06\u4EE5\u5B9D\u5854\u9762\u677F\u53CD\u4EE3\u9762\u677F\u7684\u8FC7\u7A0B\u4F5C\u4E3A\u8303\u4F8B\uFF0C\u968F\u7740\u672A\u6765\u7248\u672C\u7684\u53D8\u5316\uFF0C\u90E8\u5206\u529F\u80FD\u7684\u5165\u53E3\u53EF\u80FD\u4F1A\u53D1\u751F\u6539\u53D8\uFF0C\u672C\u6587\u6863\u4EC5\u4F9B\u53C2\u8003

\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5

\u54EA\u5412\u76D1\u63A7\u63A5\u5165Github\u548CGitee\u4F5C\u4E3A\u540E\u53F0\u7BA1\u7406\u5458\u8D26\u53F7

  • \u9996\u5148\u6211\u4EEC\u9700\u8981\u65B0\u5EFA\u4E00\u4E2A\u9A8C\u8BC1\u5E94\u7528\uFF0C\u4EE5Github\u4E3A\u4F8B\uFF0C\u767B\u9646Github\u540E\uFF0C\u6253\u5F00 https://github.com/settings/developers \uFF0C\u4F9D\u6B21\u9009\u62E9\u201COAuth Apps\u201D - \u201CNew OAuth App\u201D
    Application name - \u968F\u610F\u586B\u5199
    Homepage URL - \u586B\u5199\u9762\u677F\u7684\u8BBF\u95EE\u57DF\u540D\uFF0C\u5982\uFF1A"http://cdn.example.com"
    Authorization callback URL - \u586B\u5199\u56DE\u8C03\u5730\u5740\uFF0C\u5982\uFF1A"http://cdn.example.com/oauth2/callback"
  • \u70B9\u51FB\u201CRegister application\u201D
  • \u4FDD\u5B58\u9875\u9762\u4E2D\u7684Client ID\uFF0C\u7136\u540E\u70B9\u51FB \u201CGenerate a new client secret\u201C\uFF0C\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684Client Secret\uFF0C\u65B0\u5EFA\u7684\u5BC6\u94A5\u4EC5\u4F1A\u663E\u793A\u4E00\u6B21\uFF0C\u8BF7\u59A5\u5584\u4FDD\u5B58

\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard

  • \u5728\u9762\u677F\u670D\u52A1\u5668\u4E2D\uFF0C\u8FD0\u884C\u5B89\u88C5\u811A\u672C\uFF1A
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
 

\u5982\u679C\u4F60\u7684\u9762\u677F\u670D\u52A1\u5668\u4F4D\u4E8E\u4E2D\u56FD\u5927\u9646\uFF0C\u53EF\u4EE5\u4F7F\u7528\u955C\u50CF\uFF1A

curl -L https://fastly.jsdelivr.net/gh/naiba/nezha@master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
 
  • \u7B49\u5F85Docker\u5B89\u88C5\u5B8C\u6BD5\u540E\uFF0C\u5206\u522B\u8F93\u5165\u4EE5\u4E0B\u503C\uFF1A
    OAuth\u63D0\u4F9B\u5546 - Github\u6216Gitee
    Client ID - \u4E4B\u524D\u4FDD\u5B58\u7684Client ID
    Client Secret - \u4E4B\u524D\u4FDD\u5B58\u7684\u5BC6\u94A5
    \u7528\u6237\u540D - Github\u6216Gitee\u7684\u7528\u6237\u540D
    \u7AD9\u70B9\u6807\u9898 - \u81EA\u5B9A\u4E49\u7AD9\u70B9\u6807\u9898
    \u8BBF\u95EE\u7AEF\u53E3 - \u516C\u5F00\u8BBF\u95EE\u7AEF\u53E3\uFF0C\u53EF\u81EA\u5B9A\u4E49\uFF0C\u9ED8\u8BA48008
    Agent\u7684\u901A\u4FE1\u7AEF\u53E3 - Agent\u4E0EDashboard\u7684\u901A\u4FE1\u7AEF\u53E3\uFF0C\u9ED8\u8BA45555

  • \u8F93\u5165\u5B8C\u6210\u540E\uFF0C\u7B49\u5F85\u62C9\u53D6\u955C\u50CF
    \u5B89\u88C5\u7ED3\u675F\u540E\uFF0C\u5982\u679C\u4E00\u5207\u6B63\u5E38\uFF0C\u6B64\u65F6\u4F60\u53EF\u4EE5\u8BBF\u95EE\u57DF\u540D+\u7AEF\u53E3\u53F7\uFF0C\u5982 \u201Chttp://cdn.example.com:8008\u201D \u6765\u67E5\u770B\u9762\u677F

  • \u5C06\u6765\u5982\u679C\u9700\u8981\u518D\u6B21\u8FD0\u884C\u811A\u672C\uFF0C\u53EF\u4EE5\u8FD0\u884C\uFF1A

./nezha.sh
 

\u6765\u6253\u5F00\u7BA1\u7406\u811A\u672C


\u914D\u7F6E\u53CD\u5411\u4EE3\u7406

  • \u5728\u5B9D\u5854\u9762\u677F\u4E2D\u65B0\u5EFA\u4E00\u4E2A\u7AD9\u70B9\uFF0C\u57DF\u540D\u586B\u5199\u516C\u5F00\u8BBF\u95EE\u57DF\u540D\uFF0C\u5982 \u201Chttp://cdn.example.com\u201C \uFF0C\u7136\u540E\u70B9\u51FB\u201C\u8BBE\u7F6E\u201D\u8FDB\u5165\u7AD9\u70B9\u8BBE\u7F6E\u9009\u9879\uFF0C\u9009\u62E9\u201C\u53CD\u5411\u4EE3\u7406\u201D - \u201C\u65B0\u5EFA\u53CD\u5411\u4EE3\u7406\u201D

  • \u81EA\u5B9A\u4E49\u4E00\u4E2A\u4EE3\u7406\u540D\u79F0\uFF0C\u5728\u4E0B\u65B9\u201C\u76EE\u6807URL\u201D\u4E2D\u586B\u5165 http://127.0.0.1 \u7136\u540E\u70B9\u51FB\u201C\u4FDD\u5B58\u201D

  • \u6253\u5F00\u521A\u521A\u65B0\u5EFA\u7684\u53CD\u5411\u4EE3\u7406\u53F3\u8FB9\u7684\u201C\u914D\u7F6E\u6587\u4EF6\u201D\uFF0C\u5C06\u914D\u7F6E\u6587\u4EF6\u66FF\u6362\u4E3A\u4EE5\u4E0B\u5185\u5BB9\uFF1A

#PROXY-START/
diff --git a/assets/guide_dashboard.md.7365bdde.lean.js b/assets/guide_dashboard.md.9f2fda52.lean.js
similarity index 93%
rename from assets/guide_dashboard.md.7365bdde.lean.js
rename to assets/guide_dashboard.md.9f2fda52.lean.js
index 1932624b..78357b67 100644
--- a/assets/guide_dashboard.md.7365bdde.lean.js
+++ b/assets/guide_dashboard.md.9f2fda52.lean.js
@@ -1 +1 @@
-import{_ as e,c as a,o as n,a as t}from"./app.32957174.js";const k='{"title":"\u51C6\u5907\u5DE5\u4F5C","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":2,"title":"\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5","slug":"\u83B7\u53D6github\u7684client-id\u548C\u5BC6\u94A5"},{"level":2,"title":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard","slug":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5dashboard"},{"level":2,"title":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406","slug":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},{"level":2,"title":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6ESSL","slug":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6Essl"}],"relativePath":"guide/dashboard.md"}',s={},o=t("",27),p=[o];function r(l,c,i,d,h,u){return n(),a("div",null,p)}var m=e(s,[["render",r]]);export{k as __pageData,m as default};
+import{_ as e,c as a,o as n,a as t}from"./app.0bd0e305.js";const k='{"title":"\u51C6\u5907\u5DE5\u4F5C","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":2,"title":"\u83B7\u53D6Github\u7684Client ID\u548C\u5BC6\u94A5","slug":"\u83B7\u53D6github\u7684client-id\u548C\u5BC6\u94A5"},{"level":2,"title":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5Dashboard","slug":"\u5728\u670D\u52A1\u5668\u4E2D\u5B89\u88C5dashboard"},{"level":2,"title":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406","slug":"\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},{"level":2,"title":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6ESSL","slug":"\u5728\u5B9D\u5854\u9762\u677F\u4E2D\u914D\u7F6Essl"}],"relativePath":"guide/dashboard.md"}',s={},o=t("",27),p=[o];function r(l,c,i,d,h,u){return n(),a("div",null,p)}var m=e(s,[["render",r]]);export{k as __pageData,m as default};
diff --git a/assets/guide_notifications.md.21540eb3.js b/assets/guide_notifications.md.33c483a1.js
similarity index 99%
rename from assets/guide_notifications.md.21540eb3.js
rename to assets/guide_notifications.md.33c483a1.js
index 75921d84..0b225aec 100644
--- a/assets/guide_notifications.md.21540eb3.js
+++ b/assets/guide_notifications.md.33c483a1.js
@@ -1 +1 @@
-import{_ as e,c as o,o as t,a as l}from"./app.32957174.js";const h='{"title":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F","slug":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F"},{"level":2,"title":"\u62A5\u8B66\u89C4\u5219\u8BF4\u660E","slug":"\u62A5\u8B66\u89C4\u5219\u8BF4\u660E"},{"level":3,"title":"\u57FA\u672C\u89C4\u5219","slug":"\u57FA\u672C\u89C4\u5219"},{"level":3,"title":"\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66","slug":"\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66"}],"relativePath":"guide/notifications.md"}',i={},c=l('

\u54EA\u5412\u76D1\u63A7\u652F\u6301\u5BF9\u670D\u52A1\u5668\u7684\u8D1F\u8F7D\u3001CPU\u3001\u5185\u5B58\u3001\u786C\u76D8\u3001\u5E26\u5BBD\u3001\u6D41\u91CF\u3001\u6708\u6D41\u91CF\u3001\u8FDB\u7A0B\u6570\u3001\u8FDE\u63A5\u6570\u8FDB\u884C\u76D1\u63A7\uFF0C\u5E76\u5728\u5176\u4E2D\u67D0\u9879\u8FBE\u5230\u7528\u6237\u8BBE\u5B9A\u503C\u65F6\u53D1\u9001\u62A5\u8B66\u901A\u77E5

\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F

#NEZHA# \u662F\u9762\u677F\u6D88\u606F\u5360\u4F4D\u7B26\uFF0C\u9762\u677F\u89E6\u53D1\u901A\u77E5\u65F6\u4F1A\u81EA\u52A8\u7528\u5B9E\u9645\u6D88\u606F\u66FF\u6362\u5360\u4F4D\u7B26

Body \u5185\u5BB9\u662FJSON \u683C\u5F0F\u7684\uFF1A\u5F53\u8BF7\u6C42\u7C7B\u578B\u4E3A FORM \u65F6\uFF0C\u503C\u4E3A key:value \u7684\u5F62\u5F0F\uFF0Cvalue \u91CC\u9762\u53EF\u653E\u7F6E\u5360\u4F4D\u7B26\uFF0C\u901A\u77E5\u65F6\u4F1A\u81EA\u52A8\u66FF\u6362\u3002\u5F53\u8BF7\u6C42\u7C7B\u578B\u4E3A JSON \u65F6 \u53EA\u4F1A\u7B80\u5355\u8FDB\u884C\u5B57\u7B26\u4E32\u66FF\u6362\u540E\u76F4\u63A5\u63D0\u4EA4\u5230URL\u3002

URL \u91CC\u9762\u4E5F\u53EF\u653E\u7F6E\u5360\u4F4D\u7B26\uFF0C\u8BF7\u6C42\u65F6\u4F1A\u8FDB\u884C\u7B80\u5355\u7684\u5B57\u7B26\u4E32\u66FF\u6362\u3002

\u4F60\u53EF\u4EE5\u53C2\u8003\u4EE5\u4E0B\u7684\u901A\u77E5\u65B9\u5F0F\u793A\u4F8B\uFF0C\u4E5F\u53EF\u4EE5\u6839\u636E\u81EA\u5DF1\u7684\u9700\u6C42\u7075\u6D3B\u8BBE\u7F6E\u63A8\u9001\u65B9\u5F0F

  • server\u9171\u793A\u4F8B

  • wxpusher \u793A\u4F8B\uFF0C\u9700\u8981\u5173\u6CE8\u4F60\u7684\u5E94\u7528

    • \u540D\u79F0: wxpusher
    • URL\uFF1Ahttp://wxpusher.zjiecode.com/api/send/message
    • \u8BF7\u6C42\u65B9\u5F0F: POST
    • \u8BF7\u6C42\u7C7B\u578B: JSON
    • Body: {"appToken":"\u4F60\u7684appToken","topicIds":[],"content":"#NEZHA#","contentType":"1","uids":["\u4F60\u7684uid"]}
  • Telegram \u793A\u4F8B @haitau \u8D21\u732E

    • \u540D\u79F0\uFF1Atelegram \u673A\u5668\u4EBA\u6D88\u606F\u901A\u77E5
    • URL\uFF1Ahttps://api.telegram.org/botXXXXXX/sendMessage?chat_id=YYYYYY&text=#NEZHA#
    • \u8BF7\u6C42\u65B9\u5F0F: GET
    • \u8BF7\u6C42\u7C7B\u578B: \u9ED8\u8BA4
    • Body: \u7A7A
    • URL \u53C2\u6570\u83B7\u53D6\u8BF4\u660E\uFF1AbotXXXXXX \u4E2D\u7684 XXXXXX \u662F\u5728 telegram \u4E2D\u5173\u6CE8\u5B98\u65B9 @Botfather \uFF0C\u8F93\u5165/newbot \uFF0C\u521B\u5EFA\u65B0\u7684\u673A\u5668\u4EBA\uFF08bot\uFF09\u65F6\uFF0C\u4F1A\u63D0\u4F9B\u7684 token\uFF08\u5728\u63D0\u793A Use this token to access the HTTP API:\u540E\u9762\u4E00\u884C\uFF09\u8FD9\u91CC 'bot' \u4E09\u4E2A\u5B57\u6BCD\u4E0D\u53EF\u5C11\u3002\u521B\u5EFA bot \u540E\uFF0C\u9700\u8981\u5148\u5728 telegram \u4E2D\u4E0E BOT \u8FDB\u884C\u5BF9\u8BDD\uFF08\u968F\u4FBF\u53D1\u4E2A\u6D88\u606F\uFF09\uFF0C\u7136\u540E\u624D\u53EF\u7528 API \u53D1\u9001\u6D88\u606F\u3002YYYYYY \u662F telegram \u7528\u6237\u7684\u6570\u5B57 ID\u3002\u4E0E\u673A\u5668\u4EBA@userinfobot \u5BF9\u8BDD\u53EF\u83B7\u5F97\u3002


\u62A5\u8B66\u89C4\u5219\u8BF4\u660E

\u57FA\u672C\u89C4\u5219

  • type\uFF1A\u53EF\u9009\u53D6\u4E00\u4E2A\u6216\u591A\u4E2A\u7C7B\u578B\uFF0C\u5982\u5728\u4E00\u4E2A\u89C4\u5219\u4E2D\u9009\u62E9\u4E86\u591A\u4E2A\u7C7B\u578B\uFF0C\u9700\u8981\u540C\u65F6\u6EE1\u8DB3\u6240\u6709\u9009\u62E9\u7684\u7C7B\u578B\u624D\u4F1A\u89E6\u53D1\u901A\u77E5\uFF08\u53EF\u53C2\u8003\u540E\u9762\u7684\u793A\u4F8B\uFF09
    • cpu\u3001memory\u3001swap\u3001disk
    • net_in_speed \u5165\u7AD9\u7F51\u901F\u3001net_out_speed \u51FA\u7AD9\u7F51\u901F\u3001net_all_speed \u53CC\u5411\u7F51\u901F\u3001transfer_in \u5165\u7AD9\u6D41\u91CF\u3001transfer_out \u51FA\u7AD9\u6D41\u91CF\u3001transfer_all \u53CC\u5411\u6D41\u91CF
    • offline \u79BB\u7EBF\u76D1\u63A7
    • load1\u3001load5\u3001load15 \u8D1F\u8F7D
    • process_count \u8FDB\u7A0B\u6570 \u76EE\u524D\u53D6\u7EBF\u7A0B\u6570\u5360\u7528\u8D44\u6E90\u592A\u591A\uFF0C\u6682\u65F6\u4E0D\u652F\u6301
    • tcp_conn_count\u3001udp_conn_count \u8FDE\u63A5\u6570
  • duration\uFF1A\u6301\u7EED\u6570\u79D2\uFF0C\u6570\u79D2\u5185\u91C7\u6837\u8BB0\u5F55 30% \u4EE5\u4E0A\u89E6\u53D1\u9608\u503C\u624D\u4F1A\u62A5\u8B66\uFF08\u9632\u6570\u636E\u63D2\u9488\uFF09
  • min \u6216 max\uFF1A
    • \u6D41\u91CF\u3001\u7F51\u901F\u7C7B\u6570\u503C \u4E3A\u5B57\u8282\uFF081KB=1024B\uFF0C1MB = 1024*1024B\uFF09
    • \u5185\u5B58\u3001\u786C\u76D8\u3001CPU \u4EE5\u5360\u7528\u767E\u5206\u6BD4\u8BA1\u6570
    • \u79BB\u7EBF\u76D1\u63A7\u65E0\u9700\u8BBE\u7F6E\u6B64\u9879
  • cover\uFF1A
    • 0 \u76D1\u63A7\u6240\u6709\uFF0C\u901A\u8FC7 ignore \u5FFD\u7565\u7279\u5B9A\u670D\u52A1\u5668
    • 1 \u5FFD\u7565\u6240\u6709\uFF0C\u901A\u8FC7 ignore \u76D1\u63A7\u7279\u5B9A\u670D\u52A1\u5668
      \u4F8B\u5982\uFF1A[{"type":"offline","duration":10, "cover":0, "ignore":{"5": true}}]
  • ignore: \u9009\u62E9\u5FFD\u7565\u7279\u5B9A\u670D\u52A1\u5668\uFF0C\u642D\u914D cover \u4F7F\u7528\uFF0C\u5185\u5BB9\u4E3A\u670D\u52A1\u5668id\u548C\u5E03\u5C14\u503C\uFF0C\u4F8B\u5982\uFF1A{"1": true, "2":false}

\u5B8C\u6574\u793A\u4F8B:

TIP

\u6DFB\u52A0\u4E00\u4E2A\u79BB\u7EBF\u62A5\u8B66

  • \u540D\u79F0\uFF1A\u79BB\u7EBF\u901A\u77E5
  • \u89C4\u5219\uFF1A[{"Type":"offline","Duration":10}]
  • \u542F\u7528\uFF1A\u221A

TIP

\u6DFB\u52A0\u4E00\u4E2A\u76D1\u63A7 CPU \u6301\u7EED 10s \u8D85\u8FC7 50% \u4E14 \u5185\u5B58\u6301\u7EED 20s \u5360\u7528\u4F4E\u4E8E 20% \u7684\u62A5\u8B66

  • \u540D\u79F0\uFF1ACPU+\u5185\u5B58
  • \u89C4\u5219\uFF1A[{"Type":"cpu","Min":0,"Max":50,"Duration":10},{"Type":"memory","Min":20,"Max":0,"Duration":20}]
  • \u542F\u7528\uFF1A\u221A

\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66

\u53EF\u4EE5\u7528\u4F5C\u6708\u6D41\u91CF\u62A5\u8B66

  • type:
    • transfer_in_cycle \u5468\u671F\u5185\u7684\u5165\u7AD9\u6D41\u91CF
    • transfer_out_cycle \u5468\u671F\u5185\u7684\u51FA\u7AD9\u6D41\u91CF
    • transfer_all_cycle \u5468\u671F\u5185\u53CC\u5411\u6D41\u91CF\u548C
  • cycle_start\uFF1A \u7EDF\u8BA1\u5468\u671F\u5F00\u59CB\u65E5\u671F\uFF08\u53EF\u4EE5\u662F\u4F60\u673A\u5668\u8BA1\u8D39\u5468\u671F\u7684\u5F00\u59CB\u65E5\u671F\uFF09\uFF0C\u65F6\u95F4\u683C\u5F0F\u4E3ARFC3339\uFF0C\u4F8B\u5982\u5317\u4EAC\u65F6\u95F4\u4E3A2022-01-11T08:00:00.00+08:00
  • cycle_interval\uFF1A\u6BCF\u9694\u591A\u5C11\u4E2A\u5468\u671F\u5355\u4F4D\uFF08\u4F8B\u5982\uFF0C\u5468\u671F\u5355\u4F4D\u4E3A\u5929\uFF0C\u8BE5\u503C\u4E3A 7\uFF0C\u5219\u4EE3\u8868\u6BCF\u9694 7 \u5929\u7EDF\u8BA1\u4E00\u6B21\uFF09
  • cycle_unit \u7EDF\u8BA1\u5468\u671F\u5355\u4F4D\uFF0C\u9ED8\u8BA4hour,\u53EF\u9009(hour, day, week, month, year)
  • min/max\u3001cover\u3001ignore \u53C2\u8003\u57FA\u672C\u89C4\u5219\u914D\u7F6E

\u793A\u4F8B: ID \u4E3A 3 \u7684\u670D\u52A1\u5668\uFF08ignore \u91CC\u9762\u5B9A\u4E49\uFF09\uFF0C\u4EE5\u6BCF\u6708 15 \u53F7\u4E3A\u7EDF\u8BA1\u5468\u671F\uFF0C\u5468\u671F\u5185\u7EDF\u8BA1\u7684\u51FA\u7AD9\u6708\u6D41\u91CF\u8FBE\u5230 1TB \u65F6\u62A5\u8B66 [{"type":"transfer_out_cycle","max":1000000000000,"cycle_start":"2022-01-11T08:00:00.00+08:00","cycle_interval":1,"cycle_unit":"month","cover":1,"ignore":{"3":true}}]

',20),u=[c];function d(r,a,n,s,p,q){return t(),o("div",null,u)}var m=e(i,[["render",d]]);export{h as __pageData,m as default}; +import{_ as e,c as o,o as t,a as l}from"./app.0bd0e305.js";const h='{"title":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F","slug":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F"},{"level":2,"title":"\u62A5\u8B66\u89C4\u5219\u8BF4\u660E","slug":"\u62A5\u8B66\u89C4\u5219\u8BF4\u660E"},{"level":3,"title":"\u57FA\u672C\u89C4\u5219","slug":"\u57FA\u672C\u89C4\u5219"},{"level":3,"title":"\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66","slug":"\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66"}],"relativePath":"guide/notifications.md"}',i={},c=l('

\u54EA\u5412\u76D1\u63A7\u652F\u6301\u5BF9\u670D\u52A1\u5668\u7684\u8D1F\u8F7D\u3001CPU\u3001\u5185\u5B58\u3001\u786C\u76D8\u3001\u5E26\u5BBD\u3001\u6D41\u91CF\u3001\u6708\u6D41\u91CF\u3001\u8FDB\u7A0B\u6570\u3001\u8FDE\u63A5\u6570\u8FDB\u884C\u76D1\u63A7\uFF0C\u5E76\u5728\u5176\u4E2D\u67D0\u9879\u8FBE\u5230\u7528\u6237\u8BBE\u5B9A\u503C\u65F6\u53D1\u9001\u62A5\u8B66\u901A\u77E5

\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F

#NEZHA# \u662F\u9762\u677F\u6D88\u606F\u5360\u4F4D\u7B26\uFF0C\u9762\u677F\u89E6\u53D1\u901A\u77E5\u65F6\u4F1A\u81EA\u52A8\u7528\u5B9E\u9645\u6D88\u606F\u66FF\u6362\u5360\u4F4D\u7B26

Body \u5185\u5BB9\u662FJSON \u683C\u5F0F\u7684\uFF1A\u5F53\u8BF7\u6C42\u7C7B\u578B\u4E3A FORM \u65F6\uFF0C\u503C\u4E3A key:value \u7684\u5F62\u5F0F\uFF0Cvalue \u91CC\u9762\u53EF\u653E\u7F6E\u5360\u4F4D\u7B26\uFF0C\u901A\u77E5\u65F6\u4F1A\u81EA\u52A8\u66FF\u6362\u3002\u5F53\u8BF7\u6C42\u7C7B\u578B\u4E3A JSON \u65F6 \u53EA\u4F1A\u7B80\u5355\u8FDB\u884C\u5B57\u7B26\u4E32\u66FF\u6362\u540E\u76F4\u63A5\u63D0\u4EA4\u5230URL\u3002

URL \u91CC\u9762\u4E5F\u53EF\u653E\u7F6E\u5360\u4F4D\u7B26\uFF0C\u8BF7\u6C42\u65F6\u4F1A\u8FDB\u884C\u7B80\u5355\u7684\u5B57\u7B26\u4E32\u66FF\u6362\u3002

\u4F60\u53EF\u4EE5\u53C2\u8003\u4EE5\u4E0B\u7684\u901A\u77E5\u65B9\u5F0F\u793A\u4F8B\uFF0C\u4E5F\u53EF\u4EE5\u6839\u636E\u81EA\u5DF1\u7684\u9700\u6C42\u7075\u6D3B\u8BBE\u7F6E\u63A8\u9001\u65B9\u5F0F

  • server\u9171\u793A\u4F8B

  • wxpusher \u793A\u4F8B\uFF0C\u9700\u8981\u5173\u6CE8\u4F60\u7684\u5E94\u7528

    • \u540D\u79F0: wxpusher
    • URL\uFF1Ahttp://wxpusher.zjiecode.com/api/send/message
    • \u8BF7\u6C42\u65B9\u5F0F: POST
    • \u8BF7\u6C42\u7C7B\u578B: JSON
    • Body: {"appToken":"\u4F60\u7684appToken","topicIds":[],"content":"#NEZHA#","contentType":"1","uids":["\u4F60\u7684uid"]}
  • Telegram \u793A\u4F8B @haitau \u8D21\u732E

    • \u540D\u79F0\uFF1Atelegram \u673A\u5668\u4EBA\u6D88\u606F\u901A\u77E5
    • URL\uFF1Ahttps://api.telegram.org/botXXXXXX/sendMessage?chat_id=YYYYYY&text=#NEZHA#
    • \u8BF7\u6C42\u65B9\u5F0F: GET
    • \u8BF7\u6C42\u7C7B\u578B: \u9ED8\u8BA4
    • Body: \u7A7A
    • URL \u53C2\u6570\u83B7\u53D6\u8BF4\u660E\uFF1AbotXXXXXX \u4E2D\u7684 XXXXXX \u662F\u5728 telegram \u4E2D\u5173\u6CE8\u5B98\u65B9 @Botfather \uFF0C\u8F93\u5165/newbot \uFF0C\u521B\u5EFA\u65B0\u7684\u673A\u5668\u4EBA\uFF08bot\uFF09\u65F6\uFF0C\u4F1A\u63D0\u4F9B\u7684 token\uFF08\u5728\u63D0\u793A Use this token to access the HTTP API:\u540E\u9762\u4E00\u884C\uFF09\u8FD9\u91CC 'bot' \u4E09\u4E2A\u5B57\u6BCD\u4E0D\u53EF\u5C11\u3002\u521B\u5EFA bot \u540E\uFF0C\u9700\u8981\u5148\u5728 telegram \u4E2D\u4E0E BOT \u8FDB\u884C\u5BF9\u8BDD\uFF08\u968F\u4FBF\u53D1\u4E2A\u6D88\u606F\uFF09\uFF0C\u7136\u540E\u624D\u53EF\u7528 API \u53D1\u9001\u6D88\u606F\u3002YYYYYY \u662F telegram \u7528\u6237\u7684\u6570\u5B57 ID\u3002\u4E0E\u673A\u5668\u4EBA@userinfobot \u5BF9\u8BDD\u53EF\u83B7\u5F97\u3002


\u62A5\u8B66\u89C4\u5219\u8BF4\u660E

\u57FA\u672C\u89C4\u5219

  • type\uFF1A\u53EF\u9009\u53D6\u4E00\u4E2A\u6216\u591A\u4E2A\u7C7B\u578B\uFF0C\u5982\u5728\u4E00\u4E2A\u89C4\u5219\u4E2D\u9009\u62E9\u4E86\u591A\u4E2A\u7C7B\u578B\uFF0C\u9700\u8981\u540C\u65F6\u6EE1\u8DB3\u6240\u6709\u9009\u62E9\u7684\u7C7B\u578B\u624D\u4F1A\u89E6\u53D1\u901A\u77E5\uFF08\u53EF\u53C2\u8003\u540E\u9762\u7684\u793A\u4F8B\uFF09
    • cpu\u3001memory\u3001swap\u3001disk
    • net_in_speed \u5165\u7AD9\u7F51\u901F\u3001net_out_speed \u51FA\u7AD9\u7F51\u901F\u3001net_all_speed \u53CC\u5411\u7F51\u901F\u3001transfer_in \u5165\u7AD9\u6D41\u91CF\u3001transfer_out \u51FA\u7AD9\u6D41\u91CF\u3001transfer_all \u53CC\u5411\u6D41\u91CF
    • offline \u79BB\u7EBF\u76D1\u63A7
    • load1\u3001load5\u3001load15 \u8D1F\u8F7D
    • process_count \u8FDB\u7A0B\u6570 \u76EE\u524D\u53D6\u7EBF\u7A0B\u6570\u5360\u7528\u8D44\u6E90\u592A\u591A\uFF0C\u6682\u65F6\u4E0D\u652F\u6301
    • tcp_conn_count\u3001udp_conn_count \u8FDE\u63A5\u6570
  • duration\uFF1A\u6301\u7EED\u6570\u79D2\uFF0C\u6570\u79D2\u5185\u91C7\u6837\u8BB0\u5F55 30% \u4EE5\u4E0A\u89E6\u53D1\u9608\u503C\u624D\u4F1A\u62A5\u8B66\uFF08\u9632\u6570\u636E\u63D2\u9488\uFF09
  • min \u6216 max\uFF1A
    • \u6D41\u91CF\u3001\u7F51\u901F\u7C7B\u6570\u503C \u4E3A\u5B57\u8282\uFF081KB=1024B\uFF0C1MB = 1024*1024B\uFF09
    • \u5185\u5B58\u3001\u786C\u76D8\u3001CPU \u4EE5\u5360\u7528\u767E\u5206\u6BD4\u8BA1\u6570
    • \u79BB\u7EBF\u76D1\u63A7\u65E0\u9700\u8BBE\u7F6E\u6B64\u9879
  • cover\uFF1A
    • 0 \u76D1\u63A7\u6240\u6709\uFF0C\u901A\u8FC7 ignore \u5FFD\u7565\u7279\u5B9A\u670D\u52A1\u5668
    • 1 \u5FFD\u7565\u6240\u6709\uFF0C\u901A\u8FC7 ignore \u76D1\u63A7\u7279\u5B9A\u670D\u52A1\u5668
      \u4F8B\u5982\uFF1A[{"type":"offline","duration":10, "cover":0, "ignore":{"5": true}}]
  • ignore: \u9009\u62E9\u5FFD\u7565\u7279\u5B9A\u670D\u52A1\u5668\uFF0C\u642D\u914D cover \u4F7F\u7528\uFF0C\u5185\u5BB9\u4E3A\u670D\u52A1\u5668id\u548C\u5E03\u5C14\u503C\uFF0C\u4F8B\u5982\uFF1A{"1": true, "2":false}

\u5B8C\u6574\u793A\u4F8B:

TIP

\u6DFB\u52A0\u4E00\u4E2A\u79BB\u7EBF\u62A5\u8B66

  • \u540D\u79F0\uFF1A\u79BB\u7EBF\u901A\u77E5
  • \u89C4\u5219\uFF1A[{"Type":"offline","Duration":10}]
  • \u542F\u7528\uFF1A\u221A

TIP

\u6DFB\u52A0\u4E00\u4E2A\u76D1\u63A7 CPU \u6301\u7EED 10s \u8D85\u8FC7 50% \u4E14 \u5185\u5B58\u6301\u7EED 20s \u5360\u7528\u4F4E\u4E8E 20% \u7684\u62A5\u8B66

  • \u540D\u79F0\uFF1ACPU+\u5185\u5B58
  • \u89C4\u5219\uFF1A[{"Type":"cpu","Min":0,"Max":50,"Duration":10},{"Type":"memory","Min":20,"Max":0,"Duration":20}]
  • \u542F\u7528\uFF1A\u221A

\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66

\u53EF\u4EE5\u7528\u4F5C\u6708\u6D41\u91CF\u62A5\u8B66

  • type:
    • transfer_in_cycle \u5468\u671F\u5185\u7684\u5165\u7AD9\u6D41\u91CF
    • transfer_out_cycle \u5468\u671F\u5185\u7684\u51FA\u7AD9\u6D41\u91CF
    • transfer_all_cycle \u5468\u671F\u5185\u53CC\u5411\u6D41\u91CF\u548C
  • cycle_start\uFF1A \u7EDF\u8BA1\u5468\u671F\u5F00\u59CB\u65E5\u671F\uFF08\u53EF\u4EE5\u662F\u4F60\u673A\u5668\u8BA1\u8D39\u5468\u671F\u7684\u5F00\u59CB\u65E5\u671F\uFF09\uFF0C\u65F6\u95F4\u683C\u5F0F\u4E3ARFC3339\uFF0C\u4F8B\u5982\u5317\u4EAC\u65F6\u95F4\u4E3A2022-01-11T08:00:00.00+08:00
  • cycle_interval\uFF1A\u6BCF\u9694\u591A\u5C11\u4E2A\u5468\u671F\u5355\u4F4D\uFF08\u4F8B\u5982\uFF0C\u5468\u671F\u5355\u4F4D\u4E3A\u5929\uFF0C\u8BE5\u503C\u4E3A 7\uFF0C\u5219\u4EE3\u8868\u6BCF\u9694 7 \u5929\u7EDF\u8BA1\u4E00\u6B21\uFF09
  • cycle_unit \u7EDF\u8BA1\u5468\u671F\u5355\u4F4D\uFF0C\u9ED8\u8BA4hour,\u53EF\u9009(hour, day, week, month, year)
  • min/max\u3001cover\u3001ignore \u53C2\u8003\u57FA\u672C\u89C4\u5219\u914D\u7F6E

\u793A\u4F8B: ID \u4E3A 3 \u7684\u670D\u52A1\u5668\uFF08ignore \u91CC\u9762\u5B9A\u4E49\uFF09\uFF0C\u4EE5\u6BCF\u6708 15 \u53F7\u4E3A\u7EDF\u8BA1\u5468\u671F\uFF0C\u5468\u671F\u5185\u7EDF\u8BA1\u7684\u51FA\u7AD9\u6708\u6D41\u91CF\u8FBE\u5230 1TB \u65F6\u62A5\u8B66 [{"type":"transfer_out_cycle","max":1000000000000,"cycle_start":"2022-01-11T08:00:00.00+08:00","cycle_interval":1,"cycle_unit":"month","cover":1,"ignore":{"3":true}}]

',20),u=[c];function d(r,a,n,s,p,q){return t(),o("div",null,u)}var m=e(i,[["render",d]]);export{h as __pageData,m as default}; diff --git a/assets/guide_notifications.md.21540eb3.lean.js b/assets/guide_notifications.md.33c483a1.lean.js similarity index 92% rename from assets/guide_notifications.md.21540eb3.lean.js rename to assets/guide_notifications.md.33c483a1.lean.js index dda73400..9e8c1f96 100644 --- a/assets/guide_notifications.md.21540eb3.lean.js +++ b/assets/guide_notifications.md.33c483a1.lean.js @@ -1 +1 @@ -import{_ as e,c as o,o as t,a as l}from"./app.32957174.js";const h='{"title":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F","slug":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F"},{"level":2,"title":"\u62A5\u8B66\u89C4\u5219\u8BF4\u660E","slug":"\u62A5\u8B66\u89C4\u5219\u8BF4\u660E"},{"level":3,"title":"\u57FA\u672C\u89C4\u5219","slug":"\u57FA\u672C\u89C4\u5219"},{"level":3,"title":"\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66","slug":"\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66"}],"relativePath":"guide/notifications.md"}',i={},c=l("",20),u=[c];function d(r,a,n,s,p,q){return t(),o("div",null,u)}var m=e(i,[["render",d]]);export{h as __pageData,m as default}; +import{_ as e,c as o,o as t,a as l}from"./app.0bd0e305.js";const h='{"title":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F","slug":"\u7075\u6D3B\u7684\u901A\u77E5\u65B9\u5F0F"},{"level":2,"title":"\u62A5\u8B66\u89C4\u5219\u8BF4\u660E","slug":"\u62A5\u8B66\u89C4\u5219\u8BF4\u660E"},{"level":3,"title":"\u57FA\u672C\u89C4\u5219","slug":"\u57FA\u672C\u89C4\u5219"},{"level":3,"title":"\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66","slug":"\u7279\u6B8A\uFF1A\u4EFB\u610F\u5468\u671F\u6D41\u91CF\u62A5\u8B66"}],"relativePath":"guide/notifications.md"}',i={},c=l("",20),u=[c];function d(r,a,n,s,p,q){return t(),o("div",null,u)}var m=e(i,[["render",d]]);export{h as __pageData,m as default}; diff --git a/assets/guide_q1.md.2530c76b.js b/assets/guide_q1.md.6e999393.js similarity index 99% rename from assets/guide_q1.md.2530c76b.js rename to assets/guide_q1.md.6e999393.js index d276bfdc..87ccbc4c 100644 --- a/assets/guide_q1.md.2530c76b.js +++ b/assets/guide_q1.md.6e999393.js @@ -1,4 +1,4 @@ -import{_ as n,c as s,o as a,a as e}from"./app.32957174.js";const v='{"title":"\u51C6\u5907\u5DE5\u4F5C","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":2,"title":"NGINX\u914D\u7F6E","slug":"nginx\u914D\u7F6E"},{"level":2,"title":"\u4F7F\u7528\u65B9\u5F0F","slug":"\u4F7F\u7528\u65B9\u5F0F"},{"level":2,"title":"\u9632\u6B62\u76D7\u7528","slug":"\u9632\u6B62\u76D7\u7528"}],"relativePath":"guide/q1.md"}',t={},p=e(`

\u51C6\u5907\u5DE5\u4F5C

\u4F60\u53EF\u4EE5\u9009\u62E9CloudFlare\u7684workers\u8FDB\u884C\u53CD\u4EE3,\u4F46\u5927\u9646\u7684\u7F51\u7EDC\u4F60\u61C2\u7684,\u8FD9\u91CC\u4ECB\u7ECD\u7528\u4F60\u81EA\u5DF1\u670D\u52A1\u5668\u53CD\u4EE3\u65B9\u5F0F
\u642D\u5EFA\u4E00\u4E2ATGbot api\u53CD\u4EE3\uFF0C\u4F60\u9700\u8981\uFF1A
1.\u4E00\u4E2A\u4E0D\u53D7GFW\u5C01\u9501\u7684\u670D\u52A1\u5668(\u4E14\u5B89\u88C5\u597Dnginx)
2.\u4E00\u4E2A\u57DF\u540D(\u63D0\u524D\u7533\u8BF7SSL\u8BC1\u4E66)

NGINX\u914D\u7F6E

\u7F16\u8F91\u4F60nginx\u7684\u914D\u7F6E\u6587\u4EF6,\u5728http{}\u4E2D\u52A0\u4E0A\u5982\u4E0B\u914D\u7F6E

# http\u5F3A\u5236\u8DF3\u8F6C\u5230htpps
+import{_ as n,c as s,o as a,a as e}from"./app.0bd0e305.js";const v='{"title":"\u51C6\u5907\u5DE5\u4F5C","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":2,"title":"NGINX\u914D\u7F6E","slug":"nginx\u914D\u7F6E"},{"level":2,"title":"\u4F7F\u7528\u65B9\u5F0F","slug":"\u4F7F\u7528\u65B9\u5F0F"},{"level":2,"title":"\u9632\u6B62\u76D7\u7528","slug":"\u9632\u6B62\u76D7\u7528"}],"relativePath":"guide/q1.md"}',t={},p=e(`

\u51C6\u5907\u5DE5\u4F5C

\u4F60\u53EF\u4EE5\u9009\u62E9CloudFlare\u7684workers\u8FDB\u884C\u53CD\u4EE3,\u4F46\u5927\u9646\u7684\u7F51\u7EDC\u4F60\u61C2\u7684,\u8FD9\u91CC\u4ECB\u7ECD\u7528\u4F60\u81EA\u5DF1\u670D\u52A1\u5668\u53CD\u4EE3\u65B9\u5F0F
\u642D\u5EFA\u4E00\u4E2ATGbot api\u53CD\u4EE3\uFF0C\u4F60\u9700\u8981\uFF1A
1.\u4E00\u4E2A\u4E0D\u53D7GFW\u5C01\u9501\u7684\u670D\u52A1\u5668(\u4E14\u5B89\u88C5\u597Dnginx)
2.\u4E00\u4E2A\u57DF\u540D(\u63D0\u524D\u7533\u8BF7SSL\u8BC1\u4E66)

NGINX\u914D\u7F6E

\u7F16\u8F91\u4F60nginx\u7684\u914D\u7F6E\u6587\u4EF6,\u5728http{}\u4E2D\u52A0\u4E0A\u5982\u4E0B\u914D\u7F6E

# http\u5F3A\u5236\u8DF3\u8F6C\u5230htpps
 server {
     listen 80;
     listen [::]:80;
diff --git a/assets/guide_q1.md.2530c76b.lean.js b/assets/guide_q1.md.6e999393.lean.js
similarity index 89%
rename from assets/guide_q1.md.2530c76b.lean.js
rename to assets/guide_q1.md.6e999393.lean.js
index 7145cf5f..efb15321 100644
--- a/assets/guide_q1.md.2530c76b.lean.js
+++ b/assets/guide_q1.md.6e999393.lean.js
@@ -1 +1 @@
-import{_ as n,c as s,o as a,a as e}from"./app.32957174.js";const v='{"title":"\u51C6\u5907\u5DE5\u4F5C","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":2,"title":"NGINX\u914D\u7F6E","slug":"nginx\u914D\u7F6E"},{"level":2,"title":"\u4F7F\u7528\u65B9\u5F0F","slug":"\u4F7F\u7528\u65B9\u5F0F"},{"level":2,"title":"\u9632\u6B62\u76D7\u7528","slug":"\u9632\u6B62\u76D7\u7528"}],"relativePath":"guide/q1.md"}',t={},p=e("",11),o=[p];function c(r,l,i,k,d,u){return a(),s("div",null,o)}var _=n(t,[["render",c]]);export{v as __pageData,_ as default};
+import{_ as n,c as s,o as a,a as e}from"./app.0bd0e305.js";const v='{"title":"\u51C6\u5907\u5DE5\u4F5C","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u51C6\u5907\u5DE5\u4F5C","slug":"\u51C6\u5907\u5DE5\u4F5C"},{"level":2,"title":"NGINX\u914D\u7F6E","slug":"nginx\u914D\u7F6E"},{"level":2,"title":"\u4F7F\u7528\u65B9\u5F0F","slug":"\u4F7F\u7528\u65B9\u5F0F"},{"level":2,"title":"\u9632\u6B62\u76D7\u7528","slug":"\u9632\u6B62\u76D7\u7528"}],"relativePath":"guide/q1.md"}',t={},p=e("",11),o=[p];function c(r,l,i,k,d,u){return a(),s("div",null,o)}var _=n(t,[["render",c]]);export{v as __pageData,_ as default};
diff --git a/assets/guide_q2.md.a712bfb8.js b/assets/guide_q2.md.b0724251.js
similarity index 96%
rename from assets/guide_q2.md.a712bfb8.js
rename to assets/guide_q2.md.b0724251.js
index be56ac44..ec92f1d8 100644
--- a/assets/guide_q2.md.a712bfb8.js
+++ b/assets/guide_q2.md.b0724251.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a,a as n}from"./app.32957174.js";const f='{"title":"Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q2.md"}',o={},r=n('

Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B

  1. \u76F4\u63A5\u6267\u884C /opt/nezha/agent/nezha-agent -s \u9762\u677FIP\u6216\u975ECDN\u57DF\u540D:\u9762\u677FRPC\u7AEF\u53E3 -p Agent\u5BC6\u94A5 -d \u67E5\u770B\u65E5\u5FD7\u662F\u5426\u662F\u56E0\u4E3A DNS\u3001\u7F51\u7EDC\u4E0D\u4F73\u5BFC\u81F4\u8D85\u65F6\uFF08timeout\uFF09
  2. nc -v \u57DF\u540D/IP \u9762\u677FRPC\u7AEF\u53E3 \u6216\u8005 telnet \u57DF\u540D/IP \u9762\u677FRPC\u7AEF\u53E3 \u6765\u68C0\u9A8C\u662F\u5426\u662F\u7F51\u7EDC\u95EE\u9898\uFF0C\u68C0\u67E5\u672C\u673A\u4E0E\u9762\u677F\u670D\u52A1\u5668\u7684\u51FA\u5165\u7AD9\u9632\u706B\u5899\uFF0C\u5982\u679C\u65E0\u6CD5\u5224\u65AD\u95EE\u9898\u53EF\u501F\u52A9 https://port.ping.pe/ \u63D0\u4F9B\u7684\u7AEF\u53E3\u68C0\u67E5\u5DE5\u5177\u8FDB\u884C\u68C0\u6D4B\u3002
  3. \u5982\u679C\u4E0A\u9762\u6B65\u9AA4\u68C0\u6D4B\u6B63\u5E38\uFF0CAgent \u6B63\u5E38\u4E0A\u7EBF\uFF0C\u5C1D\u8BD5\u5173\u95ED SELinux\uFF0C\u5982\u4F55\u5173\u95ED SELinux\uFF1F
',2),c=[r];function _(i,s,d,l,p,h){return a(),t("div",null,c)}var u=e(o,[["render",_]]);export{f as __pageData,u as default}; +import{_ as e,c as t,o as a,a as n}from"./app.0bd0e305.js";const f='{"title":"Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q2.md"}',o={},r=n('

Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B

  1. \u76F4\u63A5\u6267\u884C /opt/nezha/agent/nezha-agent -s \u9762\u677FIP\u6216\u975ECDN\u57DF\u540D:\u9762\u677FRPC\u7AEF\u53E3 -p Agent\u5BC6\u94A5 -d \u67E5\u770B\u65E5\u5FD7\u662F\u5426\u662F\u56E0\u4E3A DNS\u3001\u7F51\u7EDC\u4E0D\u4F73\u5BFC\u81F4\u8D85\u65F6\uFF08timeout\uFF09
  2. nc -v \u57DF\u540D/IP \u9762\u677FRPC\u7AEF\u53E3 \u6216\u8005 telnet \u57DF\u540D/IP \u9762\u677FRPC\u7AEF\u53E3 \u6765\u68C0\u9A8C\u662F\u5426\u662F\u7F51\u7EDC\u95EE\u9898\uFF0C\u68C0\u67E5\u672C\u673A\u4E0E\u9762\u677F\u670D\u52A1\u5668\u7684\u51FA\u5165\u7AD9\u9632\u706B\u5899\uFF0C\u5982\u679C\u65E0\u6CD5\u5224\u65AD\u95EE\u9898\u53EF\u501F\u52A9 https://port.ping.pe/ \u63D0\u4F9B\u7684\u7AEF\u53E3\u68C0\u67E5\u5DE5\u5177\u8FDB\u884C\u68C0\u6D4B\u3002
  3. \u5982\u679C\u4E0A\u9762\u6B65\u9AA4\u68C0\u6D4B\u6B63\u5E38\uFF0CAgent \u6B63\u5E38\u4E0A\u7EBF\uFF0C\u5C1D\u8BD5\u5173\u95ED SELinux\uFF0C\u5982\u4F55\u5173\u95ED SELinux\uFF1F
',2),c=[r];function _(i,s,d,l,p,h){return a(),t("div",null,c)}var u=e(o,[["render",_]]);export{f as __pageData,u as default}; diff --git a/assets/guide_q2.md.a712bfb8.lean.js b/assets/guide_q2.md.b0724251.lean.js similarity index 82% rename from assets/guide_q2.md.a712bfb8.lean.js rename to assets/guide_q2.md.b0724251.lean.js index 52f1866d..81082243 100644 --- a/assets/guide_q2.md.a712bfb8.lean.js +++ b/assets/guide_q2.md.b0724251.lean.js @@ -1 +1 @@ -import{_ as e,c as t,o as a,a as n}from"./app.32957174.js";const f='{"title":"Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q2.md"}',o={},r=n("",2),c=[r];function _(i,s,d,l,p,h){return a(),t("div",null,c)}var u=e(o,[["render",_]]);export{f as __pageData,u as default}; +import{_ as e,c as t,o as a,a as n}from"./app.0bd0e305.js";const f='{"title":"Agent \u542F\u52A8/\u4E0A\u7EBF \u95EE\u9898\u81EA\u68C0\u6D41\u7A0B","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q2.md"}',o={},r=n("",2),c=[r];function _(i,s,d,l,p,h){return a(),t("div",null,c)}var u=e(o,[["render",_]]);export{f as __pageData,u as default}; diff --git a/assets/guide_q3.md.bcb1d1bc.js b/assets/guide_q3.md.8095ecd9.js similarity index 98% rename from assets/guide_q3.md.bcb1d1bc.js rename to assets/guide_q3.md.8095ecd9.js index 0372924a..89e98614 100644 --- a/assets/guide_q3.md.bcb1d1bc.js +++ b/assets/guide_q3.md.8095ecd9.js @@ -1,4 +1,4 @@ -import{_ as n,c as a,o as s,a as e}from"./app.32957174.js";const g='{"title":"\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3\uFF08\u652F\u6301 Cloudflare CDN\uFF09","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q3.md"}',t={},o=e(`

\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3\uFF08\u652F\u6301 Cloudflare CDN\uFF09

\u4F7F\u7528 Nginx \u6216\u8005 Caddy \u53CD\u5411\u4EE3\u7406 gRPC

  • Nginx \u914D\u7F6E
server {
+import{_ as n,c as a,o as s,a as e}from"./app.0bd0e305.js";const g='{"title":"\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3\uFF08\u652F\u6301 Cloudflare CDN\uFF09","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q3.md"}',t={},o=e(`

\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3\uFF08\u652F\u6301 Cloudflare CDN\uFF09

\u4F7F\u7528 Nginx \u6216\u8005 Caddy \u53CD\u5411\u4EE3\u7406 gRPC

  • Nginx \u914D\u7F6E
server {
     listen 443 ssl http2;
     listen [::]:443 ssl http2;
     server_name data.example.com; # \u4F60\u7684 Agent \u8FDE\u63A5 Dashboard \u7684\u57DF\u540D
diff --git a/assets/guide_q3.md.bcb1d1bc.lean.js b/assets/guide_q3.md.8095ecd9.lean.js
similarity index 82%
rename from assets/guide_q3.md.bcb1d1bc.lean.js
rename to assets/guide_q3.md.8095ecd9.lean.js
index 36f4c727..e8944387 100644
--- a/assets/guide_q3.md.bcb1d1bc.lean.js
+++ b/assets/guide_q3.md.8095ecd9.lean.js
@@ -1 +1 @@
-import{_ as n,c as a,o as s,a as e}from"./app.32957174.js";const g='{"title":"\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3\uFF08\u652F\u6301 Cloudflare CDN\uFF09","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q3.md"}',t={},o=e("",13),p=[o];function c(l,d,r,i,u,k){return s(),a("div",null,p)}var C=n(t,[["render",c]]);export{g as __pageData,C as default};
+import{_ as n,c as a,o as s,a as e}from"./app.0bd0e305.js";const g='{"title":"\u53CD\u5411\u4EE3\u7406 gRPC \u7AEF\u53E3\uFF08\u652F\u6301 Cloudflare CDN\uFF09","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q3.md"}',t={},o=e("",13),p=[o];function c(l,d,r,i,u,k){return s(),a("div",null,p)}var C=n(t,[["render",c]]);export{g as __pageData,C as default};
diff --git a/assets/guide_q4.md.13d379f3.js b/assets/guide_q4.md.baadc4a9.js
similarity index 95%
rename from assets/guide_q4.md.13d379f3.js
rename to assets/guide_q4.md.baadc4a9.js
index 448eea67..17214d98 100644
--- a/assets/guide_q4.md.13d379f3.js
+++ b/assets/guide_q4.md.baadc4a9.js
@@ -1 +1 @@
-import{_ as a,c as o,o as r,b as e,d as t}from"./app.32957174.js";const b='{"title":"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q4.md"}',s={},c=e("h4",{id:"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00-\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25",tabindex:"-1"},[t("\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25 "),e("a",{class:"header-anchor",href:"#\u5B9E\u65F6\u901A\u9053\u65AD\u5F00-\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","aria-hidden":"true"},"#")],-1),n=e("ul",null,[e("li",null,"\u5982\u679C\u4F60\u4F7F\u7528\u4E86CDN\uFF0C\u8BF7\u786E\u8BA4CDN\u670D\u52A1\u5546\u63D0\u4F9BWebSocket\u670D\u52A1\uFF0C\u5E76\u4E14\u5DF2\u5F00\u542FWebSocket"),e("li",null,[t("\u786E\u8BA4\u4F60\u7684\u53CD\u4EE3\u89C4\u5219\u4E2D\u9488\u5BF9 /ws,/terminal \u8DEF\u5F84\u7684 WebSocket \u8FDB\u884C\u4E86\u7279\u522B\u914D\u7F6E\uFF0C\u4F60\u53EF\u4EE5 "),e("a",{href:"/guide/dashboard.html#\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},"\u70B9\u51FB\u8FD9\u91CC"),t(" \u67E5\u770B\u53CD\u5411\u4EE3\u7406\u914D\u7F6E")])],-1),d=[c,n];function i(l,_,h,u,p,f){return r(),o("div",null,d)}var k=a(s,[["render",i]]);export{b as __pageData,k as default};
+import{_ as a,c as o,o as r,b as e,d as t}from"./app.0bd0e305.js";const b='{"title":"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q4.md"}',s={},c=e("h4",{id:"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00-\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25",tabindex:"-1"},[t("\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25 "),e("a",{class:"header-anchor",href:"#\u5B9E\u65F6\u901A\u9053\u65AD\u5F00-\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","aria-hidden":"true"},"#")],-1),n=e("ul",null,[e("li",null,"\u5982\u679C\u4F60\u4F7F\u7528\u4E86CDN\uFF0C\u8BF7\u786E\u8BA4CDN\u670D\u52A1\u5546\u63D0\u4F9BWebSocket\u670D\u52A1\uFF0C\u5E76\u4E14\u5DF2\u5F00\u542FWebSocket"),e("li",null,[t("\u786E\u8BA4\u4F60\u7684\u53CD\u4EE3\u89C4\u5219\u4E2D\u9488\u5BF9 /ws,/terminal \u8DEF\u5F84\u7684 WebSocket \u8FDB\u884C\u4E86\u7279\u522B\u914D\u7F6E\uFF0C\u4F60\u53EF\u4EE5 "),e("a",{href:"/guide/dashboard.html#\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},"\u70B9\u51FB\u8FD9\u91CC"),t(" \u67E5\u770B\u53CD\u5411\u4EE3\u7406\u914D\u7F6E")])],-1),d=[c,n];function i(l,_,h,u,p,f){return r(),o("div",null,d)}var k=a(s,[["render",i]]);export{b as __pageData,k as default};
diff --git a/assets/guide_q4.md.13d379f3.lean.js b/assets/guide_q4.md.baadc4a9.lean.js
similarity index 95%
rename from assets/guide_q4.md.13d379f3.lean.js
rename to assets/guide_q4.md.baadc4a9.lean.js
index 448eea67..17214d98 100644
--- a/assets/guide_q4.md.13d379f3.lean.js
+++ b/assets/guide_q4.md.baadc4a9.lean.js
@@ -1 +1 @@
-import{_ as a,c as o,o as r,b as e,d as t}from"./app.32957174.js";const b='{"title":"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q4.md"}',s={},c=e("h4",{id:"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00-\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25",tabindex:"-1"},[t("\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25 "),e("a",{class:"header-anchor",href:"#\u5B9E\u65F6\u901A\u9053\u65AD\u5F00-\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","aria-hidden":"true"},"#")],-1),n=e("ul",null,[e("li",null,"\u5982\u679C\u4F60\u4F7F\u7528\u4E86CDN\uFF0C\u8BF7\u786E\u8BA4CDN\u670D\u52A1\u5546\u63D0\u4F9BWebSocket\u670D\u52A1\uFF0C\u5E76\u4E14\u5DF2\u5F00\u542FWebSocket"),e("li",null,[t("\u786E\u8BA4\u4F60\u7684\u53CD\u4EE3\u89C4\u5219\u4E2D\u9488\u5BF9 /ws,/terminal \u8DEF\u5F84\u7684 WebSocket \u8FDB\u884C\u4E86\u7279\u522B\u914D\u7F6E\uFF0C\u4F60\u53EF\u4EE5 "),e("a",{href:"/guide/dashboard.html#\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},"\u70B9\u51FB\u8FD9\u91CC"),t(" \u67E5\u770B\u53CD\u5411\u4EE3\u7406\u914D\u7F6E")])],-1),d=[c,n];function i(l,_,h,u,p,f){return r(),o("div",null,d)}var k=a(s,[["render",i]]);export{b as __pageData,k as default};
+import{_ as a,c as o,o as r,b as e,d as t}from"./app.0bd0e305.js";const b='{"title":"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q4.md"}',s={},c=e("h4",{id:"\u5B9E\u65F6\u901A\u9053\u65AD\u5F00-\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25",tabindex:"-1"},[t("\u5B9E\u65F6\u901A\u9053\u65AD\u5F00/\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25 "),e("a",{class:"header-anchor",href:"#\u5B9E\u65F6\u901A\u9053\u65AD\u5F00-\u5728\u7EBF\u7EC8\u7AEF\u8FDE\u63A5\u5931\u8D25","aria-hidden":"true"},"#")],-1),n=e("ul",null,[e("li",null,"\u5982\u679C\u4F60\u4F7F\u7528\u4E86CDN\uFF0C\u8BF7\u786E\u8BA4CDN\u670D\u52A1\u5546\u63D0\u4F9BWebSocket\u670D\u52A1\uFF0C\u5E76\u4E14\u5DF2\u5F00\u542FWebSocket"),e("li",null,[t("\u786E\u8BA4\u4F60\u7684\u53CD\u4EE3\u89C4\u5219\u4E2D\u9488\u5BF9 /ws,/terminal \u8DEF\u5F84\u7684 WebSocket \u8FDB\u884C\u4E86\u7279\u522B\u914D\u7F6E\uFF0C\u4F60\u53EF\u4EE5 "),e("a",{href:"/guide/dashboard.html#\u914D\u7F6E\u53CD\u5411\u4EE3\u7406"},"\u70B9\u51FB\u8FD9\u91CC"),t(" \u67E5\u770B\u53CD\u5411\u4EE3\u7406\u914D\u7F6E")])],-1),d=[c,n];function i(l,_,h,u,p,f){return r(),o("div",null,d)}var k=a(s,[["render",i]]);export{b as __pageData,k as default};
diff --git a/assets/guide_q5.md.52348c7a.js b/assets/guide_q5.md.ddba06e3.js
similarity index 94%
rename from assets/guide_q5.md.52348c7a.js
rename to assets/guide_q5.md.ddba06e3.js
index e5820d73..da2bbf0e 100644
--- a/assets/guide_q5.md.52348c7a.js
+++ b/assets/guide_q5.md.ddba06e3.js
@@ -1 +1 @@
-import{_ as a,c as o,o as n,b as e,d as t}from"./app.32957174.js";const x='{"title":"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q5.md"}',l={},r=e("h4",{id:"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F",tabindex:"-1"},[t("\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F "),e("a",{class:"header-anchor",href:"#\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","aria-hidden":"true"},"#")],-1),s=e("ol",null,[e("li",null,[t("\u5148\u8FD0\u884C\u4E00\u952E\u811A\u672C\uFF0C\u9009\u62E9 "),e("code",null,"\u505C\u6B62\u9762\u677F")]),e("li",null,[t("\u5728\u65E7\u670D\u52A1\u5668\u4E2D\u6253\u5305 "),e("code",null,"/opt/nezha"),t(" \u6587\u4EF6\u5939\uFF0C\u590D\u5236\u5230\u65B0\u73AF\u5883\u76F8\u540C\u4F4D\u7F6E\u89E3\u538B")]),e("li",null,[t("\u5728\u65B0\u73AF\u5883\u4E2D\u8FD0\u884C\u4E00\u952E\u811A\u672C\uFF0C\u9009\u62E9 "),e("code",null,"\u542F\u52A8\u9762\u677F")])],-1),c=[r,s];function d(i,_,u,h,p,f){return n(),o("div",null,c)}var $=a(l,[["render",d]]);export{x as __pageData,$ as default};
+import{_ as a,c as o,o as n,b as e,d as t}from"./app.0bd0e305.js";const x='{"title":"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q5.md"}',l={},r=e("h4",{id:"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F",tabindex:"-1"},[t("\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F "),e("a",{class:"header-anchor",href:"#\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","aria-hidden":"true"},"#")],-1),s=e("ol",null,[e("li",null,[t("\u5148\u8FD0\u884C\u4E00\u952E\u811A\u672C\uFF0C\u9009\u62E9 "),e("code",null,"\u505C\u6B62\u9762\u677F")]),e("li",null,[t("\u5728\u65E7\u670D\u52A1\u5668\u4E2D\u6253\u5305 "),e("code",null,"/opt/nezha"),t(" \u6587\u4EF6\u5939\uFF0C\u590D\u5236\u5230\u65B0\u73AF\u5883\u76F8\u540C\u4F4D\u7F6E\u89E3\u538B")]),e("li",null,[t("\u5728\u65B0\u73AF\u5883\u4E2D\u8FD0\u884C\u4E00\u952E\u811A\u672C\uFF0C\u9009\u62E9 "),e("code",null,"\u542F\u52A8\u9762\u677F")])],-1),c=[r,s];function d(i,_,u,h,p,f){return n(),o("div",null,c)}var $=a(l,[["render",d]]);export{x as __pageData,$ as default};
diff --git a/assets/guide_q5.md.52348c7a.lean.js b/assets/guide_q5.md.ddba06e3.lean.js
similarity index 94%
rename from assets/guide_q5.md.52348c7a.lean.js
rename to assets/guide_q5.md.ddba06e3.lean.js
index e5820d73..da2bbf0e 100644
--- a/assets/guide_q5.md.52348c7a.lean.js
+++ b/assets/guide_q5.md.ddba06e3.lean.js
@@ -1 +1 @@
-import{_ as a,c as o,o as n,b as e,d as t}from"./app.32957174.js";const x='{"title":"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q5.md"}',l={},r=e("h4",{id:"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F",tabindex:"-1"},[t("\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F "),e("a",{class:"header-anchor",href:"#\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","aria-hidden":"true"},"#")],-1),s=e("ol",null,[e("li",null,[t("\u5148\u8FD0\u884C\u4E00\u952E\u811A\u672C\uFF0C\u9009\u62E9 "),e("code",null,"\u505C\u6B62\u9762\u677F")]),e("li",null,[t("\u5728\u65E7\u670D\u52A1\u5668\u4E2D\u6253\u5305 "),e("code",null,"/opt/nezha"),t(" \u6587\u4EF6\u5939\uFF0C\u590D\u5236\u5230\u65B0\u73AF\u5883\u76F8\u540C\u4F4D\u7F6E\u89E3\u538B")]),e("li",null,[t("\u5728\u65B0\u73AF\u5883\u4E2D\u8FD0\u884C\u4E00\u952E\u811A\u672C\uFF0C\u9009\u62E9 "),e("code",null,"\u542F\u52A8\u9762\u677F")])],-1),c=[r,s];function d(i,_,u,h,p,f){return n(),o("div",null,c)}var $=a(l,[["render",d]]);export{x as __pageData,$ as default};
+import{_ as a,c as o,o as n,b as e,d as t}from"./app.0bd0e305.js";const x='{"title":"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","description":"","frontmatter":{},"headers":[],"relativePath":"guide/q5.md"}',l={},r=e("h4",{id:"\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F",tabindex:"-1"},[t("\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F "),e("a",{class:"header-anchor",href:"#\u5982\u4F55\u8FDB\u884C\u6570\u636E\u8FC1\u79FB\u3001\u5907\u4EFD\u6062\u590D\uFF1F","aria-hidden":"true"},"#")],-1),s=e("ol",null,[e("li",null,[t("\u5148\u8FD0\u884C\u4E00\u952E\u811A\u672C\uFF0C\u9009\u62E9 "),e("code",null,"\u505C\u6B62\u9762\u677F")]),e("li",null,[t("\u5728\u65E7\u670D\u52A1\u5668\u4E2D\u6253\u5305 "),e("code",null,"/opt/nezha"),t(" \u6587\u4EF6\u5939\uFF0C\u590D\u5236\u5230\u65B0\u73AF\u5883\u76F8\u540C\u4F4D\u7F6E\u89E3\u538B")]),e("li",null,[t("\u5728\u65B0\u73AF\u5883\u4E2D\u8FD0\u884C\u4E00\u952E\u811A\u672C\uFF0C\u9009\u62E9 "),e("code",null,"\u542F\u52A8\u9762\u677F")])],-1),c=[r,s];function d(i,_,u,h,p,f){return n(),o("div",null,c)}var $=a(l,[["render",d]]);export{x as __pageData,$ as default};
diff --git a/assets/guide_servers.md.99c5036d.js b/assets/guide_servers.md.9e63f0b3.js
similarity index 86%
rename from assets/guide_servers.md.99c5036d.js
rename to assets/guide_servers.md.9e63f0b3.js
index 7f2e7f6e..3e00ba16 100644
--- a/assets/guide_servers.md.99c5036d.js
+++ b/assets/guide_servers.md.9e63f0b3.js
@@ -1 +1 @@
-import{_ as t,c as a,o as r,b as e,d as s}from"./app.32957174.js";const m='{"title":"\u670D\u52A1\u5668","description":"","frontmatter":{},"headers":[],"relativePath":"guide/servers.md"}',o={},c=e("h1",{id:"\u670D\u52A1\u5668",tabindex:"-1"},[s("\u670D\u52A1\u5668 "),e("a",{class:"header-anchor",href:"#\u670D\u52A1\u5668","aria-hidden":"true"},"#")],-1),d=[c];function n(i,_,h,p,l,f){return r(),a("div",null,d)}var v=t(o,[["render",n]]);export{m as __pageData,v as default};
+import{_ as t,c as a,o as r,b as e,d as s}from"./app.0bd0e305.js";const m='{"title":"\u670D\u52A1\u5668","description":"","frontmatter":{},"headers":[],"relativePath":"guide/servers.md"}',o={},c=e("h1",{id:"\u670D\u52A1\u5668",tabindex:"-1"},[s("\u670D\u52A1\u5668 "),e("a",{class:"header-anchor",href:"#\u670D\u52A1\u5668","aria-hidden":"true"},"#")],-1),d=[c];function n(i,_,h,p,l,f){return r(),a("div",null,d)}var v=t(o,[["render",n]]);export{m as __pageData,v as default};
diff --git a/assets/guide_servers.md.99c5036d.lean.js b/assets/guide_servers.md.9e63f0b3.lean.js
similarity index 86%
rename from assets/guide_servers.md.99c5036d.lean.js
rename to assets/guide_servers.md.9e63f0b3.lean.js
index 7f2e7f6e..3e00ba16 100644
--- a/assets/guide_servers.md.99c5036d.lean.js
+++ b/assets/guide_servers.md.9e63f0b3.lean.js
@@ -1 +1 @@
-import{_ as t,c as a,o as r,b as e,d as s}from"./app.32957174.js";const m='{"title":"\u670D\u52A1\u5668","description":"","frontmatter":{},"headers":[],"relativePath":"guide/servers.md"}',o={},c=e("h1",{id:"\u670D\u52A1\u5668",tabindex:"-1"},[s("\u670D\u52A1\u5668 "),e("a",{class:"header-anchor",href:"#\u670D\u52A1\u5668","aria-hidden":"true"},"#")],-1),d=[c];function n(i,_,h,p,l,f){return r(),a("div",null,d)}var v=t(o,[["render",n]]);export{m as __pageData,v as default};
+import{_ as t,c as a,o as r,b as e,d as s}from"./app.0bd0e305.js";const m='{"title":"\u670D\u52A1\u5668","description":"","frontmatter":{},"headers":[],"relativePath":"guide/servers.md"}',o={},c=e("h1",{id:"\u670D\u52A1\u5668",tabindex:"-1"},[s("\u670D\u52A1\u5668 "),e("a",{class:"header-anchor",href:"#\u670D\u52A1\u5668","aria-hidden":"true"},"#")],-1),d=[c];function n(i,_,h,p,l,f){return r(),a("div",null,d)}var v=t(o,[["render",n]]);export{m as __pageData,v as default};
diff --git a/assets/guide_services.md.04b8f4e2.js b/assets/guide_services.md.f3d9de01.js
similarity index 89%
rename from assets/guide_services.md.04b8f4e2.js
rename to assets/guide_services.md.f3d9de01.js
index 9fda34cb..e8ca1ddc 100644
--- a/assets/guide_services.md.04b8f4e2.js
+++ b/assets/guide_services.md.f3d9de01.js
@@ -1 +1 @@
-import{_ as s,c as o,o as a,b as e,d as t}from"./app.32957174.js";const v='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/services.md"}',c={},r=e("p",null,"\u670D\u52A1\u76D1\u63A7\uFF1AHTTP\u3001SSL\u8BC1\u4E66\u3001ping\u3001TCP \u7AEF\u53E3\u7B49",-1),n=e("p",null,[t("\u8FDB\u5165 "),e("code",null,"/\u670D\u52A1"),t(" \u9875\u9762\u70B9\u51FB\u65B0\u5EFA\u76D1\u63A7\u5373\u53EF\uFF0C\u8868\u5355\u4E0B\u9762\u6709\u76F8\u5173\u8BF4\u660E\u3002")],-1),_=[r,n];function d(i,l,p,u,f,h){return a(),o("div",null,_)}var x=s(c,[["render",d]]);export{v as __pageData,x as default};
+import{_ as s,c as o,o as a,b as e,d as t}from"./app.0bd0e305.js";const v='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/services.md"}',c={},r=e("p",null,"\u670D\u52A1\u76D1\u63A7\uFF1AHTTP\u3001SSL\u8BC1\u4E66\u3001ping\u3001TCP \u7AEF\u53E3\u7B49",-1),n=e("p",null,[t("\u8FDB\u5165 "),e("code",null,"/\u670D\u52A1"),t(" \u9875\u9762\u70B9\u51FB\u65B0\u5EFA\u76D1\u63A7\u5373\u53EF\uFF0C\u8868\u5355\u4E0B\u9762\u6709\u76F8\u5173\u8BF4\u660E\u3002")],-1),_=[r,n];function d(i,l,p,u,f,h){return a(),o("div",null,_)}var x=s(c,[["render",d]]);export{v as __pageData,x as default};
diff --git a/assets/guide_services.md.04b8f4e2.lean.js b/assets/guide_services.md.f3d9de01.lean.js
similarity index 89%
rename from assets/guide_services.md.04b8f4e2.lean.js
rename to assets/guide_services.md.f3d9de01.lean.js
index 9fda34cb..e8ca1ddc 100644
--- a/assets/guide_services.md.04b8f4e2.lean.js
+++ b/assets/guide_services.md.f3d9de01.lean.js
@@ -1 +1 @@
-import{_ as s,c as o,o as a,b as e,d as t}from"./app.32957174.js";const v='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/services.md"}',c={},r=e("p",null,"\u670D\u52A1\u76D1\u63A7\uFF1AHTTP\u3001SSL\u8BC1\u4E66\u3001ping\u3001TCP \u7AEF\u53E3\u7B49",-1),n=e("p",null,[t("\u8FDB\u5165 "),e("code",null,"/\u670D\u52A1"),t(" \u9875\u9762\u70B9\u51FB\u65B0\u5EFA\u76D1\u63A7\u5373\u53EF\uFF0C\u8868\u5355\u4E0B\u9762\u6709\u76F8\u5173\u8BF4\u660E\u3002")],-1),_=[r,n];function d(i,l,p,u,f,h){return a(),o("div",null,_)}var x=s(c,[["render",d]]);export{v as __pageData,x as default};
+import{_ as s,c as o,o as a,b as e,d as t}from"./app.0bd0e305.js";const v='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/services.md"}',c={},r=e("p",null,"\u670D\u52A1\u76D1\u63A7\uFF1AHTTP\u3001SSL\u8BC1\u4E66\u3001ping\u3001TCP \u7AEF\u53E3\u7B49",-1),n=e("p",null,[t("\u8FDB\u5165 "),e("code",null,"/\u670D\u52A1"),t(" \u9875\u9762\u70B9\u51FB\u65B0\u5EFA\u76D1\u63A7\u5373\u53EF\uFF0C\u8868\u5355\u4E0B\u9762\u6709\u76F8\u5173\u8BF4\u660E\u3002")],-1),_=[r,n];function d(i,l,p,u,f,h){return a(),o("div",null,_)}var x=s(c,[["render",d]]);export{v as __pageData,x as default};
diff --git a/assets/guide_settings.md.006b93b3.js b/assets/guide_settings.md.1a145ca7.js
similarity index 99%
rename from assets/guide_settings.md.006b93b3.js
rename to assets/guide_settings.md.1a145ca7.js
index 62b2f2e0..ac83a861 100644
--- a/assets/guide_settings.md.006b93b3.js
+++ b/assets/guide_settings.md.1a145ca7.js
@@ -1,4 +1,4 @@
-import{_ as n,c as s,o as a,a as t}from"./app.32957174.js";const h='{"title":"\u591A\u8BED\u8A00","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u591A\u8BED\u8A00","slug":"\u591A\u8BED\u8A00"},{"level":2,"title":"\u81EA\u5B9A\u4E49\u4EE3\u7801","slug":"\u81EA\u5B9A\u4E49\u4EE3\u7801"}],"relativePath":"guide/settings.md"}',p={},o=t(`

\u591A\u8BED\u8A00

\u54EA\u5412\u76D1\u63A7\u76EE\u524D\u652F\u6301\u4EE5\u4E0B\u8BED\u8A00\uFF1A

  • \u7B80\u4F53\u4E2D\u6587
  • English
  • Espa\xF1ol


\u6211\u4EEC\u6B22\u8FCE\u60A8\u8D21\u732E\u66F4\u591A\u8BED\u8A00

\u81EA\u5B9A\u4E49\u4EE3\u7801

\u6539LOGO\u3001\u6539\u8272\u8C03\u3001\u52A0\u7EDF\u8BA1\u4EE3\u7801\u7B49\u3002

WARNING

\u81EA\u5B9A\u4E49\u4EE3\u7801\u4EC5\u5728\u6E38\u5BA2\u9996\u9875\u751F\u6548\u3002


\u9ED8\u8BA4\u4E3B\u9898\u66F4\u6539\u8FDB\u5EA6\u6761\u989C\u8272\u793A\u4F8B

<style>
+import{_ as n,c as s,o as a,a as t}from"./app.0bd0e305.js";const h='{"title":"\u591A\u8BED\u8A00","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u591A\u8BED\u8A00","slug":"\u591A\u8BED\u8A00"},{"level":2,"title":"\u81EA\u5B9A\u4E49\u4EE3\u7801","slug":"\u81EA\u5B9A\u4E49\u4EE3\u7801"}],"relativePath":"guide/settings.md"}',p={},o=t(`

\u591A\u8BED\u8A00

\u54EA\u5412\u76D1\u63A7\u76EE\u524D\u652F\u6301\u4EE5\u4E0B\u8BED\u8A00\uFF1A

  • \u7B80\u4F53\u4E2D\u6587
  • English
  • Espa\xF1ol


\u6211\u4EEC\u6B22\u8FCE\u60A8\u8D21\u732E\u66F4\u591A\u8BED\u8A00

\u81EA\u5B9A\u4E49\u4EE3\u7801

\u6539LOGO\u3001\u6539\u8272\u8C03\u3001\u52A0\u7EDF\u8BA1\u4EE3\u7801\u7B49\u3002

WARNING

\u81EA\u5B9A\u4E49\u4EE3\u7801\u4EC5\u5728\u6E38\u5BA2\u9996\u9875\u751F\u6548\u3002


\u9ED8\u8BA4\u4E3B\u9898\u66F4\u6539\u8FDB\u5EA6\u6761\u989C\u8272\u793A\u4F8B

<style>
 .ui.fine.progress> .bar {
     background-color: pink !important;
 }
diff --git a/assets/guide_settings.md.006b93b3.lean.js b/assets/guide_settings.md.1a145ca7.lean.js
similarity index 86%
rename from assets/guide_settings.md.006b93b3.lean.js
rename to assets/guide_settings.md.1a145ca7.lean.js
index 21655417..0b8254cd 100644
--- a/assets/guide_settings.md.006b93b3.lean.js
+++ b/assets/guide_settings.md.1a145ca7.lean.js
@@ -1 +1 @@
-import{_ as n,c as s,o as a,a as t}from"./app.32957174.js";const h='{"title":"\u591A\u8BED\u8A00","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u591A\u8BED\u8A00","slug":"\u591A\u8BED\u8A00"},{"level":2,"title":"\u81EA\u5B9A\u4E49\u4EE3\u7801","slug":"\u81EA\u5B9A\u4E49\u4EE3\u7801"}],"relativePath":"guide/settings.md"}',p={},o=t("",16),e=[o];function c(l,i,u,r,k,g){return a(),s("div",null,e)}var y=n(p,[["render",c]]);export{h as __pageData,y as default};
+import{_ as n,c as s,o as a,a as t}from"./app.0bd0e305.js";const h='{"title":"\u591A\u8BED\u8A00","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u591A\u8BED\u8A00","slug":"\u591A\u8BED\u8A00"},{"level":2,"title":"\u81EA\u5B9A\u4E49\u4EE3\u7801","slug":"\u81EA\u5B9A\u4E49\u4EE3\u7801"}],"relativePath":"guide/settings.md"}',p={},o=t("",16),e=[o];function c(l,i,u,r,k,g){return a(),s("div",null,e)}var y=n(p,[["render",c]]);export{h as __pageData,y as default};
diff --git a/assets/guide_tasks.md.b2f7a988.js b/assets/guide_tasks.md.c5594dbb.js
similarity index 90%
rename from assets/guide_tasks.md.b2f7a988.js
rename to assets/guide_tasks.md.c5594dbb.js
index c7170f9d..4171fdbc 100644
--- a/assets/guide_tasks.md.b2f7a988.js
+++ b/assets/guide_tasks.md.c5594dbb.js
@@ -1 +1 @@
-import{_ as t,c as s,o,b as e}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/tasks.md"}',a={},r=e("p",null,"\u8BA1\u5212\u4EFB\u52A1\uFF1A\u5907\u4EFD\u811A\u672C\u3001\u670D\u52A1\u91CD\u542F\uFF0C\u7B49\u5B9A\u671F\u8FD0\u7EF4\u4EFB\u52A1\u3002",-1),c=e("p",null,"\u4F7F\u7528\u6B64\u529F\u80FD\u53EF\u4EE5\u5B9A\u671F\u7ED3\u5408 restic\u3001rclone \u7ED9\u670D\u52A1\u5668\u5907\u4EFD\uFF0C\u6216\u8005\u5B9A\u671F\u91CD\u542F\u67D0\u9879\u670D\u52A1\u6765\u91CD\u7F6E\u7F51\u7EDC\u8FDE\u63A5\u3002",-1),n=[r,c];function _(i,d,l,p,u,f){return o(),s("div",null,n)}var k=t(a,[["render",_]]);export{m as __pageData,k as default};
+import{_ as t,c as s,o,b as e}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/tasks.md"}',a={},r=e("p",null,"\u8BA1\u5212\u4EFB\u52A1\uFF1A\u5907\u4EFD\u811A\u672C\u3001\u670D\u52A1\u91CD\u542F\uFF0C\u7B49\u5B9A\u671F\u8FD0\u7EF4\u4EFB\u52A1\u3002",-1),c=e("p",null,"\u4F7F\u7528\u6B64\u529F\u80FD\u53EF\u4EE5\u5B9A\u671F\u7ED3\u5408 restic\u3001rclone \u7ED9\u670D\u52A1\u5668\u5907\u4EFD\uFF0C\u6216\u8005\u5B9A\u671F\u91CD\u542F\u67D0\u9879\u670D\u52A1\u6765\u91CD\u7F6E\u7F51\u7EDC\u8FDE\u63A5\u3002",-1),n=[r,c];function _(i,d,l,p,u,f){return o(),s("div",null,n)}var k=t(a,[["render",_]]);export{m as __pageData,k as default};
diff --git a/assets/guide_tasks.md.b2f7a988.lean.js b/assets/guide_tasks.md.c5594dbb.lean.js
similarity index 90%
rename from assets/guide_tasks.md.b2f7a988.lean.js
rename to assets/guide_tasks.md.c5594dbb.lean.js
index c7170f9d..4171fdbc 100644
--- a/assets/guide_tasks.md.b2f7a988.lean.js
+++ b/assets/guide_tasks.md.c5594dbb.lean.js
@@ -1 +1 @@
-import{_ as t,c as s,o,b as e}from"./app.32957174.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/tasks.md"}',a={},r=e("p",null,"\u8BA1\u5212\u4EFB\u52A1\uFF1A\u5907\u4EFD\u811A\u672C\u3001\u670D\u52A1\u91CD\u542F\uFF0C\u7B49\u5B9A\u671F\u8FD0\u7EF4\u4EFB\u52A1\u3002",-1),c=e("p",null,"\u4F7F\u7528\u6B64\u529F\u80FD\u53EF\u4EE5\u5B9A\u671F\u7ED3\u5408 restic\u3001rclone \u7ED9\u670D\u52A1\u5668\u5907\u4EFD\uFF0C\u6216\u8005\u5B9A\u671F\u91CD\u542F\u67D0\u9879\u670D\u52A1\u6765\u91CD\u7F6E\u7F51\u7EDC\u8FDE\u63A5\u3002",-1),n=[r,c];function _(i,d,l,p,u,f){return o(),s("div",null,n)}var k=t(a,[["render",_]]);export{m as __pageData,k as default};
+import{_ as t,c as s,o,b as e}from"./app.0bd0e305.js";const m='{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/tasks.md"}',a={},r=e("p",null,"\u8BA1\u5212\u4EFB\u52A1\uFF1A\u5907\u4EFD\u811A\u672C\u3001\u670D\u52A1\u91CD\u542F\uFF0C\u7B49\u5B9A\u671F\u8FD0\u7EF4\u4EFB\u52A1\u3002",-1),c=e("p",null,"\u4F7F\u7528\u6B64\u529F\u80FD\u53EF\u4EE5\u5B9A\u671F\u7ED3\u5408 restic\u3001rclone \u7ED9\u670D\u52A1\u5668\u5907\u4EFD\uFF0C\u6216\u8005\u5B9A\u671F\u91CD\u542F\u67D0\u9879\u670D\u52A1\u6765\u91CD\u7F6E\u7F51\u7EDC\u8FDE\u63A5\u3002",-1),n=[r,c];function _(i,d,l,p,u,f){return o(),s("div",null,n)}var k=t(a,[["render",_]]);export{m as __pageData,k as default};
diff --git a/assets/index.md.6a62f5eb.js b/assets/index.md.13b009d3.js
similarity index 73%
rename from assets/index.md.6a62f5eb.js
rename to assets/index.md.13b009d3.js
index db5c3798..aee7ee48 100644
--- a/assets/index.md.6a62f5eb.js
+++ b/assets/index.md.13b009d3.js
@@ -1 +1 @@
-import{_ as a,c as r,o,b as e,d as t}from"./app.32957174.js";const f='{"title":"Home","description":"","frontmatter":{"home":true,"heroImage":"https://raw.githubusercontent.com/naiba/nezha/master/resource/static/brand.svg","heroText":"\u54EA\u5412\u76D1\u63A7","tagline":"\u4E00\u4E2A\u5F00\u6E90\u3001\u8F7B\u91CF\u7684\u670D\u52A1\u5668\u548C\u7F51\u7AD9\u76D1\u63A7\u3001\u8FD0\u7EF4\u5DE5\u5177","actionText":"\u5F00\u59CB\u4F7F\u7528 \u2192","actionLink":"/guide/dashboard","features":[{"title":"\u4E00\u952E\u5B89\u88C5","details":"\u652F\u6301\u4E00\u952E\u811A\u672C\u5B89\u88C5\u9762\u677F\u548C\u76D1\u63A7\u670D\u52A1\uFF0C\u8F7B\u677E\u4F7F\u7528\uFF1BLinux\u3001WIndows\u3001MacOS\u3001OpenWRT\u7B49\u4E3B\u6D41\u7CFB\u7EDF\u5747\u53D7\u652F\u6301"},{"title":"\u968F\u65F6\u76D1\u63A7","details":"\u652F\u6301\u540C\u65F6\u76D1\u63A7\u591A\u4E2A\u670D\u52A1\u5668\u7684\u7CFB\u7EDF\u72B6\u6001\uFF0C\u652F\u6301\u76D1\u63A7\u7F51\u9875\u3001\u7AEF\u53E3\u3001SSL\u8BC1\u4E66\u72B6\u6001\uFF1B\u652F\u6301\u6545\u969C\u3001\u6D41\u91CF\u7B49\u72B6\u6001\u62A5\u8B66\uFF0C\u652F\u6301\u591A\u79CD\u901A\u77E5\u65B9\u5F0F\uFF08Telegram\u3001\u90AE\u4EF6\u3001\u5FAE\u4FE1\u7B49\uFF09"},{"title":"\u8F7B\u91CF\u8FD0\u7EF4","details":"\u652F\u6301\u5728\u7EBFSSH\uFF0C\u652F\u6301\u6D41\u91CF\u5FAA\u73AF\u76D1\u63A7\uFF0C\u652F\u6301\u8BBE\u7F6E\u5B9A\u65F6\u4EFB\u52A1\u3001\u670D\u52A1\u5668\u6279\u91CF\u6267\u884C\u4EFB\u52A1"}],"footer":"Copyright \xA9 2022-present Nezhahq"},"headers":[],"relativePath":"index.md"}',s={},n=e("p",null,[e("br"),t("\u672C\u4F5C\u54C1\u91C7\u7528"),e("a",{rel:"license",href:"http://creativecommons.org/licenses/by-nc-sa/4.0/"},"\u77E5\u8BC6\u5171\u4EAB\u7F72\u540D-\u975E\u5546\u4E1A\u6027\u4F7F\u7528-\u76F8\u540C\u65B9\u5F0F\u5171\u4EAB 4.0 \u56FD\u9645\u8BB8\u53EF\u534F\u8BAE"),t("\u8FDB\u884C\u8BB8\u53EF\u3002")],-1),i=[n];function c(d,l,h,p,_,m){return o(),r("div",null,i)}var g=a(s,[["render",c]]);export{f as __pageData,g as default};
+import{_ as a,c as r,o,b as e,d as t}from"./app.0bd0e305.js";const f='{"title":"Home","description":"","frontmatter":{"home":true,"heroImage":"https://raw.githubusercontent.com/naiba/nezha/master/resource/static/brand.svg","heroText":"\u54EA\u5412\u76D1\u63A7","tagline":"\u4E00\u4E2A\u5F00\u6E90\u3001\u8F7B\u91CF\u7684\u670D\u52A1\u5668\u548C\u7F51\u7AD9\u76D1\u63A7\u3001\u8FD0\u7EF4\u5DE5\u5177","actionText":"\u5F00\u59CB\u4F7F\u7528 \u2192","actionLink":"/guide/dashboard","features":[{"title":"\u4E00\u952E\u5B89\u88C5","details":"\u652F\u6301\u4E00\u952E\u811A\u672C\u5B89\u88C5\u9762\u677F\u548C\u76D1\u63A7\u670D\u52A1\uFF0C\u8F7B\u677E\u4F7F\u7528\uFF1BLinux\u3001WIndows\u3001MacOS\u3001OpenWRT\u7B49\u4E3B\u6D41\u7CFB\u7EDF\u5747\u53D7\u652F\u6301"},{"title":"\u968F\u65F6\u76D1\u63A7","details":"\u652F\u6301\u540C\u65F6\u76D1\u63A7\u591A\u4E2A\u670D\u52A1\u5668\u7684\u7CFB\u7EDF\u72B6\u6001\uFF0C\u652F\u6301\u76D1\u63A7\u7F51\u9875\u3001\u7AEF\u53E3\u3001SSL\u8BC1\u4E66\u72B6\u6001\uFF1B\u652F\u6301\u6545\u969C\u3001\u6D41\u91CF\u7B49\u72B6\u6001\u62A5\u8B66\uFF0C\u652F\u6301\u591A\u79CD\u901A\u77E5\u65B9\u5F0F\uFF08Telegram\u3001\u90AE\u4EF6\u3001\u5FAE\u4FE1\u7B49\uFF09"},{"title":"\u8F7B\u91CF\u8FD0\u7EF4","details":"\u652F\u6301\u5728\u7EBFSSH\uFF0C\u652F\u6301\u6D41\u91CF\u5FAA\u73AF\u76D1\u63A7\uFF0C\u652F\u6301\u8BBE\u7F6E\u5B9A\u65F6\u4EFB\u52A1\u3001\u670D\u52A1\u5668\u6279\u91CF\u6267\u884C\u4EFB\u52A1"}],"footer":"Copyright \xA9 2022-present Nezhahq"},"headers":[],"relativePath":"index.md"}',s={},n=e("p",null,[e("br"),t("\u672C\u4F5C\u54C1\u91C7\u7528 "),e("a",{rel:"license",href:"http://creativecommons.org/licenses/by-nc-sa/4.0/"},"\u77E5\u8BC6\u5171\u4EAB\u7F72\u540D-\u975E\u5546\u4E1A\u6027\u4F7F\u7528-\u76F8\u540C\u65B9\u5F0F\u5171\u4EAB 4.0 \u56FD\u9645\u8BB8\u53EF\u534F\u8BAE"),t(" \u8FDB\u884C\u8BB8\u53EF\u3002")],-1),i=[n];function c(d,l,h,p,_,m){return o(),r("div",null,i)}var g=a(s,[["render",c]]);export{f as __pageData,g as default};
diff --git a/assets/index.md.6a62f5eb.lean.js b/assets/index.md.13b009d3.lean.js
similarity index 73%
rename from assets/index.md.6a62f5eb.lean.js
rename to assets/index.md.13b009d3.lean.js
index db5c3798..aee7ee48 100644
--- a/assets/index.md.6a62f5eb.lean.js
+++ b/assets/index.md.13b009d3.lean.js
@@ -1 +1 @@
-import{_ as a,c as r,o,b as e,d as t}from"./app.32957174.js";const f='{"title":"Home","description":"","frontmatter":{"home":true,"heroImage":"https://raw.githubusercontent.com/naiba/nezha/master/resource/static/brand.svg","heroText":"\u54EA\u5412\u76D1\u63A7","tagline":"\u4E00\u4E2A\u5F00\u6E90\u3001\u8F7B\u91CF\u7684\u670D\u52A1\u5668\u548C\u7F51\u7AD9\u76D1\u63A7\u3001\u8FD0\u7EF4\u5DE5\u5177","actionText":"\u5F00\u59CB\u4F7F\u7528 \u2192","actionLink":"/guide/dashboard","features":[{"title":"\u4E00\u952E\u5B89\u88C5","details":"\u652F\u6301\u4E00\u952E\u811A\u672C\u5B89\u88C5\u9762\u677F\u548C\u76D1\u63A7\u670D\u52A1\uFF0C\u8F7B\u677E\u4F7F\u7528\uFF1BLinux\u3001WIndows\u3001MacOS\u3001OpenWRT\u7B49\u4E3B\u6D41\u7CFB\u7EDF\u5747\u53D7\u652F\u6301"},{"title":"\u968F\u65F6\u76D1\u63A7","details":"\u652F\u6301\u540C\u65F6\u76D1\u63A7\u591A\u4E2A\u670D\u52A1\u5668\u7684\u7CFB\u7EDF\u72B6\u6001\uFF0C\u652F\u6301\u76D1\u63A7\u7F51\u9875\u3001\u7AEF\u53E3\u3001SSL\u8BC1\u4E66\u72B6\u6001\uFF1B\u652F\u6301\u6545\u969C\u3001\u6D41\u91CF\u7B49\u72B6\u6001\u62A5\u8B66\uFF0C\u652F\u6301\u591A\u79CD\u901A\u77E5\u65B9\u5F0F\uFF08Telegram\u3001\u90AE\u4EF6\u3001\u5FAE\u4FE1\u7B49\uFF09"},{"title":"\u8F7B\u91CF\u8FD0\u7EF4","details":"\u652F\u6301\u5728\u7EBFSSH\uFF0C\u652F\u6301\u6D41\u91CF\u5FAA\u73AF\u76D1\u63A7\uFF0C\u652F\u6301\u8BBE\u7F6E\u5B9A\u65F6\u4EFB\u52A1\u3001\u670D\u52A1\u5668\u6279\u91CF\u6267\u884C\u4EFB\u52A1"}],"footer":"Copyright \xA9 2022-present Nezhahq"},"headers":[],"relativePath":"index.md"}',s={},n=e("p",null,[e("br"),t("\u672C\u4F5C\u54C1\u91C7\u7528"),e("a",{rel:"license",href:"http://creativecommons.org/licenses/by-nc-sa/4.0/"},"\u77E5\u8BC6\u5171\u4EAB\u7F72\u540D-\u975E\u5546\u4E1A\u6027\u4F7F\u7528-\u76F8\u540C\u65B9\u5F0F\u5171\u4EAB 4.0 \u56FD\u9645\u8BB8\u53EF\u534F\u8BAE"),t("\u8FDB\u884C\u8BB8\u53EF\u3002")],-1),i=[n];function c(d,l,h,p,_,m){return o(),r("div",null,i)}var g=a(s,[["render",c]]);export{f as __pageData,g as default};
+import{_ as a,c as r,o,b as e,d as t}from"./app.0bd0e305.js";const f='{"title":"Home","description":"","frontmatter":{"home":true,"heroImage":"https://raw.githubusercontent.com/naiba/nezha/master/resource/static/brand.svg","heroText":"\u54EA\u5412\u76D1\u63A7","tagline":"\u4E00\u4E2A\u5F00\u6E90\u3001\u8F7B\u91CF\u7684\u670D\u52A1\u5668\u548C\u7F51\u7AD9\u76D1\u63A7\u3001\u8FD0\u7EF4\u5DE5\u5177","actionText":"\u5F00\u59CB\u4F7F\u7528 \u2192","actionLink":"/guide/dashboard","features":[{"title":"\u4E00\u952E\u5B89\u88C5","details":"\u652F\u6301\u4E00\u952E\u811A\u672C\u5B89\u88C5\u9762\u677F\u548C\u76D1\u63A7\u670D\u52A1\uFF0C\u8F7B\u677E\u4F7F\u7528\uFF1BLinux\u3001WIndows\u3001MacOS\u3001OpenWRT\u7B49\u4E3B\u6D41\u7CFB\u7EDF\u5747\u53D7\u652F\u6301"},{"title":"\u968F\u65F6\u76D1\u63A7","details":"\u652F\u6301\u540C\u65F6\u76D1\u63A7\u591A\u4E2A\u670D\u52A1\u5668\u7684\u7CFB\u7EDF\u72B6\u6001\uFF0C\u652F\u6301\u76D1\u63A7\u7F51\u9875\u3001\u7AEF\u53E3\u3001SSL\u8BC1\u4E66\u72B6\u6001\uFF1B\u652F\u6301\u6545\u969C\u3001\u6D41\u91CF\u7B49\u72B6\u6001\u62A5\u8B66\uFF0C\u652F\u6301\u591A\u79CD\u901A\u77E5\u65B9\u5F0F\uFF08Telegram\u3001\u90AE\u4EF6\u3001\u5FAE\u4FE1\u7B49\uFF09"},{"title":"\u8F7B\u91CF\u8FD0\u7EF4","details":"\u652F\u6301\u5728\u7EBFSSH\uFF0C\u652F\u6301\u6D41\u91CF\u5FAA\u73AF\u76D1\u63A7\uFF0C\u652F\u6301\u8BBE\u7F6E\u5B9A\u65F6\u4EFB\u52A1\u3001\u670D\u52A1\u5668\u6279\u91CF\u6267\u884C\u4EFB\u52A1"}],"footer":"Copyright \xA9 2022-present Nezhahq"},"headers":[],"relativePath":"index.md"}',s={},n=e("p",null,[e("br"),t("\u672C\u4F5C\u54C1\u91C7\u7528 "),e("a",{rel:"license",href:"http://creativecommons.org/licenses/by-nc-sa/4.0/"},"\u77E5\u8BC6\u5171\u4EAB\u7F72\u540D-\u975E\u5546\u4E1A\u6027\u4F7F\u7528-\u76F8\u540C\u65B9\u5F0F\u5171\u4EAB 4.0 \u56FD\u9645\u8BB8\u53EF\u534F\u8BAE"),t(" \u8FDB\u884C\u8BB8\u53EF\u3002")],-1),i=[n];function c(d,l,h,p,_,m){return o(),r("div",null,i)}var g=a(s,[["render",c]]);export{f as __pageData,g as default};
diff --git a/assets/style.c3210e46.css b/assets/style.17a88c2e.css
similarity index 88%
rename from assets/style.c3210e46.css
rename to assets/style.17a88c2e.css
index 4a96fa67..ed23299e 100644
--- a/assets/style.c3210e46.css
+++ b/assets/style.17a88c2e.css
@@ -1 +1 @@
-:root{--c-white: #ffffff;--c-white-dark: #f8f8f8;--c-black: #000000;--c-divider-light: rgba(60, 60, 67, .12);--c-divider-dark: rgba(84, 84, 88, .48);--c-text-light-1: #2c3e50;--c-text-light-2: #476582;--c-text-light-3: #90a4b7;--c-brand: #3eaf7c;--c-brand-light: #4abf8a;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--z-index-navbar: 10;--z-index-sidebar: 6;--shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16);--header-height: 3.6rem}:root{--c-divider: var(--c-divider-light);--c-text: var(--c-text-light-1);--c-text-light: var(--c-text-light-2);--c-text-lighter: var(--c-text-light-3);--c-bg: var(--c-white);--c-bg-accent: var(--c-white-dark);--code-line-height: 24px;--code-font-family: var(--font-family-mono);--code-font-size: 14px;--code-inline-bg-color: rgba(27, 31, 35, .05);--code-bg-color: #282c34}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:1.4;font-family:var(--font-family-base);font-size:16px;font-weight:400;color:var(--c-text);background-color:var(--c-bg);direction:ltr;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.25}h1,h2,h3,h4,h5,h6,strong,b{font-weight:600}h1:hover .header-anchor,h1:focus .header-anchor,h2:hover .header-anchor,h2:focus .header-anchor,h3:hover .header-anchor,h3:focus .header-anchor,h4:hover .header-anchor,h4:focus .header-anchor,h5:hover .header-anchor,h5:focus .header-anchor,h6:hover .header-anchor,h6:focus .header-anchor{opacity:1}h1{margin-top:1.5rem;font-size:1.9rem}@media screen and (min-width: 420px){h1{font-size:2.2rem}}h2{margin-top:2.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--c-divider);padding-bottom:.3rem;line-height:1.25;font-size:1.65rem}h2+h3{margin-top:1.5rem}h3{margin-top:2rem;font-size:1.35rem}h4{font-size:1.15rem}p,ol,ul{margin:1rem 0;line-height:1.7}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{text-decoration:none;color:var(--c-brand)}a:hover{text-decoration:underline}a.header-anchor{float:left;margin-top:.125em;margin-left:-.87em;padding-right:.23em;font-size:.85em;opacity:0}a.header-anchor:hover,a.header-anchor:focus{text-decoration:none}figure{margin:0}img{max-width:100%}ul,ol{padding-left:1.25em}li>ul,li>ol{margin:0}table{display:block;border-collapse:collapse;margin:1rem 0;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}th,td{border:1px solid #dfe2e5;padding:.6em 1em}blockquote{margin:1rem 0;border-left:.2rem solid #dfe2e5;padding:.25rem 0 .25rem 1rem;font-size:1rem;color:#999}blockquote>p{margin:0}form{margin:0}.theme.sidebar-open .sidebar-mask{display:block}.theme.no-navbar>h1,.theme.no-navbar>h2,.theme.no-navbar>h3,.theme.no-navbar>h4,.theme.no-navbar>h5,.theme.no-navbar>h6{margin-top:1.5rem;padding-top:0}.theme.no-navbar aside{top:0}@media screen and (min-width: 720px){.theme.no-sidebar aside{display:none}.theme.no-sidebar main{margin-left:0}}.sidebar-mask{position:fixed;z-index:2;display:none;width:100vw;height:100vh}code{margin:0;border-radius:3px;padding:.25rem .5rem;font-family:var(--code-font-family);font-size:.85em;color:var(--c-text-light);background-color:var(--code-inline-bg-color)}code .token.deleted{color:#ec5975}code .token.inserted{color:var(--c-brand)}div[class*=language-]{position:relative;margin:1rem -1.5rem;background-color:var(--code-bg-color);overflow-x:auto}li>div[class*=language-]{border-radius:6px 0 0 6px;margin:1rem -1.5rem 1rem -1.25rem;line-height:initial}@media (min-width: 420px){div[class*=language-]{margin:1rem 0;border-radius:6px}li>div[class*=language-]{margin:1rem 0 1rem 0rem;border-radius:6px}}[class*=language-] pre,[class*=language-] code{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;background:transparent}[class*=language-] pre{position:relative;z-index:1;margin:0;padding:1.25rem 1.5rem;overflow-x:auto}[class*=language-] code{padding:0;line-height:var(--code-line-height);font-size:var(--code-font-size);color:#eee}.highlight-lines{position:absolute;top:0;bottom:0;left:0;padding:1.25rem 0;width:100%;line-height:var(--code-line-height);font-family:var(--code-font-family);font-size:var(--code-font-size);user-select:none;overflow:hidden}.highlight-lines .highlighted{background-color:#000000a8}div[class*=language-].line-numbers-mode{padding-left:3.5rem}.line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid rgba(0,0,0,.5);padding:1.25rem 0;width:3.5rem;text-align:center;line-height:var(--code-line-height);font-family:var(--code-font-family);font-size:var(--code-font-size);color:#888}div[class*=language-]:before{position:absolute;top:.6em;right:1em;z-index:2;font-size:.8rem;color:#888}div[class~=language-html]:before,div[class~=language-markup]:before{content:"html"}div[class~=language-md]:before,div[class~=language-markdown]:before{content:"md"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"styl"}div[class~=language-js]:before,div[class~=language-javascript]:before{content:"js"}div[class~=language-ts]:before,div[class~=language-typescript]:before{content:"ts"}div[class~=language-json]:before{content:"json"}div[class~=language-rb]:before,div[class~=language-ruby]:before{content:"rb"}div[class~=language-py]:before,div[class~=language-python]:before{content:"py"}div[class~=language-sh]:before,div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}div[class~=language-go]:before{content:"go"}div[class~=language-rust]:before{content:"rust"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-vue]:before{content:"vue"}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.custom-block.tip,.custom-block.info,.custom-block.warning,.custom-block.danger{margin:1rem 0;border-left:.5rem solid;padding:.1rem 1.5rem;overflow-x:auto}.custom-block.tip{background-color:#f3f5f7;border-color:var(--c-brand)}.custom-block.info{background-color:#f3f5f7;border-color:var(--c-text-light-2)}.custom-block.warning{border-color:#e7c000;color:#6b5900;background-color:#ffe5644d}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:var(--c-text)}.custom-block.danger{border-color:#c00;color:#4d0000;background-color:#ffe6e6}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:var(--c-text)}.custom-block.details{position:relative;display:block;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.custom-block-title{margin-bottom:-.4rem;font-weight:600}.sidebar-links{margin:0;padding:0;list-style:none}.sidebar-link-item{display:block;margin:0;border-left:.25rem solid transparent;color:var(--c-text)}a.sidebar-link-item:hover{text-decoration:none;color:var(--c-brand)}a.sidebar-link-item.active{color:var(--c-brand)}.sidebar>.sidebar-links{padding:.75rem 0 5rem}@media (min-width: 720px){.sidebar>.sidebar-links{padding:1.5rem 0}}.sidebar>.sidebar-links>.sidebar-link+.sidebar-link{padding-top:.5rem}@media (min-width: 720px){.sidebar>.sidebar-links>.sidebar-link+.sidebar-link{padding-top:1.25rem}}.sidebar>.sidebar-links>.sidebar-link>.sidebar-link-item{padding:.35rem 1.5rem .35rem 1.25rem;font-size:1.1rem;font-weight:700}.sidebar>.sidebar-links>.sidebar-link>a.sidebar-link-item.active{border-left-color:var(--c-brand);font-weight:600}.sidebar>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-link-item{display:block;padding:.35rem 1.5rem .35rem 2rem;line-height:1.4;font-size:1rem;font-weight:400}.sidebar>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>a.sidebar-link-item.active{border-left-color:var(--c-brand);font-weight:600}.sidebar>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-link-item{display:block;padding:.3rem 1.5rem .3rem 3rem;line-height:1.4;font-size:.9rem;font-weight:400}.sidebar>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-link-item{display:block;padding:.3rem 1.5rem .3rem 4rem;line-height:1.4;font-size:.9rem;font-weight:400}.debug[data-v-bf835584]{box-sizing:border-box;position:fixed;right:8px;bottom:8px;z-index:9999;border-radius:4px;width:74px;height:32px;color:#eee;overflow:hidden;cursor:pointer;background-color:#000000d9;transition:all .15s ease}.debug[data-v-bf835584]:hover{background-color:#000000bf}.debug.open[data-v-bf835584]{right:0;bottom:0;width:100%;height:100%;margin-top:0;border-radius:0;padding:0;overflow:scroll}@media (min-width: 512px){.debug.open[data-v-bf835584]{width:512px}}.debug.open[data-v-bf835584]:hover{background-color:#000000d9}.title[data-v-bf835584]{margin:0;padding:6px 16px;line-height:20px;font-size:13px}.block[data-v-bf835584]{margin:2px 0 0;border-top:1px solid rgba(255,255,255,.16);padding:8px 16px;font-family:Hack,monospace;font-size:13px}.block+.block[data-v-bf835584]{margin-top:8px}.icon.outbound{position:relative;top:-1px;display:inline-block;vertical-align:middle;color:var(--c-text-lighter)}.item[data-v-b8818f8c]{display:block;padding:0 1.5rem;line-height:36px;font-size:1rem;font-weight:600;color:var(--c-text);white-space:nowrap}.item[data-v-b8818f8c]:hover,.item.active[data-v-b8818f8c]{text-decoration:none;color:var(--c-brand)}.item.external[data-v-b8818f8c]:hover{border-bottom-color:transparent;color:var(--c-text)}@media (min-width: 720px){.item[data-v-b8818f8c]{border-bottom:2px solid transparent;padding:0;line-height:24px;font-size:.9rem;font-weight:500}.item[data-v-b8818f8c]:hover,.item.active[data-v-b8818f8c]{border-bottom-color:var(--c-brand);color:var(--c-text)}}.home-hero[data-v-370f18c0]{margin:2.5rem 0 2.75rem;padding:0 1.5rem;text-align:center}@media (min-width: 420px){.home-hero[data-v-370f18c0]{margin:3.5rem 0}}@media (min-width: 720px){.home-hero[data-v-370f18c0]{margin:4rem 0 4.25rem}}.figure[data-v-370f18c0]{padding:0 1.5rem}.image[data-v-370f18c0]{display:block;margin:0 auto;width:auto;max-width:100%;max-height:280px}.title[data-v-370f18c0]{margin-top:1.5rem;font-size:2rem}@media (min-width: 420px){.title[data-v-370f18c0]{font-size:3rem}}@media (min-width: 720px){.title[data-v-370f18c0]{margin-top:2rem}}.tagline[data-v-370f18c0]{margin:0;margin-top:.25rem;line-height:1.3;font-size:1.2rem;color:var(--c-text-light)}@media (min-width: 420px){.tagline[data-v-370f18c0]{line-height:1.2;font-size:1.6rem}}.action[data-v-370f18c0]{margin-top:1.5rem;display:inline-block}.action.alt[data-v-370f18c0]{margin-left:1.5rem}@media (min-width: 420px){.action[data-v-370f18c0]{margin-top:2rem;display:inline-block}}.action[data-v-370f18c0] .item{display:inline-block;border-radius:6px;padding:0 20px;line-height:44px;font-size:1rem;font-weight:500;color:var(--c-bg);background-color:var(--c-brand);border:2px solid var(--c-brand);transition:background-color .1s ease}.action.alt[data-v-370f18c0] .item{background-color:var(--c-bg);color:var(--c-brand)}.action[data-v-370f18c0] .item:hover{text-decoration:none;color:var(--c-bg);background-color:var(--c-brand-light)}@media (min-width: 420px){.action[data-v-370f18c0] .item{padding:0 24px;line-height:52px;font-size:1.2rem;font-weight:500}}.home-features[data-v-e39c13e0]{margin:0 auto;padding:2.5rem 0 2.75rem;max-width:960px}.home-hero+.home-features[data-v-e39c13e0]{padding-top:0}@media (min-width: 420px){.home-features[data-v-e39c13e0]{padding:3.25rem 0 3.5rem}.home-hero+.home-features[data-v-e39c13e0]{padding-top:0}}@media (min-width: 720px){.home-features[data-v-e39c13e0]{padding-right:1.5rem;padding-left:1.5rem}}.wrapper[data-v-e39c13e0]{padding:0 1.5rem}.home-hero+.home-features .wrapper[data-v-e39c13e0]{border-top:1px solid var(--c-divider);padding-top:2.5rem}@media (min-width: 420px){.home-hero+.home-features .wrapper[data-v-e39c13e0]{padding-top:3.25rem}}@media (min-width: 720px){.wrapper[data-v-e39c13e0]{padding-right:0;padding-left:0}}.container[data-v-e39c13e0]{margin:0 auto;max-width:392px}@media (min-width: 720px){.container[data-v-e39c13e0]{max-width:960px}}.features[data-v-e39c13e0]{display:flex;flex-wrap:wrap;margin:-20px -24px}.feature[data-v-e39c13e0]{flex-shrink:0;padding:20px 24px;width:100%}@media (min-width: 720px){.feature[data-v-e39c13e0]{width:calc(100% / 3)}}.title[data-v-e39c13e0]{margin:0;border-bottom:0;line-height:1.4;font-size:1.25rem;font-weight:500}@media (min-width: 420px){.title[data-v-e39c13e0]{font-size:1.4rem}}.details[data-v-e39c13e0]{margin:0;line-height:1.6;font-size:1rem;color:var(--c-text-light)}.title+.details[data-v-e39c13e0]{padding-top:.25rem}.footer[data-v-30918238]{margin:0 auto;max-width:960px}@media (min-width: 720px){.footer[data-v-30918238]{padding:0 1.5rem}}.container[data-v-30918238]{padding:2rem 1.5rem 2.25rem}.home-hero+.footer .container[data-v-30918238],.home-features+.footer .container[data-v-30918238],.home-content+.footer .container[data-v-30918238]{border-top:1px solid var(--c-divider)}@media (min-width: 420px){.container[data-v-30918238]{padding:3rem 1.5rem 3.25rem}}.text[data-v-30918238]{margin:0;text-align:center;line-height:1.4;font-size:.9rem;color:var(--c-text-light)}.home[data-v-10122c92]{padding-top:var(--header-height)}.home-content[data-v-10122c92]{max-width:960px;margin:0 auto;padding:0 1.5rem}.nav-bar-title[data-v-cc01ef16]{font-size:1.3rem;font-weight:600;color:var(--c-text);display:flex;justify-content:center;align-items:center}.nav-bar-title[data-v-cc01ef16]:hover{text-decoration:none}.logo[data-v-cc01ef16]{margin-right:.75rem;height:1.3rem;vertical-align:bottom}.item[data-v-bbc27490]{display:block;padding:0 1.5rem 0 2.5rem;line-height:32px;font-size:.9rem;font-weight:500;color:var(--c-text);white-space:nowrap}@media (min-width: 720px){.item[data-v-bbc27490]{padding:0 24px 0 12px;line-height:32px;font-size:.85rem;font-weight:500;color:var(--c-text);white-space:nowrap}.item.active .arrow[data-v-bbc27490]{opacity:1}}.item[data-v-bbc27490]:hover,.item.active[data-v-bbc27490]{text-decoration:none;color:var(--c-brand)}.item.external[data-v-bbc27490]:hover{border-bottom-color:transparent;color:var(--c-text)}@media (min-width: 720px){.arrow[data-v-bbc27490]{display:inline-block;margin-right:8px;border-top:6px solid #ccc;border-right:4px solid transparent;border-bottom:0;border-left:4px solid transparent;vertical-align:middle;opacity:0;transform:translateY(-2px) rotate(-90deg)}}.nav-dropdown-link[data-v-56bf3a3f]{position:relative;height:36px;overflow:hidden;cursor:pointer}@media (min-width: 720px){.nav-dropdown-link[data-v-56bf3a3f]{height:auto;overflow:visible}.nav-dropdown-link:hover .dialog[data-v-56bf3a3f]{display:block}}.nav-dropdown-link.open[data-v-56bf3a3f]{height:auto}.button[data-v-56bf3a3f]{display:block;border:0;padding:0 1.5rem;width:100%;text-align:left;line-height:36px;font-family:var(--font-family-base);font-size:1rem;font-weight:600;color:var(--c-text);white-space:nowrap;background-color:transparent;cursor:pointer}.button[data-v-56bf3a3f]:focus{outline:0}@media (min-width: 720px){.button[data-v-56bf3a3f]{border-bottom:2px solid transparent;padding:0;line-height:24px;font-size:.9rem;font-weight:500}}.button-arrow[data-v-56bf3a3f]{display:inline-block;margin-top:-1px;margin-left:8px;border-top:6px solid #ccc;border-right:4px solid transparent;border-bottom:0;border-left:4px solid transparent;vertical-align:middle}.button-arrow.right[data-v-56bf3a3f]{transform:rotate(-90deg)}@media (min-width: 720px){.button-arrow.right[data-v-56bf3a3f]{transform:rotate(0)}}.dialog[data-v-56bf3a3f]{margin:0;padding:0;list-style:none}@media (min-width: 720px){.dialog[data-v-56bf3a3f]{display:none;position:absolute;top:26px;right:-8px;border-radius:6px;padding:12px 0;min-width:128px;background-color:var(--c-bg);box-shadow:var(--shadow-3)}}.nav-links[data-v-eab3edfe]{padding:.75rem 0;border-bottom:1px solid var(--c-divider)}@media (min-width: 720px){.nav-links[data-v-eab3edfe]{display:flex;padding:6px 0 0;align-items:center;border-bottom:0}.item+.item[data-v-eab3edfe]{padding-left:24px}}.sidebar-button{position:absolute;top:.6rem;left:1rem;display:none;padding:.6rem;cursor:pointer}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media screen and (max-width: 719px){.sidebar-button{display:block}}.nav-bar[data-v-675d8756]{position:fixed;top:0;right:0;left:0;z-index:var(--z-index-navbar);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--c-divider);padding:.7rem 1.5rem .7rem 4rem;height:var(--header-height);background-color:var(--c-bg)}@media (min-width: 720px){.nav-bar[data-v-675d8756]{padding:.7rem 1.5rem}}.flex-grow[data-v-675d8756]{flex-grow:1}.nav[data-v-675d8756]{display:none}@media (min-width: 720px){.nav[data-v-675d8756]{display:block}}.sidebar[data-v-83e92a68]{position:fixed;top:var(--header-height);bottom:0;left:0;z-index:var(--z-index-sidebar);border-right:1px solid var(--c-divider);width:16.4rem;background-color:var(--c-bg);overflow-y:auto;transform:translate(-100%);transition:transform .25s ease}@media (min-width: 720px){.sidebar[data-v-83e92a68]{transform:translate(0)}}@media (min-width: 960px){.sidebar[data-v-83e92a68]{width:20rem}}.sidebar.open[data-v-83e92a68]{transform:translate(0)}.nav[data-v-83e92a68]{display:block}@media (min-width: 720px){.nav[data-v-83e92a68]{display:none}}.link[data-v-1ed99556]{display:inline-block;font-size:1rem;font-weight:500;color:var(--c-text-light)}.link[data-v-1ed99556]:hover{text-decoration:none;color:var(--c-brand)}.icon[data-v-1ed99556]{margin-left:4px}.last-updated[data-v-abce3432]{display:inline-block;margin:0;line-height:1.4;font-size:.9rem;color:var(--c-text-light)}@media (min-width: 960px){.last-updated[data-v-abce3432]{font-size:1rem}}.prefix[data-v-abce3432]{display:inline-block;font-weight:500}.datetime[data-v-abce3432]{display:inline-block;margin-left:6px;font-weight:400}.page-footer[data-v-07c132fc]{padding-top:1rem;padding-bottom:1rem;overflow:auto}@media (min-width: 960px){.page-footer[data-v-07c132fc]{display:flex;justify-content:space-between;align-items:center}}.updated[data-v-07c132fc]{padding-top:4px}@media (min-width: 960px){.updated[data-v-07c132fc]{padding-top:0}}.next-and-prev-link[data-v-38ede35f]{padding-top:1rem}.container[data-v-38ede35f]{display:flex;justify-content:space-between;border-top:1px solid var(--c-divider);padding-top:1rem}.prev[data-v-38ede35f],.next[data-v-38ede35f]{display:flex;flex-shrink:0;width:50%}.prev[data-v-38ede35f]{justify-content:flex-start;padding-right:12px}.next[data-v-38ede35f]{justify-content:flex-end;padding-left:12px}.link[data-v-38ede35f]{display:inline-flex;align-items:center;max-width:100%;font-size:1rem;font-weight:500}.text[data-v-38ede35f]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon[data-v-38ede35f]{display:block;flex-shrink:0;width:16px;height:16px;fill:var(--c-text);transform:translateY(1px)}.icon-prev[data-v-38ede35f]{margin-right:8px}.icon-next[data-v-38ede35f]{margin-left:8px}.page[data-v-7eddb2c4]{padding-top:var(--header-height)}@media (min-width: 720px){.page[data-v-7eddb2c4]{margin-left:16.4rem}}@media (min-width: 960px){.page[data-v-7eddb2c4]{margin-left:20rem}}.container[data-v-7eddb2c4]{margin:0 auto;padding:0 1.5rem 4rem;max-width:48rem}.content[data-v-7eddb2c4]{padding-bottom:1.5rem}@media (max-width: 420px){.content[data-v-7eddb2c4]{clear:both}}#ads-container{margin:0 auto}@media (min-width: 420px){#ads-container{position:relative;right:0;float:right;margin:-8px -8px 24px 24px;width:146px}}@media (max-width: 420px){#ads-container{height:105px;margin:1.75rem 0}}@media (min-width: 1400px){#ads-container{position:fixed;right:8px;bottom:8px}}
+:root{--c-white: #ffffff;--c-white-dark: #f8f8f8;--c-black: #000000;--c-divider-light: rgba(60, 60, 67, .12);--c-divider-dark: rgba(84, 84, 88, .48);--c-text-light-1: #2c3e50;--c-text-light-2: #476582;--c-text-light-3: #90a4b7;--c-brand: #3eaf7c;--c-brand-light: #4abf8a;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--z-index-navbar: 10;--z-index-sidebar: 6;--shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16);--header-height: 3.6rem}:root{--c-divider: var(--c-divider-light);--c-text: var(--c-text-light-1);--c-text-light: var(--c-text-light-2);--c-text-lighter: var(--c-text-light-3);--c-bg: var(--c-white);--c-bg-accent: var(--c-white-dark);--code-line-height: 24px;--code-font-family: var(--font-family-mono);--code-font-size: 14px;--code-inline-bg-color: rgba(27, 31, 35, .05);--code-bg-color: #282c34}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:1.4;font-family:var(--font-family-base);font-size:16px;font-weight:400;color:var(--c-text);background-color:var(--c-bg);direction:ltr;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.25}h1,h2,h3,h4,h5,h6,strong,b{font-weight:600}h1:hover .header-anchor,h1:focus .header-anchor,h2:hover .header-anchor,h2:focus .header-anchor,h3:hover .header-anchor,h3:focus .header-anchor,h4:hover .header-anchor,h4:focus .header-anchor,h5:hover .header-anchor,h5:focus .header-anchor,h6:hover .header-anchor,h6:focus .header-anchor{opacity:1}h1{margin-top:1.5rem;font-size:1.9rem}@media screen and (min-width: 420px){h1{font-size:2.2rem}}h2{margin-top:2.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--c-divider);padding-bottom:.3rem;line-height:1.25;font-size:1.65rem}h2+h3{margin-top:1.5rem}h3{margin-top:2rem;font-size:1.35rem}h4{font-size:1.15rem}p,ol,ul{margin:1rem 0;line-height:1.7}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{text-decoration:none;color:var(--c-brand)}a:hover{text-decoration:underline}a.header-anchor{float:left;margin-top:.125em;margin-left:-.87em;padding-right:.23em;font-size:.85em;opacity:0}a.header-anchor:hover,a.header-anchor:focus{text-decoration:none}figure{margin:0}img{max-width:100%}ul,ol{padding-left:1.25em}li>ul,li>ol{margin:0}table{display:block;border-collapse:collapse;margin:1rem 0;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}th,td{border:1px solid #dfe2e5;padding:.6em 1em}blockquote{margin:1rem 0;border-left:.2rem solid #dfe2e5;padding:.25rem 0 .25rem 1rem;font-size:1rem;color:#999}blockquote>p{margin:0}form{margin:0}.theme.sidebar-open .sidebar-mask{display:block}.theme.no-navbar>h1,.theme.no-navbar>h2,.theme.no-navbar>h3,.theme.no-navbar>h4,.theme.no-navbar>h5,.theme.no-navbar>h6{margin-top:1.5rem;padding-top:0}.theme.no-navbar aside{top:0}@media screen and (min-width: 720px){.theme.no-sidebar aside{display:none}.theme.no-sidebar main{margin-left:0}}.sidebar-mask{position:fixed;z-index:2;display:none;width:100vw;height:100vh}code{margin:0;border-radius:3px;padding:.25rem .5rem;font-family:var(--code-font-family);font-size:.85em;color:var(--c-text-light);background-color:var(--code-inline-bg-color)}code .token.deleted{color:#ec5975}code .token.inserted{color:var(--c-brand)}div[class*=language-]{position:relative;margin:1rem -1.5rem;background-color:var(--code-bg-color);overflow-x:auto}li>div[class*=language-]{border-radius:6px 0 0 6px;margin:1rem -1.5rem 1rem -1.25rem;line-height:initial}@media (min-width: 420px){div[class*=language-]{margin:1rem 0;border-radius:6px}li>div[class*=language-]{margin:1rem 0 1rem 0rem;border-radius:6px}}[class*=language-] pre,[class*=language-] code{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;background:transparent}[class*=language-] pre{position:relative;z-index:1;margin:0;padding:1.25rem 1.5rem;overflow-x:auto}[class*=language-] code{padding:0;line-height:var(--code-line-height);font-size:var(--code-font-size);color:#eee}.highlight-lines{position:absolute;top:0;bottom:0;left:0;padding:1.25rem 0;width:100%;line-height:var(--code-line-height);font-family:var(--code-font-family);font-size:var(--code-font-size);user-select:none;overflow:hidden}.highlight-lines .highlighted{background-color:#000000a8}div[class*=language-].line-numbers-mode{padding-left:3.5rem}.line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid rgba(0,0,0,.5);padding:1.25rem 0;width:3.5rem;text-align:center;line-height:var(--code-line-height);font-family:var(--code-font-family);font-size:var(--code-font-size);color:#888}div[class*=language-]:before{position:absolute;top:.6em;right:1em;z-index:2;font-size:.8rem;color:#888}div[class~=language-html]:before,div[class~=language-markup]:before{content:"html"}div[class~=language-md]:before,div[class~=language-markdown]:before{content:"md"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"styl"}div[class~=language-js]:before,div[class~=language-javascript]:before{content:"js"}div[class~=language-ts]:before,div[class~=language-typescript]:before{content:"ts"}div[class~=language-json]:before{content:"json"}div[class~=language-rb]:before,div[class~=language-ruby]:before{content:"rb"}div[class~=language-py]:before,div[class~=language-python]:before{content:"py"}div[class~=language-sh]:before,div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}div[class~=language-go]:before{content:"go"}div[class~=language-rust]:before{content:"rust"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-vue]:before{content:"vue"}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.custom-block.tip,.custom-block.info,.custom-block.warning,.custom-block.danger{margin:1rem 0;border-left:.5rem solid;padding:.1rem 1.5rem;overflow-x:auto}.custom-block.tip{background-color:#f3f5f7;border-color:var(--c-brand)}.custom-block.info{background-color:#f3f5f7;border-color:var(--c-text-light-2)}.custom-block.warning{border-color:#e7c000;color:#6b5900;background-color:#ffe5644d}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:var(--c-text)}.custom-block.danger{border-color:#c00;color:#4d0000;background-color:#ffe6e6}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:var(--c-text)}.custom-block.details{position:relative;display:block;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.custom-block-title{margin-bottom:-.4rem;font-weight:600}.sidebar-links{margin:0;padding:0;list-style:none}.sidebar-link-item{display:block;margin:0;border-left:.25rem solid transparent;color:var(--c-text)}a.sidebar-link-item:hover{text-decoration:none;color:var(--c-brand)}a.sidebar-link-item.active{color:var(--c-brand)}.sidebar>.sidebar-links{padding:.75rem 0 5rem}@media (min-width: 720px){.sidebar>.sidebar-links{padding:1.5rem 0}}.sidebar>.sidebar-links>.sidebar-link+.sidebar-link{padding-top:.5rem}@media (min-width: 720px){.sidebar>.sidebar-links>.sidebar-link+.sidebar-link{padding-top:1.25rem}}.sidebar>.sidebar-links>.sidebar-link>.sidebar-link-item{padding:.35rem 1.5rem .35rem 1.25rem;font-size:1.1rem;font-weight:700}.sidebar>.sidebar-links>.sidebar-link>a.sidebar-link-item.active{border-left-color:var(--c-brand);font-weight:600}.sidebar>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-link-item{display:block;padding:.35rem 1.5rem .35rem 2rem;line-height:1.4;font-size:1rem;font-weight:400}.sidebar>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>a.sidebar-link-item.active{border-left-color:var(--c-brand);font-weight:600}.sidebar>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-link-item{display:block;padding:.3rem 1.5rem .3rem 3rem;line-height:1.4;font-size:.9rem;font-weight:400}.sidebar>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-links>.sidebar-link>.sidebar-link-item{display:block;padding:.3rem 1.5rem .3rem 4rem;line-height:1.4;font-size:.9rem;font-weight:400}.debug[data-v-bf835584]{box-sizing:border-box;position:fixed;right:8px;bottom:8px;z-index:9999;border-radius:4px;width:74px;height:32px;color:#eee;overflow:hidden;cursor:pointer;background-color:#000000d9;transition:all .15s ease}.debug[data-v-bf835584]:hover{background-color:#000000bf}.debug.open[data-v-bf835584]{right:0;bottom:0;width:100%;height:100%;margin-top:0;border-radius:0;padding:0;overflow:scroll}@media (min-width: 512px){.debug.open[data-v-bf835584]{width:512px}}.debug.open[data-v-bf835584]:hover{background-color:#000000d9}.title[data-v-bf835584]{margin:0;padding:6px 16px;line-height:20px;font-size:13px}.block[data-v-bf835584]{margin:2px 0 0;border-top:1px solid rgba(255,255,255,.16);padding:8px 16px;font-family:Hack,monospace;font-size:13px}.block+.block[data-v-bf835584]{margin-top:8px}.icon.outbound{position:relative;top:-1px;display:inline-block;vertical-align:middle;color:var(--c-text-lighter)}.item[data-v-b8818f8c]{display:block;padding:0 1.5rem;line-height:36px;font-size:1rem;font-weight:600;color:var(--c-text);white-space:nowrap}.item[data-v-b8818f8c]:hover,.item.active[data-v-b8818f8c]{text-decoration:none;color:var(--c-brand)}.item.external[data-v-b8818f8c]:hover{border-bottom-color:transparent;color:var(--c-text)}@media (min-width: 720px){.item[data-v-b8818f8c]{border-bottom:2px solid transparent;padding:0;line-height:24px;font-size:.9rem;font-weight:500}.item[data-v-b8818f8c]:hover,.item.active[data-v-b8818f8c]{border-bottom-color:var(--c-brand);color:var(--c-text)}}.home-hero[data-v-370f18c0]{margin:2.5rem 0 2.75rem;padding:0 1.5rem;text-align:center}@media (min-width: 420px){.home-hero[data-v-370f18c0]{margin:3.5rem 0}}@media (min-width: 720px){.home-hero[data-v-370f18c0]{margin:4rem 0 4.25rem}}.figure[data-v-370f18c0]{padding:0 1.5rem}.image[data-v-370f18c0]{display:block;margin:0 auto;width:auto;max-width:100%;max-height:280px}.title[data-v-370f18c0]{margin-top:1.5rem;font-size:2rem}@media (min-width: 420px){.title[data-v-370f18c0]{font-size:3rem}}@media (min-width: 720px){.title[data-v-370f18c0]{margin-top:2rem}}.tagline[data-v-370f18c0]{margin:0;margin-top:.25rem;line-height:1.3;font-size:1.2rem;color:var(--c-text-light)}@media (min-width: 420px){.tagline[data-v-370f18c0]{line-height:1.2;font-size:1.6rem}}.action[data-v-370f18c0]{margin-top:1.5rem;display:inline-block}.action.alt[data-v-370f18c0]{margin-left:1.5rem}@media (min-width: 420px){.action[data-v-370f18c0]{margin-top:2rem;display:inline-block}}.action[data-v-370f18c0] .item{display:inline-block;border-radius:6px;padding:0 20px;line-height:44px;font-size:1rem;font-weight:500;color:var(--c-bg);background-color:var(--c-brand);border:2px solid var(--c-brand);transition:background-color .1s ease}.action.alt[data-v-370f18c0] .item{background-color:var(--c-bg);color:var(--c-brand)}.action[data-v-370f18c0] .item:hover{text-decoration:none;color:var(--c-bg);background-color:var(--c-brand-light)}@media (min-width: 420px){.action[data-v-370f18c0] .item{padding:0 24px;line-height:52px;font-size:1.2rem;font-weight:500}}.home-features[data-v-e39c13e0]{margin:0 auto;padding:2.5rem 0 2.75rem;max-width:960px}.home-hero+.home-features[data-v-e39c13e0]{padding-top:0}@media (min-width: 420px){.home-features[data-v-e39c13e0]{padding:3.25rem 0 3.5rem}.home-hero+.home-features[data-v-e39c13e0]{padding-top:0}}@media (min-width: 720px){.home-features[data-v-e39c13e0]{padding-right:1.5rem;padding-left:1.5rem}}.wrapper[data-v-e39c13e0]{padding:0 1.5rem}.home-hero+.home-features .wrapper[data-v-e39c13e0]{border-top:1px solid var(--c-divider);padding-top:2.5rem}@media (min-width: 420px){.home-hero+.home-features .wrapper[data-v-e39c13e0]{padding-top:3.25rem}}@media (min-width: 720px){.wrapper[data-v-e39c13e0]{padding-right:0;padding-left:0}}.container[data-v-e39c13e0]{margin:0 auto;max-width:392px}@media (min-width: 720px){.container[data-v-e39c13e0]{max-width:960px}}.features[data-v-e39c13e0]{display:flex;flex-wrap:wrap;margin:-20px -24px}.feature[data-v-e39c13e0]{flex-shrink:0;padding:20px 24px;width:100%}@media (min-width: 720px){.feature[data-v-e39c13e0]{width:calc(100% / 3)}}.title[data-v-e39c13e0]{margin:0;border-bottom:0;line-height:1.4;font-size:1.25rem;font-weight:500}@media (min-width: 420px){.title[data-v-e39c13e0]{font-size:1.4rem}}.details[data-v-e39c13e0]{margin:0;line-height:1.6;font-size:1rem;color:var(--c-text-light)}.title+.details[data-v-e39c13e0]{padding-top:.25rem}.footer[data-v-30918238]{margin:0 auto;max-width:960px}@media (min-width: 720px){.footer[data-v-30918238]{padding:0 1.5rem}}.container[data-v-30918238]{padding:2rem 1.5rem 2.25rem}.home-hero+.footer .container[data-v-30918238],.home-features+.footer .container[data-v-30918238],.home-content+.footer .container[data-v-30918238]{border-top:1px solid var(--c-divider)}@media (min-width: 420px){.container[data-v-30918238]{padding:3rem 1.5rem 3.25rem}}.text[data-v-30918238]{margin:0;text-align:center;line-height:1.4;font-size:.9rem;color:var(--c-text-light)}.home[data-v-10122c92]{padding-top:var(--header-height)}.home-content[data-v-10122c92]{max-width:960px;margin:0 auto;padding:0 1.5rem}.nav-bar-title[data-v-cc01ef16]{font-size:1.3rem;font-weight:600;color:var(--c-text);display:flex;justify-content:center;align-items:center}.nav-bar-title[data-v-cc01ef16]:hover{text-decoration:none}.logo[data-v-cc01ef16]{margin-right:.75rem;height:1.3rem;vertical-align:bottom}.item[data-v-bbc27490]{display:block;padding:0 1.5rem 0 2.5rem;line-height:32px;font-size:.9rem;font-weight:500;color:var(--c-text);white-space:nowrap}@media (min-width: 720px){.item[data-v-bbc27490]{padding:0 24px 0 12px;line-height:32px;font-size:.85rem;font-weight:500;color:var(--c-text);white-space:nowrap}.item.active .arrow[data-v-bbc27490]{opacity:1}}.item[data-v-bbc27490]:hover,.item.active[data-v-bbc27490]{text-decoration:none;color:var(--c-brand)}.item.external[data-v-bbc27490]:hover{border-bottom-color:transparent;color:var(--c-text)}@media (min-width: 720px){.arrow[data-v-bbc27490]{display:inline-block;margin-right:8px;border-top:6px solid #ccc;border-right:4px solid transparent;border-bottom:0;border-left:4px solid transparent;vertical-align:middle;opacity:0;transform:translateY(-2px) rotate(-90deg)}}.nav-dropdown-link[data-v-56bf3a3f]{position:relative;height:36px;overflow:hidden;cursor:pointer}@media (min-width: 720px){.nav-dropdown-link[data-v-56bf3a3f]{height:auto;overflow:visible}.nav-dropdown-link:hover .dialog[data-v-56bf3a3f]{display:block}}.nav-dropdown-link.open[data-v-56bf3a3f]{height:auto}.button[data-v-56bf3a3f]{display:block;border:0;padding:0 1.5rem;width:100%;text-align:left;line-height:36px;font-family:var(--font-family-base);font-size:1rem;font-weight:600;color:var(--c-text);white-space:nowrap;background-color:transparent;cursor:pointer}.button[data-v-56bf3a3f]:focus{outline:0}@media (min-width: 720px){.button[data-v-56bf3a3f]{border-bottom:2px solid transparent;padding:0;line-height:24px;font-size:.9rem;font-weight:500}}.button-arrow[data-v-56bf3a3f]{display:inline-block;margin-top:-1px;margin-left:8px;border-top:6px solid #ccc;border-right:4px solid transparent;border-bottom:0;border-left:4px solid transparent;vertical-align:middle}.button-arrow.right[data-v-56bf3a3f]{transform:rotate(-90deg)}@media (min-width: 720px){.button-arrow.right[data-v-56bf3a3f]{transform:rotate(0)}}.dialog[data-v-56bf3a3f]{margin:0;padding:0;list-style:none}@media (min-width: 720px){.dialog[data-v-56bf3a3f]{display:none;position:absolute;top:26px;right:-8px;border-radius:6px;padding:12px 0;min-width:128px;background-color:var(--c-bg);box-shadow:var(--shadow-3)}}.nav-links[data-v-eab3edfe]{padding:.75rem 0;border-bottom:1px solid var(--c-divider)}@media (min-width: 720px){.nav-links[data-v-eab3edfe]{display:flex;padding:6px 0 0;align-items:center;border-bottom:0}.item+.item[data-v-eab3edfe]{padding-left:24px}}.sidebar-button{position:absolute;top:.6rem;left:1rem;display:none;padding:.6rem;cursor:pointer}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media screen and (max-width: 719px){.sidebar-button{display:block}}.nav-bar[data-v-675d8756]{position:fixed;top:0;right:0;left:0;z-index:var(--z-index-navbar);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--c-divider);padding:.7rem 1.5rem .7rem 4rem;height:var(--header-height);background-color:var(--c-bg)}@media (min-width: 720px){.nav-bar[data-v-675d8756]{padding:.7rem 1.5rem}}.flex-grow[data-v-675d8756]{flex-grow:1}.nav[data-v-675d8756]{display:none}@media (min-width: 720px){.nav[data-v-675d8756]{display:block}}.sidebar[data-v-83e92a68]{position:fixed;top:var(--header-height);bottom:0;left:0;z-index:var(--z-index-sidebar);border-right:1px solid var(--c-divider);width:16.4rem;background-color:var(--c-bg);overflow-y:auto;transform:translate(-100%);transition:transform .25s ease}@media (min-width: 720px){.sidebar[data-v-83e92a68]{transform:translate(0)}}@media (min-width: 960px){.sidebar[data-v-83e92a68]{width:20rem}}.sidebar.open[data-v-83e92a68]{transform:translate(0)}.nav[data-v-83e92a68]{display:block}@media (min-width: 720px){.nav[data-v-83e92a68]{display:none}}.link[data-v-1ed99556]{display:inline-block;font-size:1rem;font-weight:500;color:var(--c-text-light)}.link[data-v-1ed99556]:hover{text-decoration:none;color:var(--c-brand)}.icon[data-v-1ed99556]{margin-left:4px}.last-updated[data-v-abce3432]{display:inline-block;margin:0;line-height:1.4;font-size:.9rem;color:var(--c-text-light)}@media (min-width: 960px){.last-updated[data-v-abce3432]{font-size:1rem}}.prefix[data-v-abce3432]{display:inline-block;font-weight:500}.datetime[data-v-abce3432]{display:inline-block;margin-left:6px;font-weight:400}.page-footer[data-v-07c132fc]{padding-top:1rem;padding-bottom:1rem;overflow:auto}@media (min-width: 960px){.page-footer[data-v-07c132fc]{display:flex;justify-content:space-between;align-items:center}}.updated[data-v-07c132fc]{padding-top:4px}@media (min-width: 960px){.updated[data-v-07c132fc]{padding-top:0}}.next-and-prev-link[data-v-38ede35f]{padding-top:1rem}.container[data-v-38ede35f]{display:flex;justify-content:space-between;border-top:1px solid var(--c-divider);padding-top:1rem}.prev[data-v-38ede35f],.next[data-v-38ede35f]{display:flex;flex-shrink:0;width:50%}.prev[data-v-38ede35f]{justify-content:flex-start;padding-right:12px}.next[data-v-38ede35f]{justify-content:flex-end;padding-left:12px}.link[data-v-38ede35f]{display:inline-flex;align-items:center;max-width:100%;font-size:1rem;font-weight:500}.text[data-v-38ede35f]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon[data-v-38ede35f]{display:block;flex-shrink:0;width:16px;height:16px;fill:var(--c-text);transform:translateY(1px)}.icon-prev[data-v-38ede35f]{margin-right:8px}.icon-next[data-v-38ede35f]{margin-left:8px}.page[data-v-7eddb2c4]{padding-top:var(--header-height)}@media (min-width: 720px){.page[data-v-7eddb2c4]{margin-left:16.4rem}}@media (min-width: 960px){.page[data-v-7eddb2c4]{margin-left:20rem}}.container[data-v-7eddb2c4]{margin:0 auto;padding:0 1.5rem 4rem;max-width:48rem}.content[data-v-7eddb2c4]{padding-bottom:1.5rem}@media (max-width: 420px){.content[data-v-7eddb2c4]{clear:both}}#ads-container{margin:0 auto}@media (min-width: 420px){#ads-container{position:relative;right:0;float:right;margin:-8px -8px 24px 24px;width:146px}}@media (max-width: 420px){#ads-container{height:105px;margin:1.75rem 0}}@media (min-width: 1400px){#ads-container{position:fixed;right:8px;bottom:8px}}body.dark{--c-divider: var(--c-divider-dark);--c-text: var(--c-text-dark-1);--c-text-light: var(--c-text-dark-2);--c-text-lighter: var(--c-text-dark-3);--c-bg: var(--c-white);--c-bg-accent: var(--c-white-light);--code-font-family: var(--font-family-mono);--code-inline-bg-color: rgba(27, 31, 35, .05);--code-bg-color: #282c34;--c-white: var(--c-black);--c-white-dark: #f8f8f8;--c-black: #1a1a1a;--c-divider-light: rgba(60, 60, 67, .12);--c-divider-dark: rgba(84, 84, 88, .48);--c-text-light-1: #2c3e50;--c-text-light-2: #476582;--c-text-light-3: #90a4b7;--c-text-dark-1: #fff;--c-text-dark-2: #607385;--c-text-dark-3: #445666;--c-brand: #3eaf7c;--c-brand-light: #4abf8a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16);--header-height: 3.6rem;--docsearch-searchbox-focus-background: #242424;--docsearch-container-background: rgba(101, 108, 133, .8);--docsearch-modal-background: #242424;--docsearch-modal-shadow: inset 1px 1px 0 0 hsla(0, 0%, 100%, .5), 0 3px 8px 0 #555a64;--docsearch-searchbox-background: #ebedf0;--docsearch-searchbox-shadow: inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-color: #444950;--docsearch-hit-active-color: #333;--docsearch-hit-background: #333;--docsearch-hit-shadow: 0 1px 3px 0 #d4d9e1;--docsearch-key-gradient: linear-gradient(-225deg, #d5dbe4, #f8f8f8);--docsearch-key-shadow: inset 0 -2px 0 0 #cdcde6, inset 0 0 1px 1px #333, 0 1px 2px 1px rgba(30, 35, 90, .4);--docsearch-footer-background: #333;--docsearch-footer-shadow: 0 -1px 0 0 #e0e3e8, 0 -3px 6px 0 rgba(69, 98, 155, .12)}body.dark tr:nth-child(2n){background-color:#2a2a2a}body.dark .DocSearch{--docsearch-primary-color: var(--c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-searchbox-shadow: inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-text-color: var(--c-text-light);--docsearch-muted-color: var(--c-text-lighter);--docsearch-searchbox-background: #333}body.dark .DocSearch-Button:hover{box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}body.dark .custom-block.details,body.dark .custom-block.info,body.dark .custom-block.tip{background-color:#2f2f2f}body.dark .custom-block.warning{background-color:#ffe56436;color:#ccc18c}body.dark .custom-block.danger{background-color:#6e4f4fd2;color:#f5d3d3}body.dark .custom-block.danger .custom-block-title{color:#f6b9b9}
diff --git a/developer/algolia-search.html b/developer/algolia-search.html
index 4125f78e..a8b32f4a 100644
--- a/developer/algolia-search.html
+++ b/developer/algolia-search.html
@@ -5,9 +5,9 @@
     
     Theme Config: Algolia Search | 哪吒监控
     
-    
-    
-    
+    
+    
+    
     
     
   
@@ -47,8 +47,8 @@
   }
 }
 

VitePress will automatically add a lang facetFilter to the searchParameters.facetFilter array with the correct language value. Algolia automatically adds the correct facet filter based on the lang attribute on the <html> tag. This will match search results with the currently viewed language of the page.

- - + + \ No newline at end of file diff --git a/developer/basics.html b/developer/basics.html index d32727ac..5ae3db9d 100644 --- a/developer/basics.html +++ b/developer/basics.html @@ -5,9 +5,9 @@ App Config: Basics | 哪吒监控 - - - + + + @@ -26,8 +26,8 @@ description: 'A VitePress site' }
- - + + \ No newline at end of file diff --git a/developer/carbon-ads.html b/developer/carbon-ads.html index 11de44aa..e6503283 100644 --- a/developer/carbon-ads.html +++ b/developer/carbon-ads.html @@ -5,9 +5,9 @@ Theme Config: Carbon Ads | 哪吒监控 - - - + + + @@ -23,8 +23,8 @@ } }
- - + + \ No newline at end of file diff --git a/developer/homepage.html b/developer/homepage.html index 9d08288b..2e2cdad2 100644 --- a/developer/homepage.html +++ b/developer/homepage.html @@ -5,9 +5,9 @@ Theme Config: Homepage | 哪吒监控 - - - + + + @@ -31,8 +31,8 @@ footer: MIT Licensed | Copyright © 2019-present Evan You ---
- - + + \ No newline at end of file diff --git a/en_US/developer/algolia-search.html b/en_US/developer/algolia-search.html index f596bfad..a2bc30b7 100644 --- a/en_US/developer/algolia-search.html +++ b/en_US/developer/algolia-search.html @@ -5,17 +5,17 @@ Theme Config: Algolia Search | Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/developer/basics.html b/en_US/developer/basics.html index 13f5818c..e16fdeb0 100644 --- a/en_US/developer/basics.html +++ b/en_US/developer/basics.html @@ -5,17 +5,17 @@ App Config: Basics | Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/developer/carbon-ads.html b/en_US/developer/carbon-ads.html index ce246d6f..46e923f5 100644 --- a/en_US/developer/carbon-ads.html +++ b/en_US/developer/carbon-ads.html @@ -5,17 +5,17 @@ Theme Config: Carbon Ads | Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/developer/homepage.html b/en_US/developer/homepage.html index 65d49e0f..ae38673c 100644 --- a/en_US/developer/homepage.html +++ b/en_US/developer/homepage.html @@ -5,17 +5,17 @@ Theme Config: Homepage | Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/guide/agent.html b/en_US/guide/agent.html index d7e9f99a..0f6eecaf 100644 --- a/en_US/guide/agent.html +++ b/en_US/guide/agent.html @@ -5,9 +5,9 @@ Install Agent using one-click script | Nezha Monitoring - - - + + + @@ -37,8 +37,8 @@ start }
  • 运行 chmod +x /etc/init.d/nezha-service 赋予执行权限
  • 启动服务: /etc/init.d/nezha-service enable && /etc/init.d/nezha-service start



自定义Agent监控项目


自定义监控的网卡和硬盘分区

  • 执行 /opt/nezha/agent/nezha-agent --edit-agent-config 来选择自定义的网卡和分区,然后重启 Agent 即可生效

其他运行参数

通过执行 ./nezha-agent --help 查看支持的参数,如果你使用了一键脚本安装Agent,可以编辑 /etc/systemd/system/nezha-agent.service,在 ExecStart= 这一行的末尾加上以下参数

  • --report-delay 控制系统信息上报的间隔,默认为 1 秒,可以设置为 3 来进一步降低 agent 端系统资源占用(配置区间 1-4)
  • --skip-conn 不监控连接数,推荐 机场/连接密集型服务器或CPU占用较高的服务器设置
  • --skip-procs 不监控进程数,也可以降低 agent 占用
  • --disable-auto-update 禁止 自动更新 Agent(安全特性)
  • --disable-force-update 禁止 强制更新 Agent(安全特性)
  • --disable-command-execute 禁止在 Agent 上执行定时任务、打开在线终端(安全特性)
  • --tls 启用 SSL/TLS 加密(使用 nginx 反向代理 Agent 的 grpc 连接,并且 nginx 开启 SSL/TLS 时,需要启用该项配置)
- - + + \ No newline at end of file diff --git a/en_US/guide/dashboard.html b/en_US/guide/dashboard.html index 3a117aa4..90576c08 100644 --- a/en_US/guide/dashboard.html +++ b/en_US/guide/dashboard.html @@ -5,9 +5,9 @@ Preparations | Nezha Monitoring - - - + + + @@ -37,8 +37,8 @@ proxy /terminal/* http://ip:8008 { websocket }

在宝塔面板中配置SSL


首先,先暂时关闭反向代理
正如在其他网站中配置SSL证书一样,进入站点设置中的“SSL”,你可以选择自动申请 Let´s Encrypt 证书或手动配置已有的证书
完成SSL的设置后,你需要回到 https://github.com/settings/developers ,编辑之前创建的验证应用程序,将之前我们填入的"Homepage URL"和"Authorization callback URL"中的域名全部从http改为https,如:"https://cdn.example.com" 和 "https://cdn.example.com/oauth2/callback" ,不更改此项可能会导致你无法登陆面板后台

- - + + \ No newline at end of file diff --git a/en_US/guide/notifications.html b/en_US/guide/notifications.html index 529c08ef..b9cecd10 100644 --- a/en_US/guide/notifications.html +++ b/en_US/guide/notifications.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/guide/q2.html b/en_US/guide/q2.html index 7a6e0a51..5377a076 100644 --- a/en_US/guide/q2.html +++ b/en_US/guide/q2.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/guide/q3.html b/en_US/guide/q3.html index 65867944..dca5f180 100644 --- a/en_US/guide/q3.html +++ b/en_US/guide/q3.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/guide/q4.html b/en_US/guide/q4.html index a96abb25..d9ef6798 100644 --- a/en_US/guide/q4.html +++ b/en_US/guide/q4.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/guide/q5.html b/en_US/guide/q5.html index 78fd6b4d..563c67d7 100644 --- a/en_US/guide/q5.html +++ b/en_US/guide/q5.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/guide/servers.html b/en_US/guide/servers.html index c63f219c..142283bd 100644 --- a/en_US/guide/servers.html +++ b/en_US/guide/servers.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/guide/services.html b/en_US/guide/services.html index e29fef24..18be7f07 100644 --- a/en_US/guide/services.html +++ b/en_US/guide/services.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/guide/settings.html b/en_US/guide/settings.html index 3bf156fc..ab44e6c1 100644 --- a/en_US/guide/settings.html +++ b/en_US/guide/settings.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/guide/tasks.html b/en_US/guide/tasks.html index 4ecdfd35..beabd42c 100644 --- a/en_US/guide/tasks.html +++ b/en_US/guide/tasks.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + + - - + + \ No newline at end of file diff --git a/en_US/index.html b/en_US/index.html index 5684240d..6a73f3db 100644 --- a/en_US/index.html +++ b/en_US/index.html @@ -5,17 +5,17 @@ Nezha Monitoring - - - + + +

Nezha Monitoring

A open source, lightweight server and website monitoring and O&M tool

One-Click Installation

Support use one-click script to install Dashboard and Agent services; Linux, WIndows, MacOS, OpenWRT and other mainstream systems are supported

Monitoring at any time

Support monitoring the system status of multiple servers at the same time, support monitoring the status of web pages, ports, SSL certificates; support notifications in case of failure, out of data and other status. Support multiple notification methods (Telegram, email, WeChat, etc.)

Lightweight O&M tool

Support WebSSH, support cyclic monitoring data, support setting scheduled tasks and running command on multiple servers

Copyright © 2022-present Nezhahq

- - + + \ No newline at end of file diff --git a/guide/agent.html b/guide/agent.html index 3b7975b5..b48ad204 100644 --- a/guide/agent.html +++ b/guide/agent.html @@ -5,9 +5,9 @@ 一键安装Agent | 哪吒监控 - - - + + + @@ -37,8 +37,8 @@ start }
  • 运行 chmod +x /etc/init.d/nezha-service 赋予执行权限
  • 启动服务: /etc/init.d/nezha-service enable && /etc/init.d/nezha-service start



自定义Agent监控项目

自定义监控的网卡和硬盘分区

  • 执行 /opt/nezha/agent/nezha-agent --edit-agent-config 来选择自定义的网卡和分区,然后重启 Agent 即可生效

其他运行参数

通过执行 ./nezha-agent --help 查看支持的参数,如果你使用了一键脚本安装Agent,可以编辑 /etc/systemd/system/nezha-agent.service,在 ExecStart= 这一行的末尾加上以下参数

  • --report-delay 控制系统信息上报的间隔,默认为 1 秒,可以设置为 3 来进一步降低 agent 端系统资源占用(配置区间 1-4)
  • --skip-conn 不监控连接数,推荐 机场/连接密集型服务器或CPU占用较高的服务器设置
  • --skip-procs 不监控进程数,也可以降低 agent 占用
  • --disable-auto-update 禁止 自动更新 Agent(安全特性)
  • --disable-force-update 禁止 强制更新 Agent(安全特性)
  • --disable-command-execute 禁止在 Agent 上执行定时任务、打开在线终端(安全特性)
  • --tls 启用 SSL/TLS 加密(使用 nginx 反向代理 Agent 的 grpc 连接,并且 nginx 开启 SSL/TLS 时,需要启用该项配置)
- - + + \ No newline at end of file diff --git a/guide/dashboard.html b/guide/dashboard.html index 47c4146d..031ba4dc 100644 --- a/guide/dashboard.html +++ b/guide/dashboard.html @@ -5,9 +5,9 @@ 准备工作 | 哪吒监控 - - - + + + @@ -37,8 +37,8 @@ proxy /terminal/* http://ip:8008 { websocket }

在宝塔面板中配置SSL

首先,先暂时关闭反向代理
正如在其他网站中配置SSL证书一样,进入站点设置中的“SSL”,你可以选择自动申请 Let´s Encrypt 证书或手动配置已有的证书
完成SSL的设置后,你需要回到 https://github.com/settings/developers ,编辑之前创建的验证应用程序,将之前我们填入的"Homepage URL"和"Authorization callback URL"中的域名全部从http改为https,如:"https://cdn.example.com" 和 "https://cdn.example.com/oauth2/callback" ,不更改此项可能会导致你无法登陆面板后台

- - + + \ No newline at end of file diff --git a/guide/notifications.html b/guide/notifications.html index 7cb32c15..1603d099 100644 --- a/guide/notifications.html +++ b/guide/notifications.html @@ -5,17 +5,17 @@ 灵活的通知方式 | 哪吒监控 - - - + + +

哪吒监控支持对服务器的负载、CPU、内存、硬盘、带宽、流量、月流量、进程数、连接数进行监控,并在其中某项达到用户设定值时发送报警通知

灵活的通知方式

#NEZHA# 是面板消息占位符,面板触发通知时会自动用实际消息替换占位符

Body 内容是JSON 格式的:当请求类型为 FORM 时,值为 key:value 的形式,value 里面可放置占位符,通知时会自动替换。当请求类型为 JSON 时 只会简单进行字符串替换后直接提交到URL

URL 里面也可放置占位符,请求时会进行简单的字符串替换。

你可以参考以下的通知方式示例,也可以根据自己的需求灵活设置推送方式

  • server酱示例

  • wxpusher 示例,需要关注你的应用

  • Telegram 示例 @haitau 贡献

    • 名称:telegram 机器人消息通知
    • URL:https://api.telegram.org/botXXXXXX/sendMessage?chat_id=YYYYYY&text=#NEZHA#
    • 请求方式: GET
    • 请求类型: 默认
    • Body: 空
    • URL 参数获取说明:botXXXXXX 中的 XXXXXX 是在 telegram 中关注官方 @Botfather ,输入/newbot ,创建新的机器人(bot)时,会提供的 token(在提示 Use this token to access the HTTP API:后面一行)这里 'bot' 三个字母不可少。创建 bot 后,需要先在 telegram 中与 BOT 进行对话(随便发个消息),然后才可用 API 发送消息。YYYYYY 是 telegram 用户的数字 ID。与机器人@userinfobot 对话可获得。


报警规则说明

基本规则

  • type:可选取一个或多个类型,如在一个规则中选择了多个类型,需要同时满足所有选择的类型才会触发通知(可参考后面的示例)
    • cpumemoryswapdisk
    • net_in_speed 入站网速、net_out_speed 出站网速、net_all_speed 双向网速、transfer_in 入站流量、transfer_out 出站流量、transfer_all 双向流量
    • offline 离线监控
    • load1load5load15 负载
    • process_count 进程数 目前取线程数占用资源太多,暂时不支持
    • tcp_conn_countudp_conn_count 连接数
  • duration:持续数秒,数秒内采样记录 30% 以上触发阈值才会报警(防数据插针)
  • min 或 max:
    • 流量、网速类数值 为字节(1KB=1024B,1MB = 1024*1024B)
    • 内存、硬盘、CPU 以占用百分比计数
    • 离线监控无需设置此项
  • cover:
    • 0 监控所有,通过 ignore 忽略特定服务器
    • 1 忽略所有,通过 ignore 监控特定服务器
      例如:[{"type":"offline","duration":10, "cover":0, "ignore":{"5": true}}]
  • ignore: 选择忽略特定服务器,搭配 cover 使用,内容为服务器id和布尔值,例如:{"1": true, "2":false}

完整示例:

TIP

添加一个离线报警

  • 名称:离线通知
  • 规则:[{"Type":"offline","Duration":10}]
  • 启用:√

TIP

添加一个监控 CPU 持续 10s 超过 50% 内存持续 20s 占用低于 20% 的报警

  • 名称:CPU+内存
  • 规则:[{"Type":"cpu","Min":0,"Max":50,"Duration":10},{"Type":"memory","Min":20,"Max":0,"Duration":20}]
  • 启用:√

特殊:任意周期流量报警

可以用作月流量报警

  • type:
    • transfer_in_cycle 周期内的入站流量
    • transfer_out_cycle 周期内的出站流量
    • transfer_all_cycle 周期内双向流量和
  • cycle_start: 统计周期开始日期(可以是你机器计费周期的开始日期),时间格式为RFC3339,例如北京时间为2022-01-11T08:00:00.00+08:00
  • cycle_interval:每隔多少个周期单位(例如,周期单位为天,该值为 7,则代表每隔 7 天统计一次)
  • cycle_unit 统计周期单位,默认hour,可选(hour, day, week, month, year)
  • min/max、cover、ignore 参考基本规则配置

示例: ID 为 3 的服务器(ignore 里面定义),以每月 15 号为统计周期,周期内统计的出站月流量达到 1TB 时报警 [{"type":"transfer_out_cycle","max":1000000000000,"cycle_start":"2022-01-11T08:00:00.00+08:00","cycle_interval":1,"cycle_unit":"month","cover":1,"ignore":{"3":true}}]

- - + + \ No newline at end of file diff --git a/guide/q1.html b/guide/q1.html index 07e98a46..b737d0df 100644 --- a/guide/q1.html +++ b/guide/q1.html @@ -5,9 +5,9 @@ 准备工作 | 哪吒监控 - - - + + + @@ -60,8 +60,8 @@ ufw allow proto tcp from serverIp to any port 443443 -j DROP iptables -I INPUT -s serverIp -p tcp --dport 443 -j ACCEPT - - + + \ No newline at end of file diff --git a/guide/q2.html b/guide/q2.html index 172805ce..053e6aad 100644 --- a/guide/q2.html +++ b/guide/q2.html @@ -5,17 +5,17 @@ Agent 启动/上线 问题自检流程 | 哪吒监控 - - - + + +

Agent 启动/上线 问题自检流程

  1. 直接执行 /opt/nezha/agent/nezha-agent -s 面板IP或非CDN域名:面板RPC端口 -p Agent密钥 -d 查看日志是否是因为 DNS、网络不佳导致超时(timeout)
  2. nc -v 域名/IP 面板RPC端口 或者 telnet 域名/IP 面板RPC端口 来检验是否是网络问题,检查本机与面板服务器的出入站防火墙,如果无法判断问题可借助 https://port.ping.pe/ 提供的端口检查工具进行检测。
  3. 如果上面步骤检测正常,Agent 正常上线,尝试关闭 SELinux,如何关闭 SELinux?
- - + + \ No newline at end of file diff --git a/guide/q3.html b/guide/q3.html index fc961fac..c7720888 100644 --- a/guide/q3.html +++ b/guide/q3.html @@ -5,9 +5,9 @@ 反向代理 gRPC 端口(支持 Cloudflare CDN) | 哪吒监控 - - - + + + @@ -38,8 +38,8 @@ } }

Dashboard 面板端配置

  • 首先登录面板进入管理后台 打开设置页面,在 未接入CDN的面板服务器域名/IP 中填入上一步在 Nginx 或 Caddy 中配置的域名 比如 data.example.com ,并保存。
  • 然后在面板服务器中,打开 /opt/nezha/dashboard/data/config.yaml 文件,将 proxygrpcport 修改为 Nginx 或 Caddy 监听的端口,比如上一步设置的 443 ;因为我们在 Nginx 或 Caddy 中开启了 SSL/TLS,所以需要将 tls 设置为 true ;修改完成后重启面板。

Agent 端配置

  • 登录面板管理后台,复制一键安装命令,在对应的服务器上面执行一键安装命令重新安装 agent 端即可。

开启 Cloudflare CDN(可选)

根据 Cloudflare gRPC 的要求:gRPC 服务必须侦听 443 端口 且必须支持 TLS 和 HTTP/2。 所以如果需要开启 CDN,必须在配置 Nginx 或者 Caddy 反向代理 gRPC 时使用 443 端口,并配置证书(Caddy 会自动申请并配置证书)。

  • 登录 Cloudflare,选择使用的域名。打开 网络 选项将 gRPC 开关打开,打开 DNS 选项,找到 Nginx 或 Caddy 反代 gRPC 配置的域名的解析记录,打开橙色云启用 CDN。
- - + + \ No newline at end of file diff --git a/guide/q4.html b/guide/q4.html index 03d4c342..9bb1ee1b 100644 --- a/guide/q4.html +++ b/guide/q4.html @@ -5,17 +5,17 @@ 实时通道断开/在线终端连接失败 | 哪吒监控 - - - + + +

实时通道断开/在线终端连接失败

  • 如果你使用了CDN,请确认CDN服务商提供WebSocket服务,并且已开启WebSocket
  • 确认你的反代规则中针对 /ws,/terminal 路径的 WebSocket 进行了特别配置,你可以 点击这里 查看反向代理配置
- - + + \ No newline at end of file diff --git a/guide/q5.html b/guide/q5.html index ce5fc99f..c62f049e 100644 --- a/guide/q5.html +++ b/guide/q5.html @@ -5,17 +5,17 @@ 如何进行数据迁移、备份恢复? | 哪吒监控 - - - + + +

如何进行数据迁移、备份恢复?

  1. 先运行一键脚本,选择 停止面板
  2. 在旧服务器中打包 /opt/nezha 文件夹,复制到新环境相同位置解压
  3. 在新环境中运行一键脚本,选择 启动面板
- - + + \ No newline at end of file diff --git a/guide/servers.html b/guide/servers.html index 7a4ab1d4..4f739cfa 100644 --- a/guide/servers.html +++ b/guide/servers.html @@ -5,17 +5,17 @@ 服务器 | 哪吒监控 - - - + + + - - + + \ No newline at end of file diff --git a/guide/services.html b/guide/services.html index 47e82549..f815989e 100644 --- a/guide/services.html +++ b/guide/services.html @@ -5,17 +5,17 @@ 哪吒监控 - - - + + + - - + + \ No newline at end of file diff --git a/guide/settings.html b/guide/settings.html index ca38bfd2..c436b3f0 100644 --- a/guide/settings.html +++ b/guide/settings.html @@ -5,9 +5,9 @@ 多语言 | 哪吒监控 - - - + + + @@ -57,8 +57,8 @@ avatar.style} </style> - - + + \ No newline at end of file diff --git a/guide/tasks.html b/guide/tasks.html index 58fe10c0..efb32573 100644 --- a/guide/tasks.html +++ b/guide/tasks.html @@ -5,17 +5,17 @@ 哪吒监控 - - - + + + - - + + \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index d995086a..7d00dedf 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"developer_algolia-search.md":"0e57e75f","developer_basics.md":"934280ae","developer_carbon-ads.md":"550ab585","developer_homepage.md":"7e908f8c","en_us_developer_algolia-search.md":"62e6f034","en_us_developer_basics.md":"4b39fb0b","en_us_developer_carbon-ads.md":"c3d13f3d","en_us_developer_homepage.md":"8c3b632f","en_us_guide_agent.md":"82a9d62c","en_us_guide_dashboard.md":"98ff237d","en_us_guide_notifications.md":"e9ca4955","en_us_guide_q2.md":"100c5279","en_us_guide_q3.md":"7ea9ad8f","en_us_guide_q4.md":"16f5519f","en_us_guide_q5.md":"3f63ffe8","en_us_guide_servers.md":"a2d37d9f","en_us_guide_services.md":"03d39940","en_us_guide_settings.md":"fa7d6803","en_us_guide_tasks.md":"7584bcd8","en_us_index.md":"6f844d9a","guide_agent.md":"01d4ef4a","guide_dashboard.md":"7365bdde","guide_notifications.md":"21540eb3","guide_q1.md":"2530c76b","guide_q2.md":"a712bfb8","guide_q3.md":"bcb1d1bc","guide_q4.md":"13d379f3","guide_q5.md":"52348c7a","guide_servers.md":"99c5036d","guide_services.md":"04b8f4e2","guide_settings.md":"006b93b3","guide_tasks.md":"b2f7a988","index.md":"6a62f5eb"} +{"developer_algolia-search.md":"64bfe4e3","developer_basics.md":"5633887d","developer_carbon-ads.md":"3455e72e","developer_homepage.md":"5fcd3da5","en_us_developer_algolia-search.md":"8cc4bbdc","en_us_developer_basics.md":"413898e4","en_us_developer_carbon-ads.md":"6c85c102","en_us_developer_homepage.md":"04079155","en_us_guide_agent.md":"743f0cf3","en_us_guide_dashboard.md":"2126504b","en_us_guide_notifications.md":"fd0fbc68","en_us_guide_q2.md":"2ef984ad","en_us_guide_q3.md":"5a2ee1b2","en_us_guide_q4.md":"5fd3c2e1","en_us_guide_q5.md":"9213a1d9","en_us_guide_servers.md":"81fca59f","en_us_guide_services.md":"454a41ef","en_us_guide_settings.md":"434d82b0","en_us_guide_tasks.md":"c8eb4c7e","en_us_index.md":"a675940b","guide_agent.md":"913e362f","guide_dashboard.md":"9f2fda52","guide_notifications.md":"33c483a1","guide_q1.md":"6e999393","guide_q2.md":"b0724251","guide_q3.md":"8095ecd9","guide_q4.md":"baadc4a9","guide_q5.md":"ddba06e3","guide_servers.md":"9e63f0b3","guide_services.md":"f3d9de01","guide_settings.md":"1a145ca7","guide_tasks.md":"c5594dbb","index.md":"13b009d3"} diff --git a/index.html b/index.html index 4ec7cfed..cffe93d7 100644 --- a/index.html +++ b/index.html @@ -5,17 +5,17 @@ 哪吒监控 - - - + + + -

哪吒监控

一个开源、轻量的服务器和网站监控、运维工具

一键安装

支持一键脚本安装面板和监控服务,轻松使用;Linux、WIndows、MacOS、OpenWRT等主流系统均受支持

随时监控

支持同时监控多个服务器的系统状态,支持监控网页、端口、SSL证书状态;支持故障、流量等状态报警,支持多种通知方式(Telegram、邮件、微信等)

轻量运维

支持在线SSH,支持流量循环监控,支持设置定时任务、服务器批量执行任务

Copyright © 2022-present Nezhahq

- - +

哪吒监控

一个开源、轻量的服务器和网站监控、运维工具

一键安装

支持一键脚本安装面板和监控服务,轻松使用;Linux、WIndows、MacOS、OpenWRT等主流系统均受支持

随时监控

支持同时监控多个服务器的系统状态,支持监控网页、端口、SSL证书状态;支持故障、流量等状态报警,支持多种通知方式(Telegram、邮件、微信等)

轻量运维

支持在线SSH,支持流量循环监控,支持设置定时任务、服务器批量执行任务

Copyright © 2022-present Nezhahq

+ + \ No newline at end of file