Page Not Found | Monitor
-
+
diff --git a/CNAME b/CNAME
deleted file mode 100644
index ae81479b7..000000000
--- a/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-docs.monitor.dev
\ No newline at end of file
diff --git a/assets/js/d59290e0.20717f76.js b/assets/js/d59290e0.20717f76.js
deleted file mode 100644
index 891440869..000000000
--- a/assets/js/d59290e0.20717f76.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[383],{766:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>a});var t=n(4848),r=n(8453);const i={},s="Monitor Core Setup",c={id:"core-setup",title:"Monitor Core Setup",description:"To run Monitor Core, you will need Docker. See the docker install docs.",source:"@site/docs/core-setup.md",sourceDirName:".",slug:"/core-setup",permalink:"/docs/core-setup",draft:!1,unlisted:!1,editUrl:"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/core-setup.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Resources",permalink:"/docs/resources"},next:{title:"Connecting Servers",permalink:"/docs/connecting-servers"}},l={},a=[{value:"Deploy Monitor Core with Docker Compose",id:"deploy-monitor-core-with-docker-compose",level:3},{value:"Configuration",id:"configuration",level:3},{value:"First login",id:"first-login",level:3},{value:"Tls",id:"tls",level:3},{value:"Deploy with Docker cli",id:"deploy-with-docker-cli",level:2},{value:"1. Start Mongo",id:"1-start-mongo",level:3},{value:"2. Start Monitor core",id:"2-start-monitor-core",level:3}];function d(e){const o={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.h1,{id:"monitor-core-setup",children:"Monitor Core Setup"}),"\n",(0,t.jsxs)(o.p,{children:["To run Monitor Core, you will need Docker. See ",(0,t.jsx)(o.a,{href:"https://docs.docker.com/engine/install/",children:"the docker install docs"}),"."]}),"\n",(0,t.jsxs)(o.admonition,{type:"info",children:[(0,t.jsxs)(o.p,{children:["Monitor Core itself can really only run remote builds.\nYou also have to ",(0,t.jsx)(o.a,{href:"/docs/connecting-servers",children:(0,t.jsx)(o.strong,{children:"install the Monitor Periphery agent"})})," on your hosts and connect them as ",(0,t.jsx)(o.strong,{children:"Servers"}),"\nin order to alert / deploy etc."]}),(0,t.jsxs)(o.p,{children:["You can currently and always will be able to ",(0,t.jsx)(o.strong,{children:"connect as many servers an you like"})," using the Periphery agent."]})]}),"\n",(0,t.jsx)(o.h3,{id:"deploy-monitor-core-with-docker-compose",children:"Deploy Monitor Core with Docker Compose"}),"\n",(0,t.jsxs)(o.p,{children:["There is an example compose file here: ",(0,t.jsx)(o.a,{href:"https://github.com/mbecker20/monitor/blob/main/config_example/core.compose.yaml",children:"https://github.com/mbecker20/monitor/blob/main/config_example/core.compose.yaml"}),"."]}),"\n",(0,t.jsxs)(o.p,{children:["Copy the contents to a ",(0,t.jsx)(o.code,{children:"compose.yaml"}),", and deploy it with ",(0,t.jsx)(o.code,{children:"docker compose up -d"}),"."]}),"\n",(0,t.jsx)(o.h3,{id:"configuration",children:"Configuration"}),"\n",(0,t.jsx)(o.p,{children:"You can configure Monitor with environment variables, or using a config file."}),"\n",(0,t.jsxs)(o.p,{children:["The example config file in the Monitor repo documents all the configuration options, along with the corresponding environment variables.\nIt can be found here: ",(0,t.jsx)(o.a,{href:"https://github.com/mbecker20/monitor/blob/main/config_example/core.compose.yaml",children:"https://github.com/mbecker20/monitor/blob/main/config_example/core.compose.yaml"}),"."]}),"\n",(0,t.jsx)(o.p,{children:"Note that configuration passed in environment variables will take precedent over what is given in the file."}),"\n",(0,t.jsx)(o.admonition,{type:"note",children:(0,t.jsxs)(o.p,{children:["To enable OAuth2 login, you must create a client on the respective OAuth provider,\nfor example ",(0,t.jsx)(o.a,{href:"https://developers.google.com/identity/protocols/oauth2",children:"google"}),"\nor ",(0,t.jsx)(o.a,{href:"https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps",children:"github"}),".\nMonitor uses the ",(0,t.jsx)(o.code,{children:"web application"})," login flow.\nThe redirect uri is ",(0,t.jsx)(o.code,{children:"/auth/google/callback"})," for google and ",(0,t.jsx)(o.code,{children:"/auth/github/callback"})," for github."]})}),"\n",(0,t.jsx)(o.h3,{id:"first-login",children:"First login"}),"\n",(0,t.jsxs)(o.p,{children:["Core should now be accessible on the specified port, so navigating to ",(0,t.jsx)(o.code,{children:"http://:"})," will display the login page."]}),"\n",(0,t.jsx)(o.p,{children:"The first user to log in will be auto enabled and made an admin. Any additional users to create accounts will be disabled by default, and must be enabled by an admin."}),"\n",(0,t.jsx)(o.h3,{id:"tls",children:"Tls"}),"\n",(0,t.jsxs)(o.p,{children:["Core itself only supports http, so a reverse proxy like ",(0,t.jsx)(o.a,{href:"https://caddyserver.com/",children:"caddy"})," should be used for https."]}),"\n",(0,t.jsx)(o.h2,{id:"deploy-with-docker-cli",children:"Deploy with Docker cli"}),"\n",(0,t.jsx)(o.h3,{id:"1-start-mongo",children:"1. Start Mongo"}),"\n",(0,t.jsx)(o.p,{children:"Mongo can be run locally using the docker cli:"}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-sh",children:'docker run --name monitor-mongo \\\n\t--network host \\\n\t-v /local/storage/path:/data/db \\\n\t-e MONGO_INITDB_ROOT_USERNAME="admin" \\\n\t-e MONGO_INITDB_ROOT_PASSWORD="admin" \\\n\tmongo:latest\n'})}),"\n",(0,t.jsxs)(o.p,{children:["You should replace the username and password with your own.\nSee ",(0,t.jsx)(o.a,{href:"https://hub.docker.com/_/mongo",children:"the image docs"})," for more details."]}),"\n",(0,t.jsxs)(o.p,{children:['Note that this uses "host" networking, which will allow core to connect over localhost.\nMany users will prefer the default "bridge" network, and to use port mapping with ',(0,t.jsx)(o.code,{children:"-p 27017:27017"}),"."]}),"\n",(0,t.jsx)(o.admonition,{type:"note",children:(0,t.jsxs)(o.p,{children:["The disk space requirements of Monitor are dominated by the storage of system stats.\nThis depends on the number of connected servers (more system stats being produces / stored), stats collection frequency, and your stats pruning configuration.\nIf you need to save on space, you can configure these fields in your core config: - Stats poll frequency can be reduced using, for example, ",(0,t.jsx)(o.code,{children:'monitoring_interval = "15-sec"'})," - Pruning can be tuned more aggresively using, for example, ",(0,t.jsx)(o.code,{children:"keep_stats_for_days = 7"}),"."]})}),"\n",(0,t.jsx)(o.h3,{id:"2-start-monitor-core",children:"2. Start Monitor core"}),"\n",(0,t.jsxs)(o.p,{children:["Monitor core is distributed via Github Container Registry under the package ",(0,t.jsx)(o.a,{href:"https://github.com/mbecker20/monitor/pkgs/container/monitor",children:"mbecker20/monitor"}),"."]}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-sh",children:"docker run -d --name monitor-core \\\n\t--network host \\\n\t-v $HOME/.monitor/core.config.toml:/config/config.toml \\\n\tghcr.io/mbecker20/monitor:latest\n"})}),"\n",(0,t.jsxs)(o.p,{children:['Note that this uses "host" networking, which will allow it to connect to a local periphery agent on localhost.\nMany users will prefer the default "bridge" network, and to use port mapping with ',(0,t.jsx)(o.code,{children:"-p 9120:9120"}),"."]})]})}function h(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,o,n)=>{n.d(o,{R:()=>s,x:()=>c});var t=n(6540);const r={},i=t.createContext(r);function s(e){const o=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(i.Provider,{value:o},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/d59290e0.ea42055d.js b/assets/js/d59290e0.ea42055d.js
new file mode 100644
index 000000000..0a6900d30
--- /dev/null
+++ b/assets/js/d59290e0.ea42055d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[383],{766:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>a});var t=n(4848),r=n(8453);const i={},s="Monitor Core Setup",c={id:"core-setup",title:"Monitor Core Setup",description:"To run Monitor Core, you will need Docker. See the docker install docs.",source:"@site/docs/core-setup.md",sourceDirName:".",slug:"/core-setup",permalink:"/docs/core-setup",draft:!1,unlisted:!1,editUrl:"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/core-setup.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Resources",permalink:"/docs/resources"},next:{title:"Connecting Servers",permalink:"/docs/connecting-servers"}},l={},a=[{value:"Deploy Monitor Core with Docker Compose",id:"deploy-monitor-core-with-docker-compose",level:3},{value:"Configuration",id:"configuration",level:3},{value:"First login",id:"first-login",level:3},{value:"Tls",id:"tls",level:3},{value:"Deploy with Docker cli",id:"deploy-with-docker-cli",level:2},{value:"1. Start Mongo",id:"1-start-mongo",level:3},{value:"2. Start Monitor core",id:"2-start-monitor-core",level:3}];function d(e){const o={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.h1,{id:"monitor-core-setup",children:"Monitor Core Setup"}),"\n",(0,t.jsxs)(o.p,{children:["To run Monitor Core, you will need Docker. See ",(0,t.jsx)(o.a,{href:"https://docs.docker.com/engine/install/",children:"the docker install docs"}),"."]}),"\n",(0,t.jsxs)(o.admonition,{type:"info",children:[(0,t.jsxs)(o.p,{children:["Monitor Core itself can really only run remote builds.\nYou also have to ",(0,t.jsx)(o.a,{href:"/docs/connecting-servers",children:(0,t.jsx)(o.strong,{children:"install the Monitor Periphery agent"})})," on your hosts and connect them as ",(0,t.jsx)(o.strong,{children:"Servers"}),"\nin order to alert / deploy etc."]}),(0,t.jsxs)(o.p,{children:["You can currently and always will be able to ",(0,t.jsx)(o.strong,{children:"connect as many servers an you like"})," using the Periphery agent."]})]}),"\n",(0,t.jsx)(o.h3,{id:"deploy-monitor-core-with-docker-compose",children:"Deploy Monitor Core with Docker Compose"}),"\n",(0,t.jsxs)(o.p,{children:["There is an example compose file here: ",(0,t.jsx)(o.a,{href:"https://github.com/mbecker20/monitor/blob/main/config_example/core.compose.yaml",children:"https://github.com/mbecker20/monitor/blob/main/config_example/core.compose.yaml"}),"."]}),"\n",(0,t.jsxs)(o.p,{children:["Copy the contents to a ",(0,t.jsx)(o.code,{children:"compose.yaml"}),", and deploy it with ",(0,t.jsx)(o.code,{children:"docker compose up -d"}),"."]}),"\n",(0,t.jsx)(o.h3,{id:"configuration",children:"Configuration"}),"\n",(0,t.jsx)(o.p,{children:"You can configure Monitor with environment variables, or using a config file."}),"\n",(0,t.jsxs)(o.p,{children:["The example config file in the Monitor repo documents all the configuration options, along with the corresponding environment variables.\nIt can be found here: ",(0,t.jsx)(o.a,{href:"https://github.com/mbecker20/monitor/blob/main/config_example/core.config.example.toml",children:"https://github.com/mbecker20/monitor/blob/main/config_example/core.config.example.toml"}),"."]}),"\n",(0,t.jsx)(o.p,{children:"Note that configuration passed in environment variables will take precedent over what is given in the file."}),"\n",(0,t.jsx)(o.admonition,{type:"note",children:(0,t.jsxs)(o.p,{children:["To enable OAuth2 login, you must create a client on the respective OAuth provider,\nfor example ",(0,t.jsx)(o.a,{href:"https://developers.google.com/identity/protocols/oauth2",children:"google"}),"\nor ",(0,t.jsx)(o.a,{href:"https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps",children:"github"}),".\nMonitor uses the ",(0,t.jsx)(o.code,{children:"web application"})," login flow.\nThe redirect uri is ",(0,t.jsx)(o.code,{children:"/auth/google/callback"})," for google and ",(0,t.jsx)(o.code,{children:"/auth/github/callback"})," for github."]})}),"\n",(0,t.jsx)(o.h3,{id:"first-login",children:"First login"}),"\n",(0,t.jsxs)(o.p,{children:["Core should now be accessible on the specified port, so navigating to ",(0,t.jsx)(o.code,{children:"http://:"})," will display the login page."]}),"\n",(0,t.jsx)(o.p,{children:"The first user to log in will be auto enabled and made an admin. Any additional users to create accounts will be disabled by default, and must be enabled by an admin."}),"\n",(0,t.jsx)(o.h3,{id:"tls",children:"Tls"}),"\n",(0,t.jsxs)(o.p,{children:["Core itself only supports http, so a reverse proxy like ",(0,t.jsx)(o.a,{href:"https://caddyserver.com/",children:"caddy"})," should be used for https."]}),"\n",(0,t.jsx)(o.h2,{id:"deploy-with-docker-cli",children:"Deploy with Docker cli"}),"\n",(0,t.jsx)(o.h3,{id:"1-start-mongo",children:"1. Start Mongo"}),"\n",(0,t.jsx)(o.p,{children:"Mongo can be run locally using the docker cli:"}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-sh",children:'docker run --name monitor-mongo \\\n\t--network host \\\n\t-v /local/storage/path:/data/db \\\n\t-e MONGO_INITDB_ROOT_USERNAME="admin" \\\n\t-e MONGO_INITDB_ROOT_PASSWORD="admin" \\\n\tmongo:latest\n'})}),"\n",(0,t.jsxs)(o.p,{children:["You should replace the username and password with your own.\nSee ",(0,t.jsx)(o.a,{href:"https://hub.docker.com/_/mongo",children:"the image docs"})," for more details."]}),"\n",(0,t.jsxs)(o.p,{children:['Note that this uses "host" networking, which will allow core to connect over localhost.\nMany users will prefer the default "bridge" network, and to use port mapping with ',(0,t.jsx)(o.code,{children:"-p 27017:27017"}),"."]}),"\n",(0,t.jsx)(o.admonition,{type:"note",children:(0,t.jsxs)(o.p,{children:["The disk space requirements of Monitor are dominated by the storage of system stats.\nThis depends on the number of connected servers (more system stats being produces / stored), stats collection frequency, and your stats pruning configuration.\nIf you need to save on space, you can configure these fields in your core config: - Stats poll frequency can be reduced using, for example, ",(0,t.jsx)(o.code,{children:'monitoring_interval = "15-sec"'})," - Pruning can be tuned more aggresively using, for example, ",(0,t.jsx)(o.code,{children:"keep_stats_for_days = 7"}),"."]})}),"\n",(0,t.jsx)(o.h3,{id:"2-start-monitor-core",children:"2. Start Monitor core"}),"\n",(0,t.jsxs)(o.p,{children:["Monitor core is distributed via Github Container Registry under the package ",(0,t.jsx)(o.a,{href:"https://github.com/mbecker20/monitor/pkgs/container/monitor",children:"mbecker20/monitor"}),"."]}),"\n",(0,t.jsx)(o.pre,{children:(0,t.jsx)(o.code,{className:"language-sh",children:"docker run -d --name monitor-core \\\n\t--network host \\\n\t-v $HOME/.monitor/core.config.toml:/config/config.toml \\\n\tghcr.io/mbecker20/monitor:latest\n"})}),"\n",(0,t.jsxs)(o.p,{children:['Note that this uses "host" networking, which will allow it to connect to a local periphery agent on localhost.\nMany users will prefer the default "bridge" network, and to use port mapping with ',(0,t.jsx)(o.code,{children:"-p 9120:9120"}),"."]})]})}function h(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,o,n)=>{n.d(o,{R:()=>s,x:()=>c});var t=n(6540);const r={},i=t.createContext(r);function s(e){const o=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),t.createElement(i.Provider,{value:o},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.d2cab029.js b/assets/js/runtime~main.3644194c.js
similarity index 97%
rename from assets/js/runtime~main.d2cab029.js
rename to assets/js/runtime~main.3644194c.js
index f7abd6f4d..866a08da0 100644
--- a/assets/js/runtime~main.d2cab029.js
+++ b/assets/js/runtime~main.3644194c.js
@@ -1 +1 @@
-(()=>{"use strict";var e,t,a,r,o,c={},n={};function f(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return c[e].call(a.exports,a,a.exports,f),a.loaded=!0,a.exports}f.m=c,f.c=n,e=[],f.O=(t,a,r,o)=>{if(!a){var c=1/0;for(b=0;b=o)&&Object.keys(f.O).every((e=>f.O[e](a[d])))?a.splice(d--,1):(n=!1,o0&&e[b-1][2]>o;b--)e[b]=e[b-1];e[b]=[a,r,o]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var c={};t=t||[null,a({}),a([]),a(a)];for(var n=2&r&&e;"object"==typeof n&&!~t.indexOf(n);n=a(n))Object.getOwnPropertyNames(n).forEach((t=>c[t]=()=>e[t]));return c.default=()=>e,f.d(o,c),o},f.d=(e,t)=>{for(var a in t)f.o(t,a)&&!f.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,a)=>(f.f[a](e,t),t)),[])),f.u=e=>"assets/js/"+({48:"a94703ab",92:"3734296e",98:"a7bd4aaa",100:"ef1bbce5",235:"a7456010",247:"f8238c17",383:"d59290e0",401:"17896441",531:"75245258",543:"c65a6c17",549:"a5a01e01",552:"669fcf45",583:"1df93b7f",624:"5fbc5cf1",647:"5e95c892",648:"a9cd8699",663:"6aab5236",667:"97879372",742:"aba21aa0",846:"c54f4afd",848:"8b13a4b4",849:"0058b4c6",864:"d92a3c43",943:"79c522c5",976:"0e384e19",995:"ef526b88"}[e]||e)+"."+{48:"0a6b5f99",92:"876c6023",98:"6f58ed8b",100:"642e3763",235:"b82eb55b",237:"2f3e1c0f",247:"ace2f037",383:"20717f76",401:"ec55cfba",531:"c416494e",543:"a6710687",549:"1e625067",552:"85336651",583:"76d77823",624:"acba48e9",647:"825bac72",648:"703078a6",663:"fc1be06c",667:"10640bf5",742:"e2256b29",846:"fdb6f38b",848:"510b7808",849:"d6c24c32",864:"0440911f",943:"b18e36e0",976:"b304a34a",995:"e744ea91"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="docsite:",f.l=(e,t,a,c)=>{if(r[e])r[e].push(t);else{var n,d;if(void 0!==a)for(var i=document.getElementsByTagName("script"),b=0;b{n.onerror=n.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach((e=>e(a))),t)return t(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),d&&document.head.appendChild(n)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"401",75245258:"531",97879372:"667",a94703ab:"48","3734296e":"92",a7bd4aaa:"98",ef1bbce5:"100",a7456010:"235",f8238c17:"247",d59290e0:"383",c65a6c17:"543",a5a01e01:"549","669fcf45":"552","1df93b7f":"583","5fbc5cf1":"624","5e95c892":"647",a9cd8699:"648","6aab5236":"663",aba21aa0:"742",c54f4afd:"846","8b13a4b4":"848","0058b4c6":"849",d92a3c43:"864","79c522c5":"943","0e384e19":"976",ef526b88:"995"}[e]||e,f.p+f.u(e)},(()=>{var e={354:0,869:0};f.f.j=(t,a)=>{var r=f.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var o=new Promise(((a,o)=>r=e[t]=[a,o]));a.push(r[2]=o);var c=f.p+f.u(t),n=new Error;f.l(c,(a=>{if(f.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;n.message="Loading chunk "+t+" failed.\n("+o+": "+c+")",n.name="ChunkLoadError",n.type=o,n.request=c,r[1](n)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,a)=>{var r,o,c=a[0],n=a[1],d=a[2],i=0;if(c.some((t=>0!==e[t]))){for(r in n)f.o(n,r)&&(f.m[r]=n[r]);if(d)var b=d(f)}for(t&&t(a);i{"use strict";var e,t,a,r,o,c={},n={};function f(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return c[e].call(a.exports,a,a.exports,f),a.loaded=!0,a.exports}f.m=c,f.c=n,e=[],f.O=(t,a,r,o)=>{if(!a){var c=1/0;for(b=0;b=o)&&Object.keys(f.O).every((e=>f.O[e](a[d])))?a.splice(d--,1):(n=!1,o0&&e[b-1][2]>o;b--)e[b]=e[b-1];e[b]=[a,r,o]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var c={};t=t||[null,a({}),a([]),a(a)];for(var n=2&r&&e;"object"==typeof n&&!~t.indexOf(n);n=a(n))Object.getOwnPropertyNames(n).forEach((t=>c[t]=()=>e[t]));return c.default=()=>e,f.d(o,c),o},f.d=(e,t)=>{for(var a in t)f.o(t,a)&&!f.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,a)=>(f.f[a](e,t),t)),[])),f.u=e=>"assets/js/"+({48:"a94703ab",92:"3734296e",98:"a7bd4aaa",100:"ef1bbce5",235:"a7456010",247:"f8238c17",383:"d59290e0",401:"17896441",531:"75245258",543:"c65a6c17",549:"a5a01e01",552:"669fcf45",583:"1df93b7f",624:"5fbc5cf1",647:"5e95c892",648:"a9cd8699",663:"6aab5236",667:"97879372",742:"aba21aa0",846:"c54f4afd",848:"8b13a4b4",849:"0058b4c6",864:"d92a3c43",943:"79c522c5",976:"0e384e19",995:"ef526b88"}[e]||e)+"."+{48:"0a6b5f99",92:"876c6023",98:"6f58ed8b",100:"642e3763",235:"b82eb55b",237:"2f3e1c0f",247:"ace2f037",383:"ea42055d",401:"ec55cfba",531:"c416494e",543:"a6710687",549:"1e625067",552:"85336651",583:"76d77823",624:"acba48e9",647:"825bac72",648:"703078a6",663:"fc1be06c",667:"10640bf5",742:"e2256b29",846:"fdb6f38b",848:"510b7808",849:"d6c24c32",864:"0440911f",943:"b18e36e0",976:"b304a34a",995:"e744ea91"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="docsite:",f.l=(e,t,a,c)=>{if(r[e])r[e].push(t);else{var n,d;if(void 0!==a)for(var i=document.getElementsByTagName("script"),b=0;b{n.onerror=n.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach((e=>e(a))),t)return t(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),d&&document.head.appendChild(n)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"401",75245258:"531",97879372:"667",a94703ab:"48","3734296e":"92",a7bd4aaa:"98",ef1bbce5:"100",a7456010:"235",f8238c17:"247",d59290e0:"383",c65a6c17:"543",a5a01e01:"549","669fcf45":"552","1df93b7f":"583","5fbc5cf1":"624","5e95c892":"647",a9cd8699:"648","6aab5236":"663",aba21aa0:"742",c54f4afd:"846","8b13a4b4":"848","0058b4c6":"849",d92a3c43:"864","79c522c5":"943","0e384e19":"976",ef526b88:"995"}[e]||e,f.p+f.u(e)},(()=>{var e={354:0,869:0};f.f.j=(t,a)=>{var r=f.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var o=new Promise(((a,o)=>r=e[t]=[a,o]));a.push(r[2]=o);var c=f.p+f.u(t),n=new Error;f.l(c,(a=>{if(f.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;n.message="Loading chunk "+t+" failed.\n("+o+": "+c+")",n.name="ChunkLoadError",n.type=o,n.request=c,r[1](n)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,a)=>{var r,o,c=a[0],n=a[1],d=a[2],i=0;if(c.some((t=>0!==e[t]))){for(r in n)f.o(n,r)&&(f.m[r]=n[r]);if(d)var b=d(f)}for(t&&t(a);iAPI | Monitor
-
+
diff --git a/docs/build-images.html b/docs/build-images.html
index d0f1645ac..1d7ab2604 100644
--- a/docs/build-images.html
+++ b/docs/build-images.html
@@ -4,7 +4,7 @@
Building Images | Monitor
-
+
diff --git a/docs/build-images/builders.html b/docs/build-images/builders.html
index 6ea789307..1f22fbddd 100644
--- a/docs/build-images/builders.html
+++ b/docs/build-images/builders.html
@@ -4,7 +4,7 @@
Builders | Monitor
-
+
diff --git a/docs/build-images/configuration.html b/docs/build-images/configuration.html
index f37baf236..efa659d62 100644
--- a/docs/build-images/configuration.html
+++ b/docs/build-images/configuration.html
@@ -4,7 +4,7 @@
Configuration | Monitor
-
+
diff --git a/docs/build-images/pre-build.html b/docs/build-images/pre-build.html
index 7fa668b8e..c0d18d8f6 100644
--- a/docs/build-images/pre-build.html
+++ b/docs/build-images/pre-build.html
@@ -4,7 +4,7 @@
Pre-build command | Monitor
-
+
diff --git a/docs/build-images/versioning.html b/docs/build-images/versioning.html
index 2d7cb51f1..b0a8aa994 100644
--- a/docs/build-images/versioning.html
+++ b/docs/build-images/versioning.html
@@ -4,7 +4,7 @@
Versioning | Monitor
-
+
diff --git a/docs/connecting-servers.html b/docs/connecting-servers.html
index 371628207..81332d2df 100644
--- a/docs/connecting-servers.html
+++ b/docs/connecting-servers.html
@@ -4,7 +4,7 @@
Connecting Servers | Monitor
-
+
diff --git a/docs/core-setup.html b/docs/core-setup.html
index 22b23241f..1c2293a90 100644
--- a/docs/core-setup.html
+++ b/docs/core-setup.html
@@ -4,7 +4,7 @@
Monitor Core Setup | Monitor
-
+
@@ -19,7 +19,7 @@ in order to alert / deploy etc.
Note that configuration passed in environment variables will take precedent over what is given in the file.
note
To enable OAuth2 login, you must create a client on the respective OAuth provider,
for example google
diff --git a/docs/deploy-containers.html b/docs/deploy-containers.html
index f16e7599f..a36d495d4 100644
--- a/docs/deploy-containers.html
+++ b/docs/deploy-containers.html
@@ -4,7 +4,7 @@