From f974ab6c09b3f5420c649d9b3e01c37a752cc05a Mon Sep 17 00:00:00 2001 From: mbecker20 Date: Sat, 26 Oct 2024 16:06:58 -0400 Subject: [PATCH] Deploy website - based on 7a9ad42203fa150439d4e8fbaf1d7b3aecc47ae5 --- 404.html | 2 +- CNAME | 1 - assets/js/0058b4c6.90b94532.js | 1 + assets/js/0058b4c6.e2376b7b.js | 1 - assets/js/5fbc5cf1.af350864.js | 1 + assets/js/5fbc5cf1.c4462bf1.js | 1 - assets/js/6aab5236.4f2a084e.js | 1 + assets/js/6aab5236.516da2df.js | 1 - assets/js/8f030830.558dceb9.js | 1 - assets/js/8f030830.6a578123.js | 1 + ...n.2e839680.js => runtime~main.7fe813a5.js} | 2 +- docs/api.html | 19 +++++++++++++------ docs/build-images.html | 4 ++-- docs/build-images/builders.html | 4 ++-- docs/build-images/configuration.html | 4 ++-- docs/build-images/pre-build.html | 4 ++-- docs/build-images/versioning.html | 4 ++-- docs/connect-servers.html | 4 ++-- docs/deploy-containers.html | 4 ++-- docs/deploy-containers/configuration.html | 4 ++-- .../lifetime-management.html | 4 ++-- docs/development.html | 6 +++--- docs/docker-compose.html | 4 ++-- docs/file-paths.html | 2 +- docs/intro.html | 4 ++-- docs/permissioning.html | 4 ++-- docs/procedures.html | 2 +- docs/resources.html | 4 ++-- docs/setup.html | 4 ++-- docs/setup/advanced.html | 4 ++-- docs/setup/mongo.html | 4 ++-- docs/setup/postgres.html | 4 ++-- docs/setup/sqlite.html | 4 ++-- docs/sync-resources.html | 4 ++-- docs/variables.html | 4 ++-- docs/version-upgrades.html | 6 +++--- docs/webhooks.html | 4 ++-- index.html | 2 +- 38 files changed, 70 insertions(+), 64 deletions(-) delete mode 100644 CNAME create mode 100644 assets/js/0058b4c6.90b94532.js delete mode 100644 assets/js/0058b4c6.e2376b7b.js create mode 100644 assets/js/5fbc5cf1.af350864.js delete mode 100644 assets/js/5fbc5cf1.c4462bf1.js create mode 100644 assets/js/6aab5236.4f2a084e.js delete mode 100644 assets/js/6aab5236.516da2df.js delete mode 100644 assets/js/8f030830.558dceb9.js create mode 100644 assets/js/8f030830.6a578123.js rename assets/js/{runtime~main.2e839680.js => runtime~main.7fe813a5.js} (93%) diff --git a/404.html b/404.html index 72c395af3..fa124aaed 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Page Not Found | Komodo - + diff --git a/CNAME b/CNAME deleted file mode 100644 index 87c35431d..000000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -komo.do \ No newline at end of file diff --git a/assets/js/0058b4c6.90b94532.js b/assets/js/0058b4c6.90b94532.js new file mode 100644 index 000000000..005a3ff0e --- /dev/null +++ b/assets/js/0058b4c6.90b94532.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[849],{6164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"What is Komodo?","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"link","label":"Resources","href":"/docs/resources","docId":"resources","unlisted":false},{"type":"category","label":"Setup Komodo Core","items":[{"type":"link","label":"MongoDB","href":"/docs/setup/mongo","docId":"setup/mongo","unlisted":false},{"type":"link","label":"Postgres","href":"/docs/setup/postgres","docId":"setup/postgres","unlisted":false},{"type":"link","label":"Sqlite","href":"/docs/setup/sqlite","docId":"setup/sqlite","unlisted":false},{"type":"link","label":"Advanced Configuration","href":"/docs/setup/advanced","docId":"setup/advanced","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/setup/"},{"type":"link","label":"Connect More Servers","href":"/docs/connect-servers","docId":"connect-servers","unlisted":false},{"type":"category","label":"Build Images","items":[{"type":"link","label":"Configuration","href":"/docs/build-images/configuration","docId":"build-images/configuration","unlisted":false},{"type":"link","label":"Pre-build command","href":"/docs/build-images/pre-build","docId":"build-images/pre-build","unlisted":false},{"type":"link","label":"Builders","href":"/docs/build-images/builders","docId":"build-images/builders","unlisted":false},{"type":"link","label":"Image Versioning","href":"/docs/build-images/versioning","docId":"build-images/versioning","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/build-images"},{"type":"category","label":"Deploy Containers","items":[{"type":"link","label":"Configuration","href":"/docs/deploy-containers/configuration","docId":"deploy-containers/configuration","unlisted":false},{"type":"link","label":"Container Management","href":"/docs/deploy-containers/lifetime-management","docId":"deploy-containers/lifetime-management","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/deploy-containers/"},{"type":"link","label":"Docker Compose","href":"/docs/docker-compose","docId":"docker-compose","unlisted":false},{"type":"link","label":"Variables and Secrets","href":"/docs/variables","docId":"variables","unlisted":false},{"type":"link","label":"Permissioning","href":"/docs/permissioning","docId":"permissioning","unlisted":false},{"type":"link","label":"Sync Resources","href":"/docs/sync-resources","docId":"sync-resources","unlisted":false},{"type":"link","label":"Configuring Webhooks","href":"/docs/webhooks","docId":"webhooks","unlisted":false},{"type":"link","label":"Version Upgrades","href":"/docs/version-upgrades","docId":"version-upgrades","unlisted":false},{"type":"link","label":"API and Clients","href":"/docs/api","docId":"api","unlisted":false},{"type":"link","label":"Development","href":"/docs/development","docId":"development","unlisted":false}]},"docs":{"api":{"id":"api","title":"API and Clients","description":"Komodo Core exposes an RPC-like HTTP API to read data, write configuration, and execute actions.","sidebar":"docs"},"build-images/builders":{"id":"build-images/builders","title":"Builders","description":"A builder is a machine running the Komodo Periphery agent (and usually docker), which is able to handle a RunBuild / BuildRepo command from Komodo core. Any server connected to Komodo can be chosen as the builder for a build.","sidebar":"docs"},"build-images/configuration":{"id":"build-images/configuration","title":"Configuration","description":"Komodo just needs a bit of information in order to build your image.","sidebar":"docs"},"build-images/index":{"id":"build-images/index","title":"Building Images","description":"Komodo builds docker images by cloning the source repository from the configured git provider, running docker build,","sidebar":"docs"},"build-images/pre-build":{"id":"build-images/pre-build","title":"Pre-build command","description":"Sometimes a command needs to be run before running `docker build`, you can configure this in the pre build section.","sidebar":"docs"},"build-images/versioning":{"id":"build-images/versioning","title":"Image Versioning","description":"Komodo uses a major.minor.patch versioning scheme to Build versioning. By default, every RunBuild will auto increment the Build\'s version patch number, and push the image to docker hub with the version tag, as well as the latest tag. A tag containing the latest short commit hash at the time the repo was cloned will also be created.","sidebar":"docs"},"connect-servers":{"id":"connect-servers","title":"Connect More Servers","description":"Connecting a server to Komodo has 2 steps:","sidebar":"docs"},"deploy-containers/configuration":{"id":"deploy-containers/configuration","title":"Configuration","description":"Choose the docker image","sidebar":"docs"},"deploy-containers/index":{"id":"deploy-containers/index","title":"Deploy Containers","description":"Komodo can deploy any docker images that it can access with the configured docker accounts.","sidebar":"docs"},"deploy-containers/lifetime-management":{"id":"deploy-containers/lifetime-management","title":"Container Management","description":"The lifetime of a docker container is more like a virtual machine. They can be created, started, stopped, and destroyed. Komodo will display the state of the container and provides an API to manage all your container\'s lifetimes.","sidebar":"docs"},"development":{"id":"development","title":"Development","description":"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.","sidebar":"docs"},"docker-compose":{"id":"docker-compose","title":"Docker Compose","description":"Komodo can deploy docker compose projects through the Stack resource.","sidebar":"docs"},"file-paths":{"id":"file-paths","title":"File Paths","description":"When working with Komodo, you might have to configure file or directory paths."},"intro":{"id":"intro","title":"What is Komodo?","description":"Komodo is a web app to provide structure for managing your servers, builds, deployments, and automated procedures.","sidebar":"docs"},"permissioning":{"id":"permissioning","title":"Permissioning","description":"Komodo has a granular, layer-based permissioning system to provide non-admin users access only to intended Resources.","sidebar":"docs"},"procedures":{"id":"procedures","title":"procedures","description":""},"resources":{"id":"resources","title":"Resources","description":"Komodo is extendible through the Resource abstraction. Entities like Server, Deployment, and Stack are all Komodo Resources.","sidebar":"docs"},"setup/advanced":{"id":"setup/advanced","title":"Advanced Configuration","description":"OIDC / Oauth2","sidebar":"docs"},"setup/index":{"id":"setup/index","title":"Setup Komodo","description":"To run Komodo, you will need Docker. See the docker install docs.","sidebar":"docs"},"setup/mongo":{"id":"setup/mongo","title":"MongoDB","description":"1. Copy komodo/mongo.compose.yaml and komodo/compose.env to your host:","sidebar":"docs"},"setup/postgres":{"id":"setup/postgres","title":"Postgres","description":"1. Copy komodo/postgres.compose.yaml and komodo/compose.env to your host:","sidebar":"docs"},"setup/sqlite":{"id":"setup/sqlite","title":"Sqlite","description":"FerritDB + Sqlite authentication support is still experimental,","sidebar":"docs"},"sync-resources":{"id":"sync-resources","title":"Sync Resources","description":"Komodo is able to create, update, delete, and deploy resources declared in TOML files by diffing them against the existing resources,","sidebar":"docs"},"variables":{"id":"variables","title":"Variables and Secrets","description":"A variable / secret in Komodo is just a key-value pair.","sidebar":"docs"},"version-upgrades":{"id":"version-upgrades","title":"Version Upgrades","description":"Most version upgrades only require a redeployment of the Core container after pulling the latest version, and are fully backward compatible with the periphery clients, which may be updated later on as convenient. This is the default, and will be the case unless specifically mentioned in the version release notes.","sidebar":"docs"},"webhooks":{"id":"webhooks","title":"Configuring Webhooks","description":"Multiple Komodo resources can take advantage of webhooks from your git provider. Komodo supports incoming webhooks using either the Github or Gitlab webhook authentication type, which is also supported by other providers like Gitea.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/0058b4c6.e2376b7b.js b/assets/js/0058b4c6.e2376b7b.js deleted file mode 100644 index ee3c1f743..000000000 --- a/assets/js/0058b4c6.e2376b7b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[849],{6164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"What is Komodo?","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"link","label":"Resources","href":"/docs/resources","docId":"resources","unlisted":false},{"type":"category","label":"Setup Komodo Core","items":[{"type":"link","label":"MongoDB","href":"/docs/setup/mongo","docId":"setup/mongo","unlisted":false},{"type":"link","label":"Postgres","href":"/docs/setup/postgres","docId":"setup/postgres","unlisted":false},{"type":"link","label":"Sqlite","href":"/docs/setup/sqlite","docId":"setup/sqlite","unlisted":false},{"type":"link","label":"Advanced Configuration","href":"/docs/setup/advanced","docId":"setup/advanced","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/setup/"},{"type":"link","label":"Connect More Servers","href":"/docs/connect-servers","docId":"connect-servers","unlisted":false},{"type":"category","label":"Build Images","items":[{"type":"link","label":"Configuration","href":"/docs/build-images/configuration","docId":"build-images/configuration","unlisted":false},{"type":"link","label":"Pre-build command","href":"/docs/build-images/pre-build","docId":"build-images/pre-build","unlisted":false},{"type":"link","label":"Builders","href":"/docs/build-images/builders","docId":"build-images/builders","unlisted":false},{"type":"link","label":"Image Versioning","href":"/docs/build-images/versioning","docId":"build-images/versioning","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/build-images"},{"type":"category","label":"Deploy Containers","items":[{"type":"link","label":"Configuration","href":"/docs/deploy-containers/configuration","docId":"deploy-containers/configuration","unlisted":false},{"type":"link","label":"Container Management","href":"/docs/deploy-containers/lifetime-management","docId":"deploy-containers/lifetime-management","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/deploy-containers/"},{"type":"link","label":"Docker Compose","href":"/docs/docker-compose","docId":"docker-compose","unlisted":false},{"type":"link","label":"Variables and Secrets","href":"/docs/variables","docId":"variables","unlisted":false},{"type":"link","label":"Permissioning","href":"/docs/permissioning","docId":"permissioning","unlisted":false},{"type":"link","label":"Sync Resources","href":"/docs/sync-resources","docId":"sync-resources","unlisted":false},{"type":"link","label":"Configuring Webhooks","href":"/docs/webhooks","docId":"webhooks","unlisted":false},{"type":"link","label":"Version Upgrades","href":"/docs/version-upgrades","docId":"version-upgrades","unlisted":false},{"type":"link","label":"API","href":"/docs/api","docId":"api","unlisted":false},{"type":"link","label":"Development","href":"/docs/development","docId":"development","unlisted":false}]},"docs":{"api":{"id":"api","title":"API","description":"Komodo Core exposes an http API to read data, write configuration, and execute actions. The API documentation is generated from the code and is available here.","sidebar":"docs"},"build-images/builders":{"id":"build-images/builders","title":"Builders","description":"A builder is a machine running the Komodo Periphery agent (and usually docker), which is able to handle a RunBuild / BuildRepo command from Komodo core. Any server connected to Komodo can be chosen as the builder for a build.","sidebar":"docs"},"build-images/configuration":{"id":"build-images/configuration","title":"Configuration","description":"Komodo just needs a bit of information in order to build your image.","sidebar":"docs"},"build-images/index":{"id":"build-images/index","title":"Building Images","description":"Komodo builds docker images by cloning the source repository from the configured git provider, running docker build,","sidebar":"docs"},"build-images/pre-build":{"id":"build-images/pre-build","title":"Pre-build command","description":"Sometimes a command needs to be run before running `docker build`, you can configure this in the pre build section.","sidebar":"docs"},"build-images/versioning":{"id":"build-images/versioning","title":"Image Versioning","description":"Komodo uses a major.minor.patch versioning scheme to Build versioning. By default, every RunBuild will auto increment the Build\'s version patch number, and push the image to docker hub with the version tag, as well as the latest tag. A tag containing the latest short commit hash at the time the repo was cloned will also be created.","sidebar":"docs"},"connect-servers":{"id":"connect-servers","title":"Connect More Servers","description":"Connecting a server to Komodo has 2 steps:","sidebar":"docs"},"deploy-containers/configuration":{"id":"deploy-containers/configuration","title":"Configuration","description":"Choose the docker image","sidebar":"docs"},"deploy-containers/index":{"id":"deploy-containers/index","title":"Deploy Containers","description":"Komodo can deploy any docker images that it can access with the configured docker accounts.","sidebar":"docs"},"deploy-containers/lifetime-management":{"id":"deploy-containers/lifetime-management","title":"Container Management","description":"The lifetime of a docker container is more like a virtual machine. They can be created, started, stopped, and destroyed. Komodo will display the state of the container and provides an API to manage all your container\'s lifetimes.","sidebar":"docs"},"development":{"id":"development","title":"Development","description":"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.","sidebar":"docs"},"docker-compose":{"id":"docker-compose","title":"Docker Compose","description":"Komodo can deploy docker compose projects through the Stack resource.","sidebar":"docs"},"file-paths":{"id":"file-paths","title":"File Paths","description":"When working with Komodo, you might have to configure file or directory paths."},"intro":{"id":"intro","title":"What is Komodo?","description":"Komodo is a web app to provide structure for managing your servers, builds, deployments, and automated procedures.","sidebar":"docs"},"permissioning":{"id":"permissioning","title":"Permissioning","description":"Komodo has a granular, layer-based permissioning system to provide non-admin users access only to intended Resources.","sidebar":"docs"},"procedures":{"id":"procedures","title":"procedures","description":""},"resources":{"id":"resources","title":"Resources","description":"Komodo is extendible through the Resource abstraction. Entities like Server, Deployment, and Stack are all Komodo Resources.","sidebar":"docs"},"setup/advanced":{"id":"setup/advanced","title":"Advanced Configuration","description":"OIDC / Oauth2","sidebar":"docs"},"setup/index":{"id":"setup/index","title":"Setup Komodo","description":"To run Komodo, you will need Docker. See the docker install docs.","sidebar":"docs"},"setup/mongo":{"id":"setup/mongo","title":"MongoDB","description":"1. Copy komodo/mongo.compose.yaml and komodo/compose.env to your host:","sidebar":"docs"},"setup/postgres":{"id":"setup/postgres","title":"Postgres","description":"1. Copy komodo/postgres.compose.yaml and komodo/compose.env to your host:","sidebar":"docs"},"setup/sqlite":{"id":"setup/sqlite","title":"Sqlite","description":"FerritDB + Sqlite authentication support is still experimental,","sidebar":"docs"},"sync-resources":{"id":"sync-resources","title":"Sync Resources","description":"Komodo is able to create, update, delete, and deploy resources declared in TOML files by diffing them against the existing resources,","sidebar":"docs"},"variables":{"id":"variables","title":"Variables and Secrets","description":"A variable / secret in Komodo is just a key-value pair.","sidebar":"docs"},"version-upgrades":{"id":"version-upgrades","title":"Version Upgrades","description":"Most version upgrades only require a redeployment of the Core container after pulling the latest version, and are fully backward compatible with the periphery clients, which may be updated later on as convenient. This is the default, and will be the case unless specifically mentioned in the version release notes.","sidebar":"docs"},"webhooks":{"id":"webhooks","title":"Configuring Webhooks","description":"Multiple Komodo resources can take advantage of webhooks from your git provider. Komodo supports incoming webhooks using either the Github or Gitlab webhook authentication type, which is also supported by other providers like Gitea.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/5fbc5cf1.af350864.js b/assets/js/5fbc5cf1.af350864.js new file mode 100644 index 000000000..260003169 --- /dev/null +++ b/assets/js/5fbc5cf1.af350864.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[624],{6933:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var o=n(4848),s=n(8453);const i={},c="API and Clients",a={id:"api",title:"API and Clients",description:"Komodo Core exposes an RPC-like HTTP API to read data, write configuration, and execute actions.",source:"@site/docs/api.md",sourceDirName:".",slug:"/api",permalink:"/docs/api",draft:!1,unlisted:!1,editUrl:"https://github.com/mbecker20/komodo/tree/main/docsite/docs/api.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Version Upgrades",permalink:"/docs/version-upgrades"},next:{title:"Development",permalink:"/docs/development"}},r={},d=[{value:"Rust Client",id:"rust-client",level:2},{value:"Typescript Client",id:"typescript-client",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"api-and-clients",children:"API and Clients"})}),"\n",(0,o.jsxs)(t.p,{children:["Komodo Core exposes an RPC-like HTTP API to read data, write configuration, and execute actions.\nThere are typesafe clients available in\n",(0,o.jsx)(t.a,{href:"/docs/api#rust-client",children:(0,o.jsx)(t.strong,{children:"Rust"})})," and ",(0,o.jsx)(t.a,{href:"/docs/api#typescript-client",children:(0,o.jsx)(t.strong,{children:"Typescript"})}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["The full API documentation is ",(0,o.jsx)(t.a,{href:"https://docs.rs/komodo_client/latest/komodo_client/api/index.html",children:(0,o.jsx)(t.strong,{children:"available here"})}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"rust-client",children:"Rust Client"}),"\n",(0,o.jsxs)(t.p,{children:["The Rust client is published to crates.io at ",(0,o.jsx)(t.a,{href:"https://crates.io/crates/komodo_client",children:"komodo_client"}),"."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-rust",children:'let komodo = KomodoClient::new("https://demo.komo.do", "your_key", "your_secret")\n .with_healthcheck()\n .await?;\n\nlet stacks = komodo.read(ListStacks::default()).await?;\n\nlet update = komodo\n .execute(DeployStack {\n stack: stacks[0].name.clone(),\n stop_time: None\n })\n .await?;\n'})}),"\n",(0,o.jsx)(t.h2,{id:"typescript-client",children:"Typescript Client"}),"\n",(0,o.jsxs)(t.p,{children:["The Typescript client is published to NPM at ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/komodo_client",children:"komodo_client"}),"."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-ts",children:'import { KomodoClient, Types } from "komodo_client";\n\nconst komodo = KomodoClient("https://demo.komo.do", {\n type: "api-key",\n params: {\n api_key: "your_key",\n secret: "your secret",\n },\n});\n\n// Inferred as Types.StackListItem[]\nconst stacks = await komodo.read("ListStacks", {});\n\n// Inferred as Types.Update\nconst update = await komodo.execute("DeployStack", {\n stack: stacks[0].name,\n});\n'})})]})}function p(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>a});var o=n(6540);const s={},i=o.createContext(s);function c(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5fbc5cf1.c4462bf1.js b/assets/js/5fbc5cf1.c4462bf1.js deleted file mode 100644 index d6a4bc439..000000000 --- a/assets/js/5fbc5cf1.c4462bf1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[624],{6933:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var n=o(4848),i=o(8453);const s={},a="API",r={id:"api",title:"API",description:"Komodo Core exposes an http API to read data, write configuration, and execute actions. The API documentation is generated from the code and is available here.",source:"@site/docs/api.md",sourceDirName:".",slug:"/api",permalink:"/docs/api",draft:!1,unlisted:!1,editUrl:"https://github.com/mbecker20/komodo/tree/main/docsite/docs/api.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Version Upgrades",permalink:"/docs/version-upgrades"},next:{title:"Development",permalink:"/docs/development"}},c={},d=[];function l(e){const t={a:"a",h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"api",children:"API"})}),"\n",(0,n.jsxs)(t.p,{children:["Komodo Core exposes an http API to read data, write configuration, and execute actions. The API documentation is generated from the code and is ",(0,n.jsx)(t.a,{href:"https://docs.rs/komodo_client/latest/komodo_client/api/index.html",children:"available here"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["You can also install the ",(0,n.jsx)(t.a,{href:"https://crates.io/crates/komodo_cli",children:"Komodo CLI"})," to execute actions like RunBuild or DeployStack from the command line.\nThis can be coupled with scripts in Komodo Repos to achieve unlimited automation."]})]})}function p(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>r});var n=o(6540);const i={},s=n.createContext(i);function a(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6aab5236.4f2a084e.js b/assets/js/6aab5236.4f2a084e.js new file mode 100644 index 000000000..af3fc8637 --- /dev/null +++ b/assets/js/6aab5236.4f2a084e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[663],{487:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var r=t(4848),s=t(8453);const i={},o="Version Upgrades",a={id:"version-upgrades",title:"Version Upgrades",description:"Most version upgrades only require a redeployment of the Core container after pulling the latest version, and are fully backward compatible with the periphery clients, which may be updated later on as convenient. This is the default, and will be the case unless specifically mentioned in the version release notes.",source:"@site/docs/version-upgrades.md",sourceDirName:".",slug:"/version-upgrades",permalink:"/docs/version-upgrades",draft:!1,unlisted:!1,editUrl:"https://github.com/mbecker20/komodo/tree/main/docsite/docs/version-upgrades.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Configuring Webhooks",permalink:"/docs/webhooks"},next:{title:"API and Clients",permalink:"/docs/api"}},c={},d=[];function l(e){const n={a:"a",h1:"h1",header:"header",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"version-upgrades",children:"Version Upgrades"})}),"\n",(0,r.jsxs)(n.p,{children:["Most version upgrades only require a redeployment of the Core container after pulling the latest version, and are fully backward compatible with the periphery clients, which may be updated later on as convenient. This is the default, and will be the case unless specifically mentioned in the ",(0,r.jsx)(n.a,{href:"https://github.com/mbecker20/komodo/releases",children:"version release notes"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"Some Core API upgrades may change behavior such as building / cloning, and require updating the Periphery binaries to match the Core version before this functionality can be restored. This will be specifically mentioned in the release notes."}),"\n",(0,r.jsxs)(n.p,{children:["Additionally, some Core API upgrades may include database schema changes, and require a database migration. This can be accomplished by using the ",(0,r.jsx)(n.a,{href:"https://github.com/mbecker20/komodo/blob/main/bin/migrator/README.md",children:"komodo migrator"})," for the particular version upgrade before upgrading the Core API container."]})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var r=t(6540);const s={},i=r.createContext(s);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6aab5236.516da2df.js b/assets/js/6aab5236.516da2df.js deleted file mode 100644 index bc31447ee..000000000 --- a/assets/js/6aab5236.516da2df.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[663],{487:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var r=t(4848),s=t(8453);const i={},o="Version Upgrades",a={id:"version-upgrades",title:"Version Upgrades",description:"Most version upgrades only require a redeployment of the Core container after pulling the latest version, and are fully backward compatible with the periphery clients, which may be updated later on as convenient. This is the default, and will be the case unless specifically mentioned in the version release notes.",source:"@site/docs/version-upgrades.md",sourceDirName:".",slug:"/version-upgrades",permalink:"/docs/version-upgrades",draft:!1,unlisted:!1,editUrl:"https://github.com/mbecker20/komodo/tree/main/docsite/docs/version-upgrades.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Configuring Webhooks",permalink:"/docs/webhooks"},next:{title:"API",permalink:"/docs/api"}},c={},d=[];function l(e){const n={a:"a",h1:"h1",header:"header",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"version-upgrades",children:"Version Upgrades"})}),"\n",(0,r.jsxs)(n.p,{children:["Most version upgrades only require a redeployment of the Core container after pulling the latest version, and are fully backward compatible with the periphery clients, which may be updated later on as convenient. This is the default, and will be the case unless specifically mentioned in the ",(0,r.jsx)(n.a,{href:"https://github.com/mbecker20/komodo/releases",children:"version release notes"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"Some Core API upgrades may change behavior such as building / cloning, and require updating the Periphery binaries to match the Core version before this functionality can be restored. This will be specifically mentioned in the release notes."}),"\n",(0,r.jsxs)(n.p,{children:["Additionally, some Core API upgrades may include database schema changes, and require a database migration. This can be accomplished by using the ",(0,r.jsx)(n.a,{href:"https://github.com/mbecker20/komodo/blob/main/bin/migrator/README.md",children:"komodo migrator"})," for the particular version upgrade before upgrading the Core API container."]})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var r=t(6540);const s={},i=r.createContext(s);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8f030830.558dceb9.js b/assets/js/8f030830.558dceb9.js deleted file mode 100644 index cfea77b1f..000000000 --- a/assets/js/8f030830.558dceb9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[423],{1792:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>a,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var s=r(4848),o=r(8453);const i={},t="Development",d={id:"development",title:"Development",description:"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.",source:"@site/docs/development.md",sourceDirName:".",slug:"/development",permalink:"/docs/development",draft:!1,unlisted:!1,editUrl:"https://github.com/mbecker20/komodo/tree/main/docsite/docs/development.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"API",permalink:"/docs/api"}},c={},l=[{value:"Dependencies",id:"dependencies",level:2},{value:"runnables-cli",id:"runnables-cli",level:3},{value:"Docker",id:"docker",level:2},{value:"Devcontainer",id:"devcontainer",level:2},{value:"Local",id:"local",level:2},{value:"Docsite Development",id:"docsite-development",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"development",children:"Development"})}),"\n",(0,s.jsx)(n.p,{children:"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment."}),"\n",(0,s.jsx)(n.h2,{id:"dependencies",children:"Dependencies"}),"\n",(0,s.jsxs)(n.p,{children:["Running Komodo from ",(0,s.jsx)(n.a,{href:"https://github.com/mbecker20/komodo",children:"source"})," requires either ",(0,s.jsx)(n.a,{href:"https://www.docker.com/",children:"Docker"})," (and can use the included ",(0,s.jsx)(n.a,{href:"https://code.visualstudio.com/docs/devcontainers/containers",children:"devcontainer"}),"), or can have the development dependencies installed locally:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Backend (Core / Periphery APIs)","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://www.rust-lang.org/",children:"Rust"})," stable via ",(0,s.jsx)(n.a,{href:"https://rustup.rs/",children:"rustup installer"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://www.mongodb.com/",children:"MongoDB"})," or ",(0,s.jsx)(n.a,{href:"https://www.ferretdb.com/",children:"FerretDB"})," available locally."]}),"\n",(0,s.jsxs)(n.li,{children:["On Debian/Ubuntu: ",(0,s.jsx)(n.code,{children:"apt install build-essential pkg-config libssl-dev"})," required to build the rust source."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Frontend (Web UI)","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://nodejs.org/en",children:"Node"})," >= 18.18 + NPM","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://yarnpkg.com/",children:"Yarn"})," - (Tip: use ",(0,s.jsx)(n.code,{children:"corepack enable"})," after installing ",(0,s.jsx)(n.code,{children:"node"})," to use ",(0,s.jsx)(n.code,{children:"yarn"}),")"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/1password/typeshare",children:"typeshare"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://deno.com/",children:"Deno"})," >= 2.0.2"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"runnables-cli",children:"runnables-cli"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://github.com/mbecker20/runnables-cli",children:"mbecker20/runnables-cli"})," can be used as a convience CLI for running common project tasks found in ",(0,s.jsx)(n.code,{children:"runfile.toml"}),". Otherwise, you can create your own project tasks by references the ",(0,s.jsx)(n.code,{children:"cmd"}),"s found in ",(0,s.jsx)(n.code,{children:"runfile.toml"}),". All instructions below will use runnables-cli v1.3.7+."]}),"\n",(0,s.jsx)(n.h2,{id:"docker",children:"Docker"}),"\n",(0,s.jsxs)(n.p,{children:["After making changes to the project, run ",(0,s.jsx)(n.code,{children:"run -r test-compose-build"})," to rebuild Komodo and then ",(0,s.jsx)(n.code,{children:"run -r test-compose-exposed"})," to start a Komodo container with the UI accessible at ",(0,s.jsx)(n.code,{children:"localhost:9120"}),". Any changes made to source files will require re-running the ",(0,s.jsx)(n.code,{children:"test-compose-build"})," and ",(0,s.jsx)(n.code,{children:"test-compose-exposed"})," commands."]}),"\n",(0,s.jsx)(n.h2,{id:"devcontainer",children:"Devcontainer"}),"\n",(0,s.jsxs)(n.p,{children:["Use the included ",(0,s.jsx)(n.code,{children:".devcontainer.json"})," with VSCode or other compatible IDE to stand-up a full environment, including database, with one click."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://code.visualstudio.com/Docs/editor/tasks",children:"VSCode Tasks"})," are provided for building and running Komodo."]}),"\n",(0,s.jsxs)(n.p,{children:["After opening the repository with the devcontainer run the task ",(0,s.jsx)(n.code,{children:"Init"})," to build the frontend/backend. Then, the task ",(0,s.jsx)(n.code,{children:"Run Komodo"})," can be used to run frontend/backend. Other tasks for rebuilding/running just one component of the stack (Core API, Periphery API, Frontend) are also provided."]}),"\n",(0,s.jsx)(n.h2,{id:"local",children:"Local"}),"\n",(0,s.jsx)(n.p,{children:"To run a full Komodo instance from a non-container environment run commands in this order:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Ensure dependencies are up to date","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"rustup update"})," -- ensure rust toolchain is up to date"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Build and Run backend","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r test-core"})," -- Build and run Core API"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r test-periphery"})," -- Build and run Periphery API"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Build Frontend","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Run this once"})," -- ",(0,s.jsx)(n.code,{children:"run -r link-client"})," -- generates TS client and links to the frontend"]}),"\n",(0,s.jsxs)(n.li,{children:["After running the above once:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r gen-client"})," -- Rebuild client"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r start-frontend"})," -- Start in dev (watch) mode"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r build-frontend"})," -- Typecheck and build"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"docsite-development",children:"Docsite Development"}),"\n",(0,s.jsxs)(n.p,{children:["Use ",(0,s.jsx)(n.code,{children:"run -r docsite-start"})," to start the ",(0,s.jsx)(n.a,{href:"https://docusaurus.io/",children:"Docusaurus"})," Komodo docs site in development mode. Changes made to files in ",(0,s.jsx)(n.code,{children:"./docsite"})," will be automatically reloaded by the server."]})]})}function a(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>t,x:()=>d});var s=r(6540);const o={},i=s.createContext(o);function t(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8f030830.6a578123.js b/assets/js/8f030830.6a578123.js new file mode 100644 index 000000000..f4667027f --- /dev/null +++ b/assets/js/8f030830.6a578123.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocsite=self.webpackChunkdocsite||[]).push([[423],{1792:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>a,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var s=r(4848),o=r(8453);const i={},t="Development",d={id:"development",title:"Development",description:"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.",source:"@site/docs/development.md",sourceDirName:".",slug:"/development",permalink:"/docs/development",draft:!1,unlisted:!1,editUrl:"https://github.com/mbecker20/komodo/tree/main/docsite/docs/development.md",tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"API and Clients",permalink:"/docs/api"}},c={},l=[{value:"Dependencies",id:"dependencies",level:2},{value:"runnables-cli",id:"runnables-cli",level:3},{value:"Docker",id:"docker",level:2},{value:"Devcontainer",id:"devcontainer",level:2},{value:"Local",id:"local",level:2},{value:"Docsite Development",id:"docsite-development",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"development",children:"Development"})}),"\n",(0,s.jsx)(n.p,{children:"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment."}),"\n",(0,s.jsx)(n.h2,{id:"dependencies",children:"Dependencies"}),"\n",(0,s.jsxs)(n.p,{children:["Running Komodo from ",(0,s.jsx)(n.a,{href:"https://github.com/mbecker20/komodo",children:"source"})," requires either ",(0,s.jsx)(n.a,{href:"https://www.docker.com/",children:"Docker"})," (and can use the included ",(0,s.jsx)(n.a,{href:"https://code.visualstudio.com/docs/devcontainers/containers",children:"devcontainer"}),"), or can have the development dependencies installed locally:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Backend (Core / Periphery APIs)","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://www.rust-lang.org/",children:"Rust"})," stable via ",(0,s.jsx)(n.a,{href:"https://rustup.rs/",children:"rustup installer"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://www.mongodb.com/",children:"MongoDB"})," or ",(0,s.jsx)(n.a,{href:"https://www.ferretdb.com/",children:"FerretDB"})," available locally."]}),"\n",(0,s.jsxs)(n.li,{children:["On Debian/Ubuntu: ",(0,s.jsx)(n.code,{children:"apt install build-essential pkg-config libssl-dev"})," required to build the rust source."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Frontend (Web UI)","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://nodejs.org/en",children:"Node"})," >= 18.18 + NPM","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://yarnpkg.com/",children:"Yarn"})," - (Tip: use ",(0,s.jsx)(n.code,{children:"corepack enable"})," after installing ",(0,s.jsx)(n.code,{children:"node"})," to use ",(0,s.jsx)(n.code,{children:"yarn"}),")"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/1password/typeshare",children:"typeshare"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://deno.com/",children:"Deno"})," >= 2.0.2"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"runnables-cli",children:"runnables-cli"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://github.com/mbecker20/runnables-cli",children:"mbecker20/runnables-cli"})," can be used as a convience CLI for running common project tasks found in ",(0,s.jsx)(n.code,{children:"runfile.toml"}),". Otherwise, you can create your own project tasks by references the ",(0,s.jsx)(n.code,{children:"cmd"}),"s found in ",(0,s.jsx)(n.code,{children:"runfile.toml"}),". All instructions below will use runnables-cli v1.3.7+."]}),"\n",(0,s.jsx)(n.h2,{id:"docker",children:"Docker"}),"\n",(0,s.jsxs)(n.p,{children:["After making changes to the project, run ",(0,s.jsx)(n.code,{children:"run -r test-compose-build"})," to rebuild Komodo and then ",(0,s.jsx)(n.code,{children:"run -r test-compose-exposed"})," to start a Komodo container with the UI accessible at ",(0,s.jsx)(n.code,{children:"localhost:9120"}),". Any changes made to source files will require re-running the ",(0,s.jsx)(n.code,{children:"test-compose-build"})," and ",(0,s.jsx)(n.code,{children:"test-compose-exposed"})," commands."]}),"\n",(0,s.jsx)(n.h2,{id:"devcontainer",children:"Devcontainer"}),"\n",(0,s.jsxs)(n.p,{children:["Use the included ",(0,s.jsx)(n.code,{children:".devcontainer.json"})," with VSCode or other compatible IDE to stand-up a full environment, including database, with one click."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://code.visualstudio.com/Docs/editor/tasks",children:"VSCode Tasks"})," are provided for building and running Komodo."]}),"\n",(0,s.jsxs)(n.p,{children:["After opening the repository with the devcontainer run the task ",(0,s.jsx)(n.code,{children:"Init"})," to build the frontend/backend. Then, the task ",(0,s.jsx)(n.code,{children:"Run Komodo"})," can be used to run frontend/backend. Other tasks for rebuilding/running just one component of the stack (Core API, Periphery API, Frontend) are also provided."]}),"\n",(0,s.jsx)(n.h2,{id:"local",children:"Local"}),"\n",(0,s.jsx)(n.p,{children:"To run a full Komodo instance from a non-container environment run commands in this order:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Ensure dependencies are up to date","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"rustup update"})," -- ensure rust toolchain is up to date"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Build and Run backend","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r test-core"})," -- Build and run Core API"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r test-periphery"})," -- Build and run Periphery API"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Build Frontend","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Run this once"})," -- ",(0,s.jsx)(n.code,{children:"run -r link-client"})," -- generates TS client and links to the frontend"]}),"\n",(0,s.jsxs)(n.li,{children:["After running the above once:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r gen-client"})," -- Rebuild client"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r start-frontend"})," -- Start in dev (watch) mode"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"run -r build-frontend"})," -- Typecheck and build"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"docsite-development",children:"Docsite Development"}),"\n",(0,s.jsxs)(n.p,{children:["Use ",(0,s.jsx)(n.code,{children:"run -r docsite-start"})," to start the ",(0,s.jsx)(n.a,{href:"https://docusaurus.io/",children:"Docusaurus"})," Komodo docs site in development mode. Changes made to files in ",(0,s.jsx)(n.code,{children:"./docsite"})," will be automatically reloaded by the server."]})]})}function a(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>t,x:()=>d});var s=r(6540);const o={},i=s.createContext(o);function t(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.2e839680.js b/assets/js/runtime~main.7fe813a5.js similarity index 93% rename from assets/js/runtime~main.2e839680.js rename to assets/js/runtime~main.7fe813a5.js index 1658bce0a..a0837e251 100644 --- a/assets/js/runtime~main.2e839680.js +++ b/assets/js/runtime~main.7fe813a5.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,t,r,c,f={},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var t=o[e]={exports:{}};return f[e].call(t.exports,t,t.exports,n),t.exports}n.m=f,e=[],n.O=(a,t,r,c)=>{if(!t){var f=1/0;for(i=0;i=c)&&Object.keys(n.O).every((e=>n.O[e](t[b])))?t.splice(b--,1):(o=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[t,r,c]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.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 c=Object.create(null);n.r(c);var f={};a=a||[null,t({}),t([]),t(t)];for(var o=2&r&&e;"object"==typeof o&&!~a.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,n.d(c,f),c},n.d=(e,a)=>{for(var t in a)n.o(a,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((a,t)=>(n.f[t](e,a),a)),[])),n.u=e=>"assets/js/"+({48:"a94703ab",92:"3734296e",98:"a7bd4aaa",100:"ef1bbce5",235:"a7456010",238:"f600b847",247:"f8238c17",401:"17896441",423:"8f030830",464:"2f7566f9",469:"1bd19f0c",531:"75245258",535:"5ea303bc",543:"c65a6c17",549:"a5a01e01",552:"669fcf45",580:"209736a1",583:"1df93b7f",624:"5fbc5cf1",636:"a5c9d4c4",647:"5e95c892",648:"a9cd8699",663:"6aab5236",742:"aba21aa0",782:"39c35b2c",842:"b19e82df",846:"c54f4afd",848:"8b13a4b4",849:"0058b4c6",864:"d92a3c43",943:"79c522c5",947:"ef9e0e28",976:"0e384e19",995:"ef526b88"}[e]||e)+"."+{48:"648183aa",92:"187b8a97",98:"a66a8b25",100:"d1b4e79b",235:"b82eb55b",237:"2f3e1c0f",238:"a11bb485",247:"caff83ad",394:"a2bd9e37",401:"31a9f0c1",423:"558dceb9",464:"1ea46b68",469:"357d1dc4",531:"323ab3b0",535:"e6ad1265",543:"23532b2a",549:"cfd37f67",552:"9662a5ef",580:"a739c35f",583:"e0f46f49",624:"c4462bf1",636:"24d158b1",647:"825bac72",648:"e624c656",663:"516da2df",742:"e2256b29",782:"7b84ef32",842:"b470a8ff",846:"2764862d",848:"9bad5394",849:"e2376b7b",864:"b9562b20",943:"a7dbddae",947:"7ebecfd6",976:"abcf3cdb",995:"f1eb480d"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},c="docsite:",n.l=(e,a,t,f)=>{if(r[e])r[e].push(a);else{var o,b;if(void 0!==t)for(var d=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(s);var c=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),b&&document.head.appendChild(o)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",n.gca=function(e){return e={17896441:"401",75245258:"531",a94703ab:"48","3734296e":"92",a7bd4aaa:"98",ef1bbce5:"100",a7456010:"235",f600b847:"238",f8238c17:"247","8f030830":"423","2f7566f9":"464","1bd19f0c":"469","5ea303bc":"535",c65a6c17:"543",a5a01e01:"549","669fcf45":"552","209736a1":"580","1df93b7f":"583","5fbc5cf1":"624",a5c9d4c4:"636","5e95c892":"647",a9cd8699:"648","6aab5236":"663",aba21aa0:"742","39c35b2c":"782",b19e82df:"842",c54f4afd:"846","8b13a4b4":"848","0058b4c6":"849",d92a3c43:"864","79c522c5":"943",ef9e0e28:"947","0e384e19":"976",ef526b88:"995"}[e]||e,n.p+n.u(e)},(()=>{var e={354:0,869:0};n.f.j=(a,t)=>{var r=n.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var c=new Promise(((t,c)=>r=e[a]=[t,c]));t.push(r[2]=c);var f=n.p+n.u(a),o=new Error;n.l(f,(t=>{if(n.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var c=t&&("load"===t.type?"missing":t.type),f=t&&t.target&&t.target.src;o.message="Loading chunk "+a+" failed.\n("+c+": "+f+")",o.name="ChunkLoadError",o.type=c,o.request=f,r[1](o)}}),"chunk-"+a,a)}},n.O.j=a=>0===e[a];var a=(a,t)=>{var r,c,f=t[0],o=t[1],b=t[2],d=0;if(f.some((a=>0!==e[a]))){for(r in o)n.o(o,r)&&(n.m[r]=o[r]);if(b)var i=b(n)}for(a&&a(t);d{"use strict";var e,a,t,r,c,f={},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var t=o[e]={exports:{}};return f[e].call(t.exports,t,t.exports,n),t.exports}n.m=f,e=[],n.O=(a,t,r,c)=>{if(!t){var f=1/0;for(i=0;i=c)&&Object.keys(n.O).every((e=>n.O[e](t[b])))?t.splice(b--,1):(o=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[t,r,c]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.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 c=Object.create(null);n.r(c);var f={};a=a||[null,t({}),t([]),t(t)];for(var o=2&r&&e;"object"==typeof o&&!~a.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,n.d(c,f),c},n.d=(e,a)=>{for(var t in a)n.o(a,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((a,t)=>(n.f[t](e,a),a)),[])),n.u=e=>"assets/js/"+({48:"a94703ab",92:"3734296e",98:"a7bd4aaa",100:"ef1bbce5",235:"a7456010",238:"f600b847",247:"f8238c17",401:"17896441",423:"8f030830",464:"2f7566f9",469:"1bd19f0c",531:"75245258",535:"5ea303bc",543:"c65a6c17",549:"a5a01e01",552:"669fcf45",580:"209736a1",583:"1df93b7f",624:"5fbc5cf1",636:"a5c9d4c4",647:"5e95c892",648:"a9cd8699",663:"6aab5236",742:"aba21aa0",782:"39c35b2c",842:"b19e82df",846:"c54f4afd",848:"8b13a4b4",849:"0058b4c6",864:"d92a3c43",943:"79c522c5",947:"ef9e0e28",976:"0e384e19",995:"ef526b88"}[e]||e)+"."+{48:"648183aa",92:"187b8a97",98:"a66a8b25",100:"d1b4e79b",235:"b82eb55b",237:"2f3e1c0f",238:"a11bb485",247:"caff83ad",394:"a2bd9e37",401:"31a9f0c1",423:"6a578123",464:"1ea46b68",469:"357d1dc4",531:"323ab3b0",535:"e6ad1265",543:"23532b2a",549:"cfd37f67",552:"9662a5ef",580:"a739c35f",583:"e0f46f49",624:"af350864",636:"24d158b1",647:"825bac72",648:"e624c656",663:"4f2a084e",742:"e2256b29",782:"7b84ef32",842:"b470a8ff",846:"2764862d",848:"9bad5394",849:"90b94532",864:"b9562b20",943:"a7dbddae",947:"7ebecfd6",976:"abcf3cdb",995:"f1eb480d"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},c="docsite:",n.l=(e,a,t,f)=>{if(r[e])r[e].push(a);else{var o,b;if(void 0!==t)for(var d=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(s);var c=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach((e=>e(t))),a)return a(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),b&&document.head.appendChild(o)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",n.gca=function(e){return e={17896441:"401",75245258:"531",a94703ab:"48","3734296e":"92",a7bd4aaa:"98",ef1bbce5:"100",a7456010:"235",f600b847:"238",f8238c17:"247","8f030830":"423","2f7566f9":"464","1bd19f0c":"469","5ea303bc":"535",c65a6c17:"543",a5a01e01:"549","669fcf45":"552","209736a1":"580","1df93b7f":"583","5fbc5cf1":"624",a5c9d4c4:"636","5e95c892":"647",a9cd8699:"648","6aab5236":"663",aba21aa0:"742","39c35b2c":"782",b19e82df:"842",c54f4afd:"846","8b13a4b4":"848","0058b4c6":"849",d92a3c43:"864","79c522c5":"943",ef9e0e28:"947","0e384e19":"976",ef526b88:"995"}[e]||e,n.p+n.u(e)},(()=>{var e={354:0,869:0};n.f.j=(a,t)=>{var r=n.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(354|869)$/.test(a))e[a]=0;else{var c=new Promise(((t,c)=>r=e[a]=[t,c]));t.push(r[2]=c);var f=n.p+n.u(a),o=new Error;n.l(f,(t=>{if(n.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var c=t&&("load"===t.type?"missing":t.type),f=t&&t.target&&t.target.src;o.message="Loading chunk "+a+" failed.\n("+c+": "+f+")",o.name="ChunkLoadError",o.type=c,o.request=f,r[1](o)}}),"chunk-"+a,a)}},n.O.j=a=>0===e[a];var a=(a,t)=>{var r,c,f=t[0],o=t[1],b=t[2],d=0;if(f.some((a=>0!==e[a]))){for(r in o)n.o(o,r)&&(n.m[r]=o[r]);if(b)var i=b(n)}for(a&&a(t);d -API | Komodo - +API and Clients | Komodo + -

API

-

Komodo Core exposes an http API to read data, write configuration, and execute actions. The API documentation is generated from the code and is available here.

-

You can also install the Komodo CLI to execute actions like RunBuild or DeployStack from the command line. -This can be coupled with scripts in Komodo Repos to achieve unlimited automation.

+

API and Clients

+

Komodo Core exposes an RPC-like HTTP API to read data, write configuration, and execute actions. +There are typesafe clients available in +Rust and Typescript.

+

The full API documentation is available here.

+

Rust Client

+

The Rust client is published to crates.io at komodo_client.

+
let komodo = KomodoClient::new("https://demo.komo.do", "your_key", "your_secret")
.with_healthcheck()
.await?;

let stacks = komodo.read(ListStacks::default()).await?;

let update = komodo
.execute(DeployStack {
stack: stacks[0].name.clone(),
stop_time: None
})
.await?;
+

Typescript Client

+

The Typescript client is published to NPM at komodo_client.

+
import { KomodoClient, Types } from "komodo_client";

const komodo = KomodoClient("https://demo.komo.do", {
type: "api-key",
params: {
api_key: "your_key",
secret: "your secret",
},
});

// Inferred as Types.StackListItem[]
const stacks = await komodo.read("ListStacks", {});

// Inferred as Types.Update
const update = await komodo.execute("DeployStack", {
stack: stacks[0].name,
});
\ No newline at end of file diff --git a/docs/build-images.html b/docs/build-images.html index f8a64015d..b0b02f756 100644 --- a/docs/build-images.html +++ b/docs/build-images.html @@ -4,11 +4,11 @@ Building Images | Komodo - + -

Building Images

+

Building Images

Komodo builds docker images by cloning the source repository from the configured git provider, running docker build, and pushing the resulting image to the configured docker registry. Any repo containing a Dockerfile is buildable using this method.

diff --git a/docs/build-images/builders.html b/docs/build-images/builders.html index 4aa910dc2..13545fa9d 100644 --- a/docs/build-images/builders.html +++ b/docs/build-images/builders.html @@ -4,11 +4,11 @@ Builders | Komodo - + -

Builders

+

Builders

A builder is a machine running the Komodo Periphery agent (and usually docker), which is able to handle a RunBuild / BuildRepo command from Komodo core. Any server connected to Komodo can be chosen as the builder for a build.

Building on a machine running production software is usually not a great idea, as this process can use a lot of system resources. It is better to start up a temporary cloud machine dedicated for the build, then shut it down when the build is finished. Komodo supports AWS EC2 for this task.

AWS builder

diff --git a/docs/build-images/configuration.html b/docs/build-images/configuration.html index e229c84f1..5ac4ea195 100644 --- a/docs/build-images/configuration.html +++ b/docs/build-images/configuration.html @@ -4,11 +4,11 @@ Configuration | Komodo - + -

Configuration

+

Configuration

Komodo just needs a bit of information in order to build your image.

Provider configuration

Komodo supports cloning repos over http/s, from any provider that supports cloning private repos using git clone https://<Token>@git-provider.net/<Owner>/<Repo>.

diff --git a/docs/build-images/pre-build.html b/docs/build-images/pre-build.html index 97baec43f..1e95d1405 100644 --- a/docs/build-images/pre-build.html +++ b/docs/build-images/pre-build.html @@ -4,11 +4,11 @@ Pre-build command | Komodo - + -

Pre-build command

+

Pre-build command

Sometimes a command needs to be run before running docker build, you can configure this in the pre build section.

There are two fields to pass for pre build. the first is path, which changes the working directory. To run the command in the root of the repo, just pass .. The second field is command, this is the shell command to be executed after the repo is cloned.

For example, say your repo had a folder in it called scripts with a shell script on-clone.sh. You would give path as scripts and command as sh on-clone.sh. Or you could make path just . and then the command would be sh scripts/on-clone.sh. Either way works fine.

diff --git a/docs/build-images/versioning.html b/docs/build-images/versioning.html index 8318a1d3a..b9711b756 100644 --- a/docs/build-images/versioning.html +++ b/docs/build-images/versioning.html @@ -4,11 +4,11 @@ Image Versioning | Komodo - + -

Image Versioning

+

Image Versioning

Komodo uses a major.minor.patch versioning scheme to Build versioning. By default, every RunBuild will auto increment the Build's version patch number, and push the image to docker hub with the version tag, as well as the latest tag. A tag containing the latest short commit hash at the time the repo was cloned will also be created.

You can also turn off the auto incrementing feature, and manage the version yourself. In addition, you can configure a "version tag" on the build. This will postfix the version tag / commit hash tag with a custom label. For example, an image tag of dev will produce tags like image_name:1.1.1-dev and image_name:h3c87c-dev.

diff --git a/docs/connect-servers.html b/docs/connect-servers.html index 4bd699cb7..20f997ba7 100644 --- a/docs/connect-servers.html +++ b/docs/connect-servers.html @@ -4,11 +4,11 @@ Connect More Servers | Komodo - + -

Connect More Servers

+

Connect More Servers

Connecting a server to Komodo has 2 steps:

  1. Install the Periphery agent on the server (either binary or container).
  2. diff --git a/docs/deploy-containers.html b/docs/deploy-containers.html index dac86d0ca..9e6236e34 100644 --- a/docs/deploy-containers.html +++ b/docs/deploy-containers.html @@ -4,11 +4,11 @@ Deploy Containers | Komodo - + -

    Deploy Containers

    +

    Deploy Containers

    Komodo can deploy any docker images that it can access with the configured docker accounts. It works by parsing the deployment configuration into a docker run command, which is then run on the target system. The configuration is stored on MongoDB, and records of all actions (update config, deploy, stop, etc.) are stored as well.

    diff --git a/docs/deploy-containers/configuration.html b/docs/deploy-containers/configuration.html index 290c94914..a7f91ec63 100644 --- a/docs/deploy-containers/configuration.html +++ b/docs/deploy-containers/configuration.html @@ -4,11 +4,11 @@ Configuration | Komodo - + -

    Configuration

    +

    Configuration

    Choose the docker image

    There are two options to configure the docker image to deploy.

    Attaching a Komodo build

    diff --git a/docs/deploy-containers/lifetime-management.html b/docs/deploy-containers/lifetime-management.html index 2299aae7c..bf2af1266 100644 --- a/docs/deploy-containers/lifetime-management.html +++ b/docs/deploy-containers/lifetime-management.html @@ -4,11 +4,11 @@ Container Management | Komodo - + -

    Container Management

    +

    Container Management

    The lifetime of a docker container is more like a virtual machine. They can be created, started, stopped, and destroyed. Komodo will display the state of the container and provides an API to manage all your container's lifetimes.

    This is achieved internally by running the appropriate docker command for the requested action (docker stop, docker start, etc).

    Stopping a Container

    diff --git a/docs/development.html b/docs/development.html index 3f556db80..57fe4e622 100644 --- a/docs/development.html +++ b/docs/development.html @@ -4,11 +4,11 @@ Development | Komodo - + -

    Development

    +

    Development

    If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.

    Dependencies

    Running Komodo from source requires either Docker (and can use the included devcontainer), or can have the development dependencies installed locally:

    @@ -68,6 +68,6 @@

    Local

    Docsite Development

    -

    Use run -r docsite-start to start the Docusaurus Komodo docs site in development mode. Changes made to files in ./docsite will be automatically reloaded by the server.

    +

    Use run -r docsite-start to start the Docusaurus Komodo docs site in development mode. Changes made to files in ./docsite will be automatically reloaded by the server.

    \ No newline at end of file diff --git a/docs/docker-compose.html b/docs/docker-compose.html index 5667618aa..f48a0cd7a 100644 --- a/docs/docker-compose.html +++ b/docs/docker-compose.html @@ -4,11 +4,11 @@ Docker Compose | Komodo - + -

    Docker Compose

    +

    Docker Compose

    Komodo can deploy docker compose projects through the Stack resource.

    Define the compose file/s

    Komodo supports 3 ways of defining the compose files:

    diff --git a/docs/file-paths.html b/docs/file-paths.html index 389ee7787..f36af3757 100644 --- a/docs/file-paths.html +++ b/docs/file-paths.html @@ -4,7 +4,7 @@ File Paths | Komodo - + diff --git a/docs/intro.html b/docs/intro.html index 65b96304f..aa86338a9 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -4,11 +4,11 @@ What is Komodo? | Komodo - + -

    What is Komodo?

    +

    What is Komodo?

    Komodo is a web app to provide structure for managing your servers, builds, deployments, and automated procedures.

    With Komodo you can: