It is largely backward compatible with Komodo v1 configuration, and users can upgrade from v1 in place by following the steps below.
note
Starting with v2, Komodo will not publish images with the latest tag in favor of Semver (2, 2.0, 2.0.0).
-This prevents unintented major version upgrades when using auto updaters.
+This prevents unintented major version upgrades when using auto updaters. Use :2 to stay up to date
+with all future Komodo v2 releases.
diff --git a/docs/resources.html b/docs/resources.html
index 9f1426167..4afb57351 100644
--- a/docs/resources.html
+++ b/docs/resources.html
@@ -4,7 +4,7 @@
Resources | Komodo
-
+
diff --git a/docs/setup.html b/docs/setup.html
index 2cf3fe13b..53c68ab70 100644
--- a/docs/setup.html
+++ b/docs/setup.html
@@ -4,7 +4,7 @@
Setup Komodo Core | Komodo
-
+
diff --git a/docs/setup/advanced.html b/docs/setup/advanced.html
index d25e7bf29..04b4e561a 100644
--- a/docs/setup/advanced.html
+++ b/docs/setup/advanced.html
@@ -4,7 +4,7 @@
Advanced Setup | Komodo
-
+
diff --git a/docs/setup/backup.html b/docs/setup/backup.html
index b56288c16..a15da5425 100644
--- a/docs/setup/backup.html
+++ b/docs/setup/backup.html
@@ -4,7 +4,7 @@
Backup and Restore | Komodo
-
+
diff --git a/docs/setup/connect-servers.html b/docs/setup/connect-servers.html
index b5a629473..002374708 100644
--- a/docs/setup/connect-servers.html
+++ b/docs/setup/connect-servers.html
@@ -4,7 +4,7 @@
Connect More Servers | Komodo
-
+
diff --git a/docs/setup/ferretdb.html b/docs/setup/ferretdb.html
index 0cfbcb79c..b93b2555e 100644
--- a/docs/setup/ferretdb.html
+++ b/docs/setup/ferretdb.html
@@ -4,7 +4,7 @@
FerretDB | Komodo
-
+
diff --git a/docs/setup/mongo.html b/docs/setup/mongo.html
index 0f755714a..3799b26e7 100644
--- a/docs/setup/mongo.html
+++ b/docs/setup/mongo.html
@@ -4,7 +4,7 @@
MongoDB | Komodo
-
+
diff --git a/docs/swarm.html b/docs/swarm.html
index b3743b7d8..79447f5ba 100644
--- a/docs/swarm.html
+++ b/docs/swarm.html
@@ -4,7 +4,7 @@
Swarm | Komodo
-
+
diff --git a/docs/terminals.html b/docs/terminals.html
index c624340cd..80eabe15b 100644
--- a/docs/terminals.html
+++ b/docs/terminals.html
@@ -4,7 +4,7 @@
Terminals | Komodo
-
+
diff --git a/index.html b/index.html
index 8133db047..8f74ded92 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
Home | Komodo
-
+
diff --git a/search-index.json b/search-index.json
index 9d22b5239..3a5c6564b 100644
--- a/search-index.json
+++ b/search-index.json
@@ -1 +1 @@
-[{"documents":[{"i":1,"t":"Procedures and Actions","u":"/docs/automate/procedures","b":["Docs","Automate"]},{"i":13,"t":"Schedules","u":"/docs/automate/schedules","b":["Docs","Automate"]},{"i":28,"t":"Sync Resources","u":"/docs/automate/sync-resources","b":["Docs","Automate"]},{"i":51,"t":"Webhooks","u":"/docs/automate/webhooks","b":["Docs","Automate"]},{"i":61,"t":"Build","u":"/docs/build","b":["Docs"]},{"i":89,"t":"Permissioning","u":"/docs/configuration/permissioning","b":["Docs","Configuration"]},{"i":101,"t":"Providers","u":"/docs/configuration/providers","b":["Docs","Configuration"]},{"i":123,"t":"Variables and Secrets","u":"/docs/configuration/variables","b":["Docs","Configuration"]},{"i":127,"t":"Automatic Updates","u":"/docs/deploy/auto-update","b":["Docs","Deploy"]},{"i":133,"t":"Docker Compose","u":"/docs/deploy/compose","b":["Docs","Deploy"]},{"i":145,"t":"Containers","u":"/docs/deploy/containers","b":["Docs","Deploy"]},{"i":157,"t":"Ecosystem","u":"/docs/ecosystem","b":["Docs","Ecosystem"]},{"i":167,"t":"API and Clients","u":"/docs/ecosystem/api","b":["Docs","Ecosystem"]},{"i":173,"t":"Komodo CLI","u":"/docs/ecosystem/cli","b":["Docs","Ecosystem"]},{"i":183,"t":"Community","u":"/docs/ecosystem/community","b":["Docs","Ecosystem"]},{"i":191,"t":"Development","u":"/docs/ecosystem/development","b":["Docs","Ecosystem"]},{"i":211,"t":"What is Komodo?","u":"/docs/intro","b":["Docs"]},{"i":221,"t":"v2.0.0","u":"/docs/releases/v2.0.0","b":["Docs","Releases"]},{"i":235,"t":"Resources","u":"/docs/resources","b":["Docs"]},{"i":259,"t":"Setup Komodo Core","u":"/docs/setup","b":["Docs","Setup"]},{"i":273,"t":"Advanced Setup","u":"/docs/setup/advanced","b":["Docs","Setup"]},{"i":287,"t":"Backup and Restore","u":"/docs/setup/backup","b":["Docs","Setup"]},{"i":299,"t":"Connect More Servers","u":"/docs/setup/connect-servers","b":["Docs","Setup"]},{"i":325,"t":"FerretDB","u":"/docs/setup/ferretdb","b":["Docs","Setup"]},{"i":327,"t":"MongoDB","u":"/docs/setup/mongo","b":["Docs","Setup"]},{"i":331,"t":"Swarm","u":"/docs/swarm","b":["Docs"]},{"i":357,"t":"Terminals","u":"/docs/terminals","b":["Docs"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,2.56,1,2.56]],["t/13",[2,3.376]],["t/28",[3,2.56,4,2.113]],["t/51",[5,3.376]],["t/61",[6,3.376]],["t/89",[7,3.376]],["t/101",[8,3.376]],["t/123",[9,2.56,10,2.56]],["t/127",[11,2.56,12,2.56]],["t/133",[13,2.56,14,2.56]],["t/145",[15,3.376]],["t/157",[16,3.376]],["t/167",[17,2.56,18,2.56]],["t/173",[19,1.819,20,2.56]],["t/183",[21,3.376]],["t/191",[22,3.376]],["t/211",[19,2.398]],["t/221",[23,3.376]],["t/235",[4,2.786]],["t/259",[19,1.465,24,1.702,25,2.062]],["t/273",[24,2.113,26,2.56]],["t/287",[27,2.56,28,2.56]],["t/299",[29,2.062,30,2.062,31,2.062]],["t/325",[32,3.376]],["t/327",[33,3.376]],["t/331",[34,3.376]],["t/357",[35,3.376]]],"invertedIndex":[["action",{"_index":1,"t":{"1":{"position":[[15,7]]}}}],["advanc",{"_index":26,"t":{"273":{"position":[[0,8]]}}}],["api",{"_index":17,"t":{"167":{"position":[[0,3]]}}}],["automat",{"_index":11,"t":{"127":{"position":[[0,9]]}}}],["backup",{"_index":27,"t":{"287":{"position":[[0,6]]}}}],["build",{"_index":6,"t":{"61":{"position":[[0,5]]}}}],["cli",{"_index":20,"t":{"173":{"position":[[7,3]]}}}],["client",{"_index":18,"t":{"167":{"position":[[8,7]]}}}],["commun",{"_index":21,"t":{"183":{"position":[[0,9]]}}}],["compos",{"_index":14,"t":{"133":{"position":[[7,7]]}}}],["connect",{"_index":29,"t":{"299":{"position":[[0,7]]}}}],["contain",{"_index":15,"t":{"145":{"position":[[0,10]]}}}],["core",{"_index":25,"t":{"259":{"position":[[13,4]]}}}],["develop",{"_index":22,"t":{"191":{"position":[[0,11]]}}}],["docker",{"_index":13,"t":{"133":{"position":[[0,6]]}}}],["ecosystem",{"_index":16,"t":{"157":{"position":[[0,9]]}}}],["ferretdb",{"_index":32,"t":{"325":{"position":[[0,8]]}}}],["komodo",{"_index":19,"t":{"173":{"position":[[0,6]]},"211":{"position":[[8,7]]},"259":{"position":[[6,6]]}}}],["mongodb",{"_index":33,"t":{"327":{"position":[[0,7]]}}}],["more",{"_index":30,"t":{"299":{"position":[[8,4]]}}}],["permiss",{"_index":7,"t":{"89":{"position":[[0,13]]}}}],["procedur",{"_index":0,"t":{"1":{"position":[[0,10]]}}}],["provid",{"_index":8,"t":{"101":{"position":[[0,9]]}}}],["resourc",{"_index":4,"t":{"28":{"position":[[5,9]]},"235":{"position":[[0,9]]}}}],["restor",{"_index":28,"t":{"287":{"position":[[11,7]]}}}],["schedul",{"_index":2,"t":{"13":{"position":[[0,9]]}}}],["secret",{"_index":10,"t":{"123":{"position":[[14,7]]}}}],["server",{"_index":31,"t":{"299":{"position":[[13,7]]}}}],["setup",{"_index":24,"t":{"259":{"position":[[0,5]]},"273":{"position":[[9,5]]}}}],["swarm",{"_index":34,"t":{"331":{"position":[[0,5]]}}}],["sync",{"_index":3,"t":{"28":{"position":[[0,4]]}}}],["termin",{"_index":35,"t":{"357":{"position":[[0,9]]}}}],["updat",{"_index":12,"t":{"127":{"position":[[10,7]]}}}],["v2.0.0",{"_index":23,"t":{"221":{"position":[[0,6]]}}}],["variabl",{"_index":9,"t":{"123":{"position":[[0,9]]}}}],["webhook",{"_index":5,"t":{"51":{"position":[[0,8]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Procedures","u":"/docs/automate/procedures","h":"#procedures","p":1},{"i":5,"t":"Config fields","u":"/docs/automate/procedures","h":"#config-fields","p":1},{"i":7,"t":"Batch Executions","u":"/docs/automate/procedures","h":"#batch-executions","p":1},{"i":9,"t":"Actions","u":"/docs/automate/procedures","h":"#actions","p":1},{"i":11,"t":"Action examples","u":"/docs/automate/procedures","h":"#action-examples","p":1},{"i":15,"t":"Configuration","u":"/docs/automate/schedules","h":"#configuration","p":13},{"i":17,"t":"Schedule fields","u":"/docs/automate/schedules","h":"#schedule-fields","p":13},{"i":19,"t":"Schedule formats","u":"/docs/automate/schedules","h":"#schedule-formats","p":13},{"i":20,"t":"English (natural language)","u":"/docs/automate/schedules","h":"#english-natural-language","p":13},{"i":22,"t":"Cron","u":"/docs/automate/schedules","h":"#cron","p":13},{"i":24,"t":"Viewing schedules","u":"/docs/automate/schedules","h":"#viewing-schedules","p":13},{"i":26,"t":"Alerts","u":"/docs/automate/schedules","h":"#alerts","p":13},{"i":30,"t":"Commit to Syncs","u":"/docs/automate/sync-resources","h":"#commit-to-syncs","p":28},{"i":32,"t":"Example Declarations","u":"/docs/automate/sync-resources","h":"#example-declarations","p":28},{"i":33,"t":"Server","u":"/docs/automate/sync-resources","h":"#server","p":28},{"i":35,"t":"Swarm","u":"/docs/automate/sync-resources","h":"#swarm","p":28},{"i":37,"t":"Builder and build","u":"/docs/automate/sync-resources","h":"#builder-and-build","p":28},{"i":39,"t":"Deployments","u":"/docs/automate/sync-resources","h":"#deployments","p":28},{"i":41,"t":"Stack","u":"/docs/automate/sync-resources","h":"#stack","p":28},{"i":43,"t":"Procedure","u":"/docs/automate/sync-resources","h":"#procedure","p":28},{"i":45,"t":"Repo","u":"/docs/automate/sync-resources","h":"#repo","p":28},{"i":47,"t":"Resource sync","u":"/docs/automate/sync-resources","h":"#resource-sync","p":28},{"i":49,"t":"User Group:","u":"/docs/automate/sync-resources","h":"#user-group","p":28},{"i":53,"t":"Webhook URL","u":"/docs/automate/webhooks","h":"#webhook-url","p":51},{"i":55,"t":"Executions by resource type","u":"/docs/automate/webhooks","h":"#executions-by-resource-type","p":51},{"i":57,"t":"Setting Up a Webhook","u":"/docs/automate/webhooks","h":"#setting-up-a-webhook","p":51},{"i":59,"t":"Branch Filtering","u":"/docs/automate/webhooks","h":"#branch-filtering","p":51},{"i":63,"t":"Dockerfile Sources","u":"/docs/build","h":"#dockerfile-sources","p":61},{"i":65,"t":"Configuration","u":"/docs/build","h":"#configuration","p":61},{"i":67,"t":"Config fields","u":"/docs/build","h":"#config-fields","p":61},{"i":69,"t":"Image Versioning and Tagging","u":"/docs/build","h":"#image-versioning-and-tagging","p":61},{"i":71,"t":"Tag types","u":"/docs/build","h":"#tag-types","p":61},{"i":73,"t":"Image tag postfix","u":"/docs/build","h":"#image-tag-postfix","p":61},{"i":75,"t":"Custom image name","u":"/docs/build","h":"#custom-image-name","p":61},{"i":77,"t":"Manual versioning","u":"/docs/build","h":"#manual-versioning","p":61},{"i":79,"t":"Image Registry","u":"/docs/build","h":"#image-registry","p":61},{"i":81,"t":"Multi-platform builds (Buildx)","u":"/docs/build","h":"#multi-platform-builds-buildx","p":61},{"i":83,"t":"Builders","u":"/docs/build","h":"#builders","p":61},{"i":85,"t":"Server builder","u":"/docs/build","h":"#server-builder","p":61},{"i":87,"t":"AWS EC2 builder","u":"/docs/build","h":"#aws-ec2-builder","p":61},{"i":91,"t":"User Groups","u":"/docs/configuration/permissioning","h":"#user-groups","p":89},{"i":93,"t":"Permission Levels","u":"/docs/configuration/permissioning","h":"#permission-levels","p":89},{"i":95,"t":"Specific Permissions","u":"/docs/configuration/permissioning","h":"#specific-permissions","p":89},{"i":97,"t":"Permissioning by Resource Type","u":"/docs/configuration/permissioning","h":"#permissioning-by-resource-type","p":89},{"i":99,"t":"Administration","u":"/docs/configuration/permissioning","h":"#administration","p":89},{"i":103,"t":"Usage","u":"/docs/configuration/providers","h":"#usage","p":101},{"i":105,"t":"Managing Providers in the UI","u":"/docs/configuration/providers","h":"#managing-providers-in-the-ui","p":101},{"i":107,"t":"Configuring via Config Files","u":"/docs/configuration/providers","h":"#configuring-via-config-files","p":101},{"i":109,"t":"Git Providers","u":"/docs/configuration/providers","h":"#git-providers","p":101},{"i":111,"t":"Fields","u":"/docs/configuration/providers","h":"#fields","p":101},{"i":113,"t":"Configuration","u":"/docs/configuration/providers","h":"#configuration","p":101},{"i":115,"t":"Docker Registries","u":"/docs/configuration/providers","h":"#docker-registries","p":101},{"i":117,"t":"Fields","u":"/docs/configuration/providers","h":"#fields-1","p":101},{"i":119,"t":"Configuration","u":"/docs/configuration/providers","h":"#configuration-1","p":101},{"i":121,"t":"Usage","u":"/docs/configuration/providers","h":"#usage-1","p":101},{"i":125,"t":"Defining Variables and Secrets","u":"/docs/configuration/variables","h":"#defining-variables-and-secrets","p":123},{"i":129,"t":"Configuration","u":"/docs/deploy/auto-update","h":"#configuration","p":127},{"i":131,"t":"Global Auto Update Procedure","u":"/docs/deploy/auto-update","h":"#global-auto-update-procedure","p":127},{"i":135,"t":"Configuration","u":"/docs/deploy/compose","h":"#configuration","p":133},{"i":137,"t":"Config fields","u":"/docs/deploy/compose","h":"#config-fields","p":133},{"i":139,"t":"Defining Compose Files","u":"/docs/deploy/compose","h":"#defining-compose-files","p":133},{"i":141,"t":"Importing Existing Projects","u":"/docs/deploy/compose","h":"#importing-existing-projects","p":133},{"i":143,"t":"Deploying to a Swarm","u":"/docs/deploy/compose","h":"#deploying-to-a-swarm","p":133},{"i":147,"t":"Configuration","u":"/docs/deploy/containers","h":"#configuration","p":145},{"i":149,"t":"Config fields","u":"/docs/deploy/containers","h":"#config-fields","p":145},{"i":151,"t":"Image source","u":"/docs/deploy/containers","h":"#image-source","p":145},{"i":153,"t":"Container Lifecycle","u":"/docs/deploy/containers","h":"#container-lifecycle","p":145},{"i":155,"t":"Deploying to a Swarm","u":"/docs/deploy/containers","h":"#deploying-to-a-swarm","p":145},{"i":159,"t":"📄️ Komodo CLI","u":"/docs/ecosystem","h":"","p":157},{"i":161,"t":"📄️ API and Clients","u":"/docs/ecosystem","h":"","p":157},{"i":163,"t":"📄️ Community","u":"/docs/ecosystem","h":"","p":157},{"i":165,"t":"📄️ Development","u":"/docs/ecosystem","h":"","p":157},{"i":169,"t":"Rust Client","u":"/docs/ecosystem/api","h":"#rust-client","p":167},{"i":171,"t":"Typescript Client","u":"/docs/ecosystem/api","h":"#typescript-client","p":167},{"i":175,"t":"Examples","u":"/docs/ecosystem/cli","h":"#examples","p":173},{"i":177,"t":"Terminals","u":"/docs/ecosystem/cli","h":"#terminals","p":173},{"i":179,"t":"Install","u":"/docs/ecosystem/cli","h":"#install","p":173},{"i":181,"t":"Configure","u":"/docs/ecosystem/cli","h":"#configure","p":173},{"i":185,"t":"3rd Party Tools","u":"/docs/ecosystem/community","h":"#3rd-party-tools","p":183},{"i":187,"t":"Posts and Guides","u":"/docs/ecosystem/community","h":"#posts-and-guides","p":183},{"i":189,"t":"Community Alerters","u":"/docs/ecosystem/community","h":"#community-alerters","p":183},{"i":193,"t":"Dependencies","u":"/docs/ecosystem/development","h":"#dependencies","p":191},{"i":195,"t":"runnables-cli","u":"/docs/ecosystem/development","h":"#runnables-cli","p":191},{"i":197,"t":"Docker","u":"/docs/ecosystem/development","h":"#docker","p":191},{"i":199,"t":"Devcontainer","u":"/docs/ecosystem/development","h":"#devcontainer","p":191},{"i":201,"t":"Local","u":"/docs/ecosystem/development","h":"#local","p":191},{"i":203,"t":"Initial One-time Setup","u":"/docs/ecosystem/development","h":"#initial-one-time-setup","p":191},{"i":205,"t":"Starting the services","u":"/docs/ecosystem/development","h":"#starting-the-services","p":191},{"i":207,"t":"Rebuilding the frontend client","u":"/docs/ecosystem/development","h":"#rebuilding-the-frontend-client","p":191},{"i":209,"t":"Docsite Development","u":"/docs/ecosystem/development","h":"#docsite-development","p":191},{"i":213,"t":"Architecture","u":"/docs/intro","h":"#architecture","p":211},{"i":215,"t":"API","u":"/docs/intro","h":"#api","p":211},{"i":217,"t":"Permissioning","u":"/docs/intro","h":"#permissioning","p":211},{"i":219,"t":"Docker","u":"/docs/intro","h":"#docker","p":211},{"i":223,"t":"Changelog","u":"/docs/releases/v2.0.0","h":"#changelog","p":221},{"i":225,"t":"Upgrading to Komodo v2","u":"/docs/releases/v2.0.0","h":"#upgrading-to-komodo-v2","p":221},{"i":227,"t":"1. Upgrade Core and Periphery to v2","u":"/docs/releases/v2.0.0","h":"#1-upgrade-core-and-periphery-to-v2","p":221},{"i":229,"t":"2a. Move to public key authentication","u":"/docs/releases/v2.0.0","h":"#2a-move-to-public-key-authentication","p":221},{"i":231,"t":"2b. Reversing the agent connection","u":"/docs/releases/v2.0.0","h":"#2b-reversing-the-agent-connection","p":221},{"i":233,"t":"3. Fix any komodo.execute_terminal in Actions","u":"/docs/releases/v2.0.0","h":"#3-fix-any-komodoexecute_terminal-in-actions","p":221},{"i":237,"t":"Server","u":"/docs/resources","h":"#server","p":235},{"i":239,"t":"Swarm","u":"/docs/resources","h":"#swarm","p":235},{"i":241,"t":"Deployment","u":"/docs/resources","h":"#deployment","p":235},{"i":243,"t":"Stack","u":"/docs/resources","h":"#stack","p":235},{"i":245,"t":"Repo","u":"/docs/resources","h":"#repo","p":235},{"i":247,"t":"Build","u":"/docs/resources","h":"#build","p":235},{"i":249,"t":"Builder","u":"/docs/resources","h":"#builder","p":235},{"i":251,"t":"Procedure","u":"/docs/resources","h":"#procedure","p":235},{"i":253,"t":"Action","u":"/docs/resources","h":"#action","p":235},{"i":255,"t":"Resource Sync","u":"/docs/resources","h":"#resource-sync","p":235},{"i":257,"t":"Alerter","u":"/docs/resources","h":"#alerter","p":235},{"i":261,"t":"Deploy with Docker Compose","u":"/docs/setup","h":"#deploy-with-docker-compose","p":259},{"i":263,"t":"📄️ MongoDB","u":"/docs/setup","h":"","p":259},{"i":265,"t":"📄️ FerretDB","u":"/docs/setup","h":"","p":259},{"i":267,"t":"📄️ Advanced Setup","u":"/docs/setup","h":"","p":259},{"i":269,"t":"📄️ Connect More Servers","u":"/docs/setup","h":"","p":259},{"i":271,"t":"📄️ Backup and Restore","u":"/docs/setup","h":"","p":259},{"i":275,"t":"Custom Certificate Authorities","u":"/docs/setup/advanced","h":"#custom-certificate-authorities","p":273},{"i":277,"t":"OIDC / OAuth2","u":"/docs/setup/advanced","h":"#oidc--oauth2","p":273},{"i":279,"t":"Authentik","u":"/docs/setup/advanced","h":"#authentik","p":273},{"i":281,"t":"Keycloak","u":"/docs/setup/advanced","h":"#keycloak","p":273},{"i":283,"t":"Limit Periphery IPs","u":"/docs/setup/advanced","h":"#limit-periphery-ips","p":273},{"i":285,"t":"Mount a Config File","u":"/docs/setup/advanced","h":"#mount-a-config-file","p":273},{"i":289,"t":"Scheduled Backup","u":"/docs/setup/backup","h":"#scheduled-backup","p":287},{"i":291,"t":"Backups","u":"/docs/setup/backup","h":"#backups","p":287},{"i":293,"t":"Remote Backups","u":"/docs/setup/backup","h":"#remote-backups","p":287},{"i":295,"t":"Restore","u":"/docs/setup/backup","h":"#restore","p":287},{"i":297,"t":"Consistency","u":"/docs/setup/backup","h":"#consistency","p":287},{"i":301,"t":"Install Periphery","u":"/docs/setup/connect-servers","h":"#install-periphery","p":299},{"i":303,"t":"Systemd","u":"/docs/setup/connect-servers","h":"#systemd","p":299},{"i":305,"t":"Container","u":"/docs/setup/connect-servers","h":"#container","p":299},{"i":307,"t":"Binary","u":"/docs/setup/connect-servers","h":"#binary","p":299},{"i":309,"t":"Example periphery start command","u":"/docs/setup/connect-servers","h":"#example-periphery-start-command","p":299},{"i":311,"t":"Authentication and Key Rotation","u":"/docs/setup/connect-servers","h":"#authentication-and-key-rotation","p":299},{"i":313,"t":"How it works","u":"/docs/setup/connect-servers","h":"#how-it-works","p":299},{"i":315,"t":"Default key locations","u":"/docs/setup/connect-servers","h":"#default-key-locations","p":299},{"i":317,"t":"Automatic key rotation","u":"/docs/setup/connect-servers","h":"#automatic-key-rotation","p":299},{"i":319,"t":"Onboarding key options","u":"/docs/setup/connect-servers","h":"#onboarding-key-options","p":299},{"i":321,"t":"Configuration","u":"/docs/setup/connect-servers","h":"#configuration","p":299},{"i":323,"t":"Passing config files","u":"/docs/setup/connect-servers","h":"#passing-config-files","p":299},{"i":329,"t":"Quick Start","u":"/docs/setup/mongo","h":"#quick-start","p":327},{"i":333,"t":"Configuration","u":"/docs/swarm","h":"#configuration","p":331},{"i":335,"t":"Config fields","u":"/docs/swarm","h":"#config-fields","p":331},{"i":337,"t":"Getting Started","u":"/docs/swarm","h":"#getting-started","p":331},{"i":339,"t":"1. Initialize the Swarm","u":"/docs/swarm","h":"#1-initialize-the-swarm","p":331},{"i":341,"t":"2. Create the Swarm resource in Komodo","u":"/docs/swarm","h":"#2-create-the-swarm-resource-in-komodo","p":331},{"i":343,"t":"3. Join additional nodes","u":"/docs/swarm","h":"#3-join-additional-nodes","p":331},{"i":345,"t":"Nodes","u":"/docs/swarm","h":"#nodes","p":331},{"i":347,"t":"Services","u":"/docs/swarm","h":"#services","p":331},{"i":349,"t":"Stacks","u":"/docs/swarm","h":"#stacks","p":331},{"i":351,"t":"Configs and Secrets","u":"/docs/swarm","h":"#configs-and-secrets","p":331},{"i":353,"t":"Health Monitoring","u":"/docs/swarm","h":"#health-monitoring","p":331},{"i":355,"t":"Deploying to a Swarm","u":"/docs/swarm","h":"#deploying-to-a-swarm","p":331},{"i":359,"t":"Server Terminals","u":"/docs/terminals","h":"#server-terminals","p":357},{"i":361,"t":"Container Terminals","u":"/docs/terminals","h":"#container-terminals","p":357},{"i":363,"t":"Multiple Sessions","u":"/docs/terminals","h":"#multiple-sessions","p":357},{"i":365,"t":"Terminal History","u":"/docs/terminals","h":"#terminal-history","p":357},{"i":367,"t":"CLI","u":"/docs/terminals","h":"#cli","p":357},{"i":369,"t":"Execute Terminal","u":"/docs/terminals","h":"#execute-terminal","p":357},{"i":371,"t":"Periphery Configuration","u":"/docs/terminals","h":"#periphery-configuration","p":357}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,4.483]],["t/5",[1,2.816,2,2.926]],["t/7",[3,4.652,4,3.809]],["t/9",[5,4.483]],["t/11",[5,3.559,6,3.559]],["t/15",[7,3.202]],["t/17",[2,2.926,8,3.559]],["t/19",[8,3.559,9,4.652]],["t/20",[10,3.857,11,3.857,12,3.857]],["t/22",[13,5.859]],["t/24",[8,3.559,14,4.652]],["t/26",[15,4.798]],["t/30",[16,4.652,17,3.809]],["t/32",[6,3.559,18,4.652]],["t/33",[19,4.231]],["t/35",[20,3.843]],["t/37",[21,3.359,22,3.809]],["t/39",[23,4.022]],["t/41",[24,4.798]],["t/43",[0,4.483]],["t/45",[25,5.219]],["t/47",[17,3.809,26,3.359]],["t/49",[27,4.144,28,4.144]],["t/53",[29,4.144,30,4.652]],["t/55",[4,3.158,26,2.785,31,3.158]],["t/57",[29,3.436,32,3.857,33,3.857]],["t/59",[34,4.652,35,4.652]],["t/63",[36,4.652,37,4.144]],["t/65",[7,3.202]],["t/67",[1,2.816,2,2.926]],["t/69",[38,2.785,39,3.436,40,3.158]],["t/71",[31,3.809,40,3.809]],["t/73",[38,2.785,40,3.158,41,3.857]],["t/75",[38,2.785,42,3.436,43,3.857]],["t/77",[39,4.144,44,4.652]],["t/79",[38,3.359,45,4.144]],["t/81",[22,2.697,46,3.294,47,3.294,48,3.294]],["t/83",[21,4.231]],["t/85",[19,3.359,21,3.359]],["t/87",[21,2.785,49,3.857,50,3.857]],["t/91",[27,4.144,28,4.144]],["t/93",[51,3.559,52,4.652]],["t/95",[51,3.559,53,4.652]],["t/97",[26,2.785,31,3.158,51,2.951]],["t/99",[54,5.859]],["t/103",[55,5.219]],["t/105",[56,3.857,57,3.436,58,3.857]],["t/107",[1,1.994,7,1.8,59,3.294,60,2.52]],["t/109",[57,4.144,61,4.652]],["t/111",[2,3.686]],["t/113",[7,3.202]],["t/115",[45,4.144,62,3.559]],["t/117",[2,3.686]],["t/119",[7,3.202]],["t/121",[55,5.219]],["t/125",[63,3.436,64,3.857,65,3.436]],["t/129",[7,3.202]],["t/131",[0,2.52,66,3.294,67,3.294,68,3.294]],["t/135",[7,3.202]],["t/137",[1,2.816,2,2.926]],["t/139",[60,2.951,63,3.436,69,3.436]],["t/141",[70,3.857,71,3.857,72,3.857]],["t/143",[20,3.051,23,3.193]],["t/147",[7,3.202]],["t/149",[1,2.816,2,2.926]],["t/151",[37,4.144,38,3.359]],["t/153",[73,3.809,74,4.652]],["t/155",[20,3.051,23,3.193]],["t/159",[75,2.252,76,3.158,77,3.158]],["t/161",[75,2.252,78,3.436,79,2.951]],["t/163",[75,2.716,80,4.144]],["t/165",[75,2.716,81,4.144]],["t/169",[79,3.559,82,4.652]],["t/171",[79,3.559,83,4.652]],["t/175",[6,4.483]],["t/177",[84,4.231]],["t/179",[85,5.219]],["t/181",[7,3.202]],["t/185",[86,3.857,87,3.857,88,3.857]],["t/187",[89,4.652,90,4.652]],["t/189",[15,3.809,80,4.144]],["t/193",[91,5.859]],["t/195",[77,3.809,92,4.652]],["t/197",[62,4.483]],["t/199",[93,5.859]],["t/201",[94,5.859]],["t/203",[95,2.934,96,3.294,97,3.294,98,2.934]],["t/205",[99,3.559,100,4.144]],["t/207",[79,2.951,101,3.857,102,3.857]],["t/209",[81,4.144,103,4.652]],["t/213",[104,5.859]],["t/215",[78,5.219]],["t/217",[51,4.483]],["t/219",[62,4.483]],["t/223",[105,5.859]],["t/225",[76,3.158,106,3.436,107,3.436]],["t/227",[106,2.561,107,2.561,108,2.561,109,2.875,110,2.076]],["t/229",[111,2.875,112,2.875,113,2.875,114,2.076,115,2.561]],["t/231",[116,3.294,117,3.294,118,3.294,119,2.934]],["t/233",[5,2.52,120,2.934,121,3.294,122,3.294]],["t/237",[19,4.231]],["t/239",[20,3.843]],["t/241",[23,4.022]],["t/243",[24,4.798]],["t/245",[25,5.219]],["t/247",[22,4.798]],["t/249",[21,4.231]],["t/251",[0,4.483]],["t/253",[5,4.483]],["t/255",[17,3.809,26,3.359]],["t/257",[15,4.798]],["t/261",[23,2.648,62,2.951,69,3.436]],["t/263",[75,2.716,123,4.652]],["t/265",[75,2.716,124,4.652]],["t/267",[75,2.252,98,3.436,125,3.857]],["t/269",[19,2.379,75,1.923,119,2.934,126,3.294]],["t/271",[75,2.252,127,2.951,128,3.436]],["t/275",[42,3.436,129,3.857,130,3.857]],["t/277",[75,2.252,131,3.857,132,3.857]],["t/279",[133,5.859]],["t/281",[134,5.859]],["t/283",[110,2.785,135,3.857,136,3.857]],["t/285",[1,2.334,60,2.951,137,3.857]],["t/289",[8,3.559,127,3.559]],["t/291",[127,4.483]],["t/293",[127,3.559,138,4.652]],["t/295",[128,5.219]],["t/297",[139,5.859]],["t/301",[85,4.144,110,3.359]],["t/303",[140,5.859]],["t/305",[73,4.798]],["t/307",[141,5.859]],["t/309",[6,2.52,99,2.52,110,2.379,142,3.294]],["t/311",[114,2.785,115,3.436,143,3.436]],["t/313",[144,5.859]],["t/315",[114,2.785,145,3.857,146,3.857]],["t/317",[114,2.785,143,3.436,147,3.857]],["t/319",[114,2.785,148,3.857,149,3.857]],["t/321",[7,3.202]],["t/323",[1,2.334,60,2.951,150,3.857]],["t/329",[99,3.559,151,4.652]],["t/333",[7,3.202]],["t/335",[1,2.816,2,2.926]],["t/337",[99,3.559,152,4.652]],["t/339",[20,2.529,95,3.436,108,3.436]],["t/341",[20,1.885,26,2.076,76,2.354,153,2.875,154,2.875]],["t/343",[120,2.934,155,3.294,156,3.294,157,2.934]],["t/345",[157,5.219]],["t/347",[100,5.219]],["t/349",[24,4.798]],["t/351",[1,2.816,65,4.144]],["t/353",[158,4.652,159,4.652]],["t/355",[20,3.051,23,3.193]],["t/359",[19,3.359,84,3.359]],["t/361",[73,3.809,84,3.359]],["t/363",[160,4.652,161,4.652]],["t/365",[84,3.359,162,4.652]],["t/367",[77,4.798]],["t/369",[4,3.809,84,3.359]],["t/371",[7,2.543,110,3.359]]],"invertedIndex":[["",{"_index":75,"t":{"159":{"position":[[0,3]]},"161":{"position":[[0,3]]},"163":{"position":[[0,3]]},"165":{"position":[[0,3]]},"263":{"position":[[0,3]]},"265":{"position":[[0,3]]},"267":{"position":[[0,3]]},"269":{"position":[[0,3]]},"271":{"position":[[0,3]]},"277":{"position":[[5,1]]}}}],["1",{"_index":108,"t":{"227":{"position":[[0,2]]},"339":{"position":[[0,2]]}}}],["2",{"_index":153,"t":{"341":{"position":[[0,2]]}}}],["2a",{"_index":111,"t":{"229":{"position":[[0,3]]}}}],["2b",{"_index":116,"t":{"231":{"position":[[0,3]]}}}],["3",{"_index":120,"t":{"233":{"position":[[0,2]]},"343":{"position":[[0,2]]}}}],["3rd",{"_index":86,"t":{"185":{"position":[[0,3]]}}}],["action",{"_index":5,"t":{"9":{"position":[[0,7]]},"11":{"position":[[0,6]]},"233":{"position":[[38,7]]},"253":{"position":[[0,6]]}}}],["addit",{"_index":156,"t":{"343":{"position":[[8,10]]}}}],["administr",{"_index":54,"t":{"99":{"position":[[0,14]]}}}],["advanc",{"_index":125,"t":{"267":{"position":[[4,8]]}}}],["agent",{"_index":118,"t":{"231":{"position":[[18,5]]}}}],["alert",{"_index":15,"t":{"26":{"position":[[0,6]]},"189":{"position":[[10,8]]},"257":{"position":[[0,7]]}}}],["api",{"_index":78,"t":{"161":{"position":[[4,3]]},"215":{"position":[[0,3]]}}}],["architectur",{"_index":104,"t":{"213":{"position":[[0,12]]}}}],["authent",{"_index":115,"t":{"229":{"position":[[23,14]]},"311":{"position":[[0,14]]}}}],["authentik",{"_index":133,"t":{"279":{"position":[[0,9]]}}}],["author",{"_index":130,"t":{"275":{"position":[[19,11]]}}}],["auto",{"_index":67,"t":{"131":{"position":[[7,4]]}}}],["automat",{"_index":147,"t":{"317":{"position":[[0,9]]}}}],["aw",{"_index":49,"t":{"87":{"position":[[0,3]]}}}],["backup",{"_index":127,"t":{"271":{"position":[[4,6]]},"289":{"position":[[10,6]]},"291":{"position":[[0,7]]},"293":{"position":[[7,7]]}}}],["batch",{"_index":3,"t":{"7":{"position":[[0,5]]}}}],["binari",{"_index":141,"t":{"307":{"position":[[0,6]]}}}],["branch",{"_index":34,"t":{"59":{"position":[[0,6]]}}}],["build",{"_index":22,"t":{"37":{"position":[[12,5]]},"81":{"position":[[15,6]]},"247":{"position":[[0,5]]}}}],["builder",{"_index":21,"t":{"37":{"position":[[0,7]]},"83":{"position":[[0,8]]},"85":{"position":[[7,7]]},"87":{"position":[[8,7]]},"249":{"position":[[0,7]]}}}],["buildx",{"_index":48,"t":{"81":{"position":[[22,8]]}}}],["certif",{"_index":129,"t":{"275":{"position":[[7,11]]}}}],["changelog",{"_index":105,"t":{"223":{"position":[[0,9]]}}}],["cli",{"_index":77,"t":{"159":{"position":[[11,3]]},"195":{"position":[[10,3]]},"367":{"position":[[0,3]]}}}],["client",{"_index":79,"t":{"161":{"position":[[12,7]]},"169":{"position":[[5,6]]},"171":{"position":[[11,6]]},"207":{"position":[[24,6]]}}}],["command",{"_index":142,"t":{"309":{"position":[[24,7]]}}}],["commit",{"_index":16,"t":{"30":{"position":[[0,6]]}}}],["commun",{"_index":80,"t":{"163":{"position":[[4,9]]},"189":{"position":[[0,9]]}}}],["compos",{"_index":69,"t":{"139":{"position":[[9,7]]},"261":{"position":[[19,7]]}}}],["config",{"_index":1,"t":{"5":{"position":[[0,6]]},"67":{"position":[[0,6]]},"107":{"position":[[16,6]]},"137":{"position":[[0,6]]},"149":{"position":[[0,6]]},"285":{"position":[[8,6]]},"323":{"position":[[8,6]]},"335":{"position":[[0,6]]},"351":{"position":[[0,7]]}}}],["configur",{"_index":7,"t":{"15":{"position":[[0,13]]},"65":{"position":[[0,13]]},"107":{"position":[[0,11]]},"113":{"position":[[0,13]]},"119":{"position":[[0,13]]},"129":{"position":[[0,13]]},"135":{"position":[[0,13]]},"147":{"position":[[0,13]]},"181":{"position":[[0,9]]},"321":{"position":[[0,13]]},"333":{"position":[[0,13]]},"371":{"position":[[10,13]]}}}],["connect",{"_index":119,"t":{"231":{"position":[[24,10]]},"269":{"position":[[4,7]]}}}],["consist",{"_index":139,"t":{"297":{"position":[[0,11]]}}}],["contain",{"_index":73,"t":{"153":{"position":[[0,9]]},"305":{"position":[[0,9]]},"361":{"position":[[0,9]]}}}],["core",{"_index":109,"t":{"227":{"position":[[11,4]]}}}],["creat",{"_index":154,"t":{"341":{"position":[[3,6]]}}}],["cron",{"_index":13,"t":{"22":{"position":[[0,4]]}}}],["custom",{"_index":42,"t":{"75":{"position":[[0,6]]},"275":{"position":[[0,6]]}}}],["declar",{"_index":18,"t":{"32":{"position":[[8,12]]}}}],["default",{"_index":145,"t":{"315":{"position":[[0,7]]}}}],["defin",{"_index":63,"t":{"125":{"position":[[0,8]]},"139":{"position":[[0,8]]}}}],["depend",{"_index":91,"t":{"193":{"position":[[0,12]]}}}],["deploy",{"_index":23,"t":{"39":{"position":[[0,11]]},"143":{"position":[[0,9]]},"155":{"position":[[0,9]]},"241":{"position":[[0,10]]},"261":{"position":[[0,6]]},"355":{"position":[[0,9]]}}}],["devcontain",{"_index":93,"t":{"199":{"position":[[0,12]]}}}],["develop",{"_index":81,"t":{"165":{"position":[[4,11]]},"209":{"position":[[8,11]]}}}],["docker",{"_index":62,"t":{"115":{"position":[[0,6]]},"197":{"position":[[0,6]]},"219":{"position":[[0,6]]},"261":{"position":[[12,6]]}}}],["dockerfil",{"_index":36,"t":{"63":{"position":[[0,10]]}}}],["docsit",{"_index":103,"t":{"209":{"position":[[0,7]]}}}],["ec2",{"_index":50,"t":{"87":{"position":[[4,3]]}}}],["english",{"_index":10,"t":{"20":{"position":[[0,7]]}}}],["exampl",{"_index":6,"t":{"11":{"position":[[7,8]]},"32":{"position":[[0,7]]},"175":{"position":[[0,8]]},"309":{"position":[[0,7]]}}}],["execut",{"_index":4,"t":{"7":{"position":[[6,10]]},"55":{"position":[[0,10]]},"369":{"position":[[0,7]]}}}],["exist",{"_index":71,"t":{"141":{"position":[[10,8]]}}}],["ferretdb",{"_index":124,"t":{"265":{"position":[[4,8]]}}}],["field",{"_index":2,"t":{"5":{"position":[[7,6]]},"17":{"position":[[9,6]]},"67":{"position":[[7,6]]},"111":{"position":[[0,6]]},"117":{"position":[[0,6]]},"137":{"position":[[7,6]]},"149":{"position":[[7,6]]},"335":{"position":[[7,6]]}}}],["file",{"_index":60,"t":{"107":{"position":[[23,5]]},"139":{"position":[[17,5]]},"285":{"position":[[15,4]]},"323":{"position":[[15,5]]}}}],["filter",{"_index":35,"t":{"59":{"position":[[7,9]]}}}],["fix",{"_index":121,"t":{"233":{"position":[[3,3]]}}}],["format",{"_index":9,"t":{"19":{"position":[[9,7]]}}}],["frontend",{"_index":102,"t":{"207":{"position":[[15,8]]}}}],["get",{"_index":152,"t":{"337":{"position":[[0,7]]}}}],["git",{"_index":61,"t":{"109":{"position":[[0,3]]}}}],["global",{"_index":66,"t":{"131":{"position":[[0,6]]}}}],["group",{"_index":28,"t":{"49":{"position":[[5,6]]},"91":{"position":[[5,6]]}}}],["guid",{"_index":90,"t":{"187":{"position":[[10,6]]}}}],["health",{"_index":158,"t":{"353":{"position":[[0,6]]}}}],["histori",{"_index":162,"t":{"365":{"position":[[9,7]]}}}],["imag",{"_index":38,"t":{"69":{"position":[[0,5]]},"73":{"position":[[0,5]]},"75":{"position":[[7,5]]},"79":{"position":[[0,5]]},"151":{"position":[[0,5]]}}}],["import",{"_index":70,"t":{"141":{"position":[[0,9]]}}}],["initi",{"_index":95,"t":{"203":{"position":[[0,7]]},"339":{"position":[[3,10]]}}}],["instal",{"_index":85,"t":{"179":{"position":[[0,7]]},"301":{"position":[[0,7]]}}}],["ip",{"_index":136,"t":{"283":{"position":[[16,3]]}}}],["join",{"_index":155,"t":{"343":{"position":[[3,4]]}}}],["key",{"_index":114,"t":{"229":{"position":[[19,3]]},"311":{"position":[[19,3]]},"315":{"position":[[8,3]]},"317":{"position":[[10,3]]},"319":{"position":[[11,3]]}}}],["keycloak",{"_index":134,"t":{"281":{"position":[[0,8]]}}}],["komodo",{"_index":76,"t":{"159":{"position":[[4,6]]},"225":{"position":[[13,6]]},"341":{"position":[[32,6]]}}}],["komodo.execute_termin",{"_index":122,"t":{"233":{"position":[[11,23]]}}}],["languag",{"_index":12,"t":{"20":{"position":[[17,9]]}}}],["level",{"_index":52,"t":{"93":{"position":[[11,6]]}}}],["lifecycl",{"_index":74,"t":{"153":{"position":[[10,9]]}}}],["limit",{"_index":135,"t":{"283":{"position":[[0,5]]}}}],["local",{"_index":94,"t":{"201":{"position":[[0,5]]}}}],["locat",{"_index":146,"t":{"315":{"position":[[12,9]]}}}],["manag",{"_index":56,"t":{"105":{"position":[[0,8]]}}}],["manual",{"_index":44,"t":{"77":{"position":[[0,6]]}}}],["mongodb",{"_index":123,"t":{"263":{"position":[[4,7]]}}}],["monitor",{"_index":159,"t":{"353":{"position":[[7,10]]}}}],["more",{"_index":126,"t":{"269":{"position":[[12,4]]}}}],["mount",{"_index":137,"t":{"285":{"position":[[0,5]]}}}],["move",{"_index":112,"t":{"229":{"position":[[4,4]]}}}],["multi",{"_index":46,"t":{"81":{"position":[[0,5]]}}}],["multipl",{"_index":160,"t":{"363":{"position":[[0,8]]}}}],["name",{"_index":43,"t":{"75":{"position":[[13,4]]}}}],["natur",{"_index":11,"t":{"20":{"position":[[8,8]]}}}],["node",{"_index":157,"t":{"343":{"position":[[19,5]]},"345":{"position":[[0,5]]}}}],["oauth2",{"_index":132,"t":{"277":{"position":[[7,6]]}}}],["oidc",{"_index":131,"t":{"277":{"position":[[0,4]]}}}],["on",{"_index":96,"t":{"203":{"position":[[8,3]]}}}],["onboard",{"_index":148,"t":{"319":{"position":[[0,10]]}}}],["option",{"_index":149,"t":{"319":{"position":[[15,7]]}}}],["parti",{"_index":87,"t":{"185":{"position":[[4,5]]}}}],["pass",{"_index":150,"t":{"323":{"position":[[0,7]]}}}],["peripheri",{"_index":110,"t":{"227":{"position":[[20,9]]},"283":{"position":[[6,9]]},"301":{"position":[[8,9]]},"309":{"position":[[8,9]]},"371":{"position":[[0,9]]}}}],["permiss",{"_index":51,"t":{"93":{"position":[[0,10]]},"95":{"position":[[9,11]]},"97":{"position":[[0,13]]},"217":{"position":[[0,13]]}}}],["platform",{"_index":47,"t":{"81":{"position":[[6,8]]}}}],["post",{"_index":89,"t":{"187":{"position":[[0,5]]}}}],["postfix",{"_index":41,"t":{"73":{"position":[[10,7]]}}}],["procedur",{"_index":0,"t":{"3":{"position":[[0,10]]},"43":{"position":[[0,9]]},"131":{"position":[[19,9]]},"251":{"position":[[0,9]]}}}],["project",{"_index":72,"t":{"141":{"position":[[19,8]]}}}],["provid",{"_index":57,"t":{"105":{"position":[[9,9]]},"109":{"position":[[4,9]]}}}],["public",{"_index":113,"t":{"229":{"position":[[12,6]]}}}],["quick",{"_index":151,"t":{"329":{"position":[[0,5]]}}}],["rebuild",{"_index":101,"t":{"207":{"position":[[0,10]]}}}],["registri",{"_index":45,"t":{"79":{"position":[[6,8]]},"115":{"position":[[7,10]]}}}],["remot",{"_index":138,"t":{"293":{"position":[[0,6]]}}}],["repo",{"_index":25,"t":{"45":{"position":[[0,4]]},"245":{"position":[[0,4]]}}}],["resourc",{"_index":26,"t":{"47":{"position":[[0,8]]},"55":{"position":[[14,8]]},"97":{"position":[[17,8]]},"255":{"position":[[0,8]]},"341":{"position":[[20,8]]}}}],["restor",{"_index":128,"t":{"271":{"position":[[15,7]]},"295":{"position":[[0,7]]}}}],["revers",{"_index":117,"t":{"231":{"position":[[4,9]]}}}],["rotat",{"_index":143,"t":{"311":{"position":[[23,8]]},"317":{"position":[[14,8]]}}}],["runnabl",{"_index":92,"t":{"195":{"position":[[0,9]]}}}],["rust",{"_index":82,"t":{"169":{"position":[[0,4]]}}}],["schedul",{"_index":8,"t":{"17":{"position":[[0,8]]},"19":{"position":[[0,8]]},"24":{"position":[[8,9]]},"289":{"position":[[0,9]]}}}],["secret",{"_index":65,"t":{"125":{"position":[[23,7]]},"351":{"position":[[12,7]]}}}],["server",{"_index":19,"t":{"33":{"position":[[0,6]]},"85":{"position":[[0,6]]},"237":{"position":[[0,6]]},"269":{"position":[[17,7]]},"359":{"position":[[0,6]]}}}],["servic",{"_index":100,"t":{"205":{"position":[[13,8]]},"347":{"position":[[0,8]]}}}],["session",{"_index":161,"t":{"363":{"position":[[9,8]]}}}],["set",{"_index":32,"t":{"57":{"position":[[0,7]]}}}],["setup",{"_index":98,"t":{"203":{"position":[[17,5]]},"267":{"position":[[13,5]]}}}],["sourc",{"_index":37,"t":{"63":{"position":[[11,7]]},"151":{"position":[[6,6]]}}}],["specif",{"_index":53,"t":{"95":{"position":[[0,8]]}}}],["stack",{"_index":24,"t":{"41":{"position":[[0,5]]},"243":{"position":[[0,5]]},"349":{"position":[[0,6]]}}}],["start",{"_index":99,"t":{"205":{"position":[[0,8]]},"309":{"position":[[18,5]]},"329":{"position":[[6,5]]},"337":{"position":[[8,7]]}}}],["swarm",{"_index":20,"t":{"35":{"position":[[0,5]]},"143":{"position":[[15,5]]},"155":{"position":[[15,5]]},"239":{"position":[[0,5]]},"339":{"position":[[18,5]]},"341":{"position":[[14,5]]},"355":{"position":[[15,5]]}}}],["sync",{"_index":17,"t":{"30":{"position":[[10,5]]},"47":{"position":[[9,4]]},"255":{"position":[[9,4]]}}}],["systemd",{"_index":140,"t":{"303":{"position":[[0,7]]}}}],["tag",{"_index":40,"t":{"69":{"position":[[21,7]]},"71":{"position":[[0,3]]},"73":{"position":[[6,3]]}}}],["termin",{"_index":84,"t":{"177":{"position":[[0,9]]},"359":{"position":[[7,9]]},"361":{"position":[[10,9]]},"365":{"position":[[0,8]]},"369":{"position":[[8,8]]}}}],["time",{"_index":97,"t":{"203":{"position":[[12,4]]}}}],["tool",{"_index":88,"t":{"185":{"position":[[10,5]]}}}],["type",{"_index":31,"t":{"55":{"position":[[23,4]]},"71":{"position":[[4,5]]},"97":{"position":[[26,4]]}}}],["typescript",{"_index":83,"t":{"171":{"position":[[0,10]]}}}],["ui",{"_index":58,"t":{"105":{"position":[[26,2]]}}}],["up",{"_index":33,"t":{"57":{"position":[[8,2]]}}}],["updat",{"_index":68,"t":{"131":{"position":[[12,6]]}}}],["upgrad",{"_index":106,"t":{"225":{"position":[[0,9]]},"227":{"position":[[3,7]]}}}],["url",{"_index":30,"t":{"53":{"position":[[8,3]]}}}],["usag",{"_index":55,"t":{"103":{"position":[[0,5]]},"121":{"position":[[0,5]]}}}],["user",{"_index":27,"t":{"49":{"position":[[0,4]]},"91":{"position":[[0,4]]}}}],["v2",{"_index":107,"t":{"225":{"position":[[20,2]]},"227":{"position":[[33,2]]}}}],["variabl",{"_index":64,"t":{"125":{"position":[[9,9]]}}}],["version",{"_index":39,"t":{"69":{"position":[[6,10]]},"77":{"position":[[7,10]]}}}],["via",{"_index":59,"t":{"107":{"position":[[12,3]]}}}],["view",{"_index":14,"t":{"24":{"position":[[0,7]]}}}],["webhook",{"_index":29,"t":{"53":{"position":[[0,7]]},"57":{"position":[[13,7]]}}}],["work",{"_index":144,"t":{"313":{"position":[[7,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":1,"t":"Komodo offers Procedure and Action resources for orchestrating multi-resource workflows. Both can be run on a schedule","s":"Procedures and Actions","u":"/docs/automate/procedures","p":1},{"i":13,"t":"Komodo can run Procedures and Actions automatically on a configured schedule.","s":"Schedules","u":"/docs/automate/schedules","p":13},{"i":28,"t":"Komodo is able to create, update, delete, and deploy resources declared in TOML files by diffing them against the existing resources,","s":"Sync Resources","u":"/docs/automate/sync-resources","p":28},{"i":51,"t":"Komodo resources can be triggered by incoming webhooks from your git provider. GitHub and GitLab authentication types are supported, which also covers Gitea, Forgejo, and other compatible providers.","s":"Webhooks","u":"/docs/automate/webhooks","p":51},{"i":61,"t":"Komodo builds Docker images by running docker build and pushing the result to a configured image registry.","s":"Build","u":"/docs/build","p":61},{"i":89,"t":"Komodo has a granular, layer-based permissioning system to provide non-admin users access only to intended Resources.","s":"Permissioning","u":"/docs/configuration/permissioning","p":89},{"i":101,"t":"Providers allow Komodo to authenticate against external git providers and docker registries on behalf of your resources. Once configured, provider accounts are available to attach to Builds, Repos, Stacks, and Resource Syncs.","s":"Providers","u":"/docs/configuration/providers","p":101},{"i":123,"t":"A variable / secret in Komodo is just a key-value pair.","s":"Variables and Secrets","u":"/docs/configuration/variables","p":123},{"i":127,"t":"Komodo can automatically check for newer Docker image digests and redeploy resources when updates are found.","s":"Automatic Updates","u":"/docs/deploy/auto-update","p":127},{"i":133,"t":"Komodo can deploy Docker Compose projects through the Stack resource.","s":"Docker Compose","u":"/docs/deploy/compose","p":133},{"i":145,"t":"Komodo can deploy Docker containers through the Deployment resource. It translates your configuration into a docker run command and executes it on the target Server via the Periphery agent.","s":"Containers","u":"/docs/deploy/containers","p":145},{"i":157,"t":"Komodo exposes a full REST and WebSocket API, typed CLI, and client libraries in Rust and TypeScript.","s":"Ecosystem","u":"/docs/ecosystem","p":157},{"i":167,"t":"Komodo Core exposes an RPC-like HTTP API to read data, write configuration, and execute actions.","s":"API and Clients","u":"/docs/ecosystem/api","p":167},{"i":173,"t":"The Komodo CLI, km, can be used to:","s":"Komodo CLI","u":"/docs/ecosystem/cli","p":173},{"i":183,"t":"Community-built tools, guides, and alerter integrations for Komodo.","s":"Community","u":"/docs/ecosystem/community","p":183},{"i":191,"t":"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.","s":"Development","u":"/docs/ecosystem/development","p":191},{"i":211,"t":"Komodo is a web application for managing servers, builds, deployments, and automated procedures.","s":"What is Komodo?","u":"/docs/intro","p":211},{"i":221,"t":"Komodo v2 is a major release with significant architectural changes and new features.","s":"v2.0.0","u":"/docs/releases/v2.0.0","p":221},{"i":235,"t":"Komodo is extendible through the Resource abstraction. Entities like Server, Deployment, and Stack are all Komodo Resources.","s":"Resources","u":"/docs/resources","p":235},{"i":259,"t":"To run Komodo, you will need Docker. See the docker install docs.","s":"Setup Komodo Core","u":"/docs/setup","p":259},{"i":273,"t":"Additional configuration options for Komodo Core and Periphery, including custom certificate authorities, OAuth/OIDC providers, and mounted config files.","s":"Advanced Setup","u":"/docs/setup/advanced","p":273},{"i":287,"t":"Komodo can automatically back up its database on a schedule and restore from any previous snapshot. Backups are gzip-compressed and stored on disk or a remote server, and by default the most recent 14 backups are stored. The backup and restore operations are handled by the Komodo CLI, which is packaged in the Core image for convenience.","s":"Backup and Restore","u":"/docs/setup/backup","p":287},{"i":299,"t":"Every server you want to manage with Komodo needs the Periphery agent installed.","s":"Connect More Servers","u":"/docs/setup/connect-servers","p":299},{"i":325,"t":"- If you setup Komodo using Postgres or Sqlite options prior to Komodo v1.18.0, you are using FerretDB v1.","s":"FerretDB","u":"/docs/setup/ferretdb","p":325},{"i":327,"t":"MongoDB is the recommended database for Komodo. It stores all resource configuration, user accounts, audit logs, and system state. Komodo Core communicates with it directly using the MongoDB driver.","s":"MongoDB","u":"/docs/setup/mongo","p":327},{"i":331,"t":"Komodo can manage Docker Swarm clusters through the Swarm resource. Connect your swarm manager nodes and manage nodes, services, stacks, configs, and secrets from a single interface.","s":"Swarm","u":"/docs/swarm","p":331},{"i":357,"t":"Komodo provides browser-based terminal sessions for servers and containers. Sessions are persistent,","s":"Terminals","u":"/docs/terminals","p":357}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,0.018,1,2.984,2,2.12,3,2.12,4,1.24,5,2.984,6,2.984,7,2.984,8,2.984,9,1.659,10,2.12]],["t/13",[0,0.022,2,2.541,3,2.541,9,1.989,10,2.541,11,2.541,12,1.61]],["t/28",[0,0.018,4,1.213,13,2.889,14,2.384,15,2.889,16,1.606,17,2.889,18,2.889,19,2.384,20,2.889,21,2.384,22,2.889]],["t/51",[0,0.016,4,0.778,23,2.56,24,2.56,25,2.56,26,2.113,27,2.037,28,2.56,29,2.56,30,2.113,31,2.113,32,2.56,33,2.56,34,2.56,35,2.56,36,2.56]],["t/61",[0,0.018,9,1.659,12,1.343,37,2.898,38,1.836,39,2.898,40,2.984,41,2.984,42,2.463]],["t/89",[0,0.018,4,0.878,27,1.606,43,2.889,44,2.889,45,2.384,46,2.889,47,2.384,48,2.889,49,2.889,50,2.384,51,2.889,52,2.889]],["t/101",[0,0.013,4,0.993,12,0.984,21,1.805,26,1.805,27,2.173,30,1.805,37,1.554,38,0.984,42,1.805,53,2.187,54,2.187,55,2.187,56,2.187,57,1.805,58,2.187,59,2.187,60,2.187,61,1.366,62,2.187]],["t/123",[0,0.022,63,3.577,64,3.577,65,2.952,66,3.577,67,3.577,68,3.577]],["t/127",[0,0.019,4,0.938,11,2.193,14,2.548,38,1.389,39,2.193,69,3.086,70,3.086,71,3.086,72,3.086,73,3.086]],["t/133",[0,0.021,4,1.046,16,1.913,38,1.548,61,2.149,74,3.44,75,3.44,76,2.149]],["t/145",[0,0.015,4,0.757,9,1.384,12,1.12,16,1.997,38,1.616,76,1.555,77,2.055,78,2.489,79,2.489,80,2.055,81,2.489,82,1.242,83,2.489,84,1.769,85,2.055]],["t/157",[0,0.018,31,2.463,86,2.463,87,2.984,88,2.984,89,2.984,90,2.463,91,2.12,92,2.984,93,2.984,94,2.984,95,2.984]],["t/167",[0,0.018,3,2.12,12,1.343,80,2.463,86,2.463,90,2.463,96,1.864,97,2.984,98,2.984,99,2.984,100,2.984,101,2.984]],["t/173",[0,0.025,91,2.885,102,4.06,103,2.885]],["t/183",[0,0.022,104,2.952,105,3.577,106,3.577,107,3.577,108,3.577,109,3.577]],["t/191",[0,0.026,110,3.086,111,3.086,112,3.086,113,3.086,114,3.086,115,3.086,116,2.548,117,3.086,118,3.086]],["t/211",[0,0.02,2,2.354,16,1.842,37,2.354,82,1.653,119,3.313,120,3.313,121,2.354,122,3.313]],["t/221",[0,0.02,123,3.313,124,3.313,125,3.313,126,3.313,127,3.313,128,3.313,129,3.313,130,3.313]],["t/235",[0,0.026,4,1.269,16,1.716,61,1.928,76,1.928,82,1.54,131,3.086,132,3.086,133,3.086]],["t/259",[0,0.021,9,1.913,38,2.018,134,2.84,135,3.44,136,2.84,137,3.44]],["t/273",[0,0.017,12,1.222,19,2.241,27,1.509,84,1.929,96,1.696,138,2.714,139,2.241,140,2.714,141,2.714,142,2.714,143,2.714,144,2.714,145,2.714,146,2.241]],["t/287",[0,0.018,10,1.301,11,1.301,39,1.301,82,0.914,91,1.301,96,1.144,116,1.512,147,1.832,148,1.512,149,2.852,150,1.832,151,1.832,152,3.502,153,1.832,154,1.832,155,2.354,156,1.832,157,1.832,158,1.832,159,1.832,160,1.832,161,1.832,162,1.832,163,1.832,164,1.832]],["t/299",[0,0.021,82,1.717,84,2.444,85,2.84,121,2.444,134,2.84,136,2.84,165,3.44]],["t/325",[0,0.025,103,2.898,139,2.463,166,2.984,167,2.984,168,2.984,169,2.984,170,2.984,171,2.984,172,2.984]],["t/327",[0,0.021,4,0.717,12,1.062,47,1.947,50,1.947,57,1.947,96,1.474,103,1.676,104,1.947,148,1.947,155,1.947,173,3.453,174,2.359,175,2.359,176,2.359,177,2.359,178,2.359,179,2.359]],["t/331",[0,0.015,4,0.717,38,1.062,61,1.474,65,1.947,76,1.474,121,2.902,146,1.947,180,4.084,181,2.359,182,2.359,183,3.453,184,2.359,185,2.359,186,2.359]],["t/357",[0,0.02,27,1.777,45,2.638,77,2.638,82,1.595,187,3.196,188,3.196,189,4.272,190,3.196]]],"invertedIndex":[["",{"_index":64,"t":{"123":{"position":[[11,1]]}}}],["14",{"_index":160,"t":{"287":{"position":[[198,2]]}}}],["abstract",{"_index":132,"t":{"235":{"position":[[42,12]]}}}],["access",{"_index":51,"t":{"89":{"position":[[83,6]]}}}],["account",{"_index":57,"t":{"101":{"position":[[147,8]]},"327":{"position":[[91,9]]}}}],["action",{"_index":3,"t":{"1":{"position":[[28,6]]},"13":{"position":[[30,7]]},"167":{"position":[[88,8]]}}}],["addit",{"_index":138,"t":{"273":{"position":[[0,10]]}}}],["admin",{"_index":49,"t":{"89":{"position":[[71,5]]}}}],["against",{"_index":21,"t":{"28":{"position":[[102,7]]},"101":{"position":[[39,7]]}}}],["agent",{"_index":85,"t":{"145":{"position":[[183,6]]},"299":{"position":[[64,5]]}}}],["alert",{"_index":108,"t":{"183":{"position":[[35,7]]}}}],["allow",{"_index":53,"t":{"101":{"position":[[10,5]]}}}],["api",{"_index":90,"t":{"157":{"position":[[41,4]]},"167":{"position":[[37,3]]}}}],["applic",{"_index":120,"t":{"211":{"position":[[16,11]]}}}],["architectur",{"_index":127,"t":{"221":{"position":[[46,13]]}}}],["attach",{"_index":59,"t":{"101":{"position":[[173,6]]}}}],["audit",{"_index":175,"t":{"327":{"position":[[101,5]]}}}],["authent",{"_index":30,"t":{"51":{"position":[[97,14]]},"101":{"position":[[26,12]]}}}],["author",{"_index":143,"t":{"273":{"position":[[93,12]]}}}],["autom",{"_index":122,"t":{"211":{"position":[[75,9]]}}}],["automat",{"_index":11,"t":{"13":{"position":[[38,13]]},"127":{"position":[[11,13]]},"287":{"position":[[11,13]]}}}],["avail",{"_index":58,"t":{"101":{"position":[[160,9]]}}}],["back",{"_index":147,"t":{"287":{"position":[[25,4]]}}}],["backup",{"_index":152,"t":{"287":{"position":[[100,7],[201,7],[225,6]]}}}],["base",{"_index":45,"t":{"89":{"position":[[29,5]]},"357":{"position":[[24,5]]}}}],["behalf",{"_index":55,"t":{"101":{"position":[[95,6]]}}}],["both",{"_index":8,"t":{"1":{"position":[[89,4]]}}}],["browser",{"_index":187,"t":{"357":{"position":[[16,7]]}}}],["build",{"_index":37,"t":{"61":{"position":[[7,6],[46,5]]},"101":{"position":[[183,7]]},"211":{"position":[[50,7]]}}}],["built",{"_index":105,"t":{"183":{"position":[[10,5]]}}}],["certif",{"_index":142,"t":{"273":{"position":[[81,11]]}}}],["chang",{"_index":128,"t":{"221":{"position":[[60,7]]}}}],["check",{"_index":69,"t":{"127":{"position":[[25,5]]}}}],["cli",{"_index":91,"t":{"157":{"position":[[52,4]]},"173":{"position":[[11,4]]},"287":{"position":[[281,4]]}}}],["client",{"_index":92,"t":{"157":{"position":[[61,6]]}}}],["cluster",{"_index":181,"t":{"331":{"position":[[31,8]]}}}],["command",{"_index":79,"t":{"145":{"position":[[120,7]]}}}],["commun",{"_index":104,"t":{"183":{"position":[[0,9]]},"327":{"position":[[143,12]]}}}],["compat",{"_index":36,"t":{"51":{"position":[[177,10]]}}}],["compos",{"_index":74,"t":{"133":{"position":[[25,7]]}}}],["compress",{"_index":154,"t":{"287":{"position":[[117,10]]}}}],["config",{"_index":146,"t":{"273":{"position":[[140,6]]},"331":{"position":[[137,8]]}}}],["configur",{"_index":12,"t":{"13":{"position":[[57,10]]},"61":{"position":[[80,10]]},"101":{"position":[[126,11]]},"145":{"position":[[88,13]]},"167":{"position":[[61,14]]},"273":{"position":[[11,13]]},"327":{"position":[[71,14]]}}}],["connect",{"_index":182,"t":{"331":{"position":[[68,7]]}}}],["contain",{"_index":77,"t":{"145":{"position":[[25,10]]},"357":{"position":[[64,11]]}}}],["contribut",{"_index":111,"t":{"191":{"position":[[22,10]]}}}],["conveni",{"_index":164,"t":{"287":{"position":[[326,12]]}}}],["core",{"_index":96,"t":{"167":{"position":[[7,4]]},"273":{"position":[[44,4]]},"287":{"position":[[311,4]]},"327":{"position":[[138,4]]}}}],["cover",{"_index":33,"t":{"51":{"position":[[144,6]]}}}],["creat",{"_index":13,"t":{"28":{"position":[[18,7]]}}}],["custom",{"_index":141,"t":{"273":{"position":[[74,6]]}}}],["data",{"_index":100,"t":{"167":{"position":[[49,5]]}}}],["databas",{"_index":148,"t":{"287":{"position":[[37,8]]},"327":{"position":[[27,8]]}}}],["declar",{"_index":17,"t":{"28":{"position":[[63,8]]}}}],["default",{"_index":158,"t":{"287":{"position":[[174,7]]}}}],["delet",{"_index":15,"t":{"28":{"position":[[34,7]]}}}],["deploy",{"_index":16,"t":{"28":{"position":[[46,6]]},"133":{"position":[[11,6]]},"145":{"position":[[11,6],[48,10]]},"211":{"position":[[58,12]]},"235":{"position":[[77,11]]}}}],["develop",{"_index":117,"t":{"191":{"position":[[102,11]]}}}],["dif",{"_index":20,"t":{"28":{"position":[[89,7]]}}}],["digest",{"_index":71,"t":{"127":{"position":[[54,7]]}}}],["directli",{"_index":178,"t":{"327":{"position":[[164,8]]}}}],["disk",{"_index":156,"t":{"287":{"position":[[142,4]]}}}],["doc",{"_index":137,"t":{"259":{"position":[[60,5]]}}}],["docker",{"_index":38,"t":{"61":{"position":[[14,6],[39,6]]},"101":{"position":[[74,6]]},"127":{"position":[[41,6]]},"133":{"position":[[18,6]]},"145":{"position":[[18,6],[109,6]]},"259":{"position":[[29,7],[45,6]]},"331":{"position":[[18,6]]}}}],["driver",{"_index":179,"t":{"327":{"position":[[191,7]]}}}],["entiti",{"_index":133,"t":{"235":{"position":[[55,8]]}}}],["environ",{"_index":118,"t":{"191":{"position":[[114,12]]}}}],["execut",{"_index":80,"t":{"145":{"position":[[132,8]]},"167":{"position":[[80,7]]}}}],["exist",{"_index":22,"t":{"28":{"position":[[114,8]]}}}],["expos",{"_index":86,"t":{"157":{"position":[[7,7]]},"167":{"position":[[12,7]]}}}],["extend",{"_index":131,"t":{"235":{"position":[[10,10]]}}}],["extern",{"_index":54,"t":{"101":{"position":[[47,8]]}}}],["featur",{"_index":130,"t":{"221":{"position":[[76,9]]}}}],["ferretdb",{"_index":171,"t":{"325":{"position":[[94,8]]}}}],["file",{"_index":19,"t":{"28":{"position":[[80,5]]},"273":{"position":[[147,6]]}}}],["forgejo",{"_index":35,"t":{"51":{"position":[[158,8]]}}}],["found",{"_index":73,"t":{"127":{"position":[[102,6]]}}}],["full",{"_index":87,"t":{"157":{"position":[[17,4]]}}}],["git",{"_index":26,"t":{"51":{"position":[[65,3]]},"101":{"position":[[56,3]]}}}],["gitea",{"_index":34,"t":{"51":{"position":[[151,6]]}}}],["github",{"_index":28,"t":{"51":{"position":[[79,6]]}}}],["gitlab",{"_index":29,"t":{"51":{"position":[[90,6]]}}}],["granular",{"_index":43,"t":{"89":{"position":[[13,9]]}}}],["guid",{"_index":107,"t":{"183":{"position":[[23,7]]}}}],["gzip",{"_index":153,"t":{"287":{"position":[[112,4]]}}}],["handl",{"_index":162,"t":{"287":{"position":[[259,7]]}}}],["http",{"_index":98,"t":{"167":{"position":[[32,4]]}}}],["imag",{"_index":39,"t":{"61":{"position":[[21,6],[91,5]]},"127":{"position":[[48,5]]},"287":{"position":[[316,5]]}}}],["includ",{"_index":140,"t":{"273":{"position":[[64,9]]}}}],["incom",{"_index":24,"t":{"51":{"position":[[37,8]]}}}],["instal",{"_index":136,"t":{"259":{"position":[[52,7]]},"299":{"position":[[70,10]]}}}],["integr",{"_index":109,"t":{"183":{"position":[[43,12]]}}}],["intend",{"_index":52,"t":{"89":{"position":[[98,8]]}}}],["interfac",{"_index":186,"t":{"331":{"position":[[172,10]]}}}],["key",{"_index":66,"t":{"123":{"position":[[40,3]]}}}],["km",{"_index":102,"t":{"173":{"position":[[16,3]]}}}],["komodo",{"_index":0,"t":{"1":{"position":[[0,6]]},"13":{"position":[[0,6]]},"28":{"position":[[0,6]]},"51":{"position":[[0,6]]},"61":{"position":[[0,6]]},"89":{"position":[[0,6]]},"101":{"position":[[16,6]]},"123":{"position":[[23,6]]},"127":{"position":[[0,6]]},"133":{"position":[[0,6]]},"145":{"position":[[0,6]]},"157":{"position":[[0,6]]},"167":{"position":[[0,6]]},"173":{"position":[[4,6]]},"183":{"position":[[60,7]]},"191":{"position":[[36,7],[95,6]]},"211":{"position":[[0,6]]},"221":{"position":[[0,6]]},"235":{"position":[[0,6],[107,6]]},"259":{"position":[[7,7]]},"273":{"position":[[37,6]]},"287":{"position":[[0,6],[274,6]]},"299":{"position":[[37,6]]},"325":{"position":[[15,6],[64,6]]},"327":{"position":[[40,7],[131,6]]},"331":{"position":[[0,6]]},"357":{"position":[[0,6]]}}}],["launch",{"_index":113,"t":{"191":{"position":[[59,9]]}}}],["layer",{"_index":44,"t":{"89":{"position":[[23,5]]}}}],["librari",{"_index":93,"t":{"157":{"position":[[68,9]]}}}],["log",{"_index":176,"t":{"327":{"position":[[107,5]]}}}],["look",{"_index":110,"t":{"191":{"position":[[11,7]]}}}],["major",{"_index":124,"t":{"221":{"position":[[15,5]]}}}],["manag",{"_index":121,"t":{"211":{"position":[[32,8]]},"299":{"position":[[25,6]]},"331":{"position":[[11,6],[87,7],[105,6]]}}}],["mongodb",{"_index":173,"t":{"327":{"position":[[0,7],[183,7]]}}}],["mount",{"_index":145,"t":{"273":{"position":[[132,7]]}}}],["multi",{"_index":6,"t":{"1":{"position":[[63,5]]}}}],["need",{"_index":134,"t":{"259":{"position":[[24,4]]},"299":{"position":[[44,5]]}}}],["new",{"_index":129,"t":{"221":{"position":[[72,3]]}}}],["newer",{"_index":70,"t":{"127":{"position":[[35,5]]}}}],["node",{"_index":183,"t":{"331":{"position":[[95,5],[112,6]]}}}],["non",{"_index":48,"t":{"89":{"position":[[67,3]]}}}],["oauth/oidc",{"_index":144,"t":{"273":{"position":[[106,10]]}}}],["offer",{"_index":1,"t":{"1":{"position":[[7,6]]}}}],["onc",{"_index":56,"t":{"101":{"position":[[121,4]]}}}],["oper",{"_index":161,"t":{"287":{"position":[[244,10]]}}}],["option",{"_index":139,"t":{"273":{"position":[[25,7]]},"325":{"position":[[47,7]]}}}],["orchestr",{"_index":5,"t":{"1":{"position":[[49,13]]}}}],["packag",{"_index":163,"t":{"287":{"position":[[295,8]]}}}],["page",{"_index":112,"t":{"191":{"position":[[49,4]]}}}],["pair",{"_index":68,"t":{"123":{"position":[[50,5]]}}}],["peripheri",{"_index":84,"t":{"145":{"position":[[173,9]]},"273":{"position":[[53,10]]},"299":{"position":[[54,9]]}}}],["permiss",{"_index":46,"t":{"89":{"position":[[35,13]]}}}],["persist",{"_index":190,"t":{"357":{"position":[[89,11]]}}}],["point",{"_index":114,"t":{"191":{"position":[[69,5]]}}}],["postgr",{"_index":167,"t":{"325":{"position":[[28,8]]}}}],["previou",{"_index":150,"t":{"287":{"position":[[81,8]]}}}],["prior",{"_index":169,"t":{"325":{"position":[[55,5]]}}}],["procedur",{"_index":2,"t":{"1":{"position":[[14,9]]},"13":{"position":[[15,10]]},"211":{"position":[[85,11]]}}}],["project",{"_index":75,"t":{"133":{"position":[[33,8]]}}}],["provid",{"_index":27,"t":{"51":{"position":[[69,9],[188,10]]},"89":{"position":[[59,7]]},"101":{"position":[[0,9],[60,9],[138,8]]},"273":{"position":[[117,10]]},"357":{"position":[[7,8]]}}}],["push",{"_index":40,"t":{"61":{"position":[[56,7]]}}}],["read",{"_index":99,"t":{"167":{"position":[[44,4]]}}}],["recent",{"_index":159,"t":{"287":{"position":[[191,6]]}}}],["recommend",{"_index":174,"t":{"327":{"position":[[15,11]]}}}],["redeploy",{"_index":72,"t":{"127":{"position":[[66,8]]}}}],["registri",{"_index":42,"t":{"61":{"position":[[97,9]]},"101":{"position":[[81,10]]}}}],["releas",{"_index":125,"t":{"221":{"position":[[21,7]]}}}],["remot",{"_index":157,"t":{"287":{"position":[[152,6]]}}}],["repo",{"_index":60,"t":{"101":{"position":[[191,6]]}}}],["resourc",{"_index":4,"t":{"1":{"position":[[35,9],[69,8]]},"28":{"position":[[53,9],[123,10]]},"51":{"position":[[7,9]]},"89":{"position":[[107,10]]},"101":{"position":[[110,10],[210,8]]},"127":{"position":[[75,9]]},"133":{"position":[[60,9]]},"145":{"position":[[59,9]]},"235":{"position":[[33,8],[114,10]]},"327":{"position":[[62,8]]},"331":{"position":[[58,9]]}}}],["rest",{"_index":88,"t":{"157":{"position":[[22,4]]}}}],["restor",{"_index":149,"t":{"287":{"position":[[64,7],[236,7]]}}}],["result",{"_index":41,"t":{"61":{"position":[[68,6]]}}}],["rpc",{"_index":97,"t":{"167":{"position":[[23,3]]}}}],["run",{"_index":9,"t":{"1":{"position":[[101,3]]},"13":{"position":[[11,3]]},"61":{"position":[[31,7]]},"145":{"position":[[116,3]]},"259":{"position":[[3,3]]}}}],["rust",{"_index":94,"t":{"157":{"position":[[81,4]]}}}],["schedul",{"_index":10,"t":{"1":{"position":[[110,8]]},"13":{"position":[[68,9]]},"287":{"position":[[51,8]]}}}],["secret",{"_index":65,"t":{"123":{"position":[[13,6]]},"331":{"position":[[150,7]]}}}],["see",{"_index":135,"t":{"259":{"position":[[37,3]]}}}],["server",{"_index":82,"t":{"145":{"position":[[158,6]]},"211":{"position":[[41,8]]},"235":{"position":[[69,7]]},"287":{"position":[[159,7]]},"299":{"position":[[6,6]]},"357":{"position":[[52,7]]}}}],["servic",{"_index":184,"t":{"331":{"position":[[119,9]]}}}],["session",{"_index":189,"t":{"357":{"position":[[39,8],[76,8]]}}}],["set",{"_index":115,"t":{"191":{"position":[[79,7]]}}}],["setup",{"_index":166,"t":{"325":{"position":[[9,5]]}}}],["signific",{"_index":126,"t":{"221":{"position":[[34,11]]}}}],["singl",{"_index":185,"t":{"331":{"position":[[165,6]]}}}],["snapshot",{"_index":151,"t":{"287":{"position":[[90,9]]}}}],["sqlite",{"_index":168,"t":{"325":{"position":[[40,6]]}}}],["stack",{"_index":61,"t":{"101":{"position":[[198,7]]},"133":{"position":[[54,5]]},"235":{"position":[[93,5]]},"331":{"position":[[129,7]]}}}],["state",{"_index":177,"t":{"327":{"position":[[124,6]]}}}],["store",{"_index":155,"t":{"287":{"position":[[132,6],[213,7]]},"327":{"position":[[51,6]]}}}],["support",{"_index":32,"t":{"51":{"position":[[122,10]]}}}],["swarm",{"_index":180,"t":{"331":{"position":[[25,5],[52,5],[81,5]]}}}],["sync",{"_index":62,"t":{"101":{"position":[[219,6]]}}}],["system",{"_index":47,"t":{"89":{"position":[[49,6]]},"327":{"position":[[117,6]]}}}],["target",{"_index":81,"t":{"145":{"position":[[151,6]]}}}],["termin",{"_index":188,"t":{"357":{"position":[[30,8]]}}}],["through",{"_index":76,"t":{"133":{"position":[[42,7]]},"145":{"position":[[36,7]]},"235":{"position":[[21,7]]},"331":{"position":[[40,7]]}}}],["toml",{"_index":18,"t":{"28":{"position":[[75,4]]}}}],["tool",{"_index":106,"t":{"183":{"position":[[16,6]]}}}],["translat",{"_index":78,"t":{"145":{"position":[[72,10]]}}}],["trigger",{"_index":23,"t":{"51":{"position":[[24,9]]}}}],["type",{"_index":31,"t":{"51":{"position":[[112,5]]},"157":{"position":[[46,5]]}}}],["typescript",{"_index":95,"t":{"157":{"position":[[90,11]]}}}],["up",{"_index":116,"t":{"191":{"position":[[87,2]]},"287":{"position":[[30,2]]}}}],["updat",{"_index":14,"t":{"28":{"position":[[26,7]]},"127":{"position":[[90,7]]}}}],["us",{"_index":103,"t":{"173":{"position":[[27,4]]},"325":{"position":[[22,5],[88,5]]},"327":{"position":[[173,5]]}}}],["user",{"_index":50,"t":{"89":{"position":[[77,5]]},"327":{"position":[[86,4]]}}}],["v1",{"_index":172,"t":{"325":{"position":[[103,3]]}}}],["v1.18.0",{"_index":170,"t":{"325":{"position":[[71,8]]}}}],["v2",{"_index":123,"t":{"221":{"position":[[7,2]]}}}],["valu",{"_index":67,"t":{"123":{"position":[[44,5]]}}}],["variabl",{"_index":63,"t":{"123":{"position":[[2,8]]}}}],["via",{"_index":83,"t":{"145":{"position":[[165,3]]}}}],["want",{"_index":165,"t":{"299":{"position":[[17,4]]}}}],["web",{"_index":119,"t":{"211":{"position":[[12,3]]}}}],["webhook",{"_index":25,"t":{"51":{"position":[[46,8]]}}}],["websocket",{"_index":89,"t":{"157":{"position":[[31,9]]}}}],["workflow",{"_index":7,"t":{"1":{"position":[[78,10]]}}}],["write",{"_index":101,"t":{"167":{"position":[[55,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[],"invertedIndex":[],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Komodo offers Procedure and Action resources for orchestrating multi-resource workflows. Both can be run on a schedule","s":"Procedures and Actions","u":"/docs/automate/procedures","h":"","p":1},{"i":4,"t":"A Procedure composes multiple executions (like RunBuild, DeployStack, Deploy) into a series of Stages. Executions within a stage run in parallel; stages run sequentially. The Procedure waits for all executions in a stage to complete before moving to the next. [[procedure]] name = \"build-and-deploy\" description = \"Builds the app, then deploys both instances\" [[procedure.config.stage]] name = \"Build\" executions = [ { execution.type = \"RunBuild\", execution.params.build = \"my-app\" }, ] [[procedure.config.stage]] name = \"Deploy\" executions = [ { execution.type = \"Deploy\", execution.params.deployment = \"my-app-01\" }, { execution.type = \"Deploy\", execution.params.deployment = \"my-app-02\" }, ]","s":"Procedures","u":"/docs/automate/procedures","h":"#procedures","p":1},{"i":6,"t":"Field Description Default config.stage[].name Display name for the stage. — config.stage[].enabled Whether the stage is active. true config.stage[].executions List of executions to run in parallel within the stage. [] schedule Schedule expression. See Schedules. \"\" schedule_format English or Cron. English schedule_enabled Whether the schedule is active. true","s":"Config fields","u":"/docs/automate/procedures","h":"#config-fields","p":1},{"i":8,"t":"Many executions have a Batch variant (e.g. BatchDeployStackIfChanged) that matches multiple resources by name using wildcard and regex syntax. [[procedure.config.stage]] name = \"Deploy matching stacks\" executions = [ { execution.type = \"BatchDeployStackIfChanged\", execution.params.pattern = \"foo-* , \\\\^bar-.*$\\\\\" }, ]","s":"Batch Executions","u":"/docs/automate/procedures","h":"#batch-executions","p":1},{"i":10,"t":"Actions let you write Typescript scripts that call the Komodo API. A pre-initialized komodo client is available — no API key configuration needed. The in UI editor provides type-aware suggestions and inline documentation. const VERSION = \"1.16.5\"; const BRANCH = \"dev/\" + VERSION; const APPS = [\"core\", \"periphery\"]; const ARCHS = [\"x86\", \"aarch64\"]; await komodo.write(\"UpdateVariableValue\", { name: \"KOMODO_DEV_VERSION\", value: VERSION, }); for (const app of APPS) { for (const arch of ARCHS) { const name = `komodo-${app}-${arch}-dev`; await komodo.write(\"UpdateBuild\", { id: name, config: { version: VERSION as any, branch: BRANCH }, }); console.log(`Updated Build ${name}`); } } The Typescript client is also published on NPM.","s":"Actions","u":"/docs/automate/procedures","h":"#actions","p":1},{"i":12,"t":"Restart all deployments matching tags const deployments = await komodo.read(\"ListDeployments\", { query: { tags: [\"backend\"] }, }); for (const deployment of deployments) { await komodo.execute(\"RestartDeployment\", { deployment: deployment.name, }); console.log(`Restarted ${deployment.name}`); } Run a command on a server terminal await komodo.execute_server_terminal({ server: \"server-prod\", command: \"df -h\", init: { command: \"bash\" }, }, { onLine: (line) => console.log(line), onFinish: (code) => console.log(\"Exit code:\", code), }); Scale a deployment based on time of day const hour = new Date().getHours(); const replicas = hour >= 9 && hour <= 17 ? \"4\" : \"1\"; await komodo.write(\"UpdateDeployment\", { id: \"api-server\", config: { extra_args: [`--replicas=${replicas}`], }, }); await komodo.execute(\"Deploy\", { deployment: \"api-server\" }); console.log(`Scaled api-server to ${replicas} replicas`);","s":"Action examples","u":"/docs/automate/procedures","h":"#action-examples","p":1},{"i":14,"t":"Komodo can run Procedures and Actions automatically on a configured schedule.","s":"Schedules","u":"/docs/automate/schedules","h":"","p":13},{"i":16,"t":"Add scheduling fields to any Procedure or Action: [[procedure]] name = \"nightly-backup\" [procedure.config] schedule_format = \"English\" schedule = \"Every day at 03:00\" schedule_enabled = true schedule_timezone = \"America/New_York\" schedule_alert = true failure_alert = true","s":"Configuration","u":"/docs/automate/schedules","h":"#configuration","p":13},{"i":18,"t":"Field Description Default schedule_format English for natural language, or Cron for cron expressions. English schedule The schedule expression (see formats below). \"\" schedule_enabled Whether the schedule is active. true schedule_timezone TZ identifier (e.g. America/New_York). Uses Core's timezone if empty. \"\" schedule_alert Send an alert each time the schedule runs. true failure_alert Send an alert when a scheduled run fails. true","s":"Schedule fields","u":"/docs/automate/schedules","h":"#schedule-fields","p":13},{"i":21,"t":"Set schedule_format = \"English\" and write the schedule as a sentence: Every day at 03:00 Every 5 minutes At midnight on the 1st and 15th of the month Every Monday at 09:00 Komodo converts these to cron expressions internally using the english-to-cron crate.","s":"English (natural language)","u":"/docs/automate/schedules","h":"#english-natural-language","p":13},{"i":23,"t":"Set schedule_format = \"Cron\" and provide a 6-field cron expression (seconds are required): second minute hour day month day-of-week Examples: Expression Meaning 0 0 3 * * ? Every day at 03:00:00 0 */5 * * * ? Every 5 minutes 0 0 0 1,15 * ? At midnight on the 1st and 15th 0 0 9 ? * MON Every Monday at 09:00","s":"Cron","u":"/docs/automate/schedules","h":"#cron","p":13},{"i":25,"t":"The ListSchedules API endpoint returns all configured schedules with their status, including: Last run time Next scheduled run time Any schedule parse errors","s":"Viewing schedules","u":"/docs/automate/schedules","h":"#viewing-schedules","p":13},{"i":27,"t":"When schedule_alert is enabled, Komodo sends an alert through your configured Alerters each time a scheduled Procedure or Action runs. If failure_alert is enabled, an additional alert is sent when the run fails.","s":"Alerts","u":"/docs/automate/schedules","h":"#alerts","p":13},{"i":29,"t":"Komodo is able to create, update, delete, and deploy resources declared in TOML files by diffing them against the existing resources, and apply updates based on the diffs. Similar to Stacks, the files can be configured in UI, in a local file, or in files pushed to a remote git repo. The Komodo Core backend will poll the files for any updates, and alert about pending changes when diffs are detected. You can spread out your resource declarations across any number of files and use any nesting of folders to organize resources inside a root folder. Additionally, you can create multiple ResourceSyncs and configure Match Tags to filter down which resources are synced, and each sync will be handled independently. This allows different syncs to manage resources on a \"per-project\" basis. The UI will display the computed sync actions and only execute them upon manual confirmation. Or the sync execution git webhook may be configured on the git repo to automatically execute syncs upon pushes to the configured branch.","s":"Sync Resources","u":"/docs/automate/sync-resources","h":"","p":28},{"i":31,"t":"If the Sync is pointing to just a single file, you can enable \"Managed Mode\" to allow Core to write the updates you made in UI back to the file. This works no matter where the files are located, and will create a commit to your git repository for repo based files.","s":"Commit to Syncs","u":"/docs/automate/sync-resources","h":"#commit-to-syncs","p":28},{"i":34,"t":"Server config schema [[server]] # Declare a new server name = \"server-prod\" description = \"the prod server\" tags = [\"prod\"] [server.config] address = \"http://localhost:8120\" region = \"AshburnDc1\" enabled = true # default: false","s":"Server","u":"/docs/automate/sync-resources","h":"#server","p":28},{"i":36,"t":"Swarm config schema [[swarm]] name = \"production-swarm\" description = \"Production Docker Swarm cluster\" tags = [\"prod\"] [swarm.config] servers = [\"manager-01\", \"manager-02\", \"manager-03\"] send_unhealthy_alerts = true","s":"Swarm","u":"/docs/automate/sync-resources","h":"#swarm","p":28},{"i":38,"t":"Builder config schema Build config schema [[builder]] # Declare a builder name = \"builder-01\" tags = [] config.type = \"Aws\" [builder.config.params] region = \"us-east-2\" ami_id = \"ami-0e9bd154667944680\" # These things come from your specific setup subnet_id = \"subnet-xxxxxxxxxxxxxxxxxx\" key_pair_name = \"xxxxxxxx\" assign_public_ip = true use_public_ip = true security_group_ids = [ \"sg-xxxxxxxxxxxxxxxxxx\", \"sg-xxxxxxxxxxxxxxxxxx\" ] ## [[build]] name = \"test_logger\" description = \"Logs randomly at INFO, WARN, ERROR levels to test logging setups\" tags = [\"test\"] [build.config] builder = \"builder-01\" repo = \"mbecker20/test_logger\" branch = \"master\" git_account = \"mbecker20\" image_registry.type = \"Standard\" image_registry.params.domain = \"github.com\" # or your custom domain image_registry.params.account = \"your_username\" image_registry.params.organization = \"your_organization\" # optional # Set docker labels labels = \"\"\" org.opencontainers.image.source = https://github.com/mbecker20/test_logger org.opencontainers.image.description = Logs randomly at INFO, WARN, ERROR levels to test logging setups org.opencontainers.image.licenses = GPL-3.0 \"\"\"","s":"Builder and build","u":"/docs/automate/sync-resources","h":"#builder-and-build","p":28},{"i":40,"t":"Deployment config schema # Declare variables [[variable]] name = \"OTLP_ENDPOINT\" value = \"http://localhost:4317\" ## [[deployment]] # Declare a deployment name = \"test-logger-01\" description = \"test logger deployment 1\" tags = [\"test\"] # sync will deploy the container: # - if it is not running. # - has relevant config updates. # - the attached build has new version. deploy = true [deployment.config] server = \"server-01\" image.type = \"Build\" image.params.build = \"test_logger\" # set the volumes / bind mounts volumes = \"\"\" # Supports comments /data/logs = /etc/logs # And other formats (eg yaml list) - \"/data/config:/etc/config\" \"\"\" # Set the environment variables environment = \"\"\" # Comments supported OTLP_ENDPOINT = [[OTLP_ENDPOINT]] # interpolate variables into the envs. VARIABLE_1 = value_1 VARIABLE_2 = value_2 \"\"\" # Set Docker labels labels = \"deployment.type = logger\" ## [[deployment]] name = \"test-logger-02\" description = \"test logger deployment 2\" tags = [\"test\"] deploy = true # Create a dependency on test-logger-01. This deployment will only be deployed after test-logger-01 is deployed. # Additionally, any sync deploy of test-logger-01 will also trigger sync deploy of this deployment. after = [\"test-logger-01\"] [deployment.config] server = \"server-01\" image.type = \"Build\" image.params.build = \"test_logger\" volumes = \"\"\" /data/logs = /etc/logs /data/config = /etc/config\"\"\" environment = \"\"\" VARIABLE_1 = value_1 VARIABLE_2 = value_2 \"\"\" # Set Docker labels labels = \"deployment.type = logger\"","s":"Deployments","u":"/docs/automate/sync-resources","h":"#deployments","p":28},{"i":42,"t":"Stack config schema [[stack]] name = \"test-stack\" description = \"stack test\" deploy = true after = [\"test-logger-01\"] # Stacks can depend on deployments, and vice versa. tags = [\"test\"] [stack.config] server = \"server-prod\" file_paths = [\"mongo.yaml\", \"redis.yaml\"] git_provider = \"git.mogh.tech\" git_account = \"mbecker20\" # clone private repo by specifying account repo = \"mbecker20/stack_test\"","s":"Stack","u":"/docs/automate/sync-resources","h":"#stack","p":28},{"i":44,"t":"Procedure config schema [[procedure]] name = \"test-procedure\" description = \"Do some things in a specific order\" tags = [\"test\"] [[procedure.config.stage]] name = \"Build stuff\" executions = [ { execution.type = \"RunBuild\", execution.params.build = \"test_logger\" }, # Uses the Batch version, which matches many builds by pattern # This one matches all builds prefixed with `foo-` (wildcard) and `bar-` (regex). { execution.type = \"BatchRunBuild\", execution.params.pattern = \"foo-* , \\\\^bar-.*$\\\\\" }, { execution.type = \"PullRepo\", execution.params.repo = \"komodo-periphery\" }, ] [[procedure.config.stage]] name = \"Deploy test logger 1\" executions = [ { execution.type = \"Deploy\", execution.params.deployment = \"test-logger-01\" }, { execution.type = \"Deploy\", execution.params.deployment = \"test-logger-03\", enabled = false }, ] [[procedure.config.stage]] name = \"Deploy test logger 2\" enabled = false executions = [ { execution.type = \"Deploy\", execution.params.deployment = \"test-logger-02\" } ]","s":"Procedure","u":"/docs/automate/sync-resources","h":"#procedure","p":28},{"i":46,"t":"Repo config schema [[repo]] name = \"komodo-periphery\" description = \"Builds new versions of the periphery binary. Requires Rust installed on the host.\" tags = [\"komodo\"] [repo.config] server = \"server-01\" git_provider = \"git.mogh.tech\" # use an alternate git provider (default is github.com) git_account = \"mbecker20\" repo = \"moghtech/komodo\" # Run an action after the repo is pulled on_pull.path = \".\" on_pull.command = \"\"\" # Supports comments /root/.cargo/bin/cargo build -p komodo_periphery --release # Multiple lines will be combined together using '&&' cp ./target/release/periphery /root/periphery \"\"\"","s":"Repo","u":"/docs/automate/sync-resources","h":"#repo","p":28},{"i":48,"t":"Resource sync config schema [[resource_sync]] name = \"resource-sync\" [resource_sync.config] git_provider = \"git.mogh.tech\" # use an alternate git provider (default is github.com) git_account = \"mbecker20\" repo = \"moghtech/komodo\" resource_path = [\"stacks.toml\", \"repos.toml\"]","s":"Resource sync","u":"/docs/automate/sync-resources","h":"#resource-sync","p":28},{"i":50,"t":"UserGroup schema [[user_group]] name = \"groupo\" everyone = false # Set to true to give these permission to all users. users = [\"mbecker20\", \"karamvirsingh98\"] # Configure write access with all specific permissions all.Server = { level = \"Write\", specific = [\"Attach\", \"Logs\", \"Inspect\", \"Terminal\", \"Processes\"] } # Attach base level of Execute on all builds all.Build = \"Execute\" # Allow users to see all Builders, and attach builds to them. all.Builder = { level = \"Read\", specific = [\"Attach\"] } permissions = [ # Attach permissions to specific resources by name { target.type = \"Repo\", target.id = \"komodo-periphery\", level = \"Execute\" }, # Attach permissions to many resources with name matching regex (this uses '^(.+)-(.+)$' as regex expression) { target.type = \"Server\", target.id = \"\\\\^(.+)-(.+)$\\\\\", level = \"Read\" }, { target.type = \"Deployment\", target.id = \"\\\\^immich\\\\\", level = \"Execute\" }, ]","s":"User Group:","u":"/docs/automate/sync-resources","h":"#user-group","p":28},{"i":52,"t":"Komodo resources can be triggered by incoming webhooks from your git provider. GitHub and GitLab authentication types are supported, which also covers Gitea, Forgejo, and other compatible providers. note Gitea's default \"Gitea\" webhook type works with the GitHub authentication type.","s":"Webhooks","u":"/docs/automate/webhooks","h":"","p":51},{"i":54,"t":"Find the webhook URL on any resource's Config page under \"Webhooks\". The URL format is: https:///listener//// Component Options HOST Your Komodo endpoint. If Komodo is on a private network, set up a public proxy for /listener requests. AUTH_TYPE github — validates X-Hub-Signature-256. gitlab — validates X-Gitlab-Token. RESOURCE_TYPE build, repo, stack, sync, procedure, action ID_OR_NAME Resource ID or name. Use ID if the name may change. EXECUTION Depends on resource type (see below).","s":"Webhook URL","u":"/docs/automate/webhooks","h":"#webhook-url","p":51},{"i":56,"t":"Resource Available executions Build /build Repo /pull, /clone, /build Stack /deploy, /refresh Resource Sync /sync, /refresh Procedure / Action Branch name to listen for (e.g. /main), or /__ANY__ for all branches.","s":"Executions by resource type","u":"/docs/automate/webhooks","h":"#executions-by-resource-type","p":51},{"i":58,"t":"Copy the webhook URL from the resource's Config page in Komodo. On your git provider, go to the repo's Settings > Webhooks and create a new webhook. Set the Payload URL to the copied URL. Set Content-type to application/json. Set Secret to your KOMODO_WEBHOOK_SECRET. Select Push events as the trigger.","s":"Setting Up a Webhook","u":"/docs/automate/webhooks","h":"#setting-up-a-webhook","p":51},{"i":60,"t":"Your git provider sends webhooks on pushes to any branch. Komodo only triggers the action when the push matches the branch configured on the resource. For example, a Build pointed at the release branch will ignore pushes to main.","s":"Branch Filtering","u":"/docs/automate/webhooks","h":"#branch-filtering","p":51},{"i":62,"t":"Komodo builds Docker images by running docker build and pushing the result to a configured image registry.","s":"Build","u":"/docs/build","h":"","p":61},{"i":64,"t":"Komodo supports three ways of providing the Dockerfile and build context: Write in the UI — define the Dockerfile contents directly in Komodo. Supports variable and secret interpolation. Files on host — point to an existing Dockerfile and build context already present on the builder machine. Set files_on_host = true and use build_path / dockerfile_path to specify the paths. Git repo — clone a repository containing the Dockerfile. This is the default mode. Configure repo, branch, and optionally git_account for private repos.","s":"Dockerfile Sources","u":"/docs/build","h":"#dockerfile-sources","p":61},{"i":66,"t":"[[build]] name = \"my-app\" [build.config] builder = \"builder-01\" repo = \"myorg/my-app\" branch = \"main\" git_account = \"my-user\" image_registry = [ { domain = \"ghcr.io\", account = \"my-user\", organization = \"my-org\" } ]","s":"Configuration","u":"/docs/build","h":"#configuration","p":61},{"i":68,"t":"Field Description Default builder The Builder resource to run the build on. — version Current build version (major.minor.patch). 0.0.0 auto_increment_version Auto-increment patch number on each build. true image_name Alternate image name (uses build name if empty). \"\" image_tag Extra tag postfix, e.g. aarch64 → :1.2.3-aarch64. \"\" include_latest_tag Push :latest / :latest-{image_tag} tags. true include_version_tags Push semver tags (:1.2.3, :1.2, :1). true include_commit_tag Push commit hash tag (:a6v8h83). true linked_repo A Komodo Repo resource to source files from. \"\" git_provider Git provider domain. github.com git_https Use HTTPS to clone (versus HTTP). true git_account Git provider account for private repos. \"\" repo Repository in owner/repo format. \"\" branch Branch to clone. Webhooks only trigger on pushes to this branch. main commit Pin to a specific commit hash. \"\" files_on_host Source Dockerfile and build context from files already on the builder. false dockerfile UI-defined Dockerfile contents. Supports variable/secret interpolation. \"\" build_path Build context directory, relative to the repo root (or absolute path when files_on_host). . dockerfile_path Dockerfile path, relative to the build directory. Dockerfile image_registry Registry to push images to (domain + account + optional organization). [] build_args Build arguments in KEY=value format. Visible in docker history. \"\" secret_args Build secrets in KEY=value format. Access via RUN --mount=type=secret,id=KEY. Not visible in image history. \"\" skip_secret_interp Skip secret interpolation in build_args. false extra_args Additional flags passed to docker build. [] use_buildx Use docker buildx build instead of docker build. false pre_build Command to run after cloning but before docker build. — labels Docker labels in key=value format. \"\" webhook_enabled Whether incoming webhooks trigger builds. true webhook_secret Alternate webhook secret (uses default from config if empty). \"\" links Quick links displayed in the resource header. []","s":"Config fields","u":"/docs/build","h":"#config-fields","p":61},{"i":70,"t":"Komodo uses a major.minor.patch versioning scheme. By default, each build auto-increments the patch number. You can control exactly which tags are pushed using the following options:","s":"Image Versioning and Tagging","u":"/docs/build","h":"#image-versioning-and-tagging","p":61},{"i":72,"t":"Option Tags produced Example include_version_tags Full semver, minor, and major :1.2.3, :1.2, :1 include_latest_tag Latest tag :latest include_commit_tag Short commit hash :a6v8h83 All three are enabled by default. Disable any combination to control which tags are pushed.","s":"Tag types","u":"/docs/build","h":"#tag-types","p":61},{"i":74,"t":"The image_tag field appends a postfix to all generated tags. This is useful for multi-platform or variant builds: image_tag Version tag Latest tag Commit tag (empty) :1.2.3 :latest :a6v8h83 aarch64 :1.2.3-aarch64 :latest-aarch64 :a6v8h83-aarch64 When image_tag is set, an additional pure tag is also pushed: :aarch64.","s":"Image tag postfix","u":"/docs/build","h":"#image-tag-postfix","p":61},{"i":76,"t":"By default, the build's name is used as the image name. Set image_name to override this, e.g. if the build name doesn't match the desired image name on the registry.","s":"Custom image name","u":"/docs/build","h":"#custom-image-name","p":61},{"i":78,"t":"Set auto_increment_version = false to manage the version field yourself. The major and minor versions are always set manually — only the patch auto-increments.","s":"Manual versioning","u":"/docs/build","h":"#manual-versioning","p":61},{"i":80,"t":"Komodo supports pushing to any Docker-compatible registry. Configure accounts in Providers. A build can push to multiple registries simultaneously. The image_registry field accepts a list — each entry specifies a domain, account, and optional organization: [build.config] image_registry = [ { domain = \"ghcr.io\", account = \"my-user\", organization = \"my-org\" }, { domain = \"docker.io\", account = \"my-user\" }, ] The first registry in the list is used by default when a Deployment is connected to the Build. note GitHub access tokens must have the write:packages permission to push to GHCR. See the GitHub docs. When a Build is connected to a Deployment, the Deployment inherits the Build's registry credentials by default. If the builder's account isn't available to the Deployment's server, select a different account in the Deployment config.","s":"Image Registry","u":"/docs/build","h":"#image-registry","p":61},{"i":82,"t":"To build for multiple platforms (e.g. ARM + x86), set up Docker Buildx on the builder: docker buildx create --name builder --use --bootstrap docker buildx install # makes buildx the default for `docker build` Then pass the target platforms in the Build's Extra Args: --platform linux/amd64,linux/arm64","s":"Multi-platform builds (Buildx)","u":"/docs/build","h":"#multi-platform-builds-buildx","p":61},{"i":84,"t":"A Builder resource defines where builds run. Any Server connected to Komodo can be used as a builder, but building on production servers is not recommended.","s":"Builders","u":"/docs/build","h":"#builders","p":61},{"i":86,"t":"Point the builder at an existing Server running the Periphery agent.","s":"Server builder","u":"/docs/build","h":"#server-builder","p":61},{"i":88,"t":"Komodo can launch a temporary EC2 instance for each build and shut it down when finished. [[builder]] name = \"builder-01\" [builder.config] type = \"Aws\" params.region = \"us-east-2\" params.instance_type = \"c5.2xlarge\" params.ami_id = \"ami-xxxxxxxxxxxxxxxxxx\" params.subnet_id = \"subnet-xxxxxxxxxxxxxxxxxx\" params.key_pair_name = \"ssh-key\" params.assign_public_ip = true ## Required for outbound internet access unless you have network gateway. params.use_public_ip = true ## Setting 'false' uses the private IP (when Komodo Core is in same subnet). params.security_group_ids = [\"sg-xxxxxxxxxxxxxxxxxx\"] params.user_data = \"\"\" #!/bin/bash curl -sSL \\ https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery.py | \\ HOME=/root python3 - --version=v2.X.X \"\"\" To create the AMI: Launch an EC2 instance and install Docker: apt update && apt upgrade -y curl -fsSL https://get.docker.com | sh systemctl enable docker.service containerd.service Create an AMI from the instance in the AWS console. Create a security group and ensure it allows inbound access on port 8120 from Komodo Core. The instance user_data will install the Periphery agent as the instance starts up, and Komodo Core will then connect and build the image.","s":"AWS EC2 builder","u":"/docs/build","h":"#aws-ec2-builder","p":61},{"i":90,"t":"Komodo has a granular, layer-based permissioning system to provide non-admin users access only to intended Resources.","s":"Permissioning","u":"/docs/configuration/permissioning","h":"","p":89},{"i":92,"t":"While Komodo can assign permissions to specific users directly, it is recommended to instead create User Groups and assign permissions to them, as if they were a user. Users can then be added to multiple User Groups and they inherit the group's permissions, similar to linux permissions. There is also an Everyone mode for User Groups, if this is enabled then all users implicitly gain the groups permissions. For permissioning at scale, users can define User Groups in Resource Syncs.","s":"User Groups","u":"/docs/configuration/permissioning","h":"#user-groups","p":89},{"i":94,"t":"There are 4 permission levels a user / group can be given on a Resource: None. The user will not have any access to the resource. The user will not see it in the GUI, and it will not show up if the user queries the Komodo API directly. All attempts to view or update the resource will be blocked. This is the default for non-admins, unless using KOMODO_TRANSPARENT_MODE=true. Read. This is the first permission level that grants any access. It will enable the user to see the resource in the GUI and read the configuration. Any attempts to update configuration or trigger any action will be blocked. Using KOMODO_TRANSPARENT_MODE=true will make this level the base level on all resources, for all users. Execute. This level will allow the user to execute actions on the resource, like send a build command or trigger a redeploy. The user will still be blocked from updating configuration on the resource. Write. The user has full config write access to the resource, they can execute any actions, update the configuration, and delete the resource.","s":"Permission Levels","u":"/docs/configuration/permissioning","h":"#permission-levels","p":89},{"i":96,"t":"Permission levels alone are not quite enough to provide granular access control. Some features are additionally gated behind a specific permission for that feature. Logs: User can retrieve docker / docker compose logs on the associated resource. Valid on Server, Stack, Deployment. For admins wanting this permission by default for all users with read permissions, see below on default user groups. Inspect: User can \"inspect\" docker containers. Valid on Server, Stack, Deployment. On Servers: Access to this api will expose all container environments on the given server, and can easily lead to secrets being leaked to unintended users if not protected. Terminal: User can access the associated resource's terminal. If given on a Server, this allows server level terminal access, and all container exec priviledges (Including attached Stacks / Deployments). If given on a Stack or Deployment, this allows container exec terminal (even without Terminal on Server). Attach: User can \"attach\" other resources to the resource. If given on a Server, allows users to attach Stacks, Deployments, Repos, and Builders. If given on a Builder, allows users to attach Builds and Repos. If given on a Build, allows users to attach it to Deployments. If given on a Repo, allows users to attach it to Stacks, Builds, and Resource Syncs. Processes: User can retrieve the full running process list on the Server.","s":"Specific Permissions","u":"/docs/configuration/permissioning","h":"#specific-permissions","p":89},{"i":98,"t":"Users or User Groups can be given a base permission level on all Resources of a particular type, such as Stack. In TOML form, this looks like: [[user_group]] name = \"groupo\" users = [\"mbecker20\", \"karamvirsingh98\"] all.Build = \"Execute\" # <- Group members can run all builds (but not update config), all.Stack = { level = \"Read\", specific = [\"Logs\"] } # <- And see all Stacks / logs (no deploy / update, inspect, or terminal access). A user / group can still be given a greater permission level on select resources: permissions = [ # Grant addition specific permission (Logs are already granted above) { target.type = \"Stack\", target.id = \"my-stack\", level = \"Execute\", specific = [\"Inspect\", \"Terminal\"] }, # Use regex to match multiple resources, for example give john execute on all of their Stacks { target.type = \"Stack\", target.id = \"\\\\^john-(.+)$\\\\\", level = \"Execute\" }, ]","s":"Permissioning by Resource Type","u":"/docs/configuration/permissioning","h":"#permissioning-by-resource-type","p":89},{"i":100,"t":"Users can be given Admin privileges by a Super Admin (only the first user is given this status, set with super_admin: true on a User document in database). Super admins will see the \"Make Admin\" button when on a User page /users/${user_id}. These users have unrestricted access to all Komodo Resources. Additionally, these users can update other (non-admin) user's permissions on resources. Komodo admins are responsible for managing user accounts as well. When a user logs into Komodo for the first time, they will not immediately be granted access (this can changed with KOMODO_ENABLE_NEW_USERS=true). An admin must first enable the user, which can be done from the Users tab on Settings page. Users can also be disabled by an admin at any time, which blocks all their access to the GUI and API. Users also have some configurable global permissions, these are: create server permission create build permission Only users with these permissions (as well as admins) can add additional servers to Komodo, and can create additional builds, respectively.","s":"Administration","u":"/docs/configuration/permissioning","h":"#administration","p":89},{"i":102,"t":"Providers allow Komodo to authenticate against external git providers and docker registries on behalf of your resources. Once configured, provider accounts are available to attach to Builds, Repos, Stacks, and Resource Syncs.","s":"Providers","u":"/docs/configuration/providers","h":"","p":101},{"i":104,"t":"When configuring a Build, Repo, Stack, or Resource Sync that references a private repository, select the matching git provider and account in the resource's configuration. Komodo will use the token to authenticate the clone.","s":"Usage","u":"/docs/configuration/providers","h":"#usage","p":101},{"i":106,"t":"The easiest way to set up providers is through the Komodo UI. Navigate to Settings > Providers to manage your git and registry accounts. From this page you can: Add new git provider or docker registry accounts (domain, username, and access token). View accounts that were added via the UI as well as those loaded from config files. Edit or delete database-managed accounts.","s":"Managing Providers in the UI","u":"/docs/configuration/providers","h":"#managing-providers-in-the-ui","p":101},{"i":108,"t":"As an alternative to the UI, providers can be defined in config files: Core config (core.config.toml): Accounts are available globally to all resources. See Advanced Configuration. Periphery config (periphery.config.toml): Accounts are only available to resources running on that specific server. See Connect Servers. Accounts from config files also appear in the UI under Settings > Providers, but their tokens cannot be read back through the API or UI.","s":"Configuring via Config Files","u":"/docs/configuration/providers","h":"#configuring-via-config-files","p":101},{"i":110,"t":"Komodo supports cloning repos over HTTP/S from any provider that supports git clone https://:@// or git clone https://@// This includes GitHub, GitLab, Bitbucket, Forgejo, Gitea, and many other git providers.","s":"Git Providers","u":"/docs/configuration/providers","h":"#git-providers","p":101},{"i":112,"t":"Field Default Description domain github.com The hostname of the git provider. Do not include the protocol (http:// or https://). https true Whether to clone over HTTPS. Set to false for HTTP (e.g. local development). accounts [] A list of { username, token } pairs. Each account provides access to repos visible to that user.","s":"Fields","u":"/docs/configuration/providers","h":"#fields","p":101},{"i":114,"t":"# in core.config.toml or periphery.config.toml [[git_provider]] domain = \"github.com\" accounts = [ { username = \"my-user\", token = \"ghp_xxxxxxxxxxxx\" }, ] [[git_provider]] domain = \"git.example.com\" # self-hosted Gitea, GitLab, etc. accounts = [ { username = \"my-user\", token = \"access_token\" }, ] [[git_provider]] domain = \"localhost:3000\" https = false # clone over http:// accounts = [ { username = \"my-user\", token = \"access_token\" }, ]","s":"Configuration","u":"/docs/configuration/providers","h":"#configuration","p":101},{"i":116,"t":"Komodo supports pushing and pulling images from any Docker-compatible registry, including Docker Hub, GitHub Container Registry (GHCR), and self-hosted registries.","s":"Docker Registries","u":"/docs/configuration/providers","h":"#docker-registries","p":101},{"i":118,"t":"Field Default Description domain docker.io The hostname of the registry. Can include http:// for insecure registries, but this requires insecure registries enabled on your hosts. accounts [] A list of { username, token } pairs for registry authentication. organizations [] Optional list of organization/namespace names. When attached to a Build, images are published under the organization's namespace instead of the account's.","s":"Fields","u":"/docs/configuration/providers","h":"#fields-1","p":101},{"i":120,"t":"# in core.config.toml or periphery.config.toml [[docker_registry]] domain = \"docker.io\" accounts = [ { username = \"my-user\", token = \"dckr_pat_xxxxxxxxxxxx\" }, ] organizations = [\"MyOrg\"] [[docker_registry]] domain = \"ghcr.io\" accounts = [ { username = \"my-user\", token = \"ghp_xxxxxxxxxxxx\" }, ] [[docker_registry]] domain = \"registry.example.com\" # self-hosted registry accounts = [ { username = \"my-user\", token = \"access_token\" }, ] organizations = [\"MyTeam\"] note Your GitHub access token must have the write:packages permission in order to push images. For example, see the GitHub docs on access tokens.","s":"Configuration","u":"/docs/configuration/providers","h":"#configuration-1","p":101},{"i":122,"t":"When configuring a Build, select the registry domain and account to push images to. If organizations are defined, you can choose to publish under an organization namespace. When a Build is connected to a Deployment, the Deployment inherits the registry configuration by default. If that account is not available to the Deployment's server, you can choose a different account in the Deployment config.","s":"Usage","u":"/docs/configuration/providers","h":"#usage-1","p":101},{"i":124,"t":"A variable / secret in Komodo is just a key-value pair. KEY_1 = \"value_1\" You can interpolate the value into any resource Environment (and most other user configurable inputs, such as Repo On Clone and On Pull, or Stack Extra Args) using double brackets around the key to trigger interpolation: # Before interpolation SOME_ENV_VAR = [[KEY_1]] # <- wrap the key in double brackets '[[]]' # After interpolation: SOME_ENV_VAR = value_1","s":"Variables and Secrets","u":"/docs/configuration/variables","h":"","p":123},{"i":126,"t":"In the UI, you can go to Settings page, Variables tab. Here, you can create some Variables to store in the Komodo database. There is a \"secret\" option you can check, this will prevent the value from exposure in any updates / logs, as well as prevent access to the value to any non-admin Komodo users. Variables can also be managed in ResourceSyncs (see example) but should only be done for non-secret variables, to avoid committing sensitive data. You should manage secrets using one of the following options. Mount a config file to Core: Advanced Configuration In the Komodo Core config file, you can configure secrets using a block like: # in core.config.toml [secrets] KEY_1 = \"value_1\" KEY_2 = \"value_2\" KEY_1 and KEY_2 will be available for interpolation on all your resources, as if they were Variables set up in the UI. The keys are queryable and show up on the variable page (so you know they are available for use), but the values are not exposed by API for ANY user. Mount a config file to Periphery agent: In the Komodo Periphery config file, you can also configure secrets using the same syntax as the Core config file. The variable WILL NOT be available globally to all Komodo resources, it will only be available to the resources on the associated Server resource on which that single Periphery agent is running. This effectively distributes your secret locations, can be good or bad depending on your security requirements. It does avoid the need to send the secret over network from Core to Periphery, Periphery based secrets are never exposed to the network. Use a dedicated secret management tool such as Hashicorp Vault, alongside Komodo Ultimately Komodo variable / secret features may not fill enterprise level secret management requirements, organizations of this level should still use a dedicated secret management solution. At this point Komodo is not intended as an enterprise level secret management solution. These solutions do require application level integrations, your applications should only receive credentials to access the secret management API. Your applications will pull the actual secret values from the dedicated secret management tool, they stay out of Komodo entirely.","s":"Defining Variables and Secrets","u":"/docs/configuration/variables","h":"#defining-variables-and-secrets","p":123},{"i":128,"t":"Komodo can automatically check for newer Docker image digests and redeploy resources when updates are found.","s":"Automatic Updates","u":"/docs/deploy/auto-update","h":"","p":127},{"i":130,"t":"Both Stacks and Deployments support two update modes: Mode Behavior Poll for Updates Checks for newer images with the same tag. Displays an update indicator in the UI and sends an alert (if an Alerter is configured). Does not redeploy. Auto Update Same check, but automatically redeploys services with newer images. Also sends an alert. note Auto-update requires a \"rolling\" image tag like :latest. For pinned tags in git-sourced stacks, consider Renovate.","s":"Configuration","u":"/docs/deploy/auto-update","h":"#configuration","p":127},{"i":132,"t":"New installs include a Global Auto Update Procedure, scheduled daily. It loops through all resources with either mode enabled and checks registries for newer digests. [[procedure]] name = \"Global Auto Update\" description = \"Pulls and auto updates Stacks and Deployments using 'poll_for_updates' or 'auto_update'.\" tags = [\"system\"] config.schedule = \"Every day at 03:00\" [[procedure.config.stage]] name = \"Stage 1\" enabled = true executions = [ { execution.type = \"GlobalAutoUpdate\", execution.params = {}, enabled = true } ] info GlobalAutoUpdate can be integrated into other Procedures to coordinate timing with processes like backups. There is nothing special about the default Procedure — it is created for convenience.","s":"Global Auto Update Procedure","u":"/docs/deploy/auto-update","h":"#global-auto-update-procedure","p":127},{"i":134,"t":"Komodo can deploy Docker Compose projects through the Stack resource.","s":"Docker Compose","u":"/docs/deploy/compose","h":"","p":133},{"i":136,"t":"[[stack]] name = \"my-stack\" [stack.config] server = \"server-prod\" run_directory = \"/opt/stacks/my-stack\" file_paths = [\"compose.yaml\"] git_account = \"my-user\" repo = \"myorg/stacks\" environment = \"\"\" DB_HOST = db.example.com LOG_LEVEL = info \"\"\"","s":"Configuration","u":"/docs/deploy/compose","h":"#configuration","p":133},{"i":138,"t":"Field Description Default server The Server to deploy on. — file_paths List of compose files. Supports composing multiple files via docker compose -f ... -f .... [] run_directory Working directory for compose commands. — project_name Override the compose project name. Defaults to the Stack name. Stack name environment Environment variables written to a .env file and passed via --env-file. Supports variable interpolation. \"\" extra_args Additional flags passed to docker compose up. \"\" ignore_services Services to exclude from health checks (e.g. init containers that exit after startup). [] git_provider Git provider domain. github.com git_account Git provider account for private repos. — repo Repository in owner/repo format. — branch Branch to clone. main auto_update Automatically redeploy when newer image digests are available. false poll_for_updates Check for newer images and show an update indicator. false send_alerts Send alerts on stack state changes. true links Quick links displayed in the resource header. []","s":"Config fields","u":"/docs/deploy/compose","h":"#config-fields","p":133},{"i":140,"t":"Stacks support three ways to provide compose files: Write in the UI — Komodo writes the files to the host at deploy time. Files on the host — Point to existing files on the server. Git repo — Komodo clones the repo onto the host to deploy. Changes are tracked in git and you can use webhooks to auto-redeploy on push.","s":"Defining Compose Files","u":"/docs/deploy/compose","h":"#defining-compose-files","p":133},{"i":142,"t":"To import a running compose project, create a Stack in Komodo with access to the same compose files and attach the correct Server. Komodo matches projects by compose project name — if the running project name differs from the Stack name, set a custom project_name in the config. Run docker compose ls on the host to find existing project names.","s":"Importing Existing Projects","u":"/docs/deploy/compose","h":"#importing-existing-projects","p":133},{"i":144,"t":"A Stack can target a Swarm instead of a single Server to deploy via docker stack deploy. See Swarm for details.","s":"Deploying to a Swarm","u":"/docs/deploy/compose","h":"#deploying-to-a-swarm","p":133},{"i":146,"t":"Komodo can deploy Docker containers through the Deployment resource. It translates your configuration into a docker run command and executes it on the target Server via the Periphery agent.","s":"Containers","u":"/docs/deploy/containers","h":"","p":145},{"i":148,"t":"[[deployment]] name = \"my-app\" [deployment.config] server = \"server-prod\" image.type = \"Image\" image.params.image = \"ghcr.io/myorg/my-app:latest\" network = \"host\" restart = \"on-failure\" environment = \"\"\" DB_HOST = db.example.com LOG_LEVEL = info \"\"\" volumes = \"\"\" /data/my-app/data:/app/data /data/my-app/config:/app/config \"\"\"","s":"Configuration","u":"/docs/deploy/containers","h":"#configuration","p":145},{"i":150,"t":"Field Description Default server The Server to deploy on. — image Docker image — either a custom image string or an attached Komodo Build. — network Docker network to connect to. host bypasses the virtual network layer. host restart Restart policy (no, on-failure, always, unless-stopped). unless-stopped ports Port mappings when not using host network (e.g. 27018:27017). [] volumes Bind mounts in host_path:container_path format. \"\" environment Environment variables in KEY=value format. Supports variable interpolation. \"\" labels Docker labels in key=value format. \"\" command Override the default image command. Appended after the image in docker run. \"\" extra_args Additional flags passed directly to docker run. \"\" send_alerts Send alerts on container state changes. true auto_update Automatically redeploy when a newer image digest is available (same tag). false poll_for_updates Check for newer images and show an update indicator (without auto-deploying). false links Quick links displayed in the resource header. []","s":"Config fields","u":"/docs/deploy/containers","h":"#config-fields","p":145},{"i":152,"t":"There are two ways to specify the image: Komodo Build — attach a Build resource and Komodo deploys the latest (or a pinned) version. The registry credentials are inherited from the Build by default. Custom image — specify an image string directly, e.g. mongo or ghcr.io/myorg/my-app:1.0.0. Select a Docker registry account if the image is private.","s":"Image source","u":"/docs/deploy/containers","h":"#image-source","p":145},{"i":154,"t":"Komodo tracks container state and provides actions to manage the lifecycle: Action Description Deploy / Redeploy Destroys the existing container (if any) and creates a new one with the current config. Config changes only take effect after a redeploy. Start Starts a stopped container with its existing config. Stop Stops the container but preserves its logs and state. Remove Destroys the container entirely. note Stopping and starting a container does not apply config changes — you must redeploy for that.","s":"Container Lifecycle","u":"/docs/deploy/containers","h":"#container-lifecycle","p":145},{"i":156,"t":"Instead of targeting a single Server, a Deployment can target a Swarm to deploy the container as a Swarm service. You can attach Swarm configs and secrets to the service. See Swarm for details.","s":"Deploying to a Swarm","u":"/docs/deploy/containers","h":"#deploying-to-a-swarm","p":145},{"i":158,"t":"Komodo exposes a full REST and WebSocket API, typed CLI, and client libraries in Rust and TypeScript. You can automate, integrate, and extend it from any environment.","s":"Ecosystem","u":"/docs/ecosystem","h":"","p":157},{"i":160,"t":"The Komodo CLI, km, can be used to:","s":"📄️ Komodo CLI","u":"/docs/ecosystem","h":"","p":157},{"i":162,"t":"Komodo Core exposes an RPC-like HTTP API to read data, write configuration, and execute actions.","s":"📄️ API and Clients","u":"/docs/ecosystem","h":"","p":157},{"i":164,"t":"Community-built tools, guides, and alerter integrations for Komodo.","s":"📄️ Community","u":"/docs/ecosystem","h":"","p":157},{"i":166,"t":"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.","s":"📄️ Development","u":"/docs/ecosystem","h":"","p":157},{"i":168,"t":"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.","s":"API and Clients","u":"/docs/ecosystem/api","h":"","p":167},{"i":170,"t":"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?;","s":"Rust Client","u":"/docs/ecosystem/api","h":"#rust-client","p":167},{"i":172,"t":"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: { 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, });","s":"Typescript Client","u":"/docs/ecosystem/api","h":"#typescript-client","p":167},{"i":174,"t":"The Komodo CLI, km, can be used to: Quickly run executions and update resources and variables. Reset user passwords and elevate users to Super Admin. Perform Database backup, restore, and copy. Connect to server / container shell via Komodo Terminals. The Komodo Core image comes packaged with the Komodo CLI, and is available for usage inside running container with docker exec -it komodo-core km .... This way, it inherits the Core database config in order to easily perform backups with km db backup -y.","s":"Komodo CLI","u":"/docs/ecosystem/cli","h":"","p":173},{"i":176,"t":"km --help km deploy stack my-stack km run action my-action -y km database backup km db restore km set var MY_VAR my_value -y km update build my-build \"version=1.19.0&branch=release\" km x commit my-sync km set user mbecks super-admin true km set user mbecks password \"temp-password\" km ssh my-server km connect my-server bash -n my-session km exec my-container bash km attach my-container -s my-server","s":"Examples","u":"/docs/ecosystem/cli","h":"#examples","p":173},{"i":178,"t":"All terminal commands share the same disconnect shortcut: press Alt+Q to end the session. The session itself stays running and will keep the history if you connect again, or connect from a different device. SSH / Connect The km ssh command (alias for km connect) opens an interactive shell on a server managed by Komodo Periphery. Analogous to ssh. km ssh [command] [options] km connect [command] [options] Argument Description server Server name (required) command Shell command to start, e.g. bash (optional, defaults to Periphery default) -n, --name Terminal session name (default: ssh) -r, --recreate Force a fresh terminal, replacing any existing session with the same name Exec The km exec command opens an interactive shell inside a running container. Analogous to docker exec. km exec [options] Argument Description container Container name (required) shell Shell to use, e.g. bash or sh (required) -s, --server Server name — required if multiple servers have a container with the same name -r, --recreate Force a fresh terminal, replacing any existing session Attach The km attach command attaches to a running container's main process stdio. Analogous to docker attach. km attach [options] Argument Description container Container name (required) -s, --server Server name — required if multiple servers have a container with the same name -r, --recreate Force a fresh terminal, replacing any existing session","s":"Terminals","u":"/docs/ecosystem/cli","h":"#terminals","p":173},{"i":180,"t":"There are binaries available for Linux (x86_64 / aarch64), MacOS (apple silicon), as well as a distroless image: ghcr.io/moghtech/komodo-cli. Linux You can install the binary using the following command: System-wide, as root, to /usr/local/bin/km: curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/install-cli.py | python3 Or as non-root, to ${HOME}/.local/bin/km: curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/install-cli.py | python3 - --user MacOS (Homebrew) Add the moghtech/komodo tap, then install km: brew tap moghtech/komodo && \\ brew install km Container You can alias a docker run command: alias km='docker run --rm -v $HOME/.config/komodo:/config ghcr.io/moghtech/komodo-cli:2 km' km config","s":"Install","u":"/docs/ecosystem/cli","h":"#install","p":173},{"i":182,"t":"The CLI uses a configuration file to pass the Komodo host / api keys, database address and credentials, and configure some other behaviors. Additionally, all configuration fields can be individually overridden using CLI arguments or environment variables, with CLI arguments having top priority. Whenever you want to check how config will be loaded, you can use the km config command to print it out. File detection When run, CLI will scan the current working directory in addition to ${HOME}/.config/komodo for any files matching the wildcard pattern *komodo.cli*.*, parse them into a general representation, and then merge them together. Files which are detected later are merged later, meaning they will override on conflicting fields. By default, files in ${HOME}/.config/komodo come first in the merge ordering, meaning they are lower priority than those detected in the current working directory. You can also override these default paths by passing km -c /path/to/1/base.config.yaml -c ./overrides .... If you want km to find configuration files in another directory, you can make a .kminclude file inside one of the configured directories. # Supports comments ./.komodo # relative to directory containing `.kminclude` /etc/komodo/komodo.cli.toml # also supports absolute path Note that wildcards in these paths are not supported. Profiles In the files, you can configure multiple profiles, each with a name / aliases. Then you choose which config profile to use with km -p .... This allows you to easily switch between multiple Cores you want to connect to, or different database backup / restore options. In order to avoid passing -p every time, you can set a default_profile at the top level of the configuration file. Additionally, any fields you would like to be the \"default\" across all profiles can be set at the top level of the file. Example File The configuration can also be passed as YAML or JSON. You can use it-tools to convert this TOML file to your preferred format: YAML: https://it-tools.tech/toml-to-yaml JSON: https://it-tools.tech/toml-to-json Quick download to ./komodo/komodo.cli.toml: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/config/komodo.cli.toml https://github.com/moghtech/komodo/blob/main/config/komodo.cli.toml","s":"Configure","u":"/docs/ecosystem/cli","h":"#configure","p":173},{"i":184,"t":"Community-built tools, guides, and alerter integrations for Komodo.","s":"Community","u":"/docs/ecosystem/community","h":"","p":183},{"i":186,"t":"Ansible Role Komodo by bpbradley Komodo Import by FoxxMD","s":"3rd Party Tools","u":"/docs/ecosystem/community","h":"#3rd-party-tools","p":183},{"i":188,"t":"Migrating to Komodo by FoxxMD FAQ, Tips, and Tricks by FoxxMD Compose Environments Explained by FoxxMD How To: Automate version updates for your self-hosted Docker containers with Gitea, Renovate, and Komodo by TheNickOfTime Setting up Komodo, comparison to Portainer, and FAQ by Skyfay","s":"Posts and Guides","u":"/docs/ecosystem/community","h":"#posts-and-guides","p":183},{"i":190,"t":"These provide alerting implementations which can be used with the Custom Alerter type. Discord by FoxxMD Telegram by mattsmallman Ntfy by FoxxMD Gotify by FoxxMD Apprise by FoxxMD Email by Guten Ye","s":"Community Alerters","u":"/docs/ecosystem/community","h":"#community-alerters","p":183},{"i":192,"t":"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.","s":"Development","u":"/docs/ecosystem/development","h":"","p":191},{"i":194,"t":"Running Komodo from source requires either Docker (and can use the included devcontainer), or can have the development dependencies installed locally: Backend (Core / Periphery APIs) Rust stable via rustup installer MongoDB or FerretDB available locally. On Debian/Ubuntu: apt install build-essential pkg-config libssl-dev required to build the rust source. Web UI Node >= 18.18 + NPM Yarn - (Tip: use corepack enable after installing node to use yarn) typeshare Deno >= 2.0.2","s":"Dependencies","u":"/docs/ecosystem/development","h":"#dependencies","p":191},{"i":196,"t":"mbecker20/runnables-cli can be used as a convience CLI for running common project tasks found in runfile.toml. Otherwise, you can create your own project tasks by references the cmds found in runfile.toml. All instructions below will use runnables-cli v1.3.7+.","s":"runnables-cli","u":"/docs/ecosystem/development","h":"#runnables-cli","p":191},{"i":198,"t":"After making changes to the project, run run dev-compose-build to rebuild Komodo and then run dev-compose-exposed to start a Komodo container with the UI accessible at localhost:9120. Any changes made to source files will require re-running the dev-compose-build and dev-compose-exposed commands.","s":"Docker","u":"/docs/ecosystem/development","h":"#docker","p":191},{"i":200,"t":"Use the included .devcontainer.json with VSCode or other compatible IDE to stand-up a full environment, including database, with one click. VSCode Tasks are provided for building and running Komodo. After opening the repository with the devcontainer run the task Init to build the ui/backend. Then, the task Run Komodo can be used to run ui/backend. Other tasks for rebuilding/running just one component of the stack (Core API, Periphery API, UI) are also provided.","s":"Devcontainer","u":"/docs/ecosystem/development","h":"#devcontainer","p":191},{"i":202,"t":"You can also run the components locally, using Docker only for the database.","s":"Local","u":"/docs/ecosystem/development","h":"#local","p":191},{"i":204,"t":"Create the local config directories. mkdir -p .dev/keys .dev/periphery Add .dev/core.config.toml with the following contents: host = \"http://localhost:9120\" private_key = \"file:.dev/keys/core.key\" local_auth = true enable_new_users = true jwt_secret = \"a_random_secret\" first_server_address = \"http://localhost:8120\" cors_allowed_origins = [\"http://localhost:5173\"] cors_allow_credentials = true session_allow_cross_site = true database.address = \"localhost:27017\" database.username = \"komodo\" database.password = \"komodo\" Add .dev/periphery.config.toml: ssl_enabled = false root_directory = \".dev/periphery\" Create ui/.env.development with the following: VITE_KOMODO_HOST=http://localhost:9120 Make sure your Rust toolchain is up to date and install the CLI tools: rustup update cargo install typeshare-cli runnables-cli run link-client","s":"Initial One-time Setup","u":"/docs/ecosystem/development","h":"#initial-one-time-setup","p":191},{"i":206,"t":"Start a Mongo instance in Docker: docker run -d --name komodo-mongo \\ -p 27017:27017 \\ -v komodo-mongo-data:/data/db \\ -v komodo-mongo-config:/data/configdb \\ -e MONGO_INITDB_ROOT_USERNAME=komodo \\ -e MONGO_INITDB_ROOT_PASSWORD=komodo \\ mongo In separate terminals, run Core, Periphery, and UI. run dev-core run dev-periphery ```sh run dev-ui # Start in dev (watch) mode Once everything is running, open http://localhost:5173 and create a user account.","s":"Starting the services","u":"/docs/ecosystem/development","h":"#starting-the-services","p":191},{"i":208,"t":"After API changes, rebuild the client with run gen-client # Rebuild client (after API changes)","s":"Rebuilding the frontend client","u":"/docs/ecosystem/development","h":"#rebuilding-the-frontend-client","p":191},{"i":210,"t":"Use run dev-docsite to start the Docusaurus Komodo docs site in development mode. Changes made to files in ./docsite will be automatically reloaded by the server.","s":"Docsite Development","u":"/docs/ecosystem/development","h":"#docsite-development","p":191},{"i":212,"t":"Komodo is a web application for managing servers, builds, deployments, and automated procedures. Connect servers. Monitor CPU, memory, and disk usage with alerts. Connect to shell sessions. Deploy containers. Create, start, stop, and redeploy Docker containers. View status, logs, and exec into shells. Deploy compose stacks. Define compose files in the UI, on the host, or in a git repo with auto-deploy on push. Manage Docker Swarms. Connect swarm managers and deploy services and stacks across your cluster. Build images. Define the dockerfile in UI or clone a git repo. Supports AWS EC2 spot instances for scalable build capacity. Run automation. Orchestrate multi-step workflows with Procedures and Actions. Schedule automations to run regularly. Manage configuration. shared variable and secret with interpolation across all resources. Full audit trail. every change is recorded, with who made it and when. There is no limit to the number of servers you can connect, and there never will be.","s":"What is Komodo?","u":"/docs/intro","h":"","p":211},{"i":214,"t":"Komodo is composed of two components: Core and Periphery. Component Role Core Web server hosting the API and browser UI. All user interaction flows through Core. Periphery Small, stateless agent running on each connected server. Called by Core to perform actions, report system usage, and retrieve container logs.","s":"Architecture","u":"/docs/intro","h":"#architecture","p":211},{"i":216,"t":"Core exposes a REST and WebSocket API for programmatic access. Client libraries are available: Komodo CLI Rust crate NPM package curl examples","s":"API","u":"/docs/intro","h":"#api","p":211},{"i":218,"t":"Komodo has a granular, role-based permissioning system so teams of developers, operators, and administrators can collaborate safely. See Permissioning for details. User sign-on supports username/password and OAuth (GitHub, Google, and generic OIDC). See Core Setup.","s":"Permissioning","u":"/docs/intro","h":"#permissioning","p":211},{"i":220,"t":"Komodo uses Docker as the container engine for building and deploying. info Podman is also supported via the podman → docker alias.","s":"Docker","u":"/docs/intro","h":"#docker","p":211},{"i":222,"t":"Komodo v2 is a major release with significant architectural changes and new features.","s":"v2.0.0","u":"/docs/releases/v2.0.0","h":"","p":221},{"i":224,"t":"Docker Swarm support: Manage swarm clusters, nodes, services, stacks, configs, and secrets. Outbound periphery: Periphery can now initiate the connection to Komodo Core. PKI authentication: Core and Periphery now authenticate with auto-generated key pairs and automatic rotation. Passkeys are deprecated. Onboarding keys: streamlined server onboarding with reusable keys. Improved terminals: Terminals dashboard, km ssh, and improved Action scripting. Improved auto updates: Uses a better system to handle auto updates based on image digest. New UI: Improved look with higher contrast and better UI primitives. Passkey / TOTP 2FA: Built in two factor authentication for username / password login. Multi-login Linking: Users can now link multiple login providers (Local, OIDC, Github, etc) to their account. Full OpenAPI documentation: Interactive API docs now available.","s":"Changelog","u":"/docs/releases/v2.0.0","h":"#changelog","p":221},{"i":226,"t":"Komodo v2 introduces a new connection and authentication method between Komodo Core and the Periphery agents running on your Servers. Find more information on Komodo v2 here. It is largely backward compatible with Komodo v1 configuration, and users can upgrade from v1 in place by following the steps below. note Starting with v2, Komodo will not publish images with the latest tag in favor of Semver (2, 2.0, 2.0.0). This prevents unintented major version upgrades when using auto updaters.","s":"Upgrading to Komodo v2","u":"/docs/releases/v2.0.0","h":"#upgrading-to-komodo-v2","p":221},{"i":228,"t":"The first step is to upgrade both Core and Periphery to v2 versions, along with some small configuration changes. Upgrade Core In the Komodo Core compose service, update the image to :2 tag, and add a new mount to /config/keys. services: core: image: ghcr.io/moghtech/komodo-core:2 init: true # This should be added regardless of version volumes: - keys:/config/keys - (...unchanged) (...unchanged) volumes: keys: (...unchanged) warning Ensure the Komodo Core service includes init: true, as shown above. Failing to do so may cause a build up of zombie processes, and it wasn't included in earlier releases example compose file. Upgrade Periphery If you are running Komodo Periphery in a container, you also need the :2 tag for the image, and the keys will default to being stored in $PERIPHERY_ROOT_DIRECTORY/keys which should already be mounted. Still, if running Periphery in container, ensure you see the private / public keys in the key directory, you may need to add a mount if you customized mount directories. Systemd Periphery users just need to update their Periphery binary version. The keys will be stored in your root_directory (default: /etc/komodo/keys). After getting both Core and Periphery running, everything should already work correctly at this point.","s":"1. Upgrade Core and Periphery to v2","u":"/docs/releases/v2.0.0","h":"#1-upgrade-core-and-periphery-to-v2","p":221},{"i":230,"t":"If you want to reverse the agent connection, skip this step and go to 2b. If you want to keep the Core to Periphery connection direction, you can increase the security by moving from passkey authentication to public key authentication. Navigate to the Settings page, at the top you will find the Core Public Key (starting with MCow...). Copy this key and and redeploy Periphery agents with updated configuration: ## Accepted public keys to allow Core(s) to connect. ## Periphery gains knowledge of the Core public key through the noise handshake. ## If neither these nor passkeys provided, inbound connections will not be authenticated. ## Accepts Spki base64 DER directly and PEM file. Use `file:/path/to/core.pub` to load from file. ## Env: PERIPHERY_CORE_PUBLIC_KEYS ## Optional, no default. core_public_keys = \"\" After confirming the connection still works, you can remove any legacy passkey configuration for both Core and Periphery as it is no longer needed.","s":"2a. Move to public key authentication","u":"/docs/releases/v2.0.0","h":"#2a-move-to-public-key-authentication","p":221},{"i":232,"t":"The Periphery agent is now able to establish an outbound connection to Komodo Core. After updating to Komodo v2, you can follow these steps to migrate to outbound connections using public key authentication. Note you must be an Admin user on Komodo. (Periphery container only.) Ensure the automatically generated private keys are persisted by mounting to the /config/keys of the Periphery container, as noted above. Navigate to Settings / Onboarding and create a new onboarding key. Save it for later. Enable privileged mode on the new Onboarding Key. Redeploy Periphery agents with updated configuration: ## The address of Komodo Core. Must be reachable from this host. ## If provided, Periphery will operate in outbound mode. ## Env: PERIPHERY_CORE_ADDRESS ## Default: None core_address = \"\" # Example: demo.komo.do, ws://localhost:9120 ## The Server this Periphery agent should \"connect as\". ## Systemd periphery can use the system hostname by setting `connect_as = \"$(hostname)\"`. ## Env: PERIPHERY_CONNECT_AS ## Default: None connect_as = \"\" ## Make Onboarding Keys in Server settings. ## Not needed if connecting as Server that already exists. ## Env: PERIPHERY_ONBOARDING_KEY onboarding_key = \"\" Upon connecting, the privileged onboarding key will allow the existing server's expected public key to be updated, allowing the Periphery agent to connect. In general when onboarding new servers, privileged mode is not needed.","s":"2b. Reversing the agent connection","u":"/docs/releases/v2.0.0","h":"#2b-reversing-the-agent-connection","p":221},{"i":234,"t":"info If you don't know what this is, you don't need to do anything. Congratulations, you are done. Rename execute_terminal -> execute_server_terminal. So in v1 Action: // This took 2 calls in v1 await komodo.write(\"CreateTerminal\", { server: \"my-server\", name: \"my-terminal\", command: \"bash\", recreate: \"Always\", }); await komodo.execute_terminal( { server: \"my-server\", terminal: \"my-terminal\", command: \"ls -l\" }, { onLine: (line) => console.log(line) }, ); In v2 becomes: // Streamlined terminal execute with init options. await komodo.execute_server_terminal( { server: \"my-server\", terminal: \"my-terminal\", command: \"ls -l\", init: { command: \"bash\", recreate: \"Always\" }, }, { onLine: (line) => console.log(line) }, );","s":"3. Fix any komodo.execute_terminal in Actions","u":"/docs/releases/v2.0.0","h":"#3-fix-any-komodoexecute_terminal-in-actions","p":221},{"i":236,"t":"Komodo is extendible through the Resource abstraction. Entities like Server, Deployment, and Stack are all Komodo Resources. All resources have common traits, such as a unique name and id amongst all other resources of the same resource type. All resources can be assigned tags, which can be used to group related resources. note Many resources need access to git repos / docker registries. There is an in-built token management system (managed in UI or in config file) to give resources access to credentials. All resources which depend on git repos / docker registries are able to use these credentials to access private repos.","s":"Resources","u":"/docs/resources","h":"","p":235},{"i":238,"t":"Configure the connection to periphery agents. Set alerting thresholds. Can be attached to by Deployments, Stacks, Repos, and Builders.","s":"Server","u":"/docs/resources","h":"#server","p":235},{"i":240,"t":"Configure the manager nodes to control the Swarm through. Manage swarm nodes, stacks, services, tasks, configs, and secrets. Can be attached to by Deployments and Stacks.","s":"Swarm","u":"/docs/resources","h":"#swarm","p":235},{"i":242,"t":"Deploy a docker container on the attached Server. Manage services at the container level, perform orchestration using Procedures and ResourceSyncs.","s":"Deployment","u":"/docs/resources","h":"#deployment","p":235},{"i":244,"t":"Deploy with docker compose. Provide the compose file in UI, or move the files to a git repo and use a webhook for auto redeploy on push. Supports composing multiple compose files using docker compose -f ... -f .... Pass environment variables usable within the compose file. Interpolate in app-wide variables / secrets.","s":"Stack","u":"/docs/resources","h":"#stack","p":235},{"i":246,"t":"Put scripts in git repos, and run them on a Server, or using a Builder. Can build binaries, perform automation, really whatever you can think of.","s":"Repo","u":"/docs/resources","h":"#repo","p":235},{"i":248,"t":"Build application source into docker images, and push them to the configured registry. The source can be any git repo containing a Dockerfile.","s":"Build","u":"/docs/resources","h":"#build","p":235},{"i":250,"t":"Either points to a connected server, or holds configuration to launch a single-use AWS instance to build the image. Can be attached to Builds and Repos.","s":"Builder","u":"/docs/resources","h":"#builder","p":235},{"i":252,"t":"Compose many actions on other resource type, like RunBuild or DeployStack, and run it on button push (or with a webhook). Can run one or more actions in parallel \"stages\", and compose a series of parallel stages to run sequentially.","s":"Procedure","u":"/docs/resources","h":"#procedure","p":235},{"i":254,"t":"Write scripts calling the Komodo API in Typescript Use a pre-initialized Komodo client within the script, no api keys necessary. Type aware in UI editor. Get suggestions and see in depth docs as you type. The Typescript client is also published on NPM.","s":"Action","u":"/docs/resources","h":"#action","p":235},{"i":256,"t":"Orchestrate all your configuration declaratively by defining it in toml files, which are checked into a git repo. Can deploy Deployments and Stacks if changes are suggested. Specify deploy ordering with after array. (like docker compose depends_on but can span across servers.).","s":"Resource Sync","u":"/docs/resources","h":"#resource-sync","p":235},{"i":258,"t":"Route alerts to various endpoints. Can configure rules on each Alerter, such as resource whitelist, blacklist, or alert type filter.","s":"Alerter","u":"/docs/resources","h":"#alerter","p":235},{"i":260,"t":"To run Komodo, you will need Docker. See the docker install docs.","s":"Setup Komodo Core","u":"/docs/setup","h":"","p":259},{"i":262,"t":"Using MongoDB Using FerretDB (Postgres) info Some systems do not support running the latest MongoDB versions. Users with these systems should use FerretDB instead. info FerretDB v1 users: There is an upgrade guide for FerretDB v2 available here. 📄️ MongoDB MongoDB is the recommended database for Komodo. It stores all resource configuration, user accounts, audit logs, and system state. Komodo Core communicates with it directly using the MongoDB driver. 📄️ FerretDB - If you setup Komodo using Postgres or Sqlite options prior to Komodo v1.18.0, you are using FerretDB v1. 📄️ Advanced Setup Additional configuration options for Komodo Core and Periphery, including custom certificate authorities, OAuth/OIDC providers, and mounted config files. 📄️ Connect More Servers Every server you want to manage with Komodo needs the Periphery agent installed. 📄️ Backup and Restore Komodo can automatically back up its database on a schedule and restore from any previous snapshot. Backups are gzip-compressed and stored on disk or a remote server, and by default the most recent 14 backups are stored. The backup and restore operations are handled by the Komodo CLI, which is packaged in the Core image for convenience.","s":"Deploy with Docker Compose","u":"/docs/setup","h":"#deploy-with-docker-compose","p":259},{"i":264,"t":"MongoDB is the recommended database for Komodo. It stores all resource configuration, user accounts, audit logs, and system state. Komodo Core communicates with it directly using the MongoDB driver.","s":"📄️ MongoDB","u":"/docs/setup","h":"","p":259},{"i":266,"t":"- If you setup Komodo using Postgres or Sqlite options prior to Komodo v1.18.0, you are using FerretDB v1.","s":"📄️ FerretDB","u":"/docs/setup","h":"","p":259},{"i":268,"t":"Additional configuration options for Komodo Core and Periphery, including custom certificate authorities, OAuth/OIDC providers, and mounted config files.","s":"📄️ Advanced Setup","u":"/docs/setup","h":"","p":259},{"i":270,"t":"Every server you want to manage with Komodo needs the Periphery agent installed.","s":"📄️ Connect More Servers","u":"/docs/setup","h":"","p":259},{"i":272,"t":"Komodo can automatically back up its database on a schedule and restore from any previous snapshot. Backups are gzip-compressed and stored on disk or a remote server, and by default the most recent 14 backups are stored. The backup and restore operations are handled by the Komodo CLI, which is packaged in the Core image for convenience.","s":"📄️ Backup and Restore","u":"/docs/setup","h":"","p":259},{"i":274,"t":"Additional configuration options for Komodo Core and Periphery, including custom certificate authorities, OAuth/OIDC providers, and mounted config files.","s":"Advanced Setup","u":"/docs/setup/advanced","h":"","p":273},{"i":276,"t":"In order to communicate with companion services on private networks, such as OIDC and git providers, Komodo Core and Periphery may both need to trust one or more custom CAs. Starting in V2, Both the Komodo Core and Periphery images will automatically update-ca-certificates on startup, just mount any required root certificates inside /usr/local/share/ca-certificates: volumes: ## ... (unchanged) ## Mount custom root CA certificates to trust individually - /path/to/root_ca1.crt:/usr/local/share/ca-certificates/root_ca1.crt - /path/to/root_ca2.crt:/usr/local/share/ca-certificates/root_ca2.crt ## OR the whole folder is fine too. - /path/to/custom-certs:/usr/local/share/ca-certificates","s":"Custom Certificate Authorities","u":"/docs/setup/advanced","h":"#custom-certificate-authorities","p":273},{"i":278,"t":"To enable OAuth2 login, you must create a client on the respective OAuth provider, for example GitHub or Google. Komodo also supports self hosted OAuth2 providers like Authentik, Gitea and Keycloak. Komodo uses the web application login flow. The redirect uri is: /auth/github/callback for GitHub. /auth/google/callback for Google. /auth/oidc/callback for OIDC.","s":"OIDC / OAuth2","u":"/docs/setup/advanced","h":"#oidc--oauth2","p":273},{"i":280,"t":"Check out the Authentik integration docs.","s":"Authentik","u":"/docs/setup/advanced","h":"#authentik","p":273},{"i":282,"t":"Create an OIDC client in Keycloak. Note down the Client ID that you enter (e.g.: \"komodo\"), you will need it for Komodo configuration Valid Redirect URIs: use /auth/oidc/callback and substitute with your Komodo url. Turn Client authentication to On. After you finished creating the client, open it and go to Credentials tab and copy the Client Secret Edit your environment variables for komodo core docker container and set the following: KOMODO_OIDC_ENABLED=true KOMODO_OIDC_PROVIDER=https:///realms/master or replace master with another realm if you don't want to use the default one KOMODO_OIDC_CLIENT_ID=... what you specified as Client ID KOMODO_OIDC_CLIENT_SECRET=... that you copied from Keycloak","s":"Keycloak","u":"/docs/setup/advanced","h":"#keycloak","p":273},{"i":284,"t":"If using a reverse proxy with Komodo Core, you can limit the IPs which can connect to the Periphery endpoint. For example with Caddy: (reject-ips) { @externalIp not remote_ip 192.168.0.0/16 12.34.56.78/32 respond @externalIp 403 } komodo.example.com { handle /ws/periphery { import reject-ips reverse_proxy komodo-core:9120 } handle { reverse_proxy komodo-core:9120 } } note Your reverse proxy should set X-FORWARDED-HOST header to your Komodo Core domain, which caddy does by default.","s":"Limit Periphery IPs","u":"/docs/setup/advanced","h":"#limit-periphery-ips","p":273},{"i":286,"t":"If you prefer to keep sensitive information out of environment variables, you can optionally write a config file on your host, and mount it to /config/config.toml in the Komodo core container. The configuration can also be passed as YAML or JSON. You can use it-tools to convert this TOML file to your preferred format: YAML: https://it-tools.tech/toml-to-yaml JSON: https://it-tools.tech/toml-to-json info Configuration can still be passed in environment variables, and will take precedent over what is passed in the file. Quick download to ./komodo/core.config.toml: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/config/core.config.toml https://github.com/moghtech/komodo/blob/main/config/core.config.toml","s":"Mount a Config File","u":"/docs/setup/advanced","h":"#mount-a-config-file","p":273},{"i":288,"t":"Komodo can automatically back up its database on a schedule and restore from any previous snapshot. Backups are gzip-compressed and stored on disk or a remote server, and by default the most recent 14 backups are stored. The backup and restore operations are handled by the Komodo CLI, which is packaged in the Core image for convenience.","s":"Backup and Restore","u":"/docs/setup/backup","h":"","p":287},{"i":290,"t":"New installs (v1.19.0+) automatically create the Backup Core Database Procedure, scheduled daily. If you don't have it, this is the Toml: [[procedure]] name = \"Backup Core Database\" description = \"Triggers the Core database backup at the scheduled time.\" tags = [\"system\"] config.schedule = \"Every day at 01:00\" [[procedure.config.stage]] name = \"Stage 1\" enabled = true executions = [ { execution.type = \"BackupCoreDatabase\", execution.params = {}, enabled = true } ] info You are also able to integrate BackupCoreDatabase into other Procedures, for example to trigger this process before launching a backup container. There is nothing special about this Procedure, it's just created by default for guidance / convenience.","s":"Scheduled Backup","u":"/docs/setup/backup","h":"#scheduled-backup","p":287},{"i":292,"t":"When Komodo takes a database backup, it creates a folder named for the time the backup was taken, and dumps the gzip-compressed documents to files in this folder. In order to store the backups to disk, mount a host path to /backups in the Komodo Core container. Due to its larger size and relative unimportance, the Stats collection (containing historical server cpu / mem / disk usage) is not included in dated backups. Just latest Stats are maintained at the top level of the backup folder. In order to prevent unbounded growth, the backup process implements a pruning feature which will ensure only the most recent 14 backup folders are kept. To change this number, set max_backups (KOMODO_CLI_MAX_BACKUPS) in core.config.toml, komodo.cli.toml, or in the Core container environment. # Folder structure /backups | 2025-08-12_03-00-01 | | Action.gz | | Alerter.gz | | ... | 2025-08-13_03-00-01 | 2025-08-14_03-00-01 | ... | Stats.gz warning Currently no built-in encryption is supported, so you may want to encrypt the files before backing up remotely if your backup solution doesn't support that natively.","s":"Backups","u":"/docs/setup/backup","h":"#backups","p":287},{"i":294,"t":"Since database backup is actually a function of the Komodo CLI, you can also backup directly to a remote server using the ghcr.io/moghtech/komodo-cli image. This service will backup once and then exit, so the scheduled deployment should still happen using a Procedure or Action: services: cli: image: ghcr.io/moghtech/komodo-cli command: km database backup -y volumes: - /path/to/komodo/backups:/backups environment: ## Database port must be reachable. KOMODO_DATABASE_ADDRESS: komodo.example.com:27017 KOMODO_DATABASE_USERNAME: KOMODO_DATABASE_PASSWORD: KOMODO_DATABASE_DB_NAME: komodo KOMODO_CLI_MAX_BACKUPS: 30 # set to your preference","s":"Remote Backups","u":"/docs/setup/backup","h":"#remote-backups","p":287},{"i":296,"t":"The Komodo CLI handles database restores as well. services: cli: image: ghcr.io/moghtech/komodo-cli ## Optionally specify a specific folder with `--restore-folder`, ## otherwise restores the most recent backup. command: km database restore -y # --restore-folder 2025-08-14_03-00-01 volumes: # Same mount to backup files as above - /path/to/komodo/backups:/backups environment: ## Database port must be reachable. ## Note the different env vars needed compared to backup. ## This is to prevent any accidental restores. KOMODO_CLI_DATABASE_TARGET_ADDRESS: komodo.example.com:27017 KOMODO_CLI_DATABASE_TARGET_USERNAME: KOMODO_CLI_DATABASE_TARGET_PASSWORD: KOMODO_CLI_DATABASE_TARGET_DB_NAME: komodo-restore warning The restore process can be run multiple times with same backup files, and won't create any extra copies. HOWEVER it will not \"clear\" the target database beforehand. If the restore database is already populated, those old documents will also remain. You may want to drop / delete the target database before restoring to it in this case.","s":"Restore","u":"/docs/setup/backup","h":"#restore","p":287},{"i":298,"t":"So long as the backup process completes successfully, the files produces can always be restored no matter how active the Komodo instance is at the time of backup. However writes that happen during the backup process, such as updates to the resource configuration, may or may not be included in the backup depending on the timing. While it should be rare that this causes any kind of issue when it comes to restoring, if your Komodo undergoes a lot of usage at all hours and you are worried about consistency, you could consider locking Mongo before the backup. Just make sure to unlock the database afterwards.","s":"Consistency","u":"/docs/setup/backup","h":"#consistency","p":287},{"i":300,"t":"Every server you want to manage with Komodo needs the Periphery agent installed. Periphery is a small, stateless binary that provides receives commands from Komodo Core over a bi-directional websocket connection. Connecting a server has 3 steps: Create an onboarding key via the Komodo Core API / UI. Install the Periphery agent on the server or VM, passing the onboarding key. Confirm the connection status is OK.","s":"Connect More Servers","u":"/docs/setup/connect-servers","h":"","p":299},{"i":302,"t":"You can install Periphery as a systemd managed process, run it as a docker container, or run the binary directly with another process manager.","s":"Install Periphery","u":"/docs/setup/connect-servers","h":"#install-periphery","p":299},{"i":304,"t":"info This is the recommended and simplest method to run Periphery. It avoids a number of complications which can come up when running Periphery in a container. See this discussion. Root install curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery.py \\ | python3 - \\ --core-address=\"https://\" \\ --connect-as=\"$(hostname)\" \\ --onboarding-key=\"O-...\" User install Periphery can also be installed to run as a systemd user service (for the calling user). curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery.py \\ | python3 - --user \\ --core-address=\"https://\" \\ --connect-as=\"$(hostname)\" \\ --onboarding-key=\"O-...\" Enable the Periphery service to start automatically after a reboot. sudo systemctl enable periphery Important For systemctl user installs: To ensure periphery stays running when your user logs out, make sure to enable linger: sudo loginctl enable-linger $USER Configuration file The configuration file location will depend on root vs system install: Root install: /etc/komodo/periphery.config.toml User install: $HOME/.config/komodo/periphery.config.toml The full example configuration file is here. You can find more information (and view the script) in the script readme. info This script can be run multiple times without issue, and it won't change existing config after the first run. Just run it again after a Komodo version release, and it will update the periphery version. tip For deployment to many servers, a tool like Ansible should be used. An example of such a setup can be found here: https://github.com/bpbradley/ansible-role-komodo","s":"Systemd","u":"/docs/setup/connect-servers","h":"#systemd","p":299},{"i":306,"t":"You can use a docker compose file: https://github.com/moghtech/komodo/blob/main/compose/periphery.compose.yaml","s":"Container","u":"/docs/setup/connect-servers","h":"#container","p":299},{"i":308,"t":"Download the periphery binary from the latest release. Create and edit your config files, following the config example. note See the periphery config docs for more information on configuring periphery. Ensure that connectivity with Komodo Core is possible via the chosen connection method. So either: Periphery can reach Komodo Core at the configured core_address. Komodo Core can reach Periphery on the specified port (default 8120). Install docker. See the docker install docs. note Ensure that the user which periphery is run as has access to the docker group without sudo. Start the periphery binary with your preferred process manager, like systemd.","s":"Binary","u":"/docs/setup/connect-servers","h":"#binary","p":299},{"i":310,"t":"periphery --config-path /path/to/periphery.config.toml info You can run periphery --help to see the manual. When running periphery in docker, use command to pass in additional arguments. command: periphery --config-path /path/in/container/to/periphery.config.base.toml","s":"Example periphery start command","u":"/docs/setup/connect-servers","h":"#example-periphery-start-command","p":299},{"i":312,"t":"Core and Periphery authenticate using automatically generated public/private key pairs. No manual key management is required.","s":"Authentication and Key Rotation","u":"/docs/setup/connect-servers","h":"#authentication-and-key-rotation","p":299},{"i":314,"t":"When you create an onboarding key in the UI or API, Komodo Core generates a key pair, and the private key is returned once the the user as the \"onboarding key\". When Periphery first connects using the onboarding key, it generates its own key pair, and sends just the public key to Core. Core stores this public key for each Server. All subsequent communication is authenticated by performing a cryptographic handshake and validating the transfered public key matches. The onboarding key is no longer needed after the initial connection, and the Periphery private key never leaves the server.","s":"How it works","u":"/docs/setup/connect-servers","h":"#how-it-works","p":299},{"i":316,"t":"Component Install Method Default path Core Container /config/keys/core.key Periphery Container /config/keys/periphery.key Periphery Systemd ${root_directory}/keys/periphery.key Keys can also be specified inline in config instead of as file paths.","s":"Default key locations","u":"/docs/setup/connect-servers","h":"#default-key-locations","p":299},{"i":318,"t":"Komodo supports automatic rotation of the Periphery key pairs. When triggered, already connected Periphery agents generate a new key pair and sends the new public key to Komodo Core, which updates its expected public key for that server. Each Server has an auto_rotate_keys setting (default: true) that controls whether it participates in the bulk RotateAllServerKeys operation. You can also rotate keys for individual servers at any time through the API or UI.","s":"Automatic key rotation","u":"/docs/setup/connect-servers","h":"#automatic-key-rotation","p":299},{"i":320,"t":"Onboarding keys are reusable and support several options: Option Description enabled Enable or disable the key. expires Expiration timestamp (0 = never). tags Default tags applied to servers created with this key. copy_server Template Server to copy configuration from. create_builder Automatically create a Builder resource for the new server. privileged Allow the key to update public keys on existing servers.","s":"Onboarding key options","u":"/docs/setup/connect-servers","h":"#onboarding-key-options","p":299},{"i":322,"t":"The configuration can also be passed as YAML or JSON. You can use it-tools to convert this TOML file to your preferred format: YAML: it-tools.tech/toml-to-yaml JSON: it-tools.tech/toml-to-json Quick download to ./komodo/periphery.config.toml: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/config/periphery.config.toml https://github.com/moghtech/komodo/blob/main/config/periphery.config.toml","s":"Configuration","u":"/docs/setup/connect-servers","h":"#configuration","p":299},{"i":324,"t":"Either file paths or directory paths can be passed to --config-path (alias: -c). By default, no paths will be used, meaning the configuration is entirely loaded via environment variables. When using directories, the file entries can be filtered by name with the --config-keyword argument, which can be passed multiple times to add more keywords. These are each wildcard patterns to match file names. Only config files with file names that contain a keyword will be merged, with files matching later defined keywords having higher priority on field conflicts. By default, the only keyword is *config*.*. This matches files like config.toml, periphery.config.yaml, etc. When passing multiple config files, later --config-path given in the command will always override previous ones. Directory config files are merged in alphabetical order by name, so config_b.toml will override config_a.toml. There are two ways to merge config files. The default behavior is to completely replace any base fields with whatever fields are present in the override config. So if you pass allowed_ips = [] in your override config, the final allowed_ips will be an empty list as well. --merge-nested-config true will merge config fields recursively and extend config array fields. For example, with --merge-nested-config true you can specify an allowed ip in the base config, and another in the override config, they will both be present in the final config. Similarly, you can specify a base Docker / GitHub account pair, and extend them with additional accounts in the override config.","s":"Passing config files","u":"/docs/setup/connect-servers","h":"#passing-config-files","p":299},{"i":326,"t":"info If you setup Komodo using Postgres or Sqlite options prior to Komodo v1.18.0, you are using FerretDB v1. Komodo now uses FerretDB v2. For existing users, upgrading requires a migration. FerretDB is a MongoDB-compatible database backed by Postgres + DocumentDB extension. It is a solid option with performance comparable to MongoDB, and can also be run on some systems which do not support MongoDB. Copy komodo/ferretdb.compose.yaml and komodo/compose.env to your host: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/compose/ferretdb.compose.yaml && \\ wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/compose/compose.env Edit the variables in komodo/compose.env. Deploy using command: docker compose -p komodo -f komodo/ferretdb.compose.yaml --env-file komodo/compose.env up -d ferretdb.compose.yaml compose.env https://github.com/moghtech/komodo/blob/main/compose/ferretdb.compose.yaml https://github.com/moghtech/komodo/blob/main/compose/compose.env","s":"FerretDB","u":"/docs/setup/ferretdb","h":"","p":325},{"i":328,"t":"MongoDB is the recommended database for Komodo. It stores all resource configuration, user accounts, audit logs, and system state. Komodo Core communicates with it directly using the MongoDB driver.","s":"MongoDB","u":"/docs/setup/mongo","h":"","p":327},{"i":330,"t":"Copy komodo/mongo.compose.yaml and komodo/compose.env to your host: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/compose/mongo.compose.yaml && \\ wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/compose/compose.env Edit the variables in komodo/compose.env. Deploy using command: docker compose -p komodo -f komodo/mongo.compose.yaml --env-file komodo/compose.env up -d mongo.compose.yaml compose.env https://github.com/moghtech/komodo/blob/main/compose/mongo.compose.yaml https://github.com/moghtech/komodo/blob/main/compose/compose.env","s":"Quick Start","u":"/docs/setup/mongo","h":"#quick-start","p":327},{"i":332,"t":"Komodo can manage Docker Swarm clusters through the Swarm resource. Connect your swarm manager nodes and manage nodes, services, stacks, configs, and secrets from a single interface.","s":"Swarm","u":"/docs/swarm","h":"","p":331},{"i":334,"t":"A Swarm resource points to one or more manager nodes — these are Servers that already have Periphery installed and are part of a Docker Swarm as managers. If one manager is unreachable, Komodo will try the next one in the list. [[swarm]] name = \"production-swarm\" [swarm.config] server_ids = [\"manager-01\", \"manager-02\", \"manager-03\"] send_unhealthy_alerts = true","s":"Configuration","u":"/docs/swarm","h":"#configuration","p":331},{"i":336,"t":"Field Description Default servers List of Swarm manager Server names/IDs. Tries each sequentially on failure. [] send_unhealthy_alerts Send alerts when nodes or tasks are unhealthy. true maintenance_windows Scheduled windows during which alerts are suppressed. [] links Quick links displayed in the resource header. []","s":"Config fields","u":"/docs/swarm","h":"#config-fields","p":331},{"i":338,"t":"To use Docker Swarm with Komodo, you first need to initialize a swarm on one of your connected servers.","s":"Getting Started","u":"/docs/swarm","h":"#getting-started","p":331},{"i":340,"t":"SSH into your server (or use a Komodo terminal) and run docker swarm init: docker swarm init --advertise-addr ","s":"1. Initialize the Swarm","u":"/docs/swarm","h":"#1-initialize-the-swarm","p":331},{"i":342,"t":"Create a new Swarm resource and add the server as a manager node. Once created, Komodo will detect the swarm and display its nodes.","s":"2. Create the Swarm resource in Komodo","u":"/docs/swarm","h":"#2-create-the-swarm-resource-in-komodo","p":331},{"i":344,"t":"To add more servers to the swarm, navigate to the Swarm's node list in the UI and click the Join button. This will display the docker swarm join command with the correct token and address — copy it and run it on the server you want to add. There are separate join commands for worker and manager nodes. tip After a node joins, add it as a Server in Komodo and (for managers) include it in the Swarm resource's servers list for redundancy.","s":"3. Join additional nodes","u":"/docs/swarm","h":"#3-join-additional-nodes","p":331},{"i":346,"t":"View all nodes in the swarm with their role, availability, status, and other information.","s":"Nodes","u":"/docs/swarm","h":"#nodes","p":331},{"i":348,"t":"Swarm services can be managed directly, or created from Deployment resources by configuring swarm instead of server in the Deployment config. View running, desired, and completed task counts. Inspect service configuration and attached configs/secrets. View and search service logs with grep support.","s":"Services","u":"/docs/swarm","h":"#services","p":331},{"i":350,"t":"Deploy compose-based stacks to the swarm using docker stack deploy. Stack resources can target a Swarm by configuring swarm instead of server in the Stack config. Define compose files in the UI, on the host, or in a git repo (same as regular Stacks). View the services and tasks that make up a stack.","s":"Stacks","u":"/docs/swarm","h":"#stacks","p":331},{"i":352,"t":"Manage Docker Swarm configs and secrets directly from Komodo. Create configs and secrets with labels and an optional template driver. Rotate configs and secrets — since they are immutable in Docker, Komodo handles the rotation pattern automatically: Creates a temporary replacement. Updates all referencing services to use the temporary version. Removes and recreates the original with the new data. Updates services back to the original name. Remove configs and secrets. note Configs and secrets have a maximum size of 500KB.","s":"Configs and Secrets","u":"/docs/swarm","h":"#configs-and-secrets","p":331},{"i":354,"t":"Komodo tracks the overall health of each Swarm: State Meaning Healthy All nodes and tasks are OK. Unhealthy Some nodes or tasks don't match the desired state. Down All nodes or tasks are down. Unknown Status cannot be determined. When send_unhealthy_alerts is enabled, Komodo will route alerts through your configured Alerters.","s":"Health Monitoring","u":"/docs/swarm","h":"#health-monitoring","p":331},{"i":356,"t":"Both Deployments and Stacks can target a Swarm instead of a single Server: On a Deployment, set swarm to deploy the container as a Swarm service. You can attach swarm configs and secrets to the service. On a Stack, set swarm to deploy via docker stack deploy instead of docker compose up.","s":"Deploying to a Swarm","u":"/docs/swarm","h":"#deploying-to-a-swarm","p":331},{"i":358,"t":"Komodo provides browser-based terminal sessions for servers and containers. Sessions are persistent, support multiple simultaneous connections, and commands can be scripted and scheduled.","s":"Terminals","u":"/docs/terminals","h":"","p":357},{"i":360,"t":"Open a shell directly on a connected server. The default command is bash, configurable per-Periphery via default_terminal_command.","s":"Server Terminals","u":"/docs/terminals","h":"#server-terminals","p":357},{"i":362,"t":"Connect to a running container in two modes: Exec (default) — runs a new command inside the container (docker exec). Typically used for interactive shells. Attach — attaches to the container's main process (docker attach). Useful for interacting with the primary process directly. Container terminals are available on Deployments, Stack services, and any container visible on a server.","s":"Container Terminals","u":"/docs/terminals","h":"#container-terminals","p":357},{"i":364,"t":"You can create multiple named terminal sessions on the same resource. Each session has its own independent PTY process and output history. Terminal names must be unique within a target (e.g. two terminals named \"debug\" can exist on different servers). Multiple users can connect to the same terminal session simultaneously — output is broadcast to all connected clients. Sessions persist until explicitly deleted or Periphery restarts.","s":"Multiple Sessions","u":"/docs/terminals","h":"#multiple-sessions","p":357},{"i":366,"t":"Each terminal maintains a rolling 1 MiB output buffer. When you reconnect to an existing session, the history is replayed so you can see previous output.","s":"Terminal History","u":"/docs/terminals","h":"#terminal-history","p":357},{"i":368,"t":"Terminal sessions can also be accessed from the command line using the Komodo CLI. km ssh — open a shell on a server km exec — exec into a container km attach — attach to a container's main process Press Alt+Q to disconnect from any CLI terminal session while the session itself stays running.","s":"CLI","u":"/docs/terminals","h":"#cli","p":357},{"i":370,"t":"The execute_terminal API method allows you to run a command on a terminal and stream the output back over HTTP. This is useful for: Actions — TypeScript scripts can call execute_terminal on the Komodo client to run commands on any server or container and process the output programmatically. Automation — integrate terminal command execution into external tools via the REST API. The TypeScript client provides convenience methods for each target type. All methods accept optional callbacks with onLine (called per output line) and onFinish (called with the exit code). // Server terminal await komodo.execute_server_terminal({ server: \"my-server\", terminal: \"automation\", command: \"df -h\", init: { command: \"bash\", recreate: \"DifferentCommand\" }, }, { onLine: (line) => console.log(line), onFinish: (code) => console.log(\"Exit code:\", code), }); // Container terminal await komodo.execute_container_terminal({ server: \"my-server\", container: \"my-container\", terminal: \"debug\", command: \"cat /var/log/errors.log\", init: { command: \"sh\", mode: \"Exec\", recreate: \"Never\" }, }); // Stack service terminal await komodo.execute_stack_service_terminal({ stack: \"my-stack\", service: \"web\", terminal: \"debug\", command: \"nginx -t\", init: { command: \"sh\" }, }); // Deployment terminal await komodo.execute_deployment_terminal({ deployment: \"my-deployment\", terminal: \"check\", command: \"node --version\", init: { command: \"sh\", recreate: \"Always\" }, });","s":"Execute Terminal","u":"/docs/terminals","h":"#execute-terminal","p":357},{"i":372,"t":"Terminal behavior can be configured in the Periphery config file: Setting Description Default default_terminal_command Default shell command for new server terminals. bash disable_terminals Disable server terminal sessions. false disable_container_terminals Disable container terminal sessions. false","s":"Periphery Configuration","u":"/docs/terminals","h":"#periphery-configuration","p":357}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,0.753,1,6.969,2,3.792,3,3.054,4,2.419,5,5.381,6,5.381,7,6.23,8,4.461,9,1.748,10,3.417]],["t/4",[2,3.637,8,2.46,9,1.415,11,1.798,12,1.84,13,3.756,14,4.65,15,3.436,16,2.472,17,3.436,18,5.38,19,2.807,20,3.168,21,3.168,22,3.843,23,2.967,24,2.56,25,3.168,26,3.168,27,2.149,28,1.536,29,2.08,30,1.684,31,5.38,32,2.674,33,4.121,34,4.883,35,3.436,36,5.044,37,2.153,38,2.807]],["t/6",[9,1.354,10,4.189,13,2.584,18,5.861,19,3.942,20,4.448,27,1.735,28,1.255,30,2.365,39,2.782,40,1.653,41,5.397,42,3.33,43,5.397,44,5.225,45,5.896,46,2.949,47,5.397,48,3.116,49,3.942,50,2.365,51,3.942,52,5.523,53,4.167,54,4.448]],["t/8",[4,1.552,12,2.584,13,3.425,16,1.627,27,2.299,28,1.525,33,3.942,34,3.942,55,3.595,56,4.825,57,4.825,58,2.937,59,7.153,60,3.786,61,1.039,62,4.167,63,4.167,64,4.825,65,1.919,66,4.825,67,4.825,68,4.825]],["t/10",[0,0.693,3,1.569,27,2.287,28,1.487,29,1.114,31,5.197,69,2.005,70,3.724,71,2.384,72,2.491,73,2.251,74,3.2,75,2.615,76,2.913,77,1.714,78,1.755,79,0.939,80,1.799,81,1.476,82,3.2,83,1.23,84,1.895,85,3.2,86,2.95,87,3.2,88,2.491,89,6.827,90,3.827,91,3.579,92,3.956,93,3.91,94,1.114,95,1.151,96,7.114,97,3.2,98,2.764,99,3.724,100,3.579,101,3.579,102,2.764,103,3.579,104,2.491,105,1.029,106,3.579,107,2.384,108,2.615]],["t/12",[9,0.807,16,2.407,28,1.541,60,1.704,73,2.527,89,5.554,99,5.057,104,2.239,105,0.926,109,2.485,110,2.21,111,3.218,112,2.877,113,2.653,114,3.218,115,4.938,116,3.218,117,2.477,118,1.637,119,1.578,120,2.653,121,2.239,122,2.877,123,2.877,124,2.144,125,2.144,126,2.653,127,2.351,128,2.653,129,2.877,130,5.371,131,2.877,132,2.877,133,1.751,134,1.659,135,2.239,136,4.952,137,1.472,138,3.218,139,6.008,140,2.877,141,3.218,142,2.877,143,2.06,144,3.218,145,2.485,146,3.218,147,3.218,148,3.218]],["t/14",[0,0.802,2,4.037,3,3.251,9,1.861,10,3.638,79,1.947,149,3.471]],["t/16",[2,4.044,3,2.506,10,3.644,27,1.838,28,1.479,39,2.948,46,3.403,51,4.178,52,4.416,54,4.714,135,3.979,150,3.529,151,5.719,152,3.112,153,5.719,154,4.714,155,5.113,156,5.113,157,4.714,158,4.714]],["t/18",[9,1.67,10,4.202,28,1.041,30,2.125,39,2.5,40,1.485,44,3.542,45,3.997,46,3.132,49,4.862,50,2.125,51,3.542,52,5.139,53,5.139,54,3.997,58,2.639,61,0.934,134,2.5,155,4.336,156,4.336,157,3.997,158,3.997,159,4.85,160,4.85,161,2.993,162,3.542,163,4.85,164,4.85,165,4.85,166,4.85,167,3.744,168,3.843,169,3.523,170,2.269,171,3.997]],["t/21",[0,0.643,10,2.921,28,0.932,49,4.351,51,4.351,52,5.89,53,5.89,61,1.147,69,3.337,135,4.145,154,4.91,172,2.082,173,5.957,174,5.325,175,5.325,176,5.325,177,5.325,178,5.325,179,5.325,180,5.325,181,5.325,182,4.599,183,5.957,184,5.325]],["t/23",[28,1.497,39,2.379,49,4.698,51,3.371,53,4.966,83,1.586,135,5.151,136,3.804,140,4.126,172,1.613,174,5.75,175,5.75,176,4.126,177,4.126,178,4.126,179,4.126,180,4.126,181,4.126,185,4.616,186,6.432,187,2.585,188,4.616,189,2.32,190,3.564,191,8.158,192,4.126,193,4.616,194,4.616,195,4.616]],["t/25",[9,2.021,10,4.294,26,5.354,73,2.732,79,1.705,134,4.153,196,6.496,197,5.015,198,5.807,199,4.52,200,3.264,201,6.496,202,5.807,203,5.807]],["t/27",[0,0.679,2,3.419,3,2.753,9,1.98,10,3.081,79,1.649,134,3.239,157,5.178,158,5.178,168,3.628,169,4.566,170,2.94,171,5.178,204,3.778,205,3.419,206,3.419,207,6.283]],["t/29",[0,0.552,3,1.476,4,2.246,12,1.613,13,2.959,16,1.016,42,2.079,60,1.784,61,0.649,65,1.198,79,1.811,81,2.108,92,2.079,94,1.049,110,1.508,113,2.777,133,1.834,149,1.576,169,1.784,170,1.576,208,1.918,209,2.318,210,2.461,211,3.736,212,2.244,213,2.638,214,3.369,215,3.012,216,1.834,217,2.777,218,5.114,219,3.012,220,2.344,221,2.508,222,2.344,223,2.548,224,1.918,225,3.012,226,3.369,227,1.693,228,2.777,229,3.369,230,2.344,231,2.344,232,3.012,233,3.948,234,2.157,235,2.344,236,2.461,237,2.461,238,2.777,239,2.777,240,2.601,241,4.51,242,2.157,243,3.012,244,1.834,245,2.157,246,1.336,247,2.777,248,2.344,249,3.369,250,3.369,251,4.572,252,2.601,253,2.777,254,2.079]],["t/31",[69,3.337,81,2.456,94,1.854,133,3.241,204,2.852,208,2.234,209,2.234,213,2.998,223,2.456,224,2.234,241,3.44,244,3.241,246,2.362,255,3.44,256,3.968,257,3.552,258,4.599,259,3.676,260,4.145,261,5.325,262,4.91,263,4.145,264,4.145]],["t/34",[27,1.802,28,1.493,30,2.457,40,1.717,46,2.312,105,1.613,110,2.51,118,1.921,121,5.689,137,2.565,204,2.685,211,4.096,265,3.46,266,5.608,267,4.096,268,5.013,269,5.013,270,5.608,271,3.141]],["t/36",[27,1.857,28,1.421,30,2.531,37,3.236,38,4.22,46,2.381,105,1.661,110,2.586,118,1.233,121,4.019,246,3.289,265,3.565,272,4.104,273,6.165,274,1.493,275,4.46,276,5.165,277,4.761,278,4.46]],["t/38",[27,1.444,28,1.542,29,1.398,30,1.249,37,2.517,46,1.852,92,1.759,105,1.292,110,2.011,172,0.996,203,4.017,211,2.082,224,1.069,265,2.773,269,2.549,274,0.737,279,3.971,280,2.851,281,2.201,282,2.851,283,2.549,284,1.899,285,2.851,286,2.549,287,2.851,288,2.549,289,2.082,290,1.759,291,3.87,292,2.851,293,2.549,294,4.972,295,2.851,296,2.851,297,2.851,298,2.851,299,2.851,300,4.017,301,2.35,302,3.341,303,4.493,304,2.517,305,3.469,306,2.773,307,4.294,308,2.35,309,2.851,310,2.549,311,1.759,312,1.984,313,2.851,314,2.851,315,2.851,316,1.899,317,1.7,318,1.597,319,2.851,320,2.851,321,2.851,322,2.851,323,1.223,324,3.282,325,2.851,326,2.851,327,2.851,328,2.851,329,2.851,330,2.851]],["t/40",[9,0.531,16,2.522,27,1.458,28,1.553,29,1.412,30,1.546,37,3.776,38,1.545,46,1.454,48,1.221,90,1.063,102,1.633,105,1.014,110,1.579,118,1.13,137,0.968,143,1.354,161,1.305,172,1.85,208,0.793,209,0.793,211,2.576,237,1.545,241,2.619,265,1.305,274,0.912,284,1.409,301,2.907,307,5.843,324,3.867,331,2.729,332,4.536,333,2.115,334,6.237,335,0.703,336,2.115,337,0.99,338,3.153,339,3.153,340,3.527,341,3.022,342,1.891,343,1.185,344,1.426,345,2.907,346,3.527,347,3.527,348,2.115,349,1.633,350,2.115,351,2.075,352,1.305,353,1.409,354,3.527,355,2.907,356,3.527,357,3.153,358,3.527,359,1.354,360,1.305,361,2.115,362,2.115]],["t/42",[16,1.961,27,1.508,28,1.501,30,2.056,37,2.628,46,1.934,65,3.012,105,1.349,110,2.1,118,1.388,121,3.264,224,2.44,265,2.895,307,6.226,311,2.895,312,3.264,334,3.866,359,3.003,363,4.691,364,4.691,365,4.194,366,3.866,367,4.691,368,4.691,369,3.264,370,3.866,371,2.628,372,2.553,373,2.797,374,2.056,375,4.691]],["t/44",[0,0.308,2,3.027,13,2.663,14,2.35,16,2.07,27,2.029,28,1.57,29,1.731,30,1.249,33,4.063,34,5.33,35,2.549,36,4.972,37,1.597,38,2.082,55,1.899,56,2.549,60,2.379,61,0.549,62,2.201,63,2.201,66,2.549,67,4.017,68,4.017,90,1.433,95,0.916,105,0.82,110,1.276,143,1.825,204,2.152,265,1.759,271,2.517,277,2.35,284,1.899,288,2.549,290,1.759,301,2.35,307,5.896,334,5.661,376,1.825,377,2.851,378,2.201,379,1.646,380,2.851,381,2.851,382,2.851,383,2.851]],["t/46",[0,0.628,3,1.755,9,1.005,12,1.917,27,1.287,28,1.512,29,1.809,30,1.755,37,2.243,40,1.226,61,1.12,83,1.376,90,2.012,95,1.869,105,1.152,110,1.792,118,1.24,127,2.925,137,1.832,187,2.243,223,1.651,224,2.817,265,2.471,311,2.471,312,2.786,316,2.667,344,1.619,345,3.3,369,2.786,370,3.3,384,2.667,385,2.667,386,1.963,387,1.684,388,4.004,389,3.091,390,3.3,391,2.786,392,4.004,393,4.004,394,4.004,395,2.563,396,4.004,397,2.786,398,3.58,399,3.58,400,4.004,401,4.004,402,4.004]],["t/48",[4,2.137,27,1.838,28,1.452,40,1.752,61,1.102,83,1.965,105,1.645,223,2.358,224,2.145,241,4.291,265,3.529,311,3.529,312,3.979,316,3.81,369,3.979,370,4.714,389,4.416,390,4.714,403,5.719,404,5.719,405,5.719,406,5.719,407,5.719]],["t/50",[0,0.321,4,1.334,13,3.09,16,0.895,27,1.835,28,1.563,29,1.444,46,1.224,49,2.168,50,1.301,55,1.977,60,1.571,61,0.572,63,3.581,69,2.598,79,0.779,95,0.954,118,0.633,119,1.456,133,1.615,172,1.038,224,1.113,244,1.615,265,1.832,271,1.663,279,1.615,290,3.983,302,1.571,306,4.58,312,2.066,337,3.473,408,2.969,409,2.654,410,2.654,411,2.654,412,2.447,413,4.176,414,2.03,415,2.654,416,1.389,417,2.969,418,2.292,419,1.53,420,4.147,421,3.09,422,5.104,423,5.104,424,2.969]],["t/52",[0,0.637,4,1.696,40,1.806,83,2.604,84,4.433,223,2.43,254,4.676,260,4.102,344,2.383,360,3.638,425,5.271,426,4.519,427,4.552,428,4.376,429,5.895,430,5.535,431,5.271,432,4.102,433,3.121,434,5.895]],["t/54",[0,0.672,2,2.396,3,1.929,4,1.79,13,2.108,27,2,28,0.973,29,1.37,50,1.929,61,0.848,65,1.566,84,2.331,104,4.33,105,1.266,161,2.717,162,3.216,172,1.539,197,3.4,224,1.652,227,2.213,241,2.543,254,3.84,323,1.89,359,2.819,372,2.396,387,1.852,426,2.626,427,4.804,435,3.064,436,5.129,437,3.216,438,2.819,439,3.4,440,4.403,441,3.216,442,3.064,443,1.929,444,2.933,445,3.937,446,3.937,447,4.403,448,4.403,449,4.804,450,5.129,451,3.937,452,4.403,453,4.403,454,2.543,455,4.403,456,4.403]],["t/56",[2,3.241,3,2.61,4,2.194,13,2.852,16,1.796,27,1.915,28,0.932,29,2.619,58,3.241,65,2.118,77,2.852,92,4.707,224,2.234,241,4.405,371,3.337,391,4.145,446,5.325,457,7.628,458,3.813,459,5.957]],["t/58",[0,0.6,28,0.869,83,1.908,84,2.94,105,1.597,137,2.541,172,3.02,208,2.083,221,2.723,223,2.289,254,5.021,360,3.427,436,6.707,437,4.056,438,3.555,460,4.498,461,4.288,462,5.553,463,5.553,464,4.288,465,5.553,466,2.791,467,5.553,468,3.864,469,5.553]],["t/60",[0,0.671,3,2.723,4,1.787,29,1.934,60,3.29,79,1.631,83,2.135,92,5.297,168,3.589,189,3.123,221,4.209,223,2.562,254,3.835,255,3.589,360,3.835,397,4.324,458,3.978,470,6.215]],["t/62",[0,0.753,9,1.748,29,2.617,79,1.829,221,3.417,274,2.174,471,3.273,472,6.969,473,3.689]],["t/64",[0,0.68,28,1.302,29,1.958,40,1.37,46,1.843,61,0.861,69,2.505,79,1.173,81,1.843,83,1.536,92,2.759,172,1.563,213,1.511,216,2.433,223,1.843,224,2.73,255,2.582,257,2.667,264,3.111,279,2.433,311,2.759,323,1.919,331,2.305,335,1.486,344,2.543,352,2.759,371,2.505,372,2.433,373,2.667,387,1.881,464,3.453,466,2.247,474,3.686,475,3.111,476,6.097,477,5.624,478,2.667,479,2.305,480,2.863,481,3.998,482,4.472,483,3.998,484,3.998,485,3.998,486,2.979]],["t/66",[27,1.768,28,1.548,29,1.712,31,5.291,37,3.081,92,3.394,224,2.063,234,3.521,279,3.942,308,4.533,311,3.394,318,3.081,374,2.41,414,2.576,458,3.521,487,5.5,488,4.533,489,4.533,490,4.917]],["t/68",[0,0.201,4,1.189,9,1.037,24,1.24,27,1.018,28,1.356,29,2.471,30,0.816,39,0.96,40,0.97,42,1.149,44,1.36,46,2.452,58,1.013,61,0.939,81,0.767,83,1.088,90,1.592,92,2.551,98,2.445,105,0.535,110,2.183,117,0.767,143,1.192,145,1.437,161,3.01,167,2.445,170,0.871,206,1.013,213,1.07,221,2.681,223,1.306,224,1.83,231,1.295,234,1.192,236,1.36,254,2.551,263,2.876,264,1.295,271,2.315,274,1.538,279,2.249,290,1.149,311,1.149,316,1.24,318,1.774,323,0.799,324,2.313,344,0.753,352,1.954,360,1.954,369,1.295,371,2.315,372,1.013,374,1.388,389,2.445,416,0.871,425,1.664,458,1.192,464,1.437,466,2.077,471,1.609,473,0.985,476,4.222,477,2.832,478,1.11,480,1.192,483,2.832,484,1.664,485,1.664,486,2.11,488,1.534,491,1.437,492,1.664,493,1.862,494,1.664,495,1.075,496,1.534,497,1.534,498,1.664,499,2.832,500,1.437,501,1.664,502,2.61,503,1.664,504,1.954,505,1.664,506,1.534,507,1.664,508,1.664,509,2.832,510,1.534,511,1.862,512,2.313,513,1.862,514,2.11,515,1.862,516,1.664,517,1.534,518,1.862,519,2.204,520,2.61,521,1.664,522,3.167,523,1.36,524,3.695,525,2.61,526,2.445,527,1.862,528,0.985,529,1.862,530,1.862,531,1.664,532,1.534,533,1.075,534,1.862,535,1.664,536,1.11,537,1.862,538,1.862,539,1.862,540,2.204,541,1.24,542,1.36]],["t/70",[0,0.694,29,1.999,40,1.967,61,1.541,90,3.228,110,2.875,170,3.005,221,3.149,231,4.469,323,2.757,492,5.742,495,3.709,496,5.294,497,5.294,543,6.423,544,4.692,545,6.423,546,4.112]],["t/72",[40,1.769,110,3.713,143,3.698,189,2.903,204,2.766,221,2.833,263,4.019,323,2.479,398,5.165,474,4.761,502,4.761,503,5.165,504,4.615,505,5.165,506,4.761,507,5.165,508,5.165,509,5.165,510,4.761,544,4.22,547,5.165,548,3.565,549,5.165,550,4.46,551,5.777,552,4.46]],["t/74",[6,4.167,29,1.679,39,2.782,57,4.825,61,1.039,90,2.712,98,6.863,110,3.979,167,4.167,172,1.886,206,2.937,221,2.646,263,3.755,499,7.173,501,4.825,502,5.896,504,4.951,510,5.896,553,4.825,554,3.455,555,4.825,556,5.397]],["t/76",[27,2.943,29,2.021,40,1.989,58,3.535,60,3.439,61,1.251,172,2.27,471,3.135,473,3.439,498,5.807,557,5.354,558,4.745,559,5.807,560,5.354]],["t/78",[28,1.26,39,3.349,90,4.049,172,2.816,246,2.576,252,5.015,271,3.639,494,5.807,495,3.751,496,5.354,497,5.354,549,5.807,550,5.015,561,6.496,562,4.52]],["t/80",[0,0.389,12,1.725,16,2.151,28,1.443,29,2.002,39,1.857,40,1.647,48,3.105,50,1.578,61,0.694,77,1.725,79,0.945,83,1.238,105,1.036,118,0.769,170,1.685,221,3.155,234,3.442,245,2.306,274,0.931,308,2.969,318,3.604,323,1.546,344,1.456,373,2.148,374,3.51,413,2.148,414,1.912,416,1.685,426,3.207,432,2.506,433,1.907,454,2.08,468,2.506,473,3.778,488,4.432,489,2.969,490,3.22,557,2.969,563,2.969,564,2.969,565,3.22,566,2.969,567,2.306,568,1.981,569,3.22,570,3.22,571,2.306,572,2.631,573,2.506,574,3.602,575,3.602,576,3.22]],["t/82",[12,2.584,27,1.735,28,1.119,29,2.226,40,1.653,58,2.937,61,1.039,97,4.825,172,1.886,208,2.024,274,2.209,279,3.893,386,2.646,443,2.365,500,4.167,533,3.116,535,7.638,555,7.173,557,4.448,577,5.397,578,5.397,579,3.218,580,3.33,581,4.825,582,5.397]],["t/84",[0,0.735,4,1.957,9,1.707,29,2.58,61,1.311,118,1.769,273,5.608,279,4.511,478,4.057,568,2.506,583,4.734]],["t/86",[9,1.861,95,2.385,118,1.583,216,4.037,255,4.284,279,4.037,584,4.037]],["t/88",[0,0.68,27,0.912,28,1.459,29,1.393,32,4.768,37,1.589,46,1.845,61,0.546,78,1.391,84,1.502,94,1.725,95,0.912,170,1.327,172,0.991,187,1.589,204,1.358,208,2.079,209,1.064,240,2.19,244,1.544,271,1.589,274,0.733,279,2.436,281,3.456,283,2.536,284,1.89,286,4.956,293,4.002,294,4.956,300,2.536,372,1.544,386,2.195,416,2.094,442,1.974,443,1.243,471,1.104,568,1.045,584,1.544,585,3.269,586,2.536,587,4.002,588,2.837,589,2.536,590,2.837,591,2.837,592,2.837,593,2.837,594,2.837,595,2.837,596,2.837,597,1.974,598,2.837,599,2.338,600,2.837,601,2.338,602,2.837,603,2.837,604,2.338,605,1.691,606,2.837,607,2.837,608,2.837,609,3.456,610,2.338,611,2.536,612,2.536,613,2.837,614,2.338,615,2.837,616,4.002,617,2.072,618,2.072,619,2.837,620,2.837,621,2.19,622,2.536,623,2.837,624,2.837,625,2.837,626,2.338,627,1.89,628,1.974,629,2.536,630,2.072,631,2.536,632,2.837,633,1.589]],["t/90",[0,0.744,4,1.98,83,2.366,133,3.747,413,4.106,414,2.449,416,3.222,634,5.675,635,6.156,636,3.645,637,5.029,638,4.408,639,6.156]],["t/92",[0,0.547,4,1.456,12,2.424,132,4.527,204,2.424,208,1.899,219,4.527,241,2.924,257,3.019,290,3.124,411,4.527,413,5.348,414,3.362,478,3.019,479,2.61,536,3.019,572,3.699,583,3.523,627,5.795,640,6.128,641,4.173,642,5.063,643,4.527,644,5.063,645,4.527]],["t/94",[0,0.384,3,2.799,4,2.5,13,3.058,28,0.557,29,1.107,40,1.089,50,2.335,61,1.026,69,2.984,73,1.496,79,1.861,105,1.023,112,3.18,117,1.466,133,1.936,142,3.18,168,2.054,204,1.703,209,2.66,210,2.598,244,1.936,306,4.687,360,3.287,413,3.177,414,3.091,416,2.988,421,3.549,443,1.559,479,1.834,548,2.195,567,2.277,579,2.121,601,2.932,627,2.37,637,2.598,638,2.277,646,2.598,647,2.932,648,4.763,649,2.747,650,5.328,651,2.37,652,5.264,653,5.328,654,2.932,655,2.054,656,2.37]],["t/96",[4,1.757,9,0.675,11,1.259,16,2.145,28,0.671,29,1.666,40,1.314,48,1.554,50,1.179,65,2.531,73,1.131,83,0.924,118,1.705,119,3.274,162,1.965,200,1.352,224,2.008,237,1.965,241,1.554,244,3.872,274,1.384,279,2.336,290,1.66,302,2.272,306,2.648,335,2.03,337,3.494,351,1.231,413,3.644,414,3.029,416,2.859,418,3.314,419,2.213,421,1.792,437,1.965,449,3.314,466,1.352,544,1.965,548,1.66,627,1.792,634,2.217,638,1.722,646,5.454,657,2.69,658,2.69,659,2.69,660,3.314,661,2.69,662,2.69,663,3.837,664,3.837,665,1.604,666,1.792,667,2.217,668,2.69,669,2.405,670,2.69,671,2.69,672,2.69,673,2.747,674,2.69,675,2.69,676,2.077]],["t/98",[4,1.675,9,0.769,12,1.467,13,3.143,16,0.923,27,0.985,28,1.541,29,0.953,50,1.343,60,1.622,61,0.59,63,2.365,65,2.674,84,1.622,105,0.881,119,2.331,133,1.667,189,1.54,206,1.667,209,1.783,212,2.041,290,3.595,302,3.084,306,4.385,312,2.132,409,2.739,410,2.739,412,2.525,413,3.915,414,2.335,415,2.739,416,1.433,418,3.67,420,2.739,421,2.041,422,4.25,423,4.25,468,2.132,480,1.961,627,3.88,646,3.473,654,3.918,656,2.041,677,3.064,678,1.961,679,3.064,680,2.365,681,3.064,682,3.064,683,3.064,684,2.365,685,4.754]],["t/100",[0,0.759,4,1.511,29,1.635,46,1.44,50,1.53,73,1.469,79,0.916,88,2.43,118,1.121,134,2.709,150,2.155,172,1.837,199,2.43,204,1.672,206,2.859,208,2.369,209,1.31,227,1.755,237,2.551,246,1.385,302,1.849,374,1.53,413,4.493,414,3.26,416,2.955,438,3.364,552,2.696,567,4.044,579,2.083,637,2.551,638,5.536,646,3.838,648,3.122,652,2.879,654,2.879,686,2.879,687,4.331,688,3.492,689,1.634,690,2.879,691,3.492,692,3.492,693,3.492,694,3.492,695,3.656,696,3.492,697,3.492,698,2.879,699,2.879,700,2.696,701,3.122]],["t/102",[0,0.664,4,2.239,29,1.913,65,2.186,77,2.944,79,1.613,83,2.935,215,5.496,223,2.534,224,2.306,241,3.55,244,3.346,274,1.589,337,2.877,374,2.694,428,3.55,473,3.254,702,5.496,703,6.148,704,4.491]],["t/104",[0,0.679,4,1.807,29,1.955,60,3.326,61,1.21,65,2.234,79,2.071,83,2.159,223,2.59,224,2.357,241,3.628,264,4.371,371,3.519,372,3.419,374,2.753,428,3.628,437,4.589,454,3.628,468,4.371,705,5.617]],["t/106",[0,0.547,28,0.792,81,2.826,83,2.67,105,1.456,137,2.317,150,3.124,172,2.396,205,2.755,210,3.699,213,1.711,223,2.826,246,2.718,274,1.309,318,2.836,374,3.649,416,2.369,438,3.241,443,2.219,454,2.924,473,3.628,475,3.523,528,2.68,641,4.173,651,3.373,689,2.369,695,3.523,706,5.063,707,3.909,708,3.241,709,4.173,710,3.909,711,3.699]],["t/108",[4,1.971,9,1.27,28,0.792,50,3.003,73,2.129,77,3.282,79,1.329,81,3.203,83,2.355,94,1.576,95,1.628,105,2.395,118,1.463,172,1.77,205,2.755,213,2.316,259,3.124,290,3.124,374,3.405,389,3.909,421,3.373,439,3.909,454,2.924,478,3.019,568,1.865,700,3.909,712,3.699,713,4.173,714,4.173,715,5.063]],["t/110",[0,0.664,55,4.095,83,2.674,200,3.09,223,3.521,224,2.306,344,3.146,371,4.784,426,3.666,427,4.747,430,4.491,431,5.496,716,4.095,717,6.148,718,6.148,719,6.148,720,6.148]],["t/112",[28,1.238,30,2.3,39,2.706,40,1.607,44,3.834,46,2.164,48,3.031,58,2.856,83,2.413,170,2.456,172,1.834,200,2.638,220,3.652,223,2.164,224,1.969,271,2.94,316,3.496,318,2.94,371,2.94,374,3.077,414,1.867,416,2.456,454,3.031,514,5.867,525,4.326,708,3.36,716,3.496,721,4.326,722,5.249,723,3.652,724,3.36]],["t/114",[28,1.576,271,2.393,316,2.846,318,3.976,369,4.939,371,2.393,374,3.11,387,1.797,414,2.524,427,3.298,430,3.121,454,4.098,514,4.057,708,4.544,712,3.121,714,3.521,716,2.846,725,3.819,726,4.272,727,3.121,728,3.521,729,5.445,730,4.272]],["t/116",[0,0.702,200,3.264,221,3.185,274,2.083,335,2.158,344,2.626,387,2.732,391,4.52,426,3.874,432,4.52,451,5.807,471,2.528,473,4.636,570,5.807,727,4.745]],["t/118",[27,1.657,28,1.312,29,1.604,30,2.259,39,2.657,40,1.579,48,4.006,107,3.433,187,2.887,200,2.59,204,2.468,234,3.3,318,2.887,323,2.212,337,2.412,374,2.259,387,2.168,428,2.976,439,3.98,454,2.976,471,2.006,473,4.44,514,3.433,536,3.074,566,4.248,708,3.3,721,4.248,724,3.3,731,6.937,732,5.154,733,5.154,734,4.608,735,5.154]],["t/120",[28,1.564,50,1.719,189,1.971,221,1.923,234,3.666,318,3.788,374,2.964,376,2.511,387,1.649,413,2.339,414,2.405,416,2.679,426,3.415,433,2.076,454,4.567,471,1.526,473,2.076,489,3.232,566,3.232,569,3.506,571,2.511,708,4.329,712,2.865,714,3.232,725,3.506,727,2.865,729,3.506,736,6.763,737,3.922,738,3.922,739,3.922,740,3.922]],["t/122",[16,2.464,29,2.283,40,1.717,77,2.685,79,1.925,105,1.613,107,3.735,118,1.197,221,2.75,234,4.696,245,3.59,318,3.141,374,3.583,439,4.329,468,3.902,471,2.182,473,3.883,478,3.344,568,2.066,572,4.096,576,5.013,734,5.013,741,6.559]],["t/124",[0,0.52,4,1.383,24,3.203,28,1.463,61,0.926,65,1.71,78,3.71,79,1.262,102,5.109,224,1.804,331,2.479,351,2.2,352,5.029,355,5.454,360,2.967,371,2.694,391,3.346,414,1.71,466,2.417,500,3.713,581,4.299,678,3.078,724,3.078,742,5.916,743,4.809,744,6.617,745,6.617,746,4.809,747,6.617,748,4.809]],["t/126",[0,0.782,4,1.491,9,0.514,28,0.904,50,0.897,61,1.204,64,1.83,73,1.443,77,2.483,78,1.004,79,1.163,80,1.029,81,1.415,94,1.614,95,1.857,102,4.004,105,1.661,118,0.437,133,1.114,168,1.182,172,1.2,187,2.482,189,1.029,208,0.768,209,0.768,213,1.951,230,1.425,234,1.311,238,1.688,246,2.762,255,1.182,256,1.364,262,1.688,263,1.425,302,1.084,306,3.2,323,1.473,331,3.591,343,1.923,352,1.263,355,1.688,357,1.83,359,1.311,379,1.182,391,1.425,414,1.221,416,1.606,438,2.197,442,2.388,443,1.504,461,1.581,466,4.278,546,1.311,573,1.425,584,1.868,605,1.221,626,1.688,637,2.507,638,1.311,639,1.83,649,1.581,652,1.688,656,1.364,660,1.581,664,1.83,666,2.286,678,1.311,689,0.958,695,1.425,698,1.688,699,1.688,700,1.581,712,1.496,713,1.688,716,1.364,742,3.069,749,1.496,750,1.263,751,1.221,752,2.65,753,2.047,754,2.829,755,1.83,756,1.581,757,3.432,758,2.047,759,1.83,760,1.83,761,2.047,762,2.047,763,2.047,764,1.496,765,4.431,766,2.118,767,2.047,768,2.047,769,2.047,770,2.047,771,2.047,772,3.432,773,3.962,774,3.421,775,1.311,776,1.83,777,1.83,778,1.581,779,1.688]],["t/128",[0,0.762,4,2.029,149,3.301,209,2.646,274,1.824,471,2.745,655,4.074,751,4.207,780,5.153,781,5.153,782,5.815]],["t/130",[8,3.028,16,1.426,42,2.919,65,2.326,79,1.241,81,1.95,110,3.357,149,2.213,168,3.777,169,3.97,187,2.649,209,3.186,223,1.95,225,4.228,257,3.901,344,1.912,433,2.504,471,2.918,495,3.777,504,2.919,512,3.455,517,3.898,605,3.901,655,3.777,751,3.901,780,4.778,783,3.15,784,3.652,785,3.898,786,2.213,787,4.228,788,4.228,789,4.228]],["t/132",[2,4.008,4,1.105,10,1.884,13,1.84,16,1.158,18,2.807,27,1.813,28,1.495,30,1.684,33,2.807,34,2.807,40,1.177,46,2.326,61,0.74,65,1.367,110,1.72,134,1.981,135,2.674,137,1.758,143,2.46,152,2.091,154,3.168,200,1.931,204,3.201,205,2.091,208,1.441,209,2.507,257,2.292,304,2.153,386,1.884,391,2.674,419,1.981,473,2.034,495,3.86,636,2.034,700,4.356,751,2.292,775,2.46,780,2.807,781,2.807,790,3.436,791,3.843,792,3.168,793,3.168,794,3.436,795,5.642,796,3.436,797,3.843,798,3.436,799,3.436,800,2.674]],["t/134",[0,0.791,4,2.107,11,3.427,16,2.208,65,2.605,205,3.986,248,5.097,274,1.893]],["t/136",[27,1.802,28,1.535,65,2.908,118,1.565,121,3.902,224,2.103,304,3.141,311,3.46,351,2.565,365,5.013,366,4.622,414,1.994,801,5.013,802,5.608,803,5.608,804,5.608,805,5.013,806,5.013,807,5.013]],["t/138",[4,0.854,11,3.473,12,1.421,16,0.895,27,1.835,28,1.345,30,1.301,39,1.53,40,1.421,42,1.832,46,1.224,48,1.714,58,1.615,65,2.03,77,1.421,83,1.594,92,2.862,117,1.224,118,0.99,124,1.977,145,2.292,149,1.389,161,1.832,168,1.714,169,1.571,206,1.615,209,1.113,213,2.18,223,1.912,224,1.74,227,1.492,248,2.066,260,2.066,264,2.066,271,2.598,274,1.199,311,1.832,316,1.977,318,1.663,331,2.391,335,0.986,344,1.875,351,2.122,352,1.832,353,3.09,366,2.447,369,2.066,371,1.663,372,1.615,374,1.301,443,1.301,458,1.9,471,1.805,516,2.654,519,2.066,528,2.455,532,2.447,533,2.679,540,3.228,541,1.977,542,2.168,558,2.168,649,2.292,655,1.714,751,2.766,780,3.388,781,2.168,785,2.447,786,1.389,792,2.447,793,2.447,801,2.654,808,3.581,809,2.654,810,2.969,811,2.969,812,2.969,813,2.654,814,2.447,815,2.654,816,2.654,817,1.977]],["t/140",[0,0.754,11,2.433,16,2.104,28,1.232,61,1.002,65,1.85,69,3.909,81,2.144,83,1.787,118,1.11,134,2.681,213,2.844,216,2.83,221,2.55,223,2.877,224,2.618,227,2.614,254,3.209,255,3.003,344,2.103,371,2.913,387,3.312,474,4.287,475,3.619,495,3.003,655,3.003,818,5.201,819,4.287]],["t/142",[0,0.754,9,1.976,11,3.939,27,2.706,28,0.814,60,2.753,65,2.482,105,1.496,118,1.11,172,1.818,208,1.951,213,1.757,216,2.83,245,3.329,248,6.109,274,1.344,317,3.101,337,2.433,387,2.187,416,2.433,435,3.619,605,3.101,809,4.65,820,3.799,821,4.65,822,4.65]],["t/144",[16,2.499,50,2.981,65,2.948,118,1.452,256,4.532,272,3.878,274,1.759,528,3.602,536,4.057,580,4.198,823,5.608]],["t/146",[0,0.702,4,1.868,9,1.63,13,3.11,16,2.429,79,1.705,95,2.088,117,2.678,118,1.386,205,3.535,274,2.083,335,2.158,528,3.439,580,4.008,584,3.535,824,6.496]],["t/148",[16,1.568,27,1.672,28,1.544,31,3.799,109,4.016,118,1.489,121,3.619,304,2.913,338,4.65,339,4.65,341,3.464,351,2.38,387,2.187,442,3.619,471,2.024,805,4.65,806,4.65,807,4.65,825,5.201,826,4.65,827,5.201,828,4.287,829,6.979,830,5.201,831,5.201]],["t/150",[0,0.326,4,0.867,9,1.178,16,1.415,28,1.325,29,0.938,30,1.321,39,1.554,40,1.438,42,1.861,46,1.243,58,1.641,61,0.581,77,1.444,109,3.625,110,1.35,117,1.936,118,1.002,145,2.328,149,1.411,161,3.558,168,1.741,169,1.596,206,1.641,209,1.131,227,1.515,271,2.63,274,1.823,317,1.798,324,3.43,331,2.421,335,1.002,337,1.411,341,2.009,342,2.696,343,1.689,344,1.219,351,2.148,352,1.861,387,2.425,442,4.529,471,3.035,479,1.554,495,1.741,524,4.198,532,2.485,533,1.741,540,3.267,541,2.009,542,2.203,553,2.696,558,2.203,562,2.098,568,1.111,601,3.87,605,1.798,630,3.43,635,2.696,649,2.328,655,1.741,676,2.328,751,1.798,780,3.43,781,2.203,785,2.485,792,2.485,793,2.485,816,2.696,817,2.009,828,2.485,832,2.696,833,3.015,834,3.015,835,3.015,836,3.87,837,3.015,838,3.015,839,3.015]],["t/152",[0,0.768,4,1.538,16,1.612,28,1.112,29,2.485,40,1.637,58,2.909,90,2.687,274,1.382,317,3.188,337,2.501,372,2.909,373,4.239,374,2.343,468,3.72,471,3.312,473,3.763,475,3.72,479,2.756,504,3.299,517,4.407,572,3.905,573,3.72,783,3.561,826,4.78,832,4.78,840,4.407,841,5.346]],["t/154",[0,0.511,3,2.867,16,1.426,28,1.023,30,2.073,83,1.625,105,2.327,137,2.164,208,1.774,216,3.56,217,3.898,227,3.287,246,1.876,302,2.504,335,2.919,379,2.731,433,2.504,491,3.652,633,4.201,655,4.33,760,4.228,779,3.898,817,4.358,819,3.898,836,6.669,842,4.73,843,6.542,844,3.898,845,4.73,846,3.898]],["t/156",[16,2.412,50,2.815,105,1.847,118,1.371,256,4.279,272,4.267,335,2.134,337,3.005,466,3.228,536,3.83,580,4.937,786,3.743,823,5.294]],["t/158",[0,0.718,70,4.624,73,2.795,76,3.617,84,3.518,351,3.041,385,4.427,548,4.101,666,4.427,775,4.255,847,5.478,848,5.478,849,3.518,850,5.942,851,4.855,852,5.478]],["t/160",[0,0.834,61,1.487,849,4.086,853,4.603]],["t/162",[0,0.753,3,3.054,13,3.337,69,3.904,73,2.931,79,1.829,94,2.169,421,4.642,514,4.642,666,4.642,756,5.381,854,6.23]],["t/164",[0,0.802,169,3.927,766,4.578,775,4.749,855,4.942,856,5.42,857,6.115]],["t/166",[0,0.915,172,2.466,255,4.074,351,3.228,438,4.516,443,3.091,585,5.153,680,5.447,723,4.909,858,6.307]],["t/168",[0,0.671,3,2.723,13,2.976,69,3.481,70,4.324,73,3.296,76,3.382,77,3.752,79,1.631,88,4.324,94,1.934,385,4.14,421,4.14,514,4.14,548,3.835,666,4.14,749,4.539,756,4.798,854,5.556,859,6.215]],["t/170",[0,0.824,28,1.435,65,2.713,76,3.241,99,5.308,107,3.968,209,2.234,385,3.968,647,4.91,860,5.957,861,5.325,862,5.957,863,5.325,864,5.957,865,5.957,866,5.957,867,5.957,868,5.957,869,5.957]],["t/172",[0,0.524,28,1.529,65,2.367,70,3.374,73,2.039,76,2.639,78,3.263,84,3.523,89,6.263,99,4.631,107,3.23,108,3.542,209,1.819,466,3.345,820,3.542,861,5.95,863,4.336,870,4.85,871,4.85,872,4.85,873,6.656,874,4.85,875,4.85,876,4.85,877,4.85,878,4.85]],["t/174",[0,0.891,4,1.257,9,1.553,13,2.092,28,0.968,61,0.842,77,2.092,94,2.236,105,1.257,118,0.932,119,2.143,152,3.911,209,1.639,235,3.04,274,1.13,289,3.192,331,2.253,335,2.056,376,2.797,414,2.201,460,2.696,471,1.7,475,3.04,528,2.313,568,1.61,572,3.192,618,3.192,638,2.797,667,3.602,673,2.797,687,3.602,689,2.896,849,3.276,853,4.285,879,4.37,880,4.37,881,3.192,882,4.37,883,4.306,884,2.797,885,2.911,886,3.192,887,3.192,888,3.374]],["t/176",[3,2.669,9,1.072,16,1.288,29,1.895,46,1.761,65,2.166,118,1.514,125,4.057,152,2.325,172,2.481,209,1.602,241,2.467,263,2.973,335,2.023,337,1.999,414,2.166,450,3.521,568,1.574,597,2.973,618,4.449,638,2.735,673,2.735,687,3.521,689,1.999,853,5.718,881,4.449,884,2.735,888,3.298,889,3.819,890,3.819,891,4.272,892,4.272,893,4.272,894,6.091,895,4.272,896,3.819,897,2.735,898,3.819]],["t/178",[0,0.254,9,1.225,12,1.842,27,2.522,28,0.764,30,2.14,40,1.496,58,2.093,61,0.452,95,1.236,117,3.037,118,1.715,119,3.054,125,2.562,187,3.746,216,2.658,235,1.634,245,1.504,246,0.932,274,0.994,323,2.673,335,2.534,337,2.914,419,1.211,458,1.504,523,3.567,526,1.814,568,2.294,597,4.333,605,3.366,621,1.814,633,1.316,673,3.614,778,1.814,853,4.394,885,4.455,896,2.1,897,4.281,898,3.439,899,2.1,900,2.1,901,2.349,902,2.1,903,2.1,904,2.349,905,2.1,906,1.936,907,2.1,908,2.349,909,1.814,910,2.676,911,2.97,912,4.884,913,4.884,914,3.771,915,4.884,916,4.884,917,3.771,918,1.936,919,2.349]],["t/180",[9,1.473,28,1.255,61,0.782,77,1.944,98,3.135,105,1.168,117,2.421,150,2.506,236,4.29,274,1.05,335,1.349,384,3.912,386,3.383,390,4.84,414,1.444,471,1.58,546,2.599,609,4.534,610,4.84,614,4.84,636,2.149,637,2.966,643,5.25,695,2.825,849,2.149,853,4.508,909,4.534,920,4.061,921,5.873,922,4.061,923,4.061,924,4.061,925,4.534,926,3.63,927,4.061,928,5.873,929,5.873,930,4.061,931,4.061,932,5.873,933,5.873,934,4.061,935,4.061,936,3.63,937,4.061,938,4.061]],["t/182",[0,0.482,9,0.519,12,1.658,27,0.665,28,1.095,39,2.302,40,1.368,60,1.096,61,1.119,62,2.674,73,0.87,78,1.015,79,1.836,94,0.644,105,1.284,117,0.853,134,1.067,152,1.126,161,1.277,170,0.968,172,1.21,182,1.598,189,1.04,190,2.674,202,1.85,206,1.126,212,1.379,213,2.666,228,3.681,230,1.44,235,1.44,237,2.53,244,1.126,245,1.325,260,2.41,267,1.512,289,1.512,306,2.137,323,0.888,331,1.067,335,0.688,344,1.805,345,1.706,349,3.448,351,0.947,376,2.217,378,1.598,379,1.195,387,0.87,395,2.859,399,1.85,433,1.096,435,1.44,486,2.975,491,2.674,519,4.044,520,1.706,521,1.85,523,2.53,533,3.015,541,1.379,554,1.325,558,3.262,567,1.325,568,0.762,573,1.44,579,1.234,665,2.663,667,1.706,689,1.62,709,1.706,710,1.598,741,1.85,751,1.234,754,1.706,766,1.277,784,1.598,849,2.764,853,3.114,884,1.325,939,1.706,940,2.07,941,1.85,942,3.681,943,3.096,944,2.07,945,2.07,946,2.07,947,3.463,948,2.07,949,2.07,950,3.992,951,2.855,952,1.85,953,2.07,954,3.096,955,2.07,956,1.598,957,3.463,958,2.07,959,6.285,960,2.07,961,2.07,962,1.85,963,2.07,964,3.681,965,1.512,966,3.096,967,2.855,968,1.598,969,2.07,970,1.512,971,2.07,972,2.07]],["t/184",[0,0.802,169,3.927,766,4.578,775,4.749,855,4.942,856,5.42,857,6.115]],["t/186",[0,0.943,820,5.42,973,6.633,974,5.42,975,7.419,976,6.115]],["t/188",[0,0.896,11,2.703,90,2.903,172,2.019,209,2.167,274,1.493,335,1.919,351,2.643,387,2.429,430,4.22,443,2.531,727,4.22,789,5.165,851,4.22,976,6.836,977,4.761,978,7.479,979,4.46,980,5.777,981,5.777,982,5.777,983,5.777,984,5.777,985,5.777]],["t/190",[61,1.224,83,2.183,84,3.362,169,4.206,317,3.788,976,7.487,986,5.679,987,6.352,988,6.352,989,6.352,990,6.352,991,6.352,992,6.352,993,6.352,994,6.352,995,6.352]],["t/192",[0,0.915,172,2.466,255,4.074,351,3.228,438,4.516,443,3.091,585,5.153,680,5.447,723,4.909,858,6.307]],["t/194",[0,0.479,9,1.113,28,1.231,29,1.947,61,1.396,73,1.866,77,2.125,81,1.829,93,3.241,94,1.381,95,1.426,105,1.276,108,3.241,113,3.657,187,3.505,200,2.23,204,2.125,220,4.353,274,1.147,359,2.84,385,4.168,386,3.859,512,4.57,528,2.349,616,3.967,723,3.087,979,3.426,996,3.967,997,4.437,998,3.967,999,3.241,1000,3.426,1001,4.437,1002,4.437,1003,4.437,1004,4.437,1005,3.241,1006,3.613,1007,4.437,1008,6.257,1009,4.437,1010,3.967,1011,4.437,1012,4.437]],["t/196",[9,1.51,61,1.479,162,4.397,208,2.258,248,5.343,705,5.381,782,6.33,849,4.477,1013,6.019,1014,6.019,1015,5.381,1016,5.115,1017,7.679,1018,5.381,1019,6.019,1020,6.019,1021,5.381,1022,6.019]],["t/198",[0,0.782,9,2.16,11,4.027,29,2.254,81,2.267,93,6.287,117,2.267,187,3.081,213,1.858,227,3.64,248,3.827,258,4.247,335,1.827,416,2.573,512,4.018,579,3.28,633,3.081,666,4.825,1023,4.917,1024,5.5,1025,5.5]],["t/200",[0,0.732,9,2.074,29,2.108,61,1.305,65,1.769,73,2.848,81,2.051,83,2.327,94,1.548,95,1.599,104,3.462,124,3.314,200,3.404,264,3.462,351,2.276,379,3.911,432,3.462,441,3.634,443,2.18,548,3.07,689,2.328,910,3.462,996,4.448,1016,5.506,1026,4.976,1027,6.773,1028,4.976,1029,4.448,1030,6.773,1031,4.976]],["t/202",[9,1.886,61,1.448,220,5.23,274,1.943,441,5.49,689,3.517]],["t/204",[0,0.606,9,0.958,28,1.472,46,3.026,76,2.077,105,1.098,150,3.464,208,2.106,209,1.432,220,2.656,268,3.413,271,2.138,385,2.543,386,2.753,387,1.605,395,2.444,443,1.673,464,2.947,519,2.656,540,2.656,546,3.594,579,2.276,766,2.356,849,3.525,998,3.413,1010,3.413,1021,3.413,1032,3.818,1033,3.818,1034,5.614,1035,3.818,1036,3.818,1037,3.818,1038,3.818,1039,3.818,1040,3.818,1041,3.818,1042,3.818,1043,3.818,1044,3.818,1045,3.413,1046,3.818,1047,3.818,1048,3.818,1049,3.818,1050,3.818,1051,3.818,1052,3.818,1053,3.818,1054,3.413,1055,3.818,1056,3.818,1057,3.147,1058,3.818,1059,3.413,1060,3.818]],["t/206",[0,0.78,9,2.155,27,1.415,28,1.381,32,3.064,81,2.565,93,5.729,94,1.936,95,2,119,2.159,208,1.652,257,2.626,274,1.609,374,1.929,395,2.819,414,1.566,621,3.4,633,3.486,704,3.216,840,6.82,910,3.064,936,5.563,1045,3.937,1061,3.629,1062,4.403,1063,4.403,1064,4.403,1065,6.223,1066,4.403,1067,4.403,1068,3.937,1069,4.403,1070,3.937]],["t/208",[9,1.748,28,1.09,73,3.537,76,4.916,227,4.227,1023,7.519,1071,6.969]],["t/210",[0,0.702,9,1.63,61,1.251,93,4.745,118,1.386,149,3.039,213,2.194,227,3.264,257,3.874,258,5.015,571,4.158,633,3.639,723,4.52,1072,8.057,1073,6.496,1074,6.496,1075,6.496]],["t/212",[0,0.36,2,2.758,3,1.459,4,0.958,5,2.571,6,2.571,7,2.977,9,1.272,10,1.633,11,2.372,16,2.225,29,1.91,32,2.317,65,1.803,79,0.874,81,2.09,118,1.309,169,1.763,199,2.317,208,1.249,213,1.125,221,1.633,223,2.09,224,1.901,227,1.674,231,2.317,246,2.72,258,2.571,272,2.372,274,1.31,275,2.571,281,2.571,302,1.763,331,1.717,335,1.684,344,1.346,352,2.055,371,1.865,387,1.4,466,1.674,471,1.296,476,2.571,478,3.023,495,1.923,548,2.055,568,2.527,587,2.977,633,1.865,651,2.218,655,1.923,673,2.132,764,2.433,774,2.571,786,1.558,836,2.745,851,4.483,885,3.376,887,2.433,897,2.132,899,2.977,1005,2.433,1076,3.33,1077,2.977,1078,3.33,1079,2.433,1080,3.33,1081,3.33,1082,3.33,1083,2.317,1084,3.33,1085,2.571,1086,3.33,1087,3.33,1088,2.977]],["t/214",[0,0.572,3,2.321,9,1.329,11,2.478,72,3.686,73,2.228,81,2.184,94,2.639,95,2.271,118,1.508,170,2.478,205,2.883,302,2.804,335,1.76,387,2.228,414,1.884,441,5.161,568,1.951,584,2.883,636,2.804,663,4.736,783,3.528,883,3.686,887,3.869,911,4.09,974,3.869,1005,3.869,1089,4.736,1090,4.736,1091,4.366,1092,4.736,1093,5.297]],["t/216",[0,0.702,73,2.732,76,3.535,77,3.11,94,2.021,108,4.745,184,5.807,189,3.264,385,4.327,416,3.039,609,5.015,666,4.327,847,5.354,848,5.354,849,3.439,850,5.807,886,4.745,1094,5.807]],["t/218",[0,0.637,50,3.321,94,1.835,133,3.208,291,4.102,344,2.383,413,4.519,414,2.097,426,3.516,554,3.774,634,4.859,636,3.121,723,4.102,823,4.859,974,4.306,1095,5.895,1096,4.102,1097,5.895,1098,5.895,1099,5.895,1100,5.895,1101,5.895,1102,5.271,1103,5.271,1104,4.306]],["t/220",[0,0.726,16,2.027,28,1.052,29,2.093,61,1.295,274,2.127,304,3.766,335,2.234,344,2.718,528,3.559,909,5.192,1105,6.724,1106,8.23]],["t/222",[0,0.781,137,3.309,227,3.635,397,5.032,550,5.584,660,5.584,1107,4.63,1108,7.232,1109,7.232]],["t/224",[0,0.356,3,1.443,6,2.542,12,1.576,28,0.786,61,0.634,65,1.171,71,2.193,73,1.384,75,2.405,77,1.576,78,2.988,81,2.071,83,1.131,88,2.291,94,1.564,95,1.959,105,0.947,118,0.702,119,2.464,133,1.791,137,1.506,149,1.54,209,1.885,220,2.291,242,2.107,246,1.306,272,2.351,274,0.851,275,2.542,344,1.331,374,1.443,414,1.171,426,1.963,428,3.518,466,1.654,471,1.281,495,3.518,540,3.496,548,2.031,554,2.107,568,1.213,571,2.107,597,2.291,599,2.713,636,1.743,680,2.542,708,2.107,724,2.107,728,2.713,781,2.405,783,2.193,786,1.54,853,1.963,856,2.405,881,2.405,911,2.542,1006,1.901,1104,2.405,1110,5.62,1111,3.292,1112,2.713,1113,4.492,1114,3.292,1115,3.496,1116,2.943,1117,2.943,1118,6.818,1119,3.292,1120,5.024,1121,2.943,1122,3.292,1123,3.292,1124,3.292,1125,3.292,1126,3.292,1127,5.447,1128,3.292]],["t/226",[0,0.91,9,1.158,61,0.889,79,1.211,90,2.32,94,1.436,95,1.484,107,3.075,110,2.066,118,0.985,137,2.112,162,3.371,209,1.731,284,3.075,414,1.641,428,2.665,432,3.212,433,2.443,435,3.212,471,1.796,495,2.665,504,2.848,506,3.804,546,2.955,550,3.564,568,1.7,584,2.512,617,4.698,633,2.585,749,3.371,752,3.564,962,4.126,1083,3.212,1107,4.739,1129,4.616,1130,3.371,1131,2.848,1132,3.371,1133,4.616,1134,4.616,1135,4.698,1136,4.616,1137,4.616,1138,4.616,1139,4.616,1140,4.616]],["t/228",[0,0.613,8,2.946,9,1.423,11,2.153,28,0.72,29,0.914,40,1.409,46,1.897,50,1.288,78,3.417,79,0.771,80,2.85,90,2.85,94,2.3,95,2.483,110,2.06,124,3.065,137,1.344,150,2.839,171,2.422,189,1.477,200,2.312,209,1.726,213,0.993,227,1.477,255,1.697,260,2.044,284,3.065,305,2.269,317,1.752,335,1.529,341,3.065,343,3.595,372,1.599,384,1.957,397,2.044,414,1.045,419,1.515,443,1.288,444,1.957,471,2.207,480,2.946,519,3.202,567,1.881,617,4.143,628,3.202,641,2.422,656,1.957,669,2.627,684,2.269,750,2.839,786,2.654,925,2.269,1054,2.627,1070,2.627,1083,2.044,1091,2.422,1107,1.881,1141,2.938,1142,2.627,1143,2.938,1144,2.938,1145,2.938,1146,5.071,1147,2.938,1148,2.627,1149,2.938,1150,2.938,1151,2.938,1152,2.938,1153,2.044,1154,2.938,1155,2.938,1156,2.938]],["t/230",[8,2.209,25,2.844,28,1.28,40,1.057,61,0.665,78,3.676,79,1.366,80,1.734,83,1.186,94,2.173,95,2.245,172,1.206,205,1.878,209,1.294,213,1.759,244,1.878,253,2.844,260,2.401,323,1.481,353,2.298,428,3.621,435,2.401,438,2.209,444,4.652,460,2.129,461,2.664,479,1.779,531,3.085,564,4.291,568,2.762,584,2.833,626,2.844,629,3.085,633,1.933,645,3.085,655,1.992,656,2.298,665,3.105,707,2.664,710,2.664,846,2.844,906,2.844,942,2.844,1083,2.401,1113,5.606,1157,3.085,1158,3.45,1159,3.085,1160,3.45,1161,3.45,1162,3.45,1163,3.45,1164,3.45,1165,3.085,1166,3.45,1167,3.45,1168,3.45,1169,3.45,1170,3.45,1171,3.45,1172,3.45,1173,3.45,1174,3.45,1175,3.085]],["t/232",[0,0.65,28,1.406,40,1.286,61,0.809,78,3.621,79,0.687,80,2.11,83,0.899,94,1.306,95,2.467,118,1.283,137,2.405,149,1.224,172,1.837,189,1.315,204,1.253,208,0.982,209,1.972,216,2.284,244,2.284,251,2.339,257,3.134,267,1.911,335,1.395,343,1.466,353,3.501,372,1.424,387,1.1,414,0.931,428,1.511,433,2.222,444,2.796,480,1.675,546,1.675,554,2.687,568,2.589,579,1.56,584,3.273,599,4.332,628,1.821,636,1.385,638,1.675,647,3.46,655,1.511,684,2.02,686,4.332,707,2.02,721,3.46,951,2.157,977,2.157,1083,1.821,1096,1.821,1107,1.675,1110,2.157,1115,4.891,1142,2.339,1153,1.821,1176,2.617,1177,2.157,1178,2.617,1179,2.157,1180,2.617,1181,2.339,1182,2.617,1183,2.617,1184,2.617,1185,4.198,1186,2.617,1187,2.617,1188,2.617,1189,2.617,1190,2.617,1191,2.617,1192,2.339]],["t/234",[3,1.651,13,1.804,27,1.211,28,1.514,72,2.621,80,1.893,99,4.597,117,3.007,118,1.737,119,3.992,120,3.105,124,3.703,125,3.703,126,4.582,127,4.061,128,4.582,284,2.51,304,2.11,323,1.617,562,3.868,698,3.105,759,3.368,822,4.971,914,4.293,1107,2.412,1116,3.368,1135,4.061,1193,4.293,1194,3.767,1195,3.767,1196,3.767,1197,3.368,1198,3.767,1199,3.767,1200,3.767,1201,3.767,1202,5.56,1203,3.767]],["t/236",[0,0.658,4,2.656,16,1.288,27,1.373,28,0.953,55,2.846,61,1.173,65,1.519,80,2.147,81,1.761,84,2.261,104,2.973,105,1.229,110,1.912,118,0.912,205,2.325,213,1.443,223,2.511,224,2.662,246,2.415,274,1.574,359,2.735,372,2.325,412,3.521,416,3.321,433,2.261,454,2.467,473,3.224,573,4.238,605,2.547,627,2.846,636,2.261,640,3.819,678,2.735,852,3.521,856,3.121,1015,3.819,1204,4.272,1205,4.272,1206,4.272,1207,3.819,1208,4.272,1209,4.272]],["t/238",[16,2.101,65,2.478,79,1.829,95,2.24,169,3.689,172,2.436,224,2.614,279,3.792,337,3.261,568,2.567,584,3.792,1210,6.969]],["t/240",[16,1.98,65,2.885,79,1.724,105,1.89,205,3.575,246,3.218,272,3.796,337,3.074,466,3.302,544,4.799,786,3.074,1006,4.685,1016,4.376]],["t/242",[2,3.702,5,5.253,16,2.051,61,1.311,118,1.452,238,5.608,246,2.698,274,1.759,306,4.198,335,2.754,337,3.183,786,3.183,883,4.734]],["t/244",[11,4.218,12,2.468,16,1.554,19,3.765,25,4.248,28,1.227,31,3.765,61,1.336,81,2.125,83,1.771,213,2.834,221,2.527,223,2.125,224,1.933,254,3.181,274,1.793,331,3.576,344,2.084,351,2.358,352,3.181,466,2.59,495,2.976,533,2.976,655,2.976,808,5.356,926,4.608,1211,5.154]],["t/246",[9,1.687,29,2.093,61,1.295,71,4.479,118,1.435,223,2.772,224,2.522,279,3.659,384,4.479,851,4.912,883,4.679,1212,6.724,1213,6.724,1214,6.012,1215,6.724]],["t/248",[29,2.143,79,1.807,221,3.376,223,2.838,224,2.583,274,1.78,335,2.287,471,2.68,473,3.645,476,5.316,512,6.099,774,5.316]],["t/250",[29,2.561,32,4.679,61,1.295,79,1.765,118,1.435,224,2.522,255,3.883,256,4.479,281,5.192,337,3.146,471,2.617,568,2.477,585,4.912,1216,6.724]],["t/252",[3,3.411,4,1.768,9,2.143,11,3.642,14,5.067,15,5.496,17,5.496,18,5.686,20,6.415,21,5.067,55,4.095,84,3.254,221,3.015,254,3.794,379,3.55,690,5.067,1131,3.794]],["t/254",[0,0.808,19,4.22,50,2.531,61,1.113,69,3.236,70,5.204,71,4.982,72,4.019,73,3.145,74,5.165,75,4.22,76,4.07,78,2.833,81,2.381,82,5.165,84,3.959,85,5.165,86,4.761,107,3.848,108,4.22,571,3.698,1217,5.777,1218,5.777]],["t/256",[5,4.747,11,2.877,16,2.574,65,2.186,79,1.613,86,5.067,118,1.312,211,4.491,212,4.095,213,2.077,223,2.534,224,2.306,227,3.09,274,1.589,373,3.666,376,3.936,478,3.666,751,3.666,1219,5.496,1220,6.148,1221,6.148]],["t/258",[4,1.934,79,1.765,84,3.559,169,4.708,170,3.146,197,5.192,239,5.542,678,4.304,1222,6.012,1223,6.724,1224,6.724,1225,6.724,1226,6.724]],["t/260",[0,0.791,9,1.838,50,3.21,80,3.681,274,2.24,386,3.592,571,4.689]],["t/262",[0,0.861,4,0.836,9,0.73,10,1.426,28,1.085,40,0.891,61,1.417,77,1.393,79,1.198,80,1.462,83,0.999,90,1.462,94,1.753,95,1.467,105,0.836,118,1.202,149,1.361,152,3.473,200,1.462,206,1.583,213,0.983,222,2.024,242,1.862,246,1.153,259,1.795,291,3.176,302,1.54,304,2.557,317,1.734,323,1.959,343,1.629,344,1.176,374,1.274,386,1.426,414,2.004,443,1.274,471,1.132,479,1.499,504,1.795,536,1.734,568,1.071,583,2.024,584,1.583,617,2.125,636,2.983,665,1.734,689,2.136,713,2.397,749,2.125,750,3.477,800,2.024,817,1.937,849,1.54,855,1.937,857,2.397,884,3.607,886,2.125,999,5.065,1000,5.682,1079,2.125,1085,2.246,1096,2.024,1107,1.862,1131,1.795,1135,3.334,1227,3.763,1228,2.246,1229,2.397,1230,2.397,1231,2.397,1232,2.246,1233,2.397,1234,2.397,1235,2.125,1236,2.397,1237,2.246,1238,2.246,1239,2.125,1240,2.246]],["t/264",[0,0.858,4,1.827,61,1.224,79,1.667,94,1.977,302,3.362,374,2.783,414,2.259,479,3.275,583,4.42,636,3.362,689,2.972,750,3.92,817,4.231,855,4.231,999,5.804,1085,4.904,1228,4.904]],["t/266",[0,0.909,61,1.62,291,4.849,323,2.991,1000,5.381,1135,5.091,1227,5.744,1229,5.744,1230,5.744,1231,5.744]],["t/268",[0,0.726,79,1.765,83,2.31,94,2.093,95,2.161,105,1.934,200,3.379,206,3.659,213,2.272,317,4.01,323,2.886,343,3.766,1232,5.192,1233,5.542,1234,5.542]],["t/270",[0,0.791,80,3.681,95,2.354,118,1.563,246,2.905,386,3.592,584,3.986,665,4.368]],["t/272",[0,0.798,10,2.777,40,1.734,94,1.762,118,1.208,149,2.65,152,4.47,222,3.94,242,3.625,259,3.494,443,2.481,471,2.204,689,2.65,750,4.556,800,3.94,849,2.998,884,4.726,886,4.136,1079,4.136,1096,3.94,1235,4.136,1236,4.667,1237,4.372,1238,4.372,1239,4.136,1240,4.372]],["t/274",[0,0.726,79,1.765,83,2.31,94,2.093,95,2.161,105,1.934,200,3.379,206,3.659,213,2.272,317,4.01,323,2.886,343,3.766,1232,5.192,1233,5.542,1234,5.542]],["t/276",[0,0.665,8,3.941,28,1.219,80,2.179,83,1.49,94,1.916,95,1.979,149,2.029,187,2.429,209,1.627,223,1.788,233,3.348,235,3.017,236,4.497,317,3.671,341,2.889,343,3.448,372,2.36,376,2.776,379,2.504,442,3.017,471,1.688,633,2.429,678,2.776,786,2.029,815,3.877,855,2.889,939,3.574,1104,3.168,1107,2.776,1131,2.676,1146,3.877,1232,6.352,1241,4.337,1242,6.156,1243,7.157,1244,4.337,1245,4.337,1246,4.337,1247,4.337,1248,4.337,1249,4.337,1250,4.337,1251,4.337,1252,4.337]],["t/278",[0,0.782,61,1.059,76,2.993,83,2.489,189,2.764,204,2.633,208,2.063,344,2.223,387,2.313,426,4.319,430,4.018,701,4.917,727,4.018,774,4.247,1005,4.018,1090,4.917,1102,4.917,1103,6.476,1104,4.018,1127,6.476,1253,7.243,1254,4.917,1255,4.917,1256,4.917,1257,4.917,1258,5.5,1259,5.5,1260,4.917]],["t/280",[230,5.299,571,4.876,751,4.542,775,4.876,1254,6.809]],["t/282",[0,0.833,40,1.299,58,2.308,61,1.167,76,4.616,79,1.113,80,2.131,94,1.32,104,4.215,172,1.482,208,2.272,240,3.274,274,1.096,310,3.791,331,2.186,335,1.409,351,1.94,373,2.529,379,2.449,428,2.449,433,2.245,436,3.495,449,3.274,460,3.738,461,3.274,466,2.131,546,2.715,573,2.951,589,3.791,665,2.529,699,3.495,711,3.098,910,2.951,917,3.274,956,3.274,1104,3.098,1193,3.274,1255,6.319,1256,3.791,1257,3.791,1260,3.791,1261,4.241,1262,4.241,1263,4.241,1264,4.241,1265,4.241,1266,4.241,1267,4.241,1268,4.241,1269,4.241,1270,4.241]],["t/284",[0,0.862,28,1.425,40,1.402,61,0.882,94,1.99,95,1.472,172,1.6,189,2.301,197,3.535,242,4.094,318,2.565,387,1.926,433,2.424,445,5.718,450,3.774,542,3.345,568,1.687,604,6.075,820,3.345,1088,4.094,1157,5.718,1271,6.396,1272,6.396,1273,6.396,1274,4.579,1275,4.579,1276,4.579,1277,4.579,1278,4.579,1279,4.579,1280,4.579,1281,6.396,1282,6.396,1283,4.579]],["t/286",[0,0.691,61,0.882,69,2.565,79,1.678,94,1.425,105,1.317,161,2.825,182,3.535,212,3.05,213,2.49,230,3.186,304,2.565,323,1.965,331,3.297,335,1.521,343,2.565,349,5.691,351,2.926,387,1.926,395,2.931,533,4.256,541,3.05,656,3.05,716,3.05,755,4.094,766,2.825,844,3.774,906,3.774,964,6.075,965,4.672,966,5.718,967,5.272,968,3.535,970,3.345,1132,3.345,1284,4.579,1285,4.579,1286,4.579,1287,4.579,1288,4.579]],["t/288",[0,0.798,10,2.777,40,1.734,94,1.762,118,1.208,149,2.65,152,4.47,222,3.94,242,3.625,259,3.494,443,2.481,471,2.204,689,2.65,750,4.556,800,3.94,849,2.998,884,4.726,886,4.136,1079,4.136,1096,3.94,1235,4.136,1236,4.667,1237,4.372,1238,4.372,1239,4.136,1240,4.372]],["t/290",[2,4.034,10,2.794,13,1.865,18,2.845,24,2.595,27,1.831,28,1.498,30,1.707,33,2.845,34,2.845,40,1.193,46,2.349,94,2.096,110,1.744,134,2.008,135,2.71,137,1.782,143,2.494,149,1.823,152,4.034,189,1.958,204,2.728,208,2.137,212,2.595,304,2.182,335,1.294,360,3.516,386,1.91,419,2.008,585,2.845,636,2.062,689,3.152,775,2.494,790,3.482,794,3.482,796,3.482,798,3.482,799,3.482,800,2.71,1193,3.007,1289,3.895,1290,3.895,1291,5.698,1292,3.895,1293,3.895]],["t/292",[0,0.487,24,1.908,27,0.921,28,1.419,37,3.125,88,1.993,94,1.404,118,0.611,134,1.477,152,4.543,172,1.001,200,1.44,208,1.075,213,1.524,222,1.993,227,1.44,231,1.993,233,5.316,259,1.768,305,2.212,306,1.768,335,1.854,343,1.605,344,1.824,351,1.311,376,2.888,387,1.205,419,1.477,443,1.255,486,1.908,491,2.212,504,1.768,520,2.361,559,2.561,628,1.993,660,2.212,665,1.708,689,1.34,712,2.093,750,1.768,752,2.212,773,2.561,844,2.361,856,2.093,887,2.093,942,2.361,986,2.561,1059,2.561,1077,2.561,1079,3.295,1237,2.212,1238,2.212,1239,2.093,1240,2.212,1294,2.865,1295,2.865,1296,2.865,1297,2.865,1298,2.561,1299,2.865,1300,4.511,1301,2.865,1302,2.865,1303,2.865,1304,2.561,1305,2.865,1306,2.865,1307,2.865,1308,2.865,1309,2.865,1310,2.561,1311,2.865,1312,2.865,1313,4.989,1314,4.989,1315,2.865,1316,4.989,1317,2.865,1318,2.865,1319,2.865,1320,2.561,1321,2.865,1322,4.511,1323,2.865]],["t/294",[0,0.683,2,2.453,3,1.975,10,2.21,16,1.359,28,0.99,61,1.218,117,1.858,118,0.962,152,4.312,172,1.575,222,3.136,341,3.002,351,2.062,471,2.462,479,2.323,618,3.292,630,3.292,656,3.002,689,3.42,704,3.292,708,2.885,777,4.029,786,2.96,814,3.715,849,4.195,853,2.687,881,3.292,888,4.884,925,4.884,965,3.292,1179,3.715,1310,4.029,1324,4.507,1325,4.029,1326,4.029,1327,4.507,1328,4.029,1329,4.507,1330,4.507,1331,4.507,1332,4.507]],["t/296",[0,0.536,9,0.812,12,1.55,24,2.156,28,1.324,37,1.813,80,1.626,88,2.252,117,1.334,134,1.668,152,3.678,208,1.214,210,2.364,213,1.675,233,4.655,242,2.072,245,2.072,290,1.997,305,2.499,323,1.389,341,2.156,343,1.813,351,1.481,353,2.156,373,1.93,419,1.668,433,1.713,460,1.997,471,1.259,480,2.072,500,2.499,580,3.06,605,2.957,618,2.364,630,2.364,665,1.93,684,2.499,689,3.597,695,2.252,708,2.072,709,2.668,752,2.499,786,1.514,849,3.192,853,1.93,881,2.364,884,5.53,888,3.829,890,2.893,925,2.499,1018,2.893,1179,2.668,1239,2.364,1313,2.893,1314,2.893,1316,2.893,1320,2.893,1326,2.893,1328,2.893,1333,2.893,1334,3.236,1335,3.236,1336,3.236,1337,3.236,1338,3.236,1339,2.893,1340,3.236,1341,3.236,1342,3.236,1343,3.236,1344,3.236,1345,3.236,1346,3.236]],["t/298",[0,0.707,4,1.36,23,3.652,24,3.15,32,3.291,45,3.898,69,2.649,79,1.241,134,3.372,136,3.898,152,4.622,200,2.377,209,1.774,213,1.598,261,4.228,289,3.455,359,3.028,419,3.372,547,4.228,562,3.291,579,2.82,678,3.028,689,2.213,788,4.228,840,3.898,884,4.188,887,3.455,1057,3.898,1148,4.228,1325,4.228,1347,4.73,1348,4.73,1349,4.228,1350,4.73,1351,4.73,1352,4.228,1353,4.73,1354,4.73,1355,4.73,1356,4.73,1357,4.73,1358,4.73,1359,4.73]],["t/300",[0,0.825,28,0.765,73,2.057,78,3.282,80,2.458,81,2.016,83,1.68,94,2.083,95,2.453,117,2.016,118,1.629,192,4.373,199,3.403,208,1.834,246,1.94,253,4.031,384,3.258,386,3.282,528,2.589,533,2.824,568,2.812,584,3.643,665,2.916,716,3.258,776,4.373,848,4.031,1083,3.403,1091,4.031,1092,4.373,1115,4.658,1159,4.373,1360,4.891,1361,4.891,1362,4.373]],["t/302",[9,2.08,95,2.187,246,3.287,274,1.759,335,2.26,384,4.532,386,3.336,419,4.273,479,3.507,956,5.253,1153,4.734]],["t/304",[0,0.437,9,1.819,12,1.198,16,0.754,28,1.307,50,1.097,55,1.667,61,0.482,71,3.398,72,1.741,79,1.338,90,2.035,94,1.26,95,2.331,105,0.72,118,0.534,134,1.29,149,1.171,189,2.035,204,2.806,209,0.939,213,1.723,216,1.362,227,1.258,230,1.741,231,1.741,236,3.726,262,2.063,267,2.958,289,1.828,291,1.741,302,1.325,304,2.268,335,0.831,359,1.602,386,3.556,397,1.741,414,2.685,435,1.741,443,1.097,548,1.544,567,1.602,568,1.492,579,1.492,583,1.741,609,3.127,610,3.338,611,3.621,612,3.621,614,3.338,622,3.621,628,1.741,633,1.402,636,1.325,651,1.667,676,1.932,678,1.602,749,2.958,754,2.063,766,1.544,778,1.932,782,2.063,786,1.895,820,1.828,907,2.237,973,2.237,974,1.828,979,1.932,1057,2.063,1115,2.818,1130,1.828,1131,1.544,1132,1.828,1153,1.741,1339,2.237,1352,2.237,1363,2.503,1364,2.503,1365,2.503,1366,4.05,1367,4.05,1368,4.05,1369,2.503,1370,3.621,1371,4.05,1372,2.503,1373,2.503,1374,2.503,1375,2.503,1376,2.503,1377,2.503]],["t/306",[11,3.564,61,1.467,213,2.573,274,1.969,1378,7.616]],["t/308",[0,0.757,9,1.048,40,1.28,50,2.627,79,1.573,94,2.182,95,2.795,105,2.016,189,2.1,208,1.567,213,1.412,246,1.657,274,1.812,373,2.492,384,3.993,386,2.94,397,2.908,414,1.486,416,1.955,419,2.154,433,3.174,504,2.579,528,2.212,546,2.675,568,2.209,571,3.838,627,2.784,628,4.171,630,3.052,631,3.736,633,2.341,676,3.226,711,3.052,965,3.052,968,3.226,1130,3.052,1131,2.579,1132,3.052,1153,2.908,1181,3.736,1370,3.736,1379,4.179,1380,4.179,1381,5.995]],["t/310",[9,1.953,50,2.694,61,1.184,95,2.886,105,2.239,117,3.209,206,3.346,252,4.747,274,1.589,304,3.444,486,5.185,523,4.491,533,3.55,889,5.496,1382,6.148,1383,6.148]],["t/312",[61,1.326,78,4.094,94,2.143,95,2.213,149,3.222,187,3.857,246,2.731,252,5.316,428,3.976,554,4.408,724,4.408,1384,6.885]],["t/314",[0,0.479,60,2.349,61,0.855,73,1.866,75,3.241,78,4.616,80,2.23,81,1.829,94,2.255,95,2.011,118,1.335,168,2.562,170,2.076,198,3.967,208,1.664,372,3.405,414,1.578,428,2.562,444,4.827,449,3.426,554,4.005,567,2.84,568,2.305,704,3.241,724,4.005,750,2.738,764,3.241,855,2.956,883,3.087,1115,5.476,1165,3.967,1175,3.967,1385,4.437,1386,4.437,1387,4.437,1388,4.437]],["t/316",[40,1.924,78,3.081,87,5.617,94,1.955,95,2.536,105,1.807,213,2.122,335,2.621,373,3.746,386,3.081,441,4.589,486,5.256,536,3.746,1130,4.589,1153,4.371,1389,6.283,1390,6.283,1391,6.283]],["t/318",[0,0.723,40,1.498,44,3.573,46,2.016,73,2.057,78,4.215,81,2.016,94,1.522,95,2.152,118,1.629,134,2.521,137,3.063,149,2.288,168,2.824,170,2.288,172,1.709,205,2.661,209,1.834,344,1.977,360,3.018,444,4.459,480,3.131,544,3.573,554,3.131,568,1.802,584,2.661,724,4.285,939,4.031,1096,3.403,1112,5.518,1192,4.373,1392,4.891,1393,4.891,1394,4.891,1395,4.891]],["t/320",[4,1.431,28,0.778,30,2.18,40,1.524,78,4.24,79,1.306,110,3.032,118,1.764,137,2.276,149,2.328,191,4.448,204,3.243,208,2.541,209,1.866,216,2.708,217,4.101,244,2.708,279,2.708,323,2.907,344,2.011,444,3.314,460,3.07,552,3.842,686,4.101,764,3.634,1115,3.462,1117,4.448,1396,4.976,1397,6.773,1398,4.976,1399,4.976,1400,4.448,1401,4.976]],["t/322",[0,0.65,61,1.159,79,1.58,161,3.714,182,4.647,212,4.009,213,2.033,349,6.53,395,3.853,533,3.476,541,4.009,766,3.714,964,6.97,965,4.397,967,6.33,968,4.647,970,4.397,1402,6.019,1403,6.019,1404,6.019]],["t/324",[8,1.616,12,1.953,23,1.949,27,1.894,28,0.803,39,3.333,40,1.571,46,1.681,48,1.458,60,2.716,61,0.786,62,1.949,79,0.663,105,2.589,117,1.041,133,2.792,134,1.302,150,1.558,167,1.949,170,1.181,189,1.269,190,1.949,206,1.374,213,2.714,232,3.646,239,2.081,244,1.374,274,0.653,331,1.302,335,0.839,351,1.155,373,2.432,374,1.787,376,1.616,378,1.949,379,1.458,426,1.506,475,1.757,478,1.506,481,3.646,486,4.307,519,3.57,523,1.844,528,1.336,533,3.402,558,5.052,562,1.757,565,2.257,604,2.081,646,1.844,695,1.757,710,1.949,724,1.616,728,2.081,779,2.081,783,1.682,784,1.949,852,3.362,909,1.949,917,1.949,941,2.257,943,2.257,950,6.183,951,3.362,952,2.257,954,2.257,956,1.949,1121,2.257,1131,1.558,1214,2.257,1219,2.257,1235,1.844,1405,6.466,1406,2.525,1407,2.525,1408,2.525,1409,2.525,1410,2.525,1411,4.078,1412,4.078,1413,2.525,1414,2.525]],["t/326",[0,0.892,9,0.984,11,1.835,16,1.182,28,1.058,61,1.432,117,1.617,187,2.197,213,1.325,216,2.134,259,2.42,274,1.014,291,2.729,304,2.197,323,2.457,331,2.022,344,1.585,353,2.612,387,1.649,395,4.329,414,1.395,432,2.729,443,1.719,460,2.42,617,2.865,636,2.076,689,1.835,711,2.865,808,3.028,883,2.729,970,4.183,977,3.232,999,4.94,1000,5.222,1061,3.232,1107,2.511,1110,3.232,1135,2.865,1227,4.72,1229,3.232,1230,3.232,1231,3.232,1333,3.506,1415,3.922,1416,3.922,1417,3.922,1418,5.726,1419,6.046,1420,3.922,1421,3.506,1422,3.922,1423,3.506,1424,3.922,1425,3.506]],["t/328",[0,0.858,4,1.827,61,1.224,79,1.667,94,1.977,302,3.362,374,2.783,414,2.259,479,3.275,583,4.42,636,3.362,689,2.972,750,3.92,817,4.231,855,4.231,999,5.804,1085,4.904,1228,4.904]],["t/330",[0,0.871,11,2.549,16,1.642,28,1.126,61,1.049,117,2.246,213,1.84,274,1.408,331,2.808,353,3.629,387,2.291,395,5.16,443,2.387,460,3.362,711,3.979,808,4.206,970,5.258,1061,4.49,1419,7.207,1421,4.871,1423,4.871,1425,4.871,1426,7.198,1427,5.448,1428,5.448,1429,5.448]],["t/332",[0,0.686,4,1.827,65,2.259,105,1.827,205,3.457,246,3.438,256,4.231,272,4.057,274,1.642,275,4.904,466,3.192,568,2.34,786,2.972,1006,4.588,1430,6.352]],["t/334",[0,0.557,4,1.482,26,4.248,27,1.657,28,1.312,37,2.887,38,3.765,46,2.125,48,2.976,95,1.657,118,1.1,246,3.575,255,2.976,272,3.924,273,4.248,274,1.332,276,4.608,277,4.248,278,3.98,379,4.528,386,2.527,480,3.3,1006,2.976,1131,3.181,1431,5.154,1432,5.154,1433,4.608,1434,5.154]],["t/336",[4,1.567,10,2.671,21,4.49,28,1.261,30,2.387,39,2.808,40,1.668,42,3.362,46,2.246,48,3.146,118,1.536,168,3.146,169,3.81,170,2.549,246,2.16,272,2.549,278,4.206,540,5.008,541,3.629,542,3.979,828,4.49,1006,3.146,1016,3.629,1349,4.871,1433,4.871,1435,5.448,1436,4.871,1437,5.448,1438,5.448,1439,5.448]],["t/338",[0,0.762,61,1.359,75,5.153,80,3.545,118,1.505,272,3.964,274,1.824,379,4.074,567,4.516,568,2.599]],["t/340",[0,0.726,9,1.687,61,1.295,118,1.435,119,3.297,124,5.482,272,3.851,274,2.127,597,4.679,1440,6.724,1441,6.724,1442,6.724]],["t/342",[0,0.726,4,1.934,42,4.149,118,1.435,137,3.076,150,4.149,208,3.087,228,5.542,246,2.667,272,3.851,704,4.912,1006,4.752]],["t/344",[0,0.538,9,1.248,28,0.778,42,3.07,48,3.911,81,2.051,117,2.792,118,1.764,150,4.752,200,2.5,246,2.686,267,3.634,272,3.603,274,1.286,437,3.634,454,2.873,460,3.07,665,2.967,690,4.101,707,3.842,821,4.448,979,3.842,1006,4.447,1029,4.448,1068,4.448,1131,3.07,1443,4.976,1444,8.267,1445,4.976,1446,4.976]],["t/346",[77,3.552,199,5.162,272,3.471,651,4.942,974,5.42,1006,4.284,1132,5.42]],["t/348",[4,1.645,9,1.435,16,2.24,23,4.416,79,1.95,105,1.645,118,1.22,208,2.145,246,2.268,272,3.477,302,3.027,337,2.676,344,2.312,418,4.416,479,2.948,536,3.41,560,4.714,651,4.95,786,3.862,1016,3.81,1447,5.719,1448,5.719,1449,5.719,1450,5.719]],["t/350",[4,1.567,11,3.368,16,2.17,61,1.049,65,3.257,79,1.43,81,2.246,105,1.567,118,1.162,133,2.965,213,1.84,223,2.246,224,2.043,272,3.772,274,1.408,387,2.291,443,2.387,478,3.249,536,3.249,579,3.249,580,3.362,605,3.249,651,3.629,786,2.549,1016,3.629,1451,5.448]],["t/352",[0,0.699,27,1.496,28,0.728,61,0.896,90,2.338,105,2.429,137,2.129,149,2.177,208,2.426,209,2.426,242,2.979,246,1.845,259,2.871,272,2.177,274,1.672,323,1.997,324,3.399,378,3.593,433,2.463,466,4.244,479,2.399,586,5.783,756,3.593,786,3.026,846,5.331,914,3.593,917,3.593,1112,5.331,1228,3.593,1298,4.16,1400,4.16,1452,4.653,1453,4.653,1454,6.468,1455,4.653,1456,4.653]],["t/354",[0,0.782,60,2.911,79,1.443,169,3.834,170,2.573,190,4.247,199,3.827,204,2.633,205,2.993,240,5.592,272,2.573,278,4.247,560,4.533,813,4.917,817,4.825,819,4.533,1006,4.677,1016,5.395,1193,4.247,1222,4.917,1362,4.917,1436,4.917,1457,5.5,1458,5.5,1459,5.5,1460,5.5]],["t/356",[8,3.59,11,2.624,16,2.713,65,2.908,105,1.613,118,1.197,172,2.564,256,3.735,272,4.211,274,1.896,335,1.863,337,2.624,443,2.457,466,2.818,528,2.968,536,4.374,580,3.46,786,3.432]],["t/358",[0,0.71,10,3.222,12,3.146,71,4.376,83,2.257,117,2.708,118,1.402,119,3.222,133,3.575,335,2.183,344,2.656,563,5.415,568,2.42,897,5.194,1089,5.874,1177,5.415]],["t/360",[40,2.109,79,1.807,95,2.213,117,2.838,118,1.469,125,4.586,247,5.675,479,3.55,528,3.645,568,2.537,885,4.586,910,4.791,1461,6.156]],["t/362",[9,1.74,16,1.554,28,1.085,40,1.579,61,1.336,65,1.833,77,2.468,117,2.125,118,1.1,119,2.527,137,2.358,235,3.586,257,3.074,274,1.793,335,2.786,337,3.669,419,3.576,458,3.3,479,2.657,525,4.248,568,1.899,673,4.441,783,3.433,786,2.412,885,3.433,911,5.356,918,4.248,1462,5.154,1463,5.154]],["t/364",[4,1.419,12,3.224,19,3.603,27,2.464,28,0.772,58,2.684,76,2.684,95,1.586,109,3.809,118,1.053,119,4.039,170,2.308,208,1.85,210,3.603,216,2.684,243,4.41,245,3.158,414,1.754,419,2.543,526,3.809,563,4.066,568,2.481,580,3.044,605,4.015,783,3.286,897,5.273,1177,4.066,1207,4.41,1464,4.933,1465,5.55,1466,4.41,1467,4.933,1468,4.933,1469,4.933]],["t/366",[50,2.912,119,3.259,143,4.255,170,3.11,216,3.617,526,5.131,787,5.942,897,4.255,1235,4.855,1304,5.942,1465,6.735,1470,6.646,1471,6.646,1472,6.646,1473,6.646]],["t/368",[0,0.562,9,1.305,28,1.232,61,1.002,117,2.144,118,1.489,119,3.422,127,3.799,335,2.617,337,3.265,416,2.433,419,2.681,458,3.329,597,3.619,673,4.468,778,4.016,849,3.694,853,4.697,885,4.649,897,5.042,900,4.65,902,4.65,903,4.65,905,4.65,910,3.619,918,4.287]],["t/370",[0,0.273,3,1.106,9,1.023,13,1.209,16,1.547,28,1.448,61,0.486,65,1.825,70,2.838,71,1.682,72,3.57,73,1.715,76,2.219,83,0.867,84,1.336,90,1.269,99,4.099,117,3.386,118,1.476,119,3.939,120,2.081,122,2.257,123,2.257,124,3.924,125,1.682,126,3.362,127,2.979,128,2.081,129,3.646,130,5.267,131,2.257,170,1.181,244,1.374,247,2.081,257,1.506,259,1.558,323,1.084,335,1.957,419,1.302,514,1.682,528,1.336,562,1.757,564,2.081,580,1.558,621,3.962,673,1.616,702,2.257,716,1.682,751,1.506,764,1.844,766,1.558,775,1.616,786,1.908,800,1.757,814,2.081,847,2.081,851,2.979,914,3.962,1005,1.844,1006,1.458,1094,2.257,1130,3.748,1197,3.646,1465,4.229,1466,3.646,1474,2.525,1475,2.525,1476,2.525,1477,2.525,1478,2.525,1479,2.525,1480,2.525,1481,2.525,1482,2.525,1483,2.525]],["t/372",[30,2.531,40,2.291,79,1.516,95,1.857,105,1.661,117,2.381,118,1.596,119,4.301,125,3.848,137,2.643,172,2.019,213,1.952,271,4.189,335,1.919,552,5.775,784,4.46,885,3.848,897,4.788,1461,5.165,1484,5.777,1485,5.777]]],"invertedIndex":[["",{"_index":28,"t":{"4":{"position":[[279,1],[312,1],[392,1],[413,1],[415,1],[417,1],[434,1],[471,1],[482,2],[485,1],[519,1],[541,1],[543,1],[545,1],[562,1],[602,1],[616,2],[619,1],[636,1],[676,1],[690,2],[693,1]]},"6":{"position":[[74,1],[215,2],[263,2]]},"8":{"position":[[175,1],[213,1],[215,1],[217,1],[234,1],[290,1],[297,1],[299,1],[308,6],[315,2],[318,1]]},"10":{"position":[[112,1],[236,1],[261,1],[270,1],[292,1],[329,1],[393,1],[439,3],[467,1],[495,1],[508,1],[573,1],[593,1],[635,2],[638,3],[680,1],[682,1]]},"12":{"position":[[57,1],[96,1],[105,1],[125,2],[128,3],[170,1],[214,1],[245,3],[294,1],[418,1],[436,2],[439,2],[442,1],[459,2],[498,2],[534,3],[590,1],[630,1],[637,2],[642,2],[650,2],[656,1],[662,1],[708,1],[736,1],[750,2],[778,2],[781,3],[816,1],[843,3]]},"16":{"position":[[69,1],[123,1],[144,1],[184,1],[209,1],[245,1],[266,1]]},"18":{"position":[[164,2],[309,2]]},"21":{"position":[[20,1]]},"23":{"position":[[20,1],[167,1],[169,1],[171,1],[201,1],[203,1],[205,1],[207,1],[236,1],[238,1],[278,1],[280,1]]},"34":{"position":[[32,1],[60,1],[88,1],[113,1],[148,1],[181,1],[204,1],[211,1]]},"36":{"position":[[35,1],[68,1],[109,1],[143,1],[210,1]]},"38":{"position":[[54,1],[79,1],[99,1],[101,2],[116,1],[155,1],[176,1],[202,1],[257,1],[301,1],[331,1],[352,1],[378,1],[380,1],[431,1],[433,2],[451,1],[479,1],[553,1],[587,1],[607,1],[640,1],[663,1],[697,1],[739,1],[754,1],[808,1],[861,1],[883,1],[894,1],[921,1],[923,3],[959,1],[1039,1],[1140,1],[1150,3]]},"40":{"position":[[25,1],[63,1],[87,1],[113,2],[131,1],[159,1],[190,1],[224,1],[235,1],[269,1],[295,1],[328,1],[375,1],[409,1],[434,1],[463,1],[479,1],[497,1],[519,1],[521,3],[525,1],[556,1],[568,1],[632,3],[636,1],[680,1],[682,3],[686,1],[721,1],[741,1],[791,1],[812,1],[822,3],[826,1],[853,1],[872,1],[882,2],[905,1],[936,1],[970,1],[988,1],[995,1],[1108,1],[1214,1],[1262,1],[1287,1],[1316,1],[1340,1],[1342,3],[1357,1],[1382,1],[1411,1],[1413,3],[1428,1],[1449,1],[1459,3],[1463,1],[1490,1],[1509,1]]},"42":{"position":[[35,1],[62,1],[84,1],[97,1],[118,1],[175,1],[208,1],[235,1],[279,1],[309,1],[323,1],[371,1]]},"44":{"position":[[43,1],[74,1],[118,1],[161,1],[188,1],[190,1],[192,1],[209,1],[246,1],[262,2],[265,1],[328,1],[377,1],[399,1],[410,1],[427,1],[471,1],[478,1],[480,1],[489,6],[496,2],[499,1],[516,1],[552,1],[573,2],[576,1],[610,1],[646,1],[648,1],[650,1],[667,1],[707,1],[726,2],[729,1],[746,1],[786,1],[814,1],[822,2],[825,1],[859,1],[892,1],[911,1],[913,1],[915,1],[932,1],[972,1],[991,1],[993,1]]},"46":{"position":[[33,1],[66,1],[157,1],[191,1],[218,1],[236,1],[304,1],[323,1],[343,1],[397,1],[399,3],[419,1],[421,3],[425,1],[504,1],[553,4],[604,3]]},"48":{"position":[[51,1],[105,1],[123,1],[191,1],[210,1],[244,1]]},"50":{"position":[[37,1],[57,1],[65,1],[124,1],[159,1],[225,1],[227,1],[235,1],[255,1],[312,1],[314,1],[369,1],[381,1],[455,1],[457,1],[465,1],[484,1],[497,1],[511,1],[513,1],[515,1],[566,1],[580,1],[600,1],[628,1],[640,2],[643,1],[718,6],[725,6],[753,1],[767,1],[789,1],[791,8],[800,9],[816,1],[825,2],[828,1],[842,1],[868,1],[891,1],[903,2],[906,1]]},"54":{"position":[[308,1],[348,1]]},"56":{"position":[[134,1]]},"58":{"position":[[112,1]]},"64":{"position":[[90,1],[201,1],[311,1],[337,1],[386,1]]},"66":{"position":[[15,1],[49,1],[69,1],[93,1],[114,1],[141,1],[143,1],[145,1],[154,1],[175,1],[201,1],[212,1],[214,1]]},"68":{"position":[[76,1],[266,2],[311,1],[329,2],[364,1],[574,2],[723,2],[764,2],[882,2],[1059,2],[1163,1],[1292,1],[1302,1],[1328,2],[1406,2],[1529,2],[1650,2],[1783,1],[1827,2],[1970,2],[2025,2]]},"78":{"position":[[27,1],[126,1]]},"80":{"position":[[188,1],[287,1],[289,1],[291,1],[300,1],[321,1],[347,1],[358,2],[361,1],[370,1],[393,1],[405,2],[408,1]]},"82":{"position":[[42,1],[163,1]]},"88":{"position":[[107,1],[144,1],[166,1],[201,1],[230,1],[274,1],[325,1],[361,1],[368,2],[463,1],[470,2],[573,1],[618,1],[620,3],[646,1],[730,1],[732,1],[772,3],[849,2],[901,1]]},"94":{"position":[[37,1]]},"96":{"position":[[196,1],[843,1]]},"98":{"position":[[163,1],[180,1],[225,1],[237,1],[239,1],[310,1],[312,1],[320,1],[339,1],[350,1],[352,1],[354,1],[376,1],[394,1],[441,1],[528,1],[530,1],[532,1],[602,1],[616,1],[637,1],[657,1],[679,1],[705,2],[708,1],[802,1],[816,1],[837,1],[848,9],[864,1],[876,2],[879,1]]},"106":{"position":[[83,1]]},"108":{"position":[[382,1]]},"112":{"position":[[226,2],[239,1],[257,1]]},"114":{"position":[[0,1],[71,1],[95,1],[97,1],[99,1],[110,1],[129,1],[150,2],[153,1],[179,1],[199,1],[242,1],[244,1],[246,1],[257,1],[276,1],[293,2],[296,1],[322,1],[347,1],[355,1],[385,1],[387,1],[389,1],[400,1],[419,1],[436,2],[439,1]]},"118":{"position":[[188,2],[201,1],[219,1],[270,2]]},"120":{"position":[[0,1],[74,1],[97,1],[99,1],[101,1],[112,1],[131,1],[157,2],[160,1],[176,1],[215,1],[236,1],[238,1],[240,1],[251,1],[270,1],[291,2],[294,1],[323,1],[348,1],[380,1],[382,1],[384,1],[395,1],[414,1],[431,2],[434,1],[450,1]]},"124":{"position":[[11,1],[62,1],[295,1],[331,1],[343,1],[345,1],[380,6],[387,1],[423,1]]},"126":{"position":[[223,1],[640,1],[678,1],[696,1],[1684,1]]},"132":{"position":[[186,1],[221,1],[319,1],[348,1],[403,1],[423,1],[441,1],[443,1],[445,1],[462,1],[501,1],[503,3],[515,1],[522,1],[524,1],[691,1]]},"136":{"position":[[15,1],[50,1],[80,1],[116,1],[147,1],[164,1],[193,1],[195,3],[207,1],[234,1],[241,3]]},"138":{"position":[[58,1],[150,3],[157,4],[162,2],[219,1],[425,2],[485,2],[591,2],[691,1],[731,1],[1024,2]]},"140":{"position":[[68,1],[140,1],[190,1]]},"142":{"position":[[179,1]]},"148":{"position":[[20,1],[58,1],[85,1],[114,1],[154,1],[171,1],[198,1],[200,3],[212,1],[239,1],[246,3],[258,1],[260,3],[324,3]]},"150":{"position":[[58,1],[79,1],[139,1],[373,2],[432,2],[523,2],[568,2],[655,2],[717,2],[1022,2]]},"152":{"position":[[54,1],[212,1]]},"154":{"position":[[102,1],[478,1]]},"170":{"position":[[71,1],[182,1],[238,1],[268,1],[317,2]]},"172":{"position":[[67,1],[89,1],[126,1],[165,1],[192,1],[234,2],[237,3],[241,2],[291,1],[325,4],[330,2],[371,1],[409,1],[434,3]]},"174":{"position":[[212,1],[398,4]]},"178":{"position":[[211,1],[972,1],[1335,1]]},"180":{"position":[[47,1],[337,1],[477,1],[585,2],[588,1]]},"182":{"position":[[58,1],[1006,4],[1149,1],[1179,1],[1255,1],[1417,1],[1493,4],[1607,1]]},"194":{"position":[[165,1],[370,2],[379,1],[468,2]]},"204":{"position":[[131,1],[169,1],[208,1],[232,1],[250,1],[291,1],[338,1],[389,1],[421,1],[445,1],[483,1],[512,1],[567,1],[590,1]]},"206":{"position":[[68,1],[85,1],[117,1],[157,1],[196,1],[235,1],[343,1]]},"208":{"position":[[58,1]]},"220":{"position":[[116,1]]},"224":{"position":[[619,1],[679,1]]},"228":{"position":[[294,1],[919,1]]},"230":{"position":[[413,2],[466,2],[547,2],[637,2],[735,2],[770,2],[812,1]]},"232":{"position":[[437,1],[606,2],[671,2],[728,2],[759,2],[789,1],[820,1],[865,2],[921,2],[993,1],[1011,2],[1040,2],[1068,1],[1086,2],[1130,2],[1189,2],[1237,1]]},"234":{"position":[[124,1],[168,2],[232,1],[313,3],[348,1],[413,2],[416,1],[433,2],[454,2],[457,2],[475,2],[564,1],[636,1],[674,2],[677,2],[680,1],[697,2],[718,2],[721,2]]},"236":{"position":[[370,1],[551,1]]},"244":{"position":[[203,3],[210,4],[308,1]]},"262":{"position":[[246,3],[457,3],[577,3],[750,3],[856,3]]},"276":{"position":[[378,2],[381,3],[397,2],[596,2]]},"284":{"position":[[147,1],[229,1],[250,1],[273,1],[324,1],[333,1],[366,1],[368,1]]},"290":{"position":[[157,1],[194,1],[260,1],[289,1],[344,1],[364,1],[382,1],[384,1],[386,1],[403,1],[444,1],[446,3],[458,1],[465,1],[467,1],[709,1]]},"292":{"position":[[367,1],[373,1],[786,1],[814,1],[836,1],[838,1],[850,1],[852,1],[865,1],[867,1],[869,3],[873,1],[895,1],[917,1],[919,3],[923,1]]},"294":{"position":[[417,2],[642,1]]},"296":{"position":[[100,2],[145,1],[165,2],[243,1],[291,1],[377,2],[413,2],[471,2],[1010,1]]},"300":{"position":[[295,1]]},"304":{"position":[[287,1],[289,1],[301,1],[343,1],[372,1],[394,4],[594,1],[596,1],[615,1],[657,1],[686,1],[708,4]]},"320":{"position":[[144,1]]},"324":{"position":[[1080,1],[1082,2],[1478,1]]},"326":{"position":[[252,1],[574,2],[577,1]]},"330":{"position":[[165,2],[168,1]]},"334":{"position":[[53,1],[243,1],[290,1],[357,1]]},"336":{"position":[[110,2],[261,2],[316,2]]},"344":{"position":[[188,1]]},"352":{"position":[[161,1]]},"362":{"position":[[60,1],[163,1]]},"364":{"position":[[323,1]]},"368":{"position":[[99,1],[154,1],[200,1]]},"370":{"position":[[140,1],[303,1],[570,2],[697,1],[745,2],[748,2],[751,1],[768,2],[807,2],[843,3],[847,2],[1020,1],[1069,2],[1072,3],[1076,2],[1229,1],[1245,2],[1248,3],[1252,2],[1399,1],[1435,2],[1438,3]]}}}],["0",{"_index":191,"t":{"23":{"position":[[161,1],[163,1],[195,1],[225,1],[227,1],[229,1],[272,1],[274,1]]},"320":{"position":[[141,2]]}}}],["0.0.0",{"_index":493,"t":{"68":{"position":[[129,5]]}}}],["00",{"_index":1316,"t":{"292":{"position":[[830,2],[889,2],[911,2]]},"296":{"position":[[276,2]]}}}],["01",{"_index":37,"t":{"4":{"position":[[612,3]]},"36":{"position":[[155,4]]},"38":{"position":[[90,3],[598,3]]},"40":{"position":[[174,3],[419,3],[1032,3],[1092,2],[1155,2],[1230,4],[1272,3]]},"42":{"position":[[113,4]]},"44":{"position":[[722,3]]},"46":{"position":[[201,3]]},"66":{"position":[[60,3]]},"88":{"position":[[118,3]]},"292":{"position":[[833,2],[892,2],[914,2]]},"296":{"position":[[279,2]]},"334":{"position":[[302,4]]}}}],["01:00",{"_index":1290,"t":{"290":{"position":[[305,6]]}}}],["02",{"_index":38,"t":{"4":{"position":[[686,3]]},"36":{"position":[[169,4]]},"40":{"position":[[920,3]]},"44":{"position":[[987,3]]},"334":{"position":[[316,4]]}}}],["03",{"_index":277,"t":{"36":{"position":[[183,4]]},"44":{"position":[[801,4]]},"334":{"position":[[330,4]]}}}],["03:00",{"_index":154,"t":{"16":{"position":[[160,6]]},"21":{"position":[[83,5]]},"132":{"position":[[364,6]]}}}],["03:00:00",{"_index":193,"t":{"23":{"position":[[186,8]]}}}],["08",{"_index":1314,"t":{"292":{"position":[[821,2],[880,2],[902,2]]},"296":{"position":[[267,2]]}}}],["09:00",{"_index":181,"t":{"21":{"position":[[166,5]]},"23":{"position":[[302,5]]}}}],["0e9bd154667944680",{"_index":287,"t":{"38":{"position":[[183,18]]}}}],["1",{"_index":143,"t":{"12":{"position":[[664,4]]},"40":{"position":[[216,2]]},"44":{"position":[[632,2]]},"68":{"position":[[450,4]]},"72":{"position":[[94,2]]},"132":{"position":[[412,2]]},"290":{"position":[[353,2]]},"366":{"position":[[34,1]]}}}],["1,15",{"_index":194,"t":{"23":{"position":[[231,4]]}}}],["1.16.5",{"_index":91,"t":{"10":{"position":[[238,9]]}}}],["1.2",{"_index":507,"t":{"68":{"position":[[444,5]]},"72":{"position":[[88,5]]}}}],["1.2.3",{"_index":502,"t":{"68":{"position":[[313,6],[435,8]]},"72":{"position":[[80,7]]},"74":{"position":[[166,6],[198,6]]}}}],["12.34.56.78/32",{"_index":1276,"t":{"284":{"position":[[190,14]]}}}],["12_03",{"_index":1315,"t":{"292":{"position":[[824,5]]}}}],["13_03",{"_index":1319,"t":{"292":{"position":[[883,5]]}}}],["14",{"_index":1240,"t":{"262":{"position":[[1077,2]]},"272":{"position":[[198,2]]},"288":{"position":[[198,2]]},"292":{"position":[[618,2]]}}}],["14_03",{"_index":1320,"t":{"292":{"position":[[905,5]]},"296":{"position":[[270,5]]}}}],["15th",{"_index":178,"t":{"21":{"position":[[132,4]]},"23":{"position":[[267,4]]}}}],["17",{"_index":141,"t":{"12":{"position":[[653,2]]}}}],["18.18",{"_index":1007,"t":{"194":{"position":[[373,5]]}}}],["192.168.0.0/16",{"_index":1275,"t":{"284":{"position":[[175,14]]}}}],["1st",{"_index":177,"t":{"21":{"position":[[124,3]]},"23":{"position":[[259,3]]}}}],["2",{"_index":284,"t":{"38":{"position":[[166,2]]},"40":{"position":[[962,2]]},"44":{"position":[[881,2]]},"88":{"position":[[177,2]]},"226":{"position":[[401,3]]},"228":{"position":[[184,2],[719,2]]},"234":{"position":[[181,1]]}}}],["2.0",{"_index":1138,"t":{"226":{"position":[[405,4]]}}}],["2.0.0",{"_index":1139,"t":{"226":{"position":[[410,7]]}}}],["2.0.2",{"_index":1012,"t":{"194":{"position":[[471,5]]}}}],["2025",{"_index":1313,"t":{"292":{"position":[[816,4],[875,4],[897,4]]},"296":{"position":[[262,4]]}}}],["256",{"_index":453,"t":{"54":{"position":[[336,4]]}}}],["27017:27017",{"_index":1062,"t":{"206":{"position":[[73,11]]}}}],["27018:27017",{"_index":838,"t":{"150":{"position":[[359,13]]}}}],["2b",{"_index":1158,"t":{"230":{"position":[[70,3]]}}}],["2fa",{"_index":1125,"t":{"224":{"position":[[626,4]]}}}],["3",{"_index":192,"t":{"23":{"position":[[165,1]]},"300":{"position":[[237,1]]}}}],["3.0",{"_index":330,"t":{"38":{"position":[[1146,3]]}}}],["30",{"_index":1332,"t":{"294":{"position":[[639,2]]}}}],["4",{"_index":142,"t":{"12":{"position":[[658,3]]},"94":{"position":[[10,1]]}}}],["403",{"_index":1278,"t":{"284":{"position":[[225,3]]}}}],["5",{"_index":174,"t":{"21":{"position":[[95,1]]},"23":{"position":[[197,3],[215,1]]}}}],["500kb",{"_index":1456,"t":{"352":{"position":[[520,6]]}}}],["6",{"_index":185,"t":{"23":{"position":[[43,1]]}}}],["8120",{"_index":631,"t":{"88":{"position":[[1077,4]]},"308":{"position":[[428,6]]}}}],["9",{"_index":140,"t":{"12":{"position":[[640,1]]},"23":{"position":[[276,1]]}}}],["__any__",{"_index":459,"t":{"56":{"position":[[186,8]]}}}],["a6v8h83",{"_index":510,"t":{"68":{"position":[[500,11]]},"72":{"position":[[172,8]]},"74":{"position":[[181,8],[229,8]]}}}],["a_random_secret",{"_index":1042,"t":{"204":{"position":[[252,17]]}}}],["aarch64",{"_index":98,"t":{"10":{"position":[[339,11]]},"68":{"position":[[303,7],[320,8]]},"74":{"position":[[190,7],[205,7],[221,7],[238,7],[308,9]]},"180":{"position":[[49,9]]}}}],["abov",{"_index":684,"t":{"98":{"position":[[595,6]]},"228":{"position":[[499,6]]},"232":{"position":[[409,6]]},"296":{"position":[[323,5]]}}}],["absolut",{"_index":521,"t":{"68":{"position":[[1128,8]]},"182":{"position":[[1271,8]]}}}],["abstract",{"_index":1204,"t":{"236":{"position":[[42,12]]}}}],["accept",{"_index":564,"t":{"80":{"position":[[173,7]]},"230":{"position":[[416,8],[640,7]]},"370":{"position":[[465,6]]}}}],["access",{"_index":416,"t":{"50":{"position":[[177,6]]},"68":{"position":[[1456,6]]},"80":{"position":[[517,6]]},"88":{"position":[[402,6],[1062,6]]},"90":{"position":[[83,6]]},"94":{"position":[[106,6],[433,7],[943,6]]},"96":{"position":[[65,6],[494,6],[674,6],[773,7]]},"98":{"position":[[425,8]]},"100":{"position":[[271,6],[543,6],[771,6]]},"106":{"position":[[233,6]]},"112":{"position":[[288,6]]},"120":{"position":[[480,6],[594,6]]},"126":{"position":[[250,6],[2049,6]]},"142":{"position":[[67,6]]},"198":{"position":[[154,10]]},"216":{"position":[[55,7]]},"236":{"position":[[350,6],[488,6],[608,6]]},"308":{"position":[[536,6]]},"368":{"position":[[30,8]]}}}],["access_token",{"_index":729,"t":{"114":{"position":[[278,14],[421,14]]},"120":{"position":[[416,14]]}}}],["accident",{"_index":1334,"t":{"296":{"position":[[497,10]]}}}],["account",{"_index":374,"t":{"42":{"position":[[358,7]]},"66":{"position":[[167,7]]},"68":{"position":[[696,7],[1294,7]]},"80":{"position":[[69,8],[221,8],[313,7],[385,7],[738,7],[809,7]]},"100":{"position":[[439,8]]},"102":{"position":[[147,8]]},"104":{"position":[[131,7]]},"106":{"position":[[127,9],[201,8],[253,8],[364,9]]},"108":{"position":[[103,8],[223,8],[318,8]]},"112":{"position":[[217,8],[271,7]]},"114":{"position":[[86,8],[233,8],[376,8]]},"118":{"position":[[179,8]]},"120":{"position":[[88,8],[227,8],[371,8]]},"122":{"position":[[57,7],[287,7],[367,7]]},"138":{"position":[[664,7]]},"152":{"position":[[315,7]]},"206":{"position":[[444,8]]},"224":{"position":[[798,8]]},"262":{"position":[[349,9]]},"264":{"position":[[91,9]]},"324":{"position":[[1487,7],[1533,8]]},"328":{"position":[[91,9]]}}}],["account'",{"_index":735,"t":{"118":{"position":[[417,10]]}}}],["action",{"_index":3,"t":{"2":{"position":[[28,6]]},"10":{"position":[[0,7]]},"14":{"position":[[30,7]]},"16":{"position":[[42,7]]},"27":{"position":[[122,6]]},"29":{"position":[[827,7]]},"46":{"position":[[352,6]]},"54":{"position":[[427,6]]},"56":{"position":[[136,6]]},"60":{"position":[[83,6]]},"94":{"position":[[576,6],[755,7],[988,8]]},"154":{"position":[[43,7],[76,6]]},"162":{"position":[[88,8]]},"168":{"position":[[88,8]]},"176":{"position":[[42,6],[52,6]]},"212":{"position":[[704,8]]},"214":{"position":[[255,8]]},"224":{"position":[[434,6]]},"234":{"position":[[160,7]]},"252":{"position":[[13,7],[142,7]]},"294":{"position":[[271,7]]},"370":{"position":[[132,7]]}}}],["action.gz",{"_index":1317,"t":{"292":{"position":[[840,9]]}}}],["activ",{"_index":45,"t":{"6":{"position":[[120,7],[348,7]]},"18":{"position":[[208,7]]},"298":{"position":[[110,6]]}}}],["actual",{"_index":777,"t":{"126":{"position":[[2115,6]]},"294":{"position":[[25,8]]}}}],["ad",{"_index":641,"t":{"92":{"position":[[186,5]]},"106":{"position":[[272,5]]},"228":{"position":[[311,5]]}}}],["add",{"_index":150,"t":{"16":{"position":[[0,3]]},"100":{"position":[[970,3]]},"106":{"position":[[161,3]]},"180":{"position":[[514,3]]},"204":{"position":[[71,3],[523,3]]},"228":{"position":[[196,3],[971,3]]},"324":{"position":[[327,3]]},"342":{"position":[[32,3]]},"344":{"position":[[3,3],[235,4],[327,3]]}}}],["addit",{"_index":206,"t":{"27":{"position":[[167,10]]},"68":{"position":[[1609,10]]},"74":{"position":[[272,10]]},"98":{"position":[[540,8]]},"100":{"position":[[974,10],[1019,10]]},"138":{"position":[[439,10]]},"150":{"position":[[669,10]]},"182":{"position":[[474,8]]},"262":{"position":[[596,10]]},"268":{"position":[[0,10]]},"274":{"position":[[0,10]]},"310":{"position":[[165,10]]},"324":{"position":[[1522,10]]}}}],["addition",{"_index":237,"t":{"29":{"position":[[550,13]]},"40":{"position":[[1110,13]]},"96":{"position":[[99,12]]},"100":{"position":[[303,13]]},"182":{"position":[[140,13],[1751,13]]}}}],["addr",{"_index":1441,"t":{"340":{"position":[[105,4]]}}}],["address",{"_index":267,"t":{"34":{"position":[[140,7]]},"182":{"position":[[79,7]]},"232":{"position":[[613,7]]},"304":{"position":[[333,9],[647,9]]},"344":{"position":[[180,7]]}}}],["address=\"https:///listener////@//:@///auth/github/callback",{"_index":1258,"t":{"278":{"position":[[264,34]]}}}],["komodo_host>/auth/google/callback",{"_index":1259,"t":{"278":{"position":[[311,34]]}}}],["komodo_host>/auth/oidc/callback",{"_index":1260,"t":{"278":{"position":[[358,32]]},"282":{"position":[[159,32]]}}}],["komodo_oidc_client_id",{"_index":1269,"t":{"282":{"position":[[632,25]]}}}],["komodo_oidc_client_secret",{"_index":1270,"t":{"282":{"position":[[690,29]]}}}],["komodo_oidc_enabled=tru",{"_index":1265,"t":{"282":{"position":[[466,24]]}}}],["komodo_oidc_provider=https:///realms/mast",{"_index":1267,"t":{"282":{"position":[[535,18]]}}}],["us",{"_index":61,"t":{"8":{"position":[[110,5]]},"18":{"position":[[278,4]]},"21":{"position":[[225,5]]},"29":{"position":[[479,3]]},"44":{"position":[[267,4]]},"46":{"position":[[238,3],[547,5]]},"48":{"position":[[125,3]]},"50":{"position":[[713,4]]},"54":{"position":[[466,3]]},"64":{"position":[[322,3]]},"68":{"position":[[238,5],[632,3],[1664,3],[1933,5]]},"70":{"position":[[7,4],[154,5]]},"74":{"position":[[69,6]]},"76":{"position":[[32,4]]},"80":{"position":[[444,4]]},"82":{"position":[[125,3]]},"84":{"position":[[83,4]]},"88":{"position":[[489,4]]},"94":{"position":[[340,5],[600,5]]},"98":{"position":[[710,3]]},"104":{"position":[[184,3]]},"124":{"position":[[232,5]]},"126":{"position":[[474,5],[620,5],[919,5],[1085,5],[1576,3],[1805,3]]},"132":{"position":[[270,5]]},"140":{"position":[[279,3]]},"150":{"position":[[334,5]]},"160":{"position":[[27,4]]},"174":{"position":[[27,4]]},"178":{"position":[[915,4]]},"180":{"position":[[176,5]]},"182":{"position":[[8,4],[210,5],[358,3],[1468,3],[1948,3]]},"190":{"position":[[52,4]]},"194":{"position":[[59,3],[398,3],[443,3]]},"196":{"position":[[31,4],[234,3]]},"200":{"position":[[0,3],[326,4]]},"202":{"position":[[41,5]]},"210":{"position":[[0,3]]},"220":{"position":[[7,4]]},"224":{"position":[[475,4]]},"226":{"position":[[471,5]]},"230":{"position":[[687,3]]},"232":{"position":[[175,5],[946,3]]},"236":{"position":[[292,4],[583,3]]},"242":{"position":[[112,5]]},"244":{"position":[[96,3],[179,5]]},"246":{"position":[[55,5]]},"250":{"position":[[79,3]]},"254":{"position":[[51,3]]},"262":{"position":[[0,5],[14,5],[142,3],[431,5],[492,5],[558,5]]},"264":{"position":[[173,5]]},"266":{"position":[[22,5],[88,5]]},"278":{"position":[[206,4]]},"282":{"position":[[155,3],[612,3]]},"284":{"position":[[3,5]]},"286":{"position":[[255,3]]},"294":{"position":[[112,5],[250,5]]},"304":{"position":[[1562,5]]},"306":{"position":[[8,3]]},"310":{"position":[[142,3]]},"312":{"position":[[32,5]]},"314":{"position":[[191,5]]},"322":{"position":[[62,3]]},"324":{"position":[[110,5],[193,5]]},"326":{"position":[[25,5],[91,5],[121,4],[718,5]]},"328":{"position":[[173,5]]},"330":{"position":[[309,5]]},"338":{"position":[[3,3]]},"340":{"position":[[25,3]]},"350":{"position":[[41,5]]},"352":{"position":[[319,3]]},"362":{"position":[[127,4],[223,6]]},"368":{"position":[[61,5]]},"370":{"position":[[120,6]]}}}],["usabl",{"_index":1211,"t":{"244":{"position":[[242,6]]}}}],["usag",{"_index":887,"t":{"174":{"position":[[331,5]]},"212":{"position":[[144,5]]},"214":{"position":[[278,6]]},"292":{"position":[[380,6]]},"298":{"position":[[451,5]]}}}],["use_buildx",{"_index":534,"t":{"68":{"position":[[1653,10]]}}}],["use_public_ip",{"_index":298,"t":{"38":{"position":[[338,13]]}}}],["user",{"_index":414,"t":{"50":{"position":[[111,6],[118,5],[389,5]]},"66":{"position":[[120,5],[181,6]]},"80":{"position":[[327,6],[399,5]]},"90":{"position":[[77,5]]},"92":{"position":[[48,5],[100,4],[162,5],[168,5],[204,4],[323,4],[364,5],[438,5],[455,4]]},"94":{"position":[[32,4],[83,4],[134,4],[198,4],[460,4],[697,6],[739,4],[833,4],[916,4]]},"96":{"position":[[171,4],[336,5],[386,4],[408,4],[631,5],[665,4],[973,4],[1053,5],[1141,5],[1203,5],[1265,5],[1334,4]]},"98":{"position":[[0,5],[9,4],[174,5],[436,4]]},"100":{"position":[[0,5],[69,4],[128,4],[212,4],[247,5],[323,5],[434,4],[464,4],[635,5],[668,5],[696,5],[798,5],[917,5]]},"112":{"position":[[320,5]]},"114":{"position":[[116,6],[263,6],[406,6]]},"120":{"position":[[118,6],[257,6],[401,6]]},"124":{"position":[[150,4]]},"126":{"position":[[294,6],[971,5]]},"136":{"position":[[153,5]]},"174":{"position":[[101,4],[128,5]]},"176":{"position":[[209,4],[245,4]]},"180":{"position":[[491,4]]},"206":{"position":[[439,4]]},"214":{"position":[[125,4]]},"218":{"position":[[164,4]]},"224":{"position":[[718,5]]},"226":{"position":[[243,5]]},"228":{"position":[[1038,5]]},"232":{"position":[[234,4]]},"262":{"position":[[110,5],[181,6],[344,4]]},"264":{"position":[[86,4]]},"304":{"position":[[399,4],[465,4],[495,6],[610,4],[838,4],[897,4],[968,5],[1113,4]]},"308":{"position":[[501,4]]},"314":{"position":[[131,4]]},"326":{"position":[[152,6]]},"328":{"position":[[86,4]]},"364":{"position":[[261,5]]}}}],["user'",{"_index":693,"t":{"100":{"position":[[358,6]]}}}],["user_data",{"_index":632,"t":{"88":{"position":[[1113,9]]}}}],["user_group",{"_index":409,"t":{"50":{"position":[[17,14]]},"98":{"position":[[143,14]]}}}],["usergroup",{"_index":408,"t":{"50":{"position":[[0,9]]}}}],["usernam",{"_index":708,"t":{"106":{"position":[[219,9]]},"112":{"position":[[241,9]]},"114":{"position":[[101,8],[248,8],[391,8]]},"118":{"position":[[203,9]]},"120":{"position":[[103,8],[242,8],[386,8]]},"224":{"position":[[670,8]]},"294":{"position":[[533,9]]},"296":{"position":[[620,9]]}}}],["username/password",{"_index":1101,"t":{"218":{"position":[[186,17]]}}}],["users/${user_id",{"_index":691,"t":{"100":{"position":[[222,18]]}}}],["usr/local/bin/km",{"_index":927,"t":{"180":{"position":[[230,18]]}}}],["usr/local/share/ca",{"_index":1244,"t":{"276":{"position":[[335,19]]}}}],["v",{"_index":936,"t":{"180":{"position":[[680,1]]},"206":{"position":[[88,1],[120,1]]}}}],["v1",{"_index":1135,"t":{"226":{"position":[[221,2],[266,2]]},"234":{"position":[[157,2],[192,2]]},"262":{"position":[[178,2],[573,3]]},"266":{"position":[[103,3]]},"326":{"position":[[106,3]]}}}],["v1.18.0",{"_index":1231,"t":{"262":{"position":[[541,8]]},"266":{"position":[[71,8]]},"326":{"position":[[74,8]]}}}],["v1.19.0",{"_index":1289,"t":{"290":{"position":[[13,10]]}}}],["v1.3.7",{"_index":1022,"t":{"196":{"position":[[252,8]]}}}],["v2",{"_index":1107,"t":{"222":{"position":[[7,2]]},"226":{"position":[[7,2],[166,2],[327,3]]},"228":{"position":[[56,2]]},"232":{"position":[[109,3]]},"234":{"position":[[463,2]]},"262":{"position":[[227,2]]},"276":{"position":[[186,3]]},"326":{"position":[[135,3]]}}}],["valid",{"_index":449,"t":{"54":{"position":[[310,9],[350,9]]},"96":{"position":[[246,5],[446,5]]},"282":{"position":[[134,5]]},"314":{"position":[[422,10]]}}}],["valu",{"_index":102,"t":{"10":{"position":[[423,6]]},"40":{"position":[[81,5]]},"124":{"position":[[44,5],[98,5]]},"126":{"position":[[188,5],[264,5],[933,6],[2129,6]]}}}],["value_1",{"_index":355,"t":{"40":{"position":[[793,7],[1430,7]]},"124":{"position":[[64,9],[425,7]]},"126":{"position":[[680,9]]}}}],["value_2",{"_index":357,"t":{"40":{"position":[[814,7],[1451,7]]},"126":{"position":[[698,9]]}}}],["var",{"_index":890,"t":{"176":{"position":[[102,3]]},"296":{"position":[[439,4]]}}}],["var/log/errors.log",{"_index":1479,"t":{"370":{"position":[[992,21]]}}}],["variabl",{"_index":331,"t":{"40":{"position":[[35,9],[45,12],[658,9],[755,9]]},"64":{"position":[[152,8]]},"124":{"position":[[2,8]]},"126":{"position":[[40,9],[81,9],[301,9],[401,10],[799,9],[869,8],[1136,8],[1675,8]]},"138":{"position":[[332,9],[401,8]]},"150":{"position":[[459,9],[499,8]]},"174":{"position":[[84,10]]},"182":{"position":[[245,10]]},"212":{"position":[[781,8]]},"244":{"position":[[232,9],[298,9]]},"282":{"position":[[400,9]]},"286":{"position":[[63,10],[456,10]]},"324":{"position":[[177,10]]},"326":{"position":[[678,9]]},"330":{"position":[[269,9]]}}}],["variable/secret",{"_index":518,"t":{"68":{"position":[[1028,15]]}}}],["variable_1",{"_index":354,"t":{"40":{"position":[[780,10],[1417,10]]}}}],["variable_2",{"_index":356,"t":{"40":{"position":[[801,10],[1438,10]]}}}],["variant",{"_index":57,"t":{"8":{"position":[[29,7]]},"74":{"position":[[98,7]]}}}],["variou",{"_index":1223,"t":{"258":{"position":[[16,7]]}}}],["vault",{"_index":768,"t":{"126":{"position":[[1633,6]]}}}],["versa",{"_index":364,"t":{"42":{"position":[[163,6]]}}}],["version",{"_index":90,"t":{"10":{"position":[[228,7],[272,8],[430,8],[595,8],[604,7]]},"40":{"position":[[359,8]]},"44":{"position":[[282,8]]},"46":{"position":[[80,8]]},"68":{"position":[[78,7],[100,7]]},"70":{"position":[[32,10]]},"74":{"position":[[124,7]]},"78":{"position":[[49,7],[93,8]]},"152":{"position":[[124,8]]},"188":{"position":[[120,7]]},"226":{"position":[[449,7]]},"228":{"position":[[59,9],[331,7],[1087,8]]},"262":{"position":[[100,9]]},"304":{"position":[[1437,7],[1487,8]]},"352":{"position":[[337,8]]},"370":{"position":[[1383,9]]}}}],["version=1.19.0&branch=releas",{"_index":893,"t":{"176":{"position":[[150,31]]}}}],["version=v2.x.x",{"_index":615,"t":{"88":{"position":[[757,14]]}}}],["versu",{"_index":515,"t":{"68":{"position":[[651,7]]}}}],["via",{"_index":528,"t":{"68":{"position":[[1463,3]]},"106":{"position":[[278,3]]},"138":{"position":[[128,3],[376,3]]},"144":{"position":[[64,3]]},"146":{"position":[[165,3]]},"174":{"position":[[230,3]]},"194":{"position":[[195,3]]},"220":{"position":[[101,3]]},"300":{"position":[[271,3]]},"308":{"position":[[256,3]]},"324":{"position":[[161,3]]},"356":{"position":[[235,3]]},"360":{"position":[[101,3]]},"370":{"position":[[362,3]]}}}],["vice",{"_index":363,"t":{"42":{"position":[[158,4]]}}}],["view",{"_index":651,"t":{"94":{"position":[[252,4]]},"106":{"position":[[248,4]]},"212":{"position":[[262,4]]},"304":{"position":[[1250,4]]},"346":{"position":[[0,4]]},"348":{"position":[[142,4],[252,4]]},"350":{"position":[[251,4]]}}}],["virtual",{"_index":834,"t":{"150":{"position":[[197,7]]}}}],["visibl",{"_index":525,"t":{"68":{"position":[[1379,7],[1503,7]]},"112":{"position":[[304,7]]},"362":{"position":[[365,7]]}}}],["vite_komodo_host=http://localhost:9120",{"_index":1056,"t":{"204":{"position":[[656,38]]}}}],["vm",{"_index":1361,"t":{"300":{"position":[[346,3]]}}}],["volum",{"_index":341,"t":{"40":{"position":[[489,7],[511,7],[1332,7]]},"148":{"position":[[250,7]]},"150":{"position":[[376,7]]},"228":{"position":[[339,8],[400,8]]},"276":{"position":[[369,8]]},"294":{"position":[[360,8]]},"296":{"position":[[282,8]]}}}],["vs",{"_index":1373,"t":{"304":{"position":[[1046,2]]}}}],["vscode",{"_index":1027,"t":{"200":{"position":[[41,6],[140,6]]}}}],["wait",{"_index":22,"t":{"4":{"position":[[185,5]]}}}],["want",{"_index":665,"t":{"96":{"position":[[293,7]]},"182":{"position":[[309,4],[1018,4],[1558,4]]},"230":{"position":[[7,4],[81,4]]},"262":{"position":[[792,4]]},"270":{"position":[[17,4]]},"282":{"position":[[604,4]]},"292":{"position":[[1000,4]]},"296":{"position":[[997,4]]},"300":{"position":[[17,4]]},"344":{"position":[[227,4]]}}}],["warn",{"_index":305,"t":{"38":{"position":[[505,5],[1064,5]]},"228":{"position":[[430,7]]},"292":{"position":[[934,7]]},"296":{"position":[[732,7]]}}}],["wasn't",{"_index":1150,"t":{"228":{"position":[[572,6]]}}}],["watch",{"_index":1069,"t":{"206":{"position":[[358,7]]}}}],["way",{"_index":475,"t":{"64":{"position":[[22,4]]},"106":{"position":[[12,3]]},"140":{"position":[[21,4]]},"152":{"position":[[14,4]]},"174":{"position":[[408,4]]},"324":{"position":[[906,4]]}}}],["web",{"_index":1005,"t":{"194":{"position":[[358,3]]},"212":{"position":[[12,3]]},"214":{"position":[[78,3]]},"278":{"position":[[215,3]]},"370":{"position":[[1176,6]]}}}],["webhook",{"_index":254,"t":{"29":{"position":[[909,7]]},"52":{"position":[[46,8],[228,7]]},"54":{"position":[[9,7],[57,11]]},"58":{"position":[[9,7],[114,8],[140,8]]},"60":{"position":[[24,8]]},"68":{"position":[[791,8],[1863,8],[1918,7]]},"140":{"position":[[283,8]]},"244":{"position":[[102,7]]},"252":{"position":[[112,9]]}}}],["webhook_en",{"_index":538,"t":{"68":{"position":[[1830,15]]}}}],["webhook_secret",{"_index":539,"t":{"68":{"position":[[1893,14]]}}}],["websocket",{"_index":848,"t":{"158":{"position":[[31,9]]},"216":{"position":[[24,9]]},"300":{"position":[[191,9]]}}}],["week",{"_index":188,"t":{"23":{"position":[[127,4]]}}}],["well",{"_index":695,"t":{"100":{"position":[[451,5],[950,4]]},"106":{"position":[[292,4]]},"126":{"position":[[234,4]]},"180":{"position":[[85,4]]},"296":{"position":[[44,5]]},"324":{"position":[[1157,5]]}}}],["wget",{"_index":970,"t":{"182":{"position":[[2139,4]]},"286":{"position":[[569,4]]},"322":{"position":[[243,4]]},"326":{"position":[[474,4],[579,4]]},"330":{"position":[[68,4],[170,4]]}}}],["whatev",{"_index":1214,"t":{"246":{"position":[[119,8]]},"324":{"position":[[1001,8]]}}}],["whenev",{"_index":944,"t":{"182":{"position":[[296,8]]}}}],["whether",{"_index":44,"t":{"6":{"position":[[99,7],[324,7]]},"18":{"position":[[184,7]]},"68":{"position":[[1846,7]]},"112":{"position":[[140,7]]},"318":{"position":[[312,7]]}}}],["whitelist",{"_index":1225,"t":{"258":{"position":[[89,10]]}}}],["whole",{"_index":1249,"t":{"276":{"position":[[606,5]]}}}],["wide",{"_index":926,"t":{"180":{"position":[[212,5]]},"244":{"position":[[293,4]]}}}],["wildcard",{"_index":62,"t":{"8":{"position":[[116,8]]},"44":{"position":[[379,10]]},"182":{"position":[[536,8],[1295,9]]},"324":{"position":[[361,8]]}}}],["window",{"_index":1438,"t":{"336":{"position":[[217,7]]}}}],["with_healthcheck",{"_index":865,"t":{"170":{"position":[[142,19]]}}}],["within",{"_index":19,"t":{"4":{"position":[[114,6]]},"6":{"position":[[197,6]]},"244":{"position":[[249,6]]},"254":{"position":[[87,6]]},"364":{"position":[[169,6]]}}}],["without",{"_index":676,"t":{"96":{"position":[[936,7]]},"150":{"position":[[938,8]]},"304":{"position":[[1332,7]]},"308":{"position":[[563,7]]}}}],["won't",{"_index":1339,"t":{"296":{"position":[[814,5]]},"304":{"position":[[1354,5]]}}}],["work",{"_index":260,"t":{"31":{"position":[[150,5]]},"52":{"position":[[241,5]]},"138":{"position":[[179,7]]},"182":{"position":[[453,7],[885,7]]},"228":{"position":[[1245,4]]},"230":{"position":[[877,6]]}}}],["worker",{"_index":1445,"t":{"344":{"position":[[277,6]]}}}],["workflow",{"_index":7,"t":{"2":{"position":[[78,10]]},"212":{"position":[[674,9]]}}}],["worri",{"_index":1355,"t":{"298":{"position":[[482,7]]}}}],["wrap",{"_index":748,"t":{"124":{"position":[[348,4]]}}}],["write",{"_index":69,"t":{"10":{"position":[[16,5]]},"21":{"position":[[36,5]]},"31":{"position":[[94,5]]},"50":{"position":[[171,5],[237,8]]},"64":{"position":[[74,5]]},"94":{"position":[[905,6],[937,5]]},"140":{"position":[[52,5],[77,6]]},"162":{"position":[[55,5]]},"168":{"position":[[55,5]]},"254":{"position":[[0,5]]},"286":{"position":[[93,5]]},"298":{"position":[[171,6]]}}}],["write:packag",{"_index":569,"t":{"80":{"position":[[545,14]]},"120":{"position":[[507,14]]}}}],["written",{"_index":810,"t":{"138":{"position":[[342,7]]}}}],["ws/peripheri",{"_index":1280,"t":{"284":{"position":[[259,13]]}}}],["ws://localhost:9120",{"_index":1184,"t":{"232":{"position":[[845,19]]}}}],["x",{"_index":450,"t":{"54":{"position":[[320,1],[360,1]]},"176":{"position":[[185,1]]},"284":{"position":[[405,1]]}}}],["x86",{"_index":97,"t":{"10":{"position":[[331,7]]},"82":{"position":[[44,5]]}}}],["x86_64",{"_index":920,"t":{"180":{"position":[[39,7]]}}}],["xxxxxxxx",{"_index":296,"t":{"38":{"position":[[303,10]]}}}],["xxxxxxxxxxxxxxxxxx",{"_index":294,"t":{"38":{"position":[[267,19],[386,20],[411,19]]},"88":{"position":[[237,19],[284,19],[580,20]]}}}],["y",{"_index":618,"t":{"88":{"position":[[865,1]]},"174":{"position":[[504,2]]},"176":{"position":[[60,1],[123,1]]},"294":{"position":[[358,1]]},"296":{"position":[[241,1]]}}}],["yaml",{"_index":349,"t":{"40":{"position":[[592,4]]},"182":{"position":[[1926,4],[2013,5],[2049,4]]},"286":{"position":[[233,4],[320,5],[356,4]]},"322":{"position":[[40,4],[127,5],[155,4]]}}}],["yarn",{"_index":1008,"t":{"194":{"position":[[385,4],[447,5]]}}}],["ye",{"_index":995,"t":{"190":{"position":[[195,2]]}}}],["your_core_public_key",{"_index":1173,"t":{"230":{"position":[[814,24]]}}}],["your_key",{"_index":863,"t":{"170":{"position":[[115,11]]},"172":{"position":[[199,11]]}}}],["your_komodo_core_address",{"_index":1182,"t":{"232":{"position":[[791,28]]}}}],["your_onboarding_key",{"_index":1190,"t":{"232":{"position":[[1239,23]]}}}],["your_organ",{"_index":322,"t":{"38":{"position":[[863,19]]}}}],["your_secret",{"_index":864,"t":{"170":{"position":[[127,14]]}}}],["your_usernam",{"_index":320,"t":{"38":{"position":[[810,15]]}}}],["yourself",{"_index":561,"t":{"78":{"position":[[63,9]]}}}],["zombi",{"_index":1149,"t":{"228":{"position":[[547,6]]}}}]],"pipeline":["stemmer"]}}]
\ No newline at end of file
+[{"documents":[{"i":1,"t":"Procedures and Actions","u":"/docs/automate/procedures","b":["Docs","Automate"]},{"i":13,"t":"Schedules","u":"/docs/automate/schedules","b":["Docs","Automate"]},{"i":28,"t":"Sync Resources","u":"/docs/automate/sync-resources","b":["Docs","Automate"]},{"i":51,"t":"Webhooks","u":"/docs/automate/webhooks","b":["Docs","Automate"]},{"i":61,"t":"Build","u":"/docs/build","b":["Docs"]},{"i":89,"t":"Permissioning","u":"/docs/configuration/permissioning","b":["Docs","Configuration"]},{"i":101,"t":"Providers","u":"/docs/configuration/providers","b":["Docs","Configuration"]},{"i":123,"t":"Variables and Secrets","u":"/docs/configuration/variables","b":["Docs","Configuration"]},{"i":127,"t":"Automatic Updates","u":"/docs/deploy/auto-update","b":["Docs","Deploy"]},{"i":133,"t":"Docker Compose","u":"/docs/deploy/compose","b":["Docs","Deploy"]},{"i":145,"t":"Containers","u":"/docs/deploy/containers","b":["Docs","Deploy"]},{"i":157,"t":"Ecosystem","u":"/docs/ecosystem","b":["Docs","Ecosystem"]},{"i":167,"t":"API and Clients","u":"/docs/ecosystem/api","b":["Docs","Ecosystem"]},{"i":173,"t":"Komodo CLI","u":"/docs/ecosystem/cli","b":["Docs","Ecosystem"]},{"i":183,"t":"Community","u":"/docs/ecosystem/community","b":["Docs","Ecosystem"]},{"i":191,"t":"Development","u":"/docs/ecosystem/development","b":["Docs","Ecosystem"]},{"i":211,"t":"What is Komodo?","u":"/docs/intro","b":["Docs"]},{"i":221,"t":"v2.0.0","u":"/docs/releases/v2.0.0","b":["Docs","Releases"]},{"i":235,"t":"Resources","u":"/docs/resources","b":["Docs"]},{"i":259,"t":"Setup Komodo Core","u":"/docs/setup","b":["Docs","Setup"]},{"i":273,"t":"Advanced Setup","u":"/docs/setup/advanced","b":["Docs","Setup"]},{"i":287,"t":"Backup and Restore","u":"/docs/setup/backup","b":["Docs","Setup"]},{"i":299,"t":"Connect More Servers","u":"/docs/setup/connect-servers","b":["Docs","Setup"]},{"i":325,"t":"FerretDB","u":"/docs/setup/ferretdb","b":["Docs","Setup"]},{"i":327,"t":"MongoDB","u":"/docs/setup/mongo","b":["Docs","Setup"]},{"i":331,"t":"Swarm","u":"/docs/swarm","b":["Docs"]},{"i":357,"t":"Terminals","u":"/docs/terminals","b":["Docs"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,2.56,1,2.56]],["t/13",[2,3.376]],["t/28",[3,2.56,4,2.113]],["t/51",[5,3.376]],["t/61",[6,3.376]],["t/89",[7,3.376]],["t/101",[8,3.376]],["t/123",[9,2.56,10,2.56]],["t/127",[11,2.56,12,2.56]],["t/133",[13,2.56,14,2.56]],["t/145",[15,3.376]],["t/157",[16,3.376]],["t/167",[17,2.56,18,2.56]],["t/173",[19,1.819,20,2.56]],["t/183",[21,3.376]],["t/191",[22,3.376]],["t/211",[19,2.398]],["t/221",[23,3.376]],["t/235",[4,2.786]],["t/259",[19,1.465,24,1.702,25,2.062]],["t/273",[24,2.113,26,2.56]],["t/287",[27,2.56,28,2.56]],["t/299",[29,2.062,30,2.062,31,2.062]],["t/325",[32,3.376]],["t/327",[33,3.376]],["t/331",[34,3.376]],["t/357",[35,3.376]]],"invertedIndex":[["action",{"_index":1,"t":{"1":{"position":[[15,7]]}}}],["advanc",{"_index":26,"t":{"273":{"position":[[0,8]]}}}],["api",{"_index":17,"t":{"167":{"position":[[0,3]]}}}],["automat",{"_index":11,"t":{"127":{"position":[[0,9]]}}}],["backup",{"_index":27,"t":{"287":{"position":[[0,6]]}}}],["build",{"_index":6,"t":{"61":{"position":[[0,5]]}}}],["cli",{"_index":20,"t":{"173":{"position":[[7,3]]}}}],["client",{"_index":18,"t":{"167":{"position":[[8,7]]}}}],["commun",{"_index":21,"t":{"183":{"position":[[0,9]]}}}],["compos",{"_index":14,"t":{"133":{"position":[[7,7]]}}}],["connect",{"_index":29,"t":{"299":{"position":[[0,7]]}}}],["contain",{"_index":15,"t":{"145":{"position":[[0,10]]}}}],["core",{"_index":25,"t":{"259":{"position":[[13,4]]}}}],["develop",{"_index":22,"t":{"191":{"position":[[0,11]]}}}],["docker",{"_index":13,"t":{"133":{"position":[[0,6]]}}}],["ecosystem",{"_index":16,"t":{"157":{"position":[[0,9]]}}}],["ferretdb",{"_index":32,"t":{"325":{"position":[[0,8]]}}}],["komodo",{"_index":19,"t":{"173":{"position":[[0,6]]},"211":{"position":[[8,7]]},"259":{"position":[[6,6]]}}}],["mongodb",{"_index":33,"t":{"327":{"position":[[0,7]]}}}],["more",{"_index":30,"t":{"299":{"position":[[8,4]]}}}],["permiss",{"_index":7,"t":{"89":{"position":[[0,13]]}}}],["procedur",{"_index":0,"t":{"1":{"position":[[0,10]]}}}],["provid",{"_index":8,"t":{"101":{"position":[[0,9]]}}}],["resourc",{"_index":4,"t":{"28":{"position":[[5,9]]},"235":{"position":[[0,9]]}}}],["restor",{"_index":28,"t":{"287":{"position":[[11,7]]}}}],["schedul",{"_index":2,"t":{"13":{"position":[[0,9]]}}}],["secret",{"_index":10,"t":{"123":{"position":[[14,7]]}}}],["server",{"_index":31,"t":{"299":{"position":[[13,7]]}}}],["setup",{"_index":24,"t":{"259":{"position":[[0,5]]},"273":{"position":[[9,5]]}}}],["swarm",{"_index":34,"t":{"331":{"position":[[0,5]]}}}],["sync",{"_index":3,"t":{"28":{"position":[[0,4]]}}}],["termin",{"_index":35,"t":{"357":{"position":[[0,9]]}}}],["updat",{"_index":12,"t":{"127":{"position":[[10,7]]}}}],["v2.0.0",{"_index":23,"t":{"221":{"position":[[0,6]]}}}],["variabl",{"_index":9,"t":{"123":{"position":[[0,9]]}}}],["webhook",{"_index":5,"t":{"51":{"position":[[0,8]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Procedures","u":"/docs/automate/procedures","h":"#procedures","p":1},{"i":5,"t":"Config fields","u":"/docs/automate/procedures","h":"#config-fields","p":1},{"i":7,"t":"Batch Executions","u":"/docs/automate/procedures","h":"#batch-executions","p":1},{"i":9,"t":"Actions","u":"/docs/automate/procedures","h":"#actions","p":1},{"i":11,"t":"Action examples","u":"/docs/automate/procedures","h":"#action-examples","p":1},{"i":15,"t":"Configuration","u":"/docs/automate/schedules","h":"#configuration","p":13},{"i":17,"t":"Schedule fields","u":"/docs/automate/schedules","h":"#schedule-fields","p":13},{"i":19,"t":"Schedule formats","u":"/docs/automate/schedules","h":"#schedule-formats","p":13},{"i":20,"t":"English (natural language)","u":"/docs/automate/schedules","h":"#english-natural-language","p":13},{"i":22,"t":"Cron","u":"/docs/automate/schedules","h":"#cron","p":13},{"i":24,"t":"Viewing schedules","u":"/docs/automate/schedules","h":"#viewing-schedules","p":13},{"i":26,"t":"Alerts","u":"/docs/automate/schedules","h":"#alerts","p":13},{"i":30,"t":"Commit to Syncs","u":"/docs/automate/sync-resources","h":"#commit-to-syncs","p":28},{"i":32,"t":"Example Declarations","u":"/docs/automate/sync-resources","h":"#example-declarations","p":28},{"i":33,"t":"Server","u":"/docs/automate/sync-resources","h":"#server","p":28},{"i":35,"t":"Swarm","u":"/docs/automate/sync-resources","h":"#swarm","p":28},{"i":37,"t":"Builder and build","u":"/docs/automate/sync-resources","h":"#builder-and-build","p":28},{"i":39,"t":"Deployments","u":"/docs/automate/sync-resources","h":"#deployments","p":28},{"i":41,"t":"Stack","u":"/docs/automate/sync-resources","h":"#stack","p":28},{"i":43,"t":"Procedure","u":"/docs/automate/sync-resources","h":"#procedure","p":28},{"i":45,"t":"Repo","u":"/docs/automate/sync-resources","h":"#repo","p":28},{"i":47,"t":"Resource sync","u":"/docs/automate/sync-resources","h":"#resource-sync","p":28},{"i":49,"t":"User Group:","u":"/docs/automate/sync-resources","h":"#user-group","p":28},{"i":53,"t":"Webhook URL","u":"/docs/automate/webhooks","h":"#webhook-url","p":51},{"i":55,"t":"Executions by resource type","u":"/docs/automate/webhooks","h":"#executions-by-resource-type","p":51},{"i":57,"t":"Setting Up a Webhook","u":"/docs/automate/webhooks","h":"#setting-up-a-webhook","p":51},{"i":59,"t":"Branch Filtering","u":"/docs/automate/webhooks","h":"#branch-filtering","p":51},{"i":63,"t":"Dockerfile Sources","u":"/docs/build","h":"#dockerfile-sources","p":61},{"i":65,"t":"Configuration","u":"/docs/build","h":"#configuration","p":61},{"i":67,"t":"Config fields","u":"/docs/build","h":"#config-fields","p":61},{"i":69,"t":"Image Versioning and Tagging","u":"/docs/build","h":"#image-versioning-and-tagging","p":61},{"i":71,"t":"Tag types","u":"/docs/build","h":"#tag-types","p":61},{"i":73,"t":"Image tag postfix","u":"/docs/build","h":"#image-tag-postfix","p":61},{"i":75,"t":"Custom image name","u":"/docs/build","h":"#custom-image-name","p":61},{"i":77,"t":"Manual versioning","u":"/docs/build","h":"#manual-versioning","p":61},{"i":79,"t":"Image Registry","u":"/docs/build","h":"#image-registry","p":61},{"i":81,"t":"Multi-platform builds (Buildx)","u":"/docs/build","h":"#multi-platform-builds-buildx","p":61},{"i":83,"t":"Builders","u":"/docs/build","h":"#builders","p":61},{"i":85,"t":"Server builder","u":"/docs/build","h":"#server-builder","p":61},{"i":87,"t":"AWS EC2 builder","u":"/docs/build","h":"#aws-ec2-builder","p":61},{"i":91,"t":"User Groups","u":"/docs/configuration/permissioning","h":"#user-groups","p":89},{"i":93,"t":"Permission Levels","u":"/docs/configuration/permissioning","h":"#permission-levels","p":89},{"i":95,"t":"Specific Permissions","u":"/docs/configuration/permissioning","h":"#specific-permissions","p":89},{"i":97,"t":"Permissioning by Resource Type","u":"/docs/configuration/permissioning","h":"#permissioning-by-resource-type","p":89},{"i":99,"t":"Administration","u":"/docs/configuration/permissioning","h":"#administration","p":89},{"i":103,"t":"Usage","u":"/docs/configuration/providers","h":"#usage","p":101},{"i":105,"t":"Managing Providers in the UI","u":"/docs/configuration/providers","h":"#managing-providers-in-the-ui","p":101},{"i":107,"t":"Configuring via Config Files","u":"/docs/configuration/providers","h":"#configuring-via-config-files","p":101},{"i":109,"t":"Git Providers","u":"/docs/configuration/providers","h":"#git-providers","p":101},{"i":111,"t":"Fields","u":"/docs/configuration/providers","h":"#fields","p":101},{"i":113,"t":"Configuration","u":"/docs/configuration/providers","h":"#configuration","p":101},{"i":115,"t":"Docker Registries","u":"/docs/configuration/providers","h":"#docker-registries","p":101},{"i":117,"t":"Fields","u":"/docs/configuration/providers","h":"#fields-1","p":101},{"i":119,"t":"Configuration","u":"/docs/configuration/providers","h":"#configuration-1","p":101},{"i":121,"t":"Usage","u":"/docs/configuration/providers","h":"#usage-1","p":101},{"i":125,"t":"Defining Variables and Secrets","u":"/docs/configuration/variables","h":"#defining-variables-and-secrets","p":123},{"i":129,"t":"Configuration","u":"/docs/deploy/auto-update","h":"#configuration","p":127},{"i":131,"t":"Global Auto Update Procedure","u":"/docs/deploy/auto-update","h":"#global-auto-update-procedure","p":127},{"i":135,"t":"Configuration","u":"/docs/deploy/compose","h":"#configuration","p":133},{"i":137,"t":"Config fields","u":"/docs/deploy/compose","h":"#config-fields","p":133},{"i":139,"t":"Defining Compose Files","u":"/docs/deploy/compose","h":"#defining-compose-files","p":133},{"i":141,"t":"Importing Existing Projects","u":"/docs/deploy/compose","h":"#importing-existing-projects","p":133},{"i":143,"t":"Deploying to a Swarm","u":"/docs/deploy/compose","h":"#deploying-to-a-swarm","p":133},{"i":147,"t":"Configuration","u":"/docs/deploy/containers","h":"#configuration","p":145},{"i":149,"t":"Config fields","u":"/docs/deploy/containers","h":"#config-fields","p":145},{"i":151,"t":"Image source","u":"/docs/deploy/containers","h":"#image-source","p":145},{"i":153,"t":"Container Lifecycle","u":"/docs/deploy/containers","h":"#container-lifecycle","p":145},{"i":155,"t":"Deploying to a Swarm","u":"/docs/deploy/containers","h":"#deploying-to-a-swarm","p":145},{"i":159,"t":"📄️ Komodo CLI","u":"/docs/ecosystem","h":"","p":157},{"i":161,"t":"📄️ API and Clients","u":"/docs/ecosystem","h":"","p":157},{"i":163,"t":"📄️ Community","u":"/docs/ecosystem","h":"","p":157},{"i":165,"t":"📄️ Development","u":"/docs/ecosystem","h":"","p":157},{"i":169,"t":"Rust Client","u":"/docs/ecosystem/api","h":"#rust-client","p":167},{"i":171,"t":"Typescript Client","u":"/docs/ecosystem/api","h":"#typescript-client","p":167},{"i":175,"t":"Examples","u":"/docs/ecosystem/cli","h":"#examples","p":173},{"i":177,"t":"Terminals","u":"/docs/ecosystem/cli","h":"#terminals","p":173},{"i":179,"t":"Install","u":"/docs/ecosystem/cli","h":"#install","p":173},{"i":181,"t":"Configure","u":"/docs/ecosystem/cli","h":"#configure","p":173},{"i":185,"t":"3rd Party Tools","u":"/docs/ecosystem/community","h":"#3rd-party-tools","p":183},{"i":187,"t":"Posts and Guides","u":"/docs/ecosystem/community","h":"#posts-and-guides","p":183},{"i":189,"t":"Community Alerters","u":"/docs/ecosystem/community","h":"#community-alerters","p":183},{"i":193,"t":"Dependencies","u":"/docs/ecosystem/development","h":"#dependencies","p":191},{"i":195,"t":"runnables-cli","u":"/docs/ecosystem/development","h":"#runnables-cli","p":191},{"i":197,"t":"Docker","u":"/docs/ecosystem/development","h":"#docker","p":191},{"i":199,"t":"Devcontainer","u":"/docs/ecosystem/development","h":"#devcontainer","p":191},{"i":201,"t":"Local","u":"/docs/ecosystem/development","h":"#local","p":191},{"i":203,"t":"Initial One-time Setup","u":"/docs/ecosystem/development","h":"#initial-one-time-setup","p":191},{"i":205,"t":"Starting the services","u":"/docs/ecosystem/development","h":"#starting-the-services","p":191},{"i":207,"t":"Rebuilding the frontend client","u":"/docs/ecosystem/development","h":"#rebuilding-the-frontend-client","p":191},{"i":209,"t":"Docsite Development","u":"/docs/ecosystem/development","h":"#docsite-development","p":191},{"i":213,"t":"Architecture","u":"/docs/intro","h":"#architecture","p":211},{"i":215,"t":"API","u":"/docs/intro","h":"#api","p":211},{"i":217,"t":"Permissioning","u":"/docs/intro","h":"#permissioning","p":211},{"i":219,"t":"Docker","u":"/docs/intro","h":"#docker","p":211},{"i":223,"t":"Changelog","u":"/docs/releases/v2.0.0","h":"#changelog","p":221},{"i":225,"t":"Upgrading to Komodo v2","u":"/docs/releases/v2.0.0","h":"#upgrading-to-komodo-v2","p":221},{"i":227,"t":"1. Upgrade Core and Periphery to v2","u":"/docs/releases/v2.0.0","h":"#1-upgrade-core-and-periphery-to-v2","p":221},{"i":229,"t":"2a. Move to public key authentication","u":"/docs/releases/v2.0.0","h":"#2a-move-to-public-key-authentication","p":221},{"i":231,"t":"2b. Reversing the agent connection","u":"/docs/releases/v2.0.0","h":"#2b-reversing-the-agent-connection","p":221},{"i":233,"t":"3. Fix any komodo.execute_terminal in Actions","u":"/docs/releases/v2.0.0","h":"#3-fix-any-komodoexecute_terminal-in-actions","p":221},{"i":237,"t":"Server","u":"/docs/resources","h":"#server","p":235},{"i":239,"t":"Swarm","u":"/docs/resources","h":"#swarm","p":235},{"i":241,"t":"Deployment","u":"/docs/resources","h":"#deployment","p":235},{"i":243,"t":"Stack","u":"/docs/resources","h":"#stack","p":235},{"i":245,"t":"Repo","u":"/docs/resources","h":"#repo","p":235},{"i":247,"t":"Build","u":"/docs/resources","h":"#build","p":235},{"i":249,"t":"Builder","u":"/docs/resources","h":"#builder","p":235},{"i":251,"t":"Procedure","u":"/docs/resources","h":"#procedure","p":235},{"i":253,"t":"Action","u":"/docs/resources","h":"#action","p":235},{"i":255,"t":"Resource Sync","u":"/docs/resources","h":"#resource-sync","p":235},{"i":257,"t":"Alerter","u":"/docs/resources","h":"#alerter","p":235},{"i":261,"t":"Deploy with Docker Compose","u":"/docs/setup","h":"#deploy-with-docker-compose","p":259},{"i":263,"t":"📄️ MongoDB","u":"/docs/setup","h":"","p":259},{"i":265,"t":"📄️ FerretDB","u":"/docs/setup","h":"","p":259},{"i":267,"t":"📄️ Advanced Setup","u":"/docs/setup","h":"","p":259},{"i":269,"t":"📄️ Connect More Servers","u":"/docs/setup","h":"","p":259},{"i":271,"t":"📄️ Backup and Restore","u":"/docs/setup","h":"","p":259},{"i":275,"t":"Custom Certificate Authorities","u":"/docs/setup/advanced","h":"#custom-certificate-authorities","p":273},{"i":277,"t":"OIDC / OAuth2","u":"/docs/setup/advanced","h":"#oidc--oauth2","p":273},{"i":279,"t":"Authentik","u":"/docs/setup/advanced","h":"#authentik","p":273},{"i":281,"t":"Keycloak","u":"/docs/setup/advanced","h":"#keycloak","p":273},{"i":283,"t":"Limit Periphery IPs","u":"/docs/setup/advanced","h":"#limit-periphery-ips","p":273},{"i":285,"t":"Mount a Config File","u":"/docs/setup/advanced","h":"#mount-a-config-file","p":273},{"i":289,"t":"Scheduled Backup","u":"/docs/setup/backup","h":"#scheduled-backup","p":287},{"i":291,"t":"Backups","u":"/docs/setup/backup","h":"#backups","p":287},{"i":293,"t":"Remote Backups","u":"/docs/setup/backup","h":"#remote-backups","p":287},{"i":295,"t":"Restore","u":"/docs/setup/backup","h":"#restore","p":287},{"i":297,"t":"Consistency","u":"/docs/setup/backup","h":"#consistency","p":287},{"i":301,"t":"Install Periphery","u":"/docs/setup/connect-servers","h":"#install-periphery","p":299},{"i":303,"t":"Systemd","u":"/docs/setup/connect-servers","h":"#systemd","p":299},{"i":305,"t":"Container","u":"/docs/setup/connect-servers","h":"#container","p":299},{"i":307,"t":"Binary","u":"/docs/setup/connect-servers","h":"#binary","p":299},{"i":309,"t":"Example periphery start command","u":"/docs/setup/connect-servers","h":"#example-periphery-start-command","p":299},{"i":311,"t":"Authentication and Key Rotation","u":"/docs/setup/connect-servers","h":"#authentication-and-key-rotation","p":299},{"i":313,"t":"How it works","u":"/docs/setup/connect-servers","h":"#how-it-works","p":299},{"i":315,"t":"Default key locations","u":"/docs/setup/connect-servers","h":"#default-key-locations","p":299},{"i":317,"t":"Automatic key rotation","u":"/docs/setup/connect-servers","h":"#automatic-key-rotation","p":299},{"i":319,"t":"Onboarding key options","u":"/docs/setup/connect-servers","h":"#onboarding-key-options","p":299},{"i":321,"t":"Configuration","u":"/docs/setup/connect-servers","h":"#configuration","p":299},{"i":323,"t":"Passing config files","u":"/docs/setup/connect-servers","h":"#passing-config-files","p":299},{"i":329,"t":"Quick Start","u":"/docs/setup/mongo","h":"#quick-start","p":327},{"i":333,"t":"Configuration","u":"/docs/swarm","h":"#configuration","p":331},{"i":335,"t":"Config fields","u":"/docs/swarm","h":"#config-fields","p":331},{"i":337,"t":"Getting Started","u":"/docs/swarm","h":"#getting-started","p":331},{"i":339,"t":"1. Initialize the Swarm","u":"/docs/swarm","h":"#1-initialize-the-swarm","p":331},{"i":341,"t":"2. Create the Swarm resource in Komodo","u":"/docs/swarm","h":"#2-create-the-swarm-resource-in-komodo","p":331},{"i":343,"t":"3. Join additional nodes","u":"/docs/swarm","h":"#3-join-additional-nodes","p":331},{"i":345,"t":"Nodes","u":"/docs/swarm","h":"#nodes","p":331},{"i":347,"t":"Services","u":"/docs/swarm","h":"#services","p":331},{"i":349,"t":"Stacks","u":"/docs/swarm","h":"#stacks","p":331},{"i":351,"t":"Configs and Secrets","u":"/docs/swarm","h":"#configs-and-secrets","p":331},{"i":353,"t":"Health Monitoring","u":"/docs/swarm","h":"#health-monitoring","p":331},{"i":355,"t":"Deploying to a Swarm","u":"/docs/swarm","h":"#deploying-to-a-swarm","p":331},{"i":359,"t":"Server Terminals","u":"/docs/terminals","h":"#server-terminals","p":357},{"i":361,"t":"Container Terminals","u":"/docs/terminals","h":"#container-terminals","p":357},{"i":363,"t":"Multiple Sessions","u":"/docs/terminals","h":"#multiple-sessions","p":357},{"i":365,"t":"Terminal History","u":"/docs/terminals","h":"#terminal-history","p":357},{"i":367,"t":"CLI","u":"/docs/terminals","h":"#cli","p":357},{"i":369,"t":"Execute Terminal","u":"/docs/terminals","h":"#execute-terminal","p":357},{"i":371,"t":"Periphery Configuration","u":"/docs/terminals","h":"#periphery-configuration","p":357}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,4.483]],["t/5",[1,2.816,2,2.926]],["t/7",[3,4.652,4,3.809]],["t/9",[5,4.483]],["t/11",[5,3.559,6,3.559]],["t/15",[7,3.202]],["t/17",[2,2.926,8,3.559]],["t/19",[8,3.559,9,4.652]],["t/20",[10,3.857,11,3.857,12,3.857]],["t/22",[13,5.859]],["t/24",[8,3.559,14,4.652]],["t/26",[15,4.798]],["t/30",[16,4.652,17,3.809]],["t/32",[6,3.559,18,4.652]],["t/33",[19,4.231]],["t/35",[20,3.843]],["t/37",[21,3.359,22,3.809]],["t/39",[23,4.022]],["t/41",[24,4.798]],["t/43",[0,4.483]],["t/45",[25,5.219]],["t/47",[17,3.809,26,3.359]],["t/49",[27,4.144,28,4.144]],["t/53",[29,4.144,30,4.652]],["t/55",[4,3.158,26,2.785,31,3.158]],["t/57",[29,3.436,32,3.857,33,3.857]],["t/59",[34,4.652,35,4.652]],["t/63",[36,4.652,37,4.144]],["t/65",[7,3.202]],["t/67",[1,2.816,2,2.926]],["t/69",[38,2.785,39,3.436,40,3.158]],["t/71",[31,3.809,40,3.809]],["t/73",[38,2.785,40,3.158,41,3.857]],["t/75",[38,2.785,42,3.436,43,3.857]],["t/77",[39,4.144,44,4.652]],["t/79",[38,3.359,45,4.144]],["t/81",[22,2.697,46,3.294,47,3.294,48,3.294]],["t/83",[21,4.231]],["t/85",[19,3.359,21,3.359]],["t/87",[21,2.785,49,3.857,50,3.857]],["t/91",[27,4.144,28,4.144]],["t/93",[51,3.559,52,4.652]],["t/95",[51,3.559,53,4.652]],["t/97",[26,2.785,31,3.158,51,2.951]],["t/99",[54,5.859]],["t/103",[55,5.219]],["t/105",[56,3.857,57,3.436,58,3.857]],["t/107",[1,1.994,7,1.8,59,3.294,60,2.52]],["t/109",[57,4.144,61,4.652]],["t/111",[2,3.686]],["t/113",[7,3.202]],["t/115",[45,4.144,62,3.559]],["t/117",[2,3.686]],["t/119",[7,3.202]],["t/121",[55,5.219]],["t/125",[63,3.436,64,3.857,65,3.436]],["t/129",[7,3.202]],["t/131",[0,2.52,66,3.294,67,3.294,68,3.294]],["t/135",[7,3.202]],["t/137",[1,2.816,2,2.926]],["t/139",[60,2.951,63,3.436,69,3.436]],["t/141",[70,3.857,71,3.857,72,3.857]],["t/143",[20,3.051,23,3.193]],["t/147",[7,3.202]],["t/149",[1,2.816,2,2.926]],["t/151",[37,4.144,38,3.359]],["t/153",[73,3.809,74,4.652]],["t/155",[20,3.051,23,3.193]],["t/159",[75,2.252,76,3.158,77,3.158]],["t/161",[75,2.252,78,3.436,79,2.951]],["t/163",[75,2.716,80,4.144]],["t/165",[75,2.716,81,4.144]],["t/169",[79,3.559,82,4.652]],["t/171",[79,3.559,83,4.652]],["t/175",[6,4.483]],["t/177",[84,4.231]],["t/179",[85,5.219]],["t/181",[7,3.202]],["t/185",[86,3.857,87,3.857,88,3.857]],["t/187",[89,4.652,90,4.652]],["t/189",[15,3.809,80,4.144]],["t/193",[91,5.859]],["t/195",[77,3.809,92,4.652]],["t/197",[62,4.483]],["t/199",[93,5.859]],["t/201",[94,5.859]],["t/203",[95,2.934,96,3.294,97,3.294,98,2.934]],["t/205",[99,3.559,100,4.144]],["t/207",[79,2.951,101,3.857,102,3.857]],["t/209",[81,4.144,103,4.652]],["t/213",[104,5.859]],["t/215",[78,5.219]],["t/217",[51,4.483]],["t/219",[62,4.483]],["t/223",[105,5.859]],["t/225",[76,3.158,106,3.436,107,3.436]],["t/227",[106,2.561,107,2.561,108,2.561,109,2.875,110,2.076]],["t/229",[111,2.875,112,2.875,113,2.875,114,2.076,115,2.561]],["t/231",[116,3.294,117,3.294,118,3.294,119,2.934]],["t/233",[5,2.52,120,2.934,121,3.294,122,3.294]],["t/237",[19,4.231]],["t/239",[20,3.843]],["t/241",[23,4.022]],["t/243",[24,4.798]],["t/245",[25,5.219]],["t/247",[22,4.798]],["t/249",[21,4.231]],["t/251",[0,4.483]],["t/253",[5,4.483]],["t/255",[17,3.809,26,3.359]],["t/257",[15,4.798]],["t/261",[23,2.648,62,2.951,69,3.436]],["t/263",[75,2.716,123,4.652]],["t/265",[75,2.716,124,4.652]],["t/267",[75,2.252,98,3.436,125,3.857]],["t/269",[19,2.379,75,1.923,119,2.934,126,3.294]],["t/271",[75,2.252,127,2.951,128,3.436]],["t/275",[42,3.436,129,3.857,130,3.857]],["t/277",[75,2.252,131,3.857,132,3.857]],["t/279",[133,5.859]],["t/281",[134,5.859]],["t/283",[110,2.785,135,3.857,136,3.857]],["t/285",[1,2.334,60,2.951,137,3.857]],["t/289",[8,3.559,127,3.559]],["t/291",[127,4.483]],["t/293",[127,3.559,138,4.652]],["t/295",[128,5.219]],["t/297",[139,5.859]],["t/301",[85,4.144,110,3.359]],["t/303",[140,5.859]],["t/305",[73,4.798]],["t/307",[141,5.859]],["t/309",[6,2.52,99,2.52,110,2.379,142,3.294]],["t/311",[114,2.785,115,3.436,143,3.436]],["t/313",[144,5.859]],["t/315",[114,2.785,145,3.857,146,3.857]],["t/317",[114,2.785,143,3.436,147,3.857]],["t/319",[114,2.785,148,3.857,149,3.857]],["t/321",[7,3.202]],["t/323",[1,2.334,60,2.951,150,3.857]],["t/329",[99,3.559,151,4.652]],["t/333",[7,3.202]],["t/335",[1,2.816,2,2.926]],["t/337",[99,3.559,152,4.652]],["t/339",[20,2.529,95,3.436,108,3.436]],["t/341",[20,1.885,26,2.076,76,2.354,153,2.875,154,2.875]],["t/343",[120,2.934,155,3.294,156,3.294,157,2.934]],["t/345",[157,5.219]],["t/347",[100,5.219]],["t/349",[24,4.798]],["t/351",[1,2.816,65,4.144]],["t/353",[158,4.652,159,4.652]],["t/355",[20,3.051,23,3.193]],["t/359",[19,3.359,84,3.359]],["t/361",[73,3.809,84,3.359]],["t/363",[160,4.652,161,4.652]],["t/365",[84,3.359,162,4.652]],["t/367",[77,4.798]],["t/369",[4,3.809,84,3.359]],["t/371",[7,2.543,110,3.359]]],"invertedIndex":[["",{"_index":75,"t":{"159":{"position":[[0,3]]},"161":{"position":[[0,3]]},"163":{"position":[[0,3]]},"165":{"position":[[0,3]]},"263":{"position":[[0,3]]},"265":{"position":[[0,3]]},"267":{"position":[[0,3]]},"269":{"position":[[0,3]]},"271":{"position":[[0,3]]},"277":{"position":[[5,1]]}}}],["1",{"_index":108,"t":{"227":{"position":[[0,2]]},"339":{"position":[[0,2]]}}}],["2",{"_index":153,"t":{"341":{"position":[[0,2]]}}}],["2a",{"_index":111,"t":{"229":{"position":[[0,3]]}}}],["2b",{"_index":116,"t":{"231":{"position":[[0,3]]}}}],["3",{"_index":120,"t":{"233":{"position":[[0,2]]},"343":{"position":[[0,2]]}}}],["3rd",{"_index":86,"t":{"185":{"position":[[0,3]]}}}],["action",{"_index":5,"t":{"9":{"position":[[0,7]]},"11":{"position":[[0,6]]},"233":{"position":[[38,7]]},"253":{"position":[[0,6]]}}}],["addit",{"_index":156,"t":{"343":{"position":[[8,10]]}}}],["administr",{"_index":54,"t":{"99":{"position":[[0,14]]}}}],["advanc",{"_index":125,"t":{"267":{"position":[[4,8]]}}}],["agent",{"_index":118,"t":{"231":{"position":[[18,5]]}}}],["alert",{"_index":15,"t":{"26":{"position":[[0,6]]},"189":{"position":[[10,8]]},"257":{"position":[[0,7]]}}}],["api",{"_index":78,"t":{"161":{"position":[[4,3]]},"215":{"position":[[0,3]]}}}],["architectur",{"_index":104,"t":{"213":{"position":[[0,12]]}}}],["authent",{"_index":115,"t":{"229":{"position":[[23,14]]},"311":{"position":[[0,14]]}}}],["authentik",{"_index":133,"t":{"279":{"position":[[0,9]]}}}],["author",{"_index":130,"t":{"275":{"position":[[19,11]]}}}],["auto",{"_index":67,"t":{"131":{"position":[[7,4]]}}}],["automat",{"_index":147,"t":{"317":{"position":[[0,9]]}}}],["aw",{"_index":49,"t":{"87":{"position":[[0,3]]}}}],["backup",{"_index":127,"t":{"271":{"position":[[4,6]]},"289":{"position":[[10,6]]},"291":{"position":[[0,7]]},"293":{"position":[[7,7]]}}}],["batch",{"_index":3,"t":{"7":{"position":[[0,5]]}}}],["binari",{"_index":141,"t":{"307":{"position":[[0,6]]}}}],["branch",{"_index":34,"t":{"59":{"position":[[0,6]]}}}],["build",{"_index":22,"t":{"37":{"position":[[12,5]]},"81":{"position":[[15,6]]},"247":{"position":[[0,5]]}}}],["builder",{"_index":21,"t":{"37":{"position":[[0,7]]},"83":{"position":[[0,8]]},"85":{"position":[[7,7]]},"87":{"position":[[8,7]]},"249":{"position":[[0,7]]}}}],["buildx",{"_index":48,"t":{"81":{"position":[[22,8]]}}}],["certif",{"_index":129,"t":{"275":{"position":[[7,11]]}}}],["changelog",{"_index":105,"t":{"223":{"position":[[0,9]]}}}],["cli",{"_index":77,"t":{"159":{"position":[[11,3]]},"195":{"position":[[10,3]]},"367":{"position":[[0,3]]}}}],["client",{"_index":79,"t":{"161":{"position":[[12,7]]},"169":{"position":[[5,6]]},"171":{"position":[[11,6]]},"207":{"position":[[24,6]]}}}],["command",{"_index":142,"t":{"309":{"position":[[24,7]]}}}],["commit",{"_index":16,"t":{"30":{"position":[[0,6]]}}}],["commun",{"_index":80,"t":{"163":{"position":[[4,9]]},"189":{"position":[[0,9]]}}}],["compos",{"_index":69,"t":{"139":{"position":[[9,7]]},"261":{"position":[[19,7]]}}}],["config",{"_index":1,"t":{"5":{"position":[[0,6]]},"67":{"position":[[0,6]]},"107":{"position":[[16,6]]},"137":{"position":[[0,6]]},"149":{"position":[[0,6]]},"285":{"position":[[8,6]]},"323":{"position":[[8,6]]},"335":{"position":[[0,6]]},"351":{"position":[[0,7]]}}}],["configur",{"_index":7,"t":{"15":{"position":[[0,13]]},"65":{"position":[[0,13]]},"107":{"position":[[0,11]]},"113":{"position":[[0,13]]},"119":{"position":[[0,13]]},"129":{"position":[[0,13]]},"135":{"position":[[0,13]]},"147":{"position":[[0,13]]},"181":{"position":[[0,9]]},"321":{"position":[[0,13]]},"333":{"position":[[0,13]]},"371":{"position":[[10,13]]}}}],["connect",{"_index":119,"t":{"231":{"position":[[24,10]]},"269":{"position":[[4,7]]}}}],["consist",{"_index":139,"t":{"297":{"position":[[0,11]]}}}],["contain",{"_index":73,"t":{"153":{"position":[[0,9]]},"305":{"position":[[0,9]]},"361":{"position":[[0,9]]}}}],["core",{"_index":109,"t":{"227":{"position":[[11,4]]}}}],["creat",{"_index":154,"t":{"341":{"position":[[3,6]]}}}],["cron",{"_index":13,"t":{"22":{"position":[[0,4]]}}}],["custom",{"_index":42,"t":{"75":{"position":[[0,6]]},"275":{"position":[[0,6]]}}}],["declar",{"_index":18,"t":{"32":{"position":[[8,12]]}}}],["default",{"_index":145,"t":{"315":{"position":[[0,7]]}}}],["defin",{"_index":63,"t":{"125":{"position":[[0,8]]},"139":{"position":[[0,8]]}}}],["depend",{"_index":91,"t":{"193":{"position":[[0,12]]}}}],["deploy",{"_index":23,"t":{"39":{"position":[[0,11]]},"143":{"position":[[0,9]]},"155":{"position":[[0,9]]},"241":{"position":[[0,10]]},"261":{"position":[[0,6]]},"355":{"position":[[0,9]]}}}],["devcontain",{"_index":93,"t":{"199":{"position":[[0,12]]}}}],["develop",{"_index":81,"t":{"165":{"position":[[4,11]]},"209":{"position":[[8,11]]}}}],["docker",{"_index":62,"t":{"115":{"position":[[0,6]]},"197":{"position":[[0,6]]},"219":{"position":[[0,6]]},"261":{"position":[[12,6]]}}}],["dockerfil",{"_index":36,"t":{"63":{"position":[[0,10]]}}}],["docsit",{"_index":103,"t":{"209":{"position":[[0,7]]}}}],["ec2",{"_index":50,"t":{"87":{"position":[[4,3]]}}}],["english",{"_index":10,"t":{"20":{"position":[[0,7]]}}}],["exampl",{"_index":6,"t":{"11":{"position":[[7,8]]},"32":{"position":[[0,7]]},"175":{"position":[[0,8]]},"309":{"position":[[0,7]]}}}],["execut",{"_index":4,"t":{"7":{"position":[[6,10]]},"55":{"position":[[0,10]]},"369":{"position":[[0,7]]}}}],["exist",{"_index":71,"t":{"141":{"position":[[10,8]]}}}],["ferretdb",{"_index":124,"t":{"265":{"position":[[4,8]]}}}],["field",{"_index":2,"t":{"5":{"position":[[7,6]]},"17":{"position":[[9,6]]},"67":{"position":[[7,6]]},"111":{"position":[[0,6]]},"117":{"position":[[0,6]]},"137":{"position":[[7,6]]},"149":{"position":[[7,6]]},"335":{"position":[[7,6]]}}}],["file",{"_index":60,"t":{"107":{"position":[[23,5]]},"139":{"position":[[17,5]]},"285":{"position":[[15,4]]},"323":{"position":[[15,5]]}}}],["filter",{"_index":35,"t":{"59":{"position":[[7,9]]}}}],["fix",{"_index":121,"t":{"233":{"position":[[3,3]]}}}],["format",{"_index":9,"t":{"19":{"position":[[9,7]]}}}],["frontend",{"_index":102,"t":{"207":{"position":[[15,8]]}}}],["get",{"_index":152,"t":{"337":{"position":[[0,7]]}}}],["git",{"_index":61,"t":{"109":{"position":[[0,3]]}}}],["global",{"_index":66,"t":{"131":{"position":[[0,6]]}}}],["group",{"_index":28,"t":{"49":{"position":[[5,6]]},"91":{"position":[[5,6]]}}}],["guid",{"_index":90,"t":{"187":{"position":[[10,6]]}}}],["health",{"_index":158,"t":{"353":{"position":[[0,6]]}}}],["histori",{"_index":162,"t":{"365":{"position":[[9,7]]}}}],["imag",{"_index":38,"t":{"69":{"position":[[0,5]]},"73":{"position":[[0,5]]},"75":{"position":[[7,5]]},"79":{"position":[[0,5]]},"151":{"position":[[0,5]]}}}],["import",{"_index":70,"t":{"141":{"position":[[0,9]]}}}],["initi",{"_index":95,"t":{"203":{"position":[[0,7]]},"339":{"position":[[3,10]]}}}],["instal",{"_index":85,"t":{"179":{"position":[[0,7]]},"301":{"position":[[0,7]]}}}],["ip",{"_index":136,"t":{"283":{"position":[[16,3]]}}}],["join",{"_index":155,"t":{"343":{"position":[[3,4]]}}}],["key",{"_index":114,"t":{"229":{"position":[[19,3]]},"311":{"position":[[19,3]]},"315":{"position":[[8,3]]},"317":{"position":[[10,3]]},"319":{"position":[[11,3]]}}}],["keycloak",{"_index":134,"t":{"281":{"position":[[0,8]]}}}],["komodo",{"_index":76,"t":{"159":{"position":[[4,6]]},"225":{"position":[[13,6]]},"341":{"position":[[32,6]]}}}],["komodo.execute_termin",{"_index":122,"t":{"233":{"position":[[11,23]]}}}],["languag",{"_index":12,"t":{"20":{"position":[[17,9]]}}}],["level",{"_index":52,"t":{"93":{"position":[[11,6]]}}}],["lifecycl",{"_index":74,"t":{"153":{"position":[[10,9]]}}}],["limit",{"_index":135,"t":{"283":{"position":[[0,5]]}}}],["local",{"_index":94,"t":{"201":{"position":[[0,5]]}}}],["locat",{"_index":146,"t":{"315":{"position":[[12,9]]}}}],["manag",{"_index":56,"t":{"105":{"position":[[0,8]]}}}],["manual",{"_index":44,"t":{"77":{"position":[[0,6]]}}}],["mongodb",{"_index":123,"t":{"263":{"position":[[4,7]]}}}],["monitor",{"_index":159,"t":{"353":{"position":[[7,10]]}}}],["more",{"_index":126,"t":{"269":{"position":[[12,4]]}}}],["mount",{"_index":137,"t":{"285":{"position":[[0,5]]}}}],["move",{"_index":112,"t":{"229":{"position":[[4,4]]}}}],["multi",{"_index":46,"t":{"81":{"position":[[0,5]]}}}],["multipl",{"_index":160,"t":{"363":{"position":[[0,8]]}}}],["name",{"_index":43,"t":{"75":{"position":[[13,4]]}}}],["natur",{"_index":11,"t":{"20":{"position":[[8,8]]}}}],["node",{"_index":157,"t":{"343":{"position":[[19,5]]},"345":{"position":[[0,5]]}}}],["oauth2",{"_index":132,"t":{"277":{"position":[[7,6]]}}}],["oidc",{"_index":131,"t":{"277":{"position":[[0,4]]}}}],["on",{"_index":96,"t":{"203":{"position":[[8,3]]}}}],["onboard",{"_index":148,"t":{"319":{"position":[[0,10]]}}}],["option",{"_index":149,"t":{"319":{"position":[[15,7]]}}}],["parti",{"_index":87,"t":{"185":{"position":[[4,5]]}}}],["pass",{"_index":150,"t":{"323":{"position":[[0,7]]}}}],["peripheri",{"_index":110,"t":{"227":{"position":[[20,9]]},"283":{"position":[[6,9]]},"301":{"position":[[8,9]]},"309":{"position":[[8,9]]},"371":{"position":[[0,9]]}}}],["permiss",{"_index":51,"t":{"93":{"position":[[0,10]]},"95":{"position":[[9,11]]},"97":{"position":[[0,13]]},"217":{"position":[[0,13]]}}}],["platform",{"_index":47,"t":{"81":{"position":[[6,8]]}}}],["post",{"_index":89,"t":{"187":{"position":[[0,5]]}}}],["postfix",{"_index":41,"t":{"73":{"position":[[10,7]]}}}],["procedur",{"_index":0,"t":{"3":{"position":[[0,10]]},"43":{"position":[[0,9]]},"131":{"position":[[19,9]]},"251":{"position":[[0,9]]}}}],["project",{"_index":72,"t":{"141":{"position":[[19,8]]}}}],["provid",{"_index":57,"t":{"105":{"position":[[9,9]]},"109":{"position":[[4,9]]}}}],["public",{"_index":113,"t":{"229":{"position":[[12,6]]}}}],["quick",{"_index":151,"t":{"329":{"position":[[0,5]]}}}],["rebuild",{"_index":101,"t":{"207":{"position":[[0,10]]}}}],["registri",{"_index":45,"t":{"79":{"position":[[6,8]]},"115":{"position":[[7,10]]}}}],["remot",{"_index":138,"t":{"293":{"position":[[0,6]]}}}],["repo",{"_index":25,"t":{"45":{"position":[[0,4]]},"245":{"position":[[0,4]]}}}],["resourc",{"_index":26,"t":{"47":{"position":[[0,8]]},"55":{"position":[[14,8]]},"97":{"position":[[17,8]]},"255":{"position":[[0,8]]},"341":{"position":[[20,8]]}}}],["restor",{"_index":128,"t":{"271":{"position":[[15,7]]},"295":{"position":[[0,7]]}}}],["revers",{"_index":117,"t":{"231":{"position":[[4,9]]}}}],["rotat",{"_index":143,"t":{"311":{"position":[[23,8]]},"317":{"position":[[14,8]]}}}],["runnabl",{"_index":92,"t":{"195":{"position":[[0,9]]}}}],["rust",{"_index":82,"t":{"169":{"position":[[0,4]]}}}],["schedul",{"_index":8,"t":{"17":{"position":[[0,8]]},"19":{"position":[[0,8]]},"24":{"position":[[8,9]]},"289":{"position":[[0,9]]}}}],["secret",{"_index":65,"t":{"125":{"position":[[23,7]]},"351":{"position":[[12,7]]}}}],["server",{"_index":19,"t":{"33":{"position":[[0,6]]},"85":{"position":[[0,6]]},"237":{"position":[[0,6]]},"269":{"position":[[17,7]]},"359":{"position":[[0,6]]}}}],["servic",{"_index":100,"t":{"205":{"position":[[13,8]]},"347":{"position":[[0,8]]}}}],["session",{"_index":161,"t":{"363":{"position":[[9,8]]}}}],["set",{"_index":32,"t":{"57":{"position":[[0,7]]}}}],["setup",{"_index":98,"t":{"203":{"position":[[17,5]]},"267":{"position":[[13,5]]}}}],["sourc",{"_index":37,"t":{"63":{"position":[[11,7]]},"151":{"position":[[6,6]]}}}],["specif",{"_index":53,"t":{"95":{"position":[[0,8]]}}}],["stack",{"_index":24,"t":{"41":{"position":[[0,5]]},"243":{"position":[[0,5]]},"349":{"position":[[0,6]]}}}],["start",{"_index":99,"t":{"205":{"position":[[0,8]]},"309":{"position":[[18,5]]},"329":{"position":[[6,5]]},"337":{"position":[[8,7]]}}}],["swarm",{"_index":20,"t":{"35":{"position":[[0,5]]},"143":{"position":[[15,5]]},"155":{"position":[[15,5]]},"239":{"position":[[0,5]]},"339":{"position":[[18,5]]},"341":{"position":[[14,5]]},"355":{"position":[[15,5]]}}}],["sync",{"_index":17,"t":{"30":{"position":[[10,5]]},"47":{"position":[[9,4]]},"255":{"position":[[9,4]]}}}],["systemd",{"_index":140,"t":{"303":{"position":[[0,7]]}}}],["tag",{"_index":40,"t":{"69":{"position":[[21,7]]},"71":{"position":[[0,3]]},"73":{"position":[[6,3]]}}}],["termin",{"_index":84,"t":{"177":{"position":[[0,9]]},"359":{"position":[[7,9]]},"361":{"position":[[10,9]]},"365":{"position":[[0,8]]},"369":{"position":[[8,8]]}}}],["time",{"_index":97,"t":{"203":{"position":[[12,4]]}}}],["tool",{"_index":88,"t":{"185":{"position":[[10,5]]}}}],["type",{"_index":31,"t":{"55":{"position":[[23,4]]},"71":{"position":[[4,5]]},"97":{"position":[[26,4]]}}}],["typescript",{"_index":83,"t":{"171":{"position":[[0,10]]}}}],["ui",{"_index":58,"t":{"105":{"position":[[26,2]]}}}],["up",{"_index":33,"t":{"57":{"position":[[8,2]]}}}],["updat",{"_index":68,"t":{"131":{"position":[[12,6]]}}}],["upgrad",{"_index":106,"t":{"225":{"position":[[0,9]]},"227":{"position":[[3,7]]}}}],["url",{"_index":30,"t":{"53":{"position":[[8,3]]}}}],["usag",{"_index":55,"t":{"103":{"position":[[0,5]]},"121":{"position":[[0,5]]}}}],["user",{"_index":27,"t":{"49":{"position":[[0,4]]},"91":{"position":[[0,4]]}}}],["v2",{"_index":107,"t":{"225":{"position":[[20,2]]},"227":{"position":[[33,2]]}}}],["variabl",{"_index":64,"t":{"125":{"position":[[9,9]]}}}],["version",{"_index":39,"t":{"69":{"position":[[6,10]]},"77":{"position":[[7,10]]}}}],["via",{"_index":59,"t":{"107":{"position":[[12,3]]}}}],["view",{"_index":14,"t":{"24":{"position":[[0,7]]}}}],["webhook",{"_index":29,"t":{"53":{"position":[[0,7]]},"57":{"position":[[13,7]]}}}],["work",{"_index":144,"t":{"313":{"position":[[7,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":1,"t":"Komodo offers Procedure and Action resources for orchestrating multi-resource workflows. Both can be run on a schedule","s":"Procedures and Actions","u":"/docs/automate/procedures","p":1},{"i":13,"t":"Komodo can run Procedures and Actions automatically on a configured schedule.","s":"Schedules","u":"/docs/automate/schedules","p":13},{"i":28,"t":"Komodo is able to create, update, delete, and deploy resources declared in TOML files by diffing them against the existing resources,","s":"Sync Resources","u":"/docs/automate/sync-resources","p":28},{"i":51,"t":"Komodo resources can be triggered by incoming webhooks from your git provider. GitHub and GitLab authentication types are supported, which also covers Gitea, Forgejo, and other compatible providers.","s":"Webhooks","u":"/docs/automate/webhooks","p":51},{"i":61,"t":"Komodo builds Docker images by running docker build and pushing the result to a configured image registry.","s":"Build","u":"/docs/build","p":61},{"i":89,"t":"Komodo has a granular, layer-based permissioning system to provide non-admin users access only to intended Resources.","s":"Permissioning","u":"/docs/configuration/permissioning","p":89},{"i":101,"t":"Providers allow Komodo to authenticate against external git providers and docker registries on behalf of your resources. Once configured, provider accounts are available to attach to Builds, Repos, Stacks, and Resource Syncs.","s":"Providers","u":"/docs/configuration/providers","p":101},{"i":123,"t":"A variable / secret in Komodo is just a key-value pair.","s":"Variables and Secrets","u":"/docs/configuration/variables","p":123},{"i":127,"t":"Komodo can automatically check for newer Docker image digests and redeploy resources when updates are found.","s":"Automatic Updates","u":"/docs/deploy/auto-update","p":127},{"i":133,"t":"Komodo can deploy Docker Compose projects through the Stack resource.","s":"Docker Compose","u":"/docs/deploy/compose","p":133},{"i":145,"t":"Komodo can deploy Docker containers through the Deployment resource. It translates your configuration into a docker run command and executes it on the target Server via the Periphery agent.","s":"Containers","u":"/docs/deploy/containers","p":145},{"i":157,"t":"Komodo exposes a full REST and WebSocket API, typed CLI, and client libraries in Rust and TypeScript.","s":"Ecosystem","u":"/docs/ecosystem","p":157},{"i":167,"t":"Komodo Core exposes an RPC-like HTTP API to read data, write configuration, and execute actions.","s":"API and Clients","u":"/docs/ecosystem/api","p":167},{"i":173,"t":"The Komodo CLI, km, can be used to:","s":"Komodo CLI","u":"/docs/ecosystem/cli","p":173},{"i":183,"t":"Community-built tools, guides, and alerter integrations for Komodo.","s":"Community","u":"/docs/ecosystem/community","p":183},{"i":191,"t":"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.","s":"Development","u":"/docs/ecosystem/development","p":191},{"i":211,"t":"Komodo is a web application for managing servers, builds, deployments, and automated procedures.","s":"What is Komodo?","u":"/docs/intro","p":211},{"i":221,"t":"Komodo v2 is a major release with significant architectural changes and new features.","s":"v2.0.0","u":"/docs/releases/v2.0.0","p":221},{"i":235,"t":"Komodo is extendible through the Resource abstraction. Entities like Server, Deployment, and Stack are all Komodo Resources.","s":"Resources","u":"/docs/resources","p":235},{"i":259,"t":"To run Komodo, you will need Docker. See the docker install docs.","s":"Setup Komodo Core","u":"/docs/setup","p":259},{"i":273,"t":"Additional configuration options for Komodo Core and Periphery, including custom certificate authorities, OAuth/OIDC providers, and mounted config files.","s":"Advanced Setup","u":"/docs/setup/advanced","p":273},{"i":287,"t":"Komodo can automatically back up its database on a schedule and restore from any previous snapshot. Backups are gzip-compressed and stored on disk or a remote server, and by default the most recent 14 backups are stored. The backup and restore operations are handled by the Komodo CLI, which is packaged in the Core image for convenience.","s":"Backup and Restore","u":"/docs/setup/backup","p":287},{"i":299,"t":"Every server you want to manage with Komodo needs the Periphery agent installed.","s":"Connect More Servers","u":"/docs/setup/connect-servers","p":299},{"i":325,"t":"- If you setup Komodo using Postgres or Sqlite options prior to Komodo v1.18.0, you are using FerretDB v1.","s":"FerretDB","u":"/docs/setup/ferretdb","p":325},{"i":327,"t":"MongoDB is the recommended database for Komodo. It stores all resource configuration, user accounts, audit logs, and system state. Komodo Core communicates with it directly using the MongoDB driver.","s":"MongoDB","u":"/docs/setup/mongo","p":327},{"i":331,"t":"Komodo can manage Docker Swarm clusters through the Swarm resource. Connect your swarm manager nodes and manage nodes, services, stacks, configs, and secrets from a single interface.","s":"Swarm","u":"/docs/swarm","p":331},{"i":357,"t":"Komodo provides browser-based terminal sessions for servers and containers. Sessions are persistent,","s":"Terminals","u":"/docs/terminals","p":357}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,0.018,1,2.984,2,2.12,3,2.12,4,1.24,5,2.984,6,2.984,7,2.984,8,2.984,9,1.659,10,2.12]],["t/13",[0,0.022,2,2.541,3,2.541,9,1.989,10,2.541,11,2.541,12,1.61]],["t/28",[0,0.018,4,1.213,13,2.889,14,2.384,15,2.889,16,1.606,17,2.889,18,2.889,19,2.384,20,2.889,21,2.384,22,2.889]],["t/51",[0,0.016,4,0.778,23,2.56,24,2.56,25,2.56,26,2.113,27,2.037,28,2.56,29,2.56,30,2.113,31,2.113,32,2.56,33,2.56,34,2.56,35,2.56,36,2.56]],["t/61",[0,0.018,9,1.659,12,1.343,37,2.898,38,1.836,39,2.898,40,2.984,41,2.984,42,2.463]],["t/89",[0,0.018,4,0.878,27,1.606,43,2.889,44,2.889,45,2.384,46,2.889,47,2.384,48,2.889,49,2.889,50,2.384,51,2.889,52,2.889]],["t/101",[0,0.013,4,0.993,12,0.984,21,1.805,26,1.805,27,2.173,30,1.805,37,1.554,38,0.984,42,1.805,53,2.187,54,2.187,55,2.187,56,2.187,57,1.805,58,2.187,59,2.187,60,2.187,61,1.366,62,2.187]],["t/123",[0,0.022,63,3.577,64,3.577,65,2.952,66,3.577,67,3.577,68,3.577]],["t/127",[0,0.019,4,0.938,11,2.193,14,2.548,38,1.389,39,2.193,69,3.086,70,3.086,71,3.086,72,3.086,73,3.086]],["t/133",[0,0.021,4,1.046,16,1.913,38,1.548,61,2.149,74,3.44,75,3.44,76,2.149]],["t/145",[0,0.015,4,0.757,9,1.384,12,1.12,16,1.997,38,1.616,76,1.555,77,2.055,78,2.489,79,2.489,80,2.055,81,2.489,82,1.242,83,2.489,84,1.769,85,2.055]],["t/157",[0,0.018,31,2.463,86,2.463,87,2.984,88,2.984,89,2.984,90,2.463,91,2.12,92,2.984,93,2.984,94,2.984,95,2.984]],["t/167",[0,0.018,3,2.12,12,1.343,80,2.463,86,2.463,90,2.463,96,1.864,97,2.984,98,2.984,99,2.984,100,2.984,101,2.984]],["t/173",[0,0.025,91,2.885,102,4.06,103,2.885]],["t/183",[0,0.022,104,2.952,105,3.577,106,3.577,107,3.577,108,3.577,109,3.577]],["t/191",[0,0.026,110,3.086,111,3.086,112,3.086,113,3.086,114,3.086,115,3.086,116,2.548,117,3.086,118,3.086]],["t/211",[0,0.02,2,2.354,16,1.842,37,2.354,82,1.653,119,3.313,120,3.313,121,2.354,122,3.313]],["t/221",[0,0.02,123,3.313,124,3.313,125,3.313,126,3.313,127,3.313,128,3.313,129,3.313,130,3.313]],["t/235",[0,0.026,4,1.269,16,1.716,61,1.928,76,1.928,82,1.54,131,3.086,132,3.086,133,3.086]],["t/259",[0,0.021,9,1.913,38,2.018,134,2.84,135,3.44,136,2.84,137,3.44]],["t/273",[0,0.017,12,1.222,19,2.241,27,1.509,84,1.929,96,1.696,138,2.714,139,2.241,140,2.714,141,2.714,142,2.714,143,2.714,144,2.714,145,2.714,146,2.241]],["t/287",[0,0.018,10,1.301,11,1.301,39,1.301,82,0.914,91,1.301,96,1.144,116,1.512,147,1.832,148,1.512,149,2.852,150,1.832,151,1.832,152,3.502,153,1.832,154,1.832,155,2.354,156,1.832,157,1.832,158,1.832,159,1.832,160,1.832,161,1.832,162,1.832,163,1.832,164,1.832]],["t/299",[0,0.021,82,1.717,84,2.444,85,2.84,121,2.444,134,2.84,136,2.84,165,3.44]],["t/325",[0,0.025,103,2.898,139,2.463,166,2.984,167,2.984,168,2.984,169,2.984,170,2.984,171,2.984,172,2.984]],["t/327",[0,0.021,4,0.717,12,1.062,47,1.947,50,1.947,57,1.947,96,1.474,103,1.676,104,1.947,148,1.947,155,1.947,173,3.453,174,2.359,175,2.359,176,2.359,177,2.359,178,2.359,179,2.359]],["t/331",[0,0.015,4,0.717,38,1.062,61,1.474,65,1.947,76,1.474,121,2.902,146,1.947,180,4.084,181,2.359,182,2.359,183,3.453,184,2.359,185,2.359,186,2.359]],["t/357",[0,0.02,27,1.777,45,2.638,77,2.638,82,1.595,187,3.196,188,3.196,189,4.272,190,3.196]]],"invertedIndex":[["",{"_index":64,"t":{"123":{"position":[[11,1]]}}}],["14",{"_index":160,"t":{"287":{"position":[[198,2]]}}}],["abstract",{"_index":132,"t":{"235":{"position":[[42,12]]}}}],["access",{"_index":51,"t":{"89":{"position":[[83,6]]}}}],["account",{"_index":57,"t":{"101":{"position":[[147,8]]},"327":{"position":[[91,9]]}}}],["action",{"_index":3,"t":{"1":{"position":[[28,6]]},"13":{"position":[[30,7]]},"167":{"position":[[88,8]]}}}],["addit",{"_index":138,"t":{"273":{"position":[[0,10]]}}}],["admin",{"_index":49,"t":{"89":{"position":[[71,5]]}}}],["against",{"_index":21,"t":{"28":{"position":[[102,7]]},"101":{"position":[[39,7]]}}}],["agent",{"_index":85,"t":{"145":{"position":[[183,6]]},"299":{"position":[[64,5]]}}}],["alert",{"_index":108,"t":{"183":{"position":[[35,7]]}}}],["allow",{"_index":53,"t":{"101":{"position":[[10,5]]}}}],["api",{"_index":90,"t":{"157":{"position":[[41,4]]},"167":{"position":[[37,3]]}}}],["applic",{"_index":120,"t":{"211":{"position":[[16,11]]}}}],["architectur",{"_index":127,"t":{"221":{"position":[[46,13]]}}}],["attach",{"_index":59,"t":{"101":{"position":[[173,6]]}}}],["audit",{"_index":175,"t":{"327":{"position":[[101,5]]}}}],["authent",{"_index":30,"t":{"51":{"position":[[97,14]]},"101":{"position":[[26,12]]}}}],["author",{"_index":143,"t":{"273":{"position":[[93,12]]}}}],["autom",{"_index":122,"t":{"211":{"position":[[75,9]]}}}],["automat",{"_index":11,"t":{"13":{"position":[[38,13]]},"127":{"position":[[11,13]]},"287":{"position":[[11,13]]}}}],["avail",{"_index":58,"t":{"101":{"position":[[160,9]]}}}],["back",{"_index":147,"t":{"287":{"position":[[25,4]]}}}],["backup",{"_index":152,"t":{"287":{"position":[[100,7],[201,7],[225,6]]}}}],["base",{"_index":45,"t":{"89":{"position":[[29,5]]},"357":{"position":[[24,5]]}}}],["behalf",{"_index":55,"t":{"101":{"position":[[95,6]]}}}],["both",{"_index":8,"t":{"1":{"position":[[89,4]]}}}],["browser",{"_index":187,"t":{"357":{"position":[[16,7]]}}}],["build",{"_index":37,"t":{"61":{"position":[[7,6],[46,5]]},"101":{"position":[[183,7]]},"211":{"position":[[50,7]]}}}],["built",{"_index":105,"t":{"183":{"position":[[10,5]]}}}],["certif",{"_index":142,"t":{"273":{"position":[[81,11]]}}}],["chang",{"_index":128,"t":{"221":{"position":[[60,7]]}}}],["check",{"_index":69,"t":{"127":{"position":[[25,5]]}}}],["cli",{"_index":91,"t":{"157":{"position":[[52,4]]},"173":{"position":[[11,4]]},"287":{"position":[[281,4]]}}}],["client",{"_index":92,"t":{"157":{"position":[[61,6]]}}}],["cluster",{"_index":181,"t":{"331":{"position":[[31,8]]}}}],["command",{"_index":79,"t":{"145":{"position":[[120,7]]}}}],["commun",{"_index":104,"t":{"183":{"position":[[0,9]]},"327":{"position":[[143,12]]}}}],["compat",{"_index":36,"t":{"51":{"position":[[177,10]]}}}],["compos",{"_index":74,"t":{"133":{"position":[[25,7]]}}}],["compress",{"_index":154,"t":{"287":{"position":[[117,10]]}}}],["config",{"_index":146,"t":{"273":{"position":[[140,6]]},"331":{"position":[[137,8]]}}}],["configur",{"_index":12,"t":{"13":{"position":[[57,10]]},"61":{"position":[[80,10]]},"101":{"position":[[126,11]]},"145":{"position":[[88,13]]},"167":{"position":[[61,14]]},"273":{"position":[[11,13]]},"327":{"position":[[71,14]]}}}],["connect",{"_index":182,"t":{"331":{"position":[[68,7]]}}}],["contain",{"_index":77,"t":{"145":{"position":[[25,10]]},"357":{"position":[[64,11]]}}}],["contribut",{"_index":111,"t":{"191":{"position":[[22,10]]}}}],["conveni",{"_index":164,"t":{"287":{"position":[[326,12]]}}}],["core",{"_index":96,"t":{"167":{"position":[[7,4]]},"273":{"position":[[44,4]]},"287":{"position":[[311,4]]},"327":{"position":[[138,4]]}}}],["cover",{"_index":33,"t":{"51":{"position":[[144,6]]}}}],["creat",{"_index":13,"t":{"28":{"position":[[18,7]]}}}],["custom",{"_index":141,"t":{"273":{"position":[[74,6]]}}}],["data",{"_index":100,"t":{"167":{"position":[[49,5]]}}}],["databas",{"_index":148,"t":{"287":{"position":[[37,8]]},"327":{"position":[[27,8]]}}}],["declar",{"_index":17,"t":{"28":{"position":[[63,8]]}}}],["default",{"_index":158,"t":{"287":{"position":[[174,7]]}}}],["delet",{"_index":15,"t":{"28":{"position":[[34,7]]}}}],["deploy",{"_index":16,"t":{"28":{"position":[[46,6]]},"133":{"position":[[11,6]]},"145":{"position":[[11,6],[48,10]]},"211":{"position":[[58,12]]},"235":{"position":[[77,11]]}}}],["develop",{"_index":117,"t":{"191":{"position":[[102,11]]}}}],["dif",{"_index":20,"t":{"28":{"position":[[89,7]]}}}],["digest",{"_index":71,"t":{"127":{"position":[[54,7]]}}}],["directli",{"_index":178,"t":{"327":{"position":[[164,8]]}}}],["disk",{"_index":156,"t":{"287":{"position":[[142,4]]}}}],["doc",{"_index":137,"t":{"259":{"position":[[60,5]]}}}],["docker",{"_index":38,"t":{"61":{"position":[[14,6],[39,6]]},"101":{"position":[[74,6]]},"127":{"position":[[41,6]]},"133":{"position":[[18,6]]},"145":{"position":[[18,6],[109,6]]},"259":{"position":[[29,7],[45,6]]},"331":{"position":[[18,6]]}}}],["driver",{"_index":179,"t":{"327":{"position":[[191,7]]}}}],["entiti",{"_index":133,"t":{"235":{"position":[[55,8]]}}}],["environ",{"_index":118,"t":{"191":{"position":[[114,12]]}}}],["execut",{"_index":80,"t":{"145":{"position":[[132,8]]},"167":{"position":[[80,7]]}}}],["exist",{"_index":22,"t":{"28":{"position":[[114,8]]}}}],["expos",{"_index":86,"t":{"157":{"position":[[7,7]]},"167":{"position":[[12,7]]}}}],["extend",{"_index":131,"t":{"235":{"position":[[10,10]]}}}],["extern",{"_index":54,"t":{"101":{"position":[[47,8]]}}}],["featur",{"_index":130,"t":{"221":{"position":[[76,9]]}}}],["ferretdb",{"_index":171,"t":{"325":{"position":[[94,8]]}}}],["file",{"_index":19,"t":{"28":{"position":[[80,5]]},"273":{"position":[[147,6]]}}}],["forgejo",{"_index":35,"t":{"51":{"position":[[158,8]]}}}],["found",{"_index":73,"t":{"127":{"position":[[102,6]]}}}],["full",{"_index":87,"t":{"157":{"position":[[17,4]]}}}],["git",{"_index":26,"t":{"51":{"position":[[65,3]]},"101":{"position":[[56,3]]}}}],["gitea",{"_index":34,"t":{"51":{"position":[[151,6]]}}}],["github",{"_index":28,"t":{"51":{"position":[[79,6]]}}}],["gitlab",{"_index":29,"t":{"51":{"position":[[90,6]]}}}],["granular",{"_index":43,"t":{"89":{"position":[[13,9]]}}}],["guid",{"_index":107,"t":{"183":{"position":[[23,7]]}}}],["gzip",{"_index":153,"t":{"287":{"position":[[112,4]]}}}],["handl",{"_index":162,"t":{"287":{"position":[[259,7]]}}}],["http",{"_index":98,"t":{"167":{"position":[[32,4]]}}}],["imag",{"_index":39,"t":{"61":{"position":[[21,6],[91,5]]},"127":{"position":[[48,5]]},"287":{"position":[[316,5]]}}}],["includ",{"_index":140,"t":{"273":{"position":[[64,9]]}}}],["incom",{"_index":24,"t":{"51":{"position":[[37,8]]}}}],["instal",{"_index":136,"t":{"259":{"position":[[52,7]]},"299":{"position":[[70,10]]}}}],["integr",{"_index":109,"t":{"183":{"position":[[43,12]]}}}],["intend",{"_index":52,"t":{"89":{"position":[[98,8]]}}}],["interfac",{"_index":186,"t":{"331":{"position":[[172,10]]}}}],["key",{"_index":66,"t":{"123":{"position":[[40,3]]}}}],["km",{"_index":102,"t":{"173":{"position":[[16,3]]}}}],["komodo",{"_index":0,"t":{"1":{"position":[[0,6]]},"13":{"position":[[0,6]]},"28":{"position":[[0,6]]},"51":{"position":[[0,6]]},"61":{"position":[[0,6]]},"89":{"position":[[0,6]]},"101":{"position":[[16,6]]},"123":{"position":[[23,6]]},"127":{"position":[[0,6]]},"133":{"position":[[0,6]]},"145":{"position":[[0,6]]},"157":{"position":[[0,6]]},"167":{"position":[[0,6]]},"173":{"position":[[4,6]]},"183":{"position":[[60,7]]},"191":{"position":[[36,7],[95,6]]},"211":{"position":[[0,6]]},"221":{"position":[[0,6]]},"235":{"position":[[0,6],[107,6]]},"259":{"position":[[7,7]]},"273":{"position":[[37,6]]},"287":{"position":[[0,6],[274,6]]},"299":{"position":[[37,6]]},"325":{"position":[[15,6],[64,6]]},"327":{"position":[[40,7],[131,6]]},"331":{"position":[[0,6]]},"357":{"position":[[0,6]]}}}],["launch",{"_index":113,"t":{"191":{"position":[[59,9]]}}}],["layer",{"_index":44,"t":{"89":{"position":[[23,5]]}}}],["librari",{"_index":93,"t":{"157":{"position":[[68,9]]}}}],["log",{"_index":176,"t":{"327":{"position":[[107,5]]}}}],["look",{"_index":110,"t":{"191":{"position":[[11,7]]}}}],["major",{"_index":124,"t":{"221":{"position":[[15,5]]}}}],["manag",{"_index":121,"t":{"211":{"position":[[32,8]]},"299":{"position":[[25,6]]},"331":{"position":[[11,6],[87,7],[105,6]]}}}],["mongodb",{"_index":173,"t":{"327":{"position":[[0,7],[183,7]]}}}],["mount",{"_index":145,"t":{"273":{"position":[[132,7]]}}}],["multi",{"_index":6,"t":{"1":{"position":[[63,5]]}}}],["need",{"_index":134,"t":{"259":{"position":[[24,4]]},"299":{"position":[[44,5]]}}}],["new",{"_index":129,"t":{"221":{"position":[[72,3]]}}}],["newer",{"_index":70,"t":{"127":{"position":[[35,5]]}}}],["node",{"_index":183,"t":{"331":{"position":[[95,5],[112,6]]}}}],["non",{"_index":48,"t":{"89":{"position":[[67,3]]}}}],["oauth/oidc",{"_index":144,"t":{"273":{"position":[[106,10]]}}}],["offer",{"_index":1,"t":{"1":{"position":[[7,6]]}}}],["onc",{"_index":56,"t":{"101":{"position":[[121,4]]}}}],["oper",{"_index":161,"t":{"287":{"position":[[244,10]]}}}],["option",{"_index":139,"t":{"273":{"position":[[25,7]]},"325":{"position":[[47,7]]}}}],["orchestr",{"_index":5,"t":{"1":{"position":[[49,13]]}}}],["packag",{"_index":163,"t":{"287":{"position":[[295,8]]}}}],["page",{"_index":112,"t":{"191":{"position":[[49,4]]}}}],["pair",{"_index":68,"t":{"123":{"position":[[50,5]]}}}],["peripheri",{"_index":84,"t":{"145":{"position":[[173,9]]},"273":{"position":[[53,10]]},"299":{"position":[[54,9]]}}}],["permiss",{"_index":46,"t":{"89":{"position":[[35,13]]}}}],["persist",{"_index":190,"t":{"357":{"position":[[89,11]]}}}],["point",{"_index":114,"t":{"191":{"position":[[69,5]]}}}],["postgr",{"_index":167,"t":{"325":{"position":[[28,8]]}}}],["previou",{"_index":150,"t":{"287":{"position":[[81,8]]}}}],["prior",{"_index":169,"t":{"325":{"position":[[55,5]]}}}],["procedur",{"_index":2,"t":{"1":{"position":[[14,9]]},"13":{"position":[[15,10]]},"211":{"position":[[85,11]]}}}],["project",{"_index":75,"t":{"133":{"position":[[33,8]]}}}],["provid",{"_index":27,"t":{"51":{"position":[[69,9],[188,10]]},"89":{"position":[[59,7]]},"101":{"position":[[0,9],[60,9],[138,8]]},"273":{"position":[[117,10]]},"357":{"position":[[7,8]]}}}],["push",{"_index":40,"t":{"61":{"position":[[56,7]]}}}],["read",{"_index":99,"t":{"167":{"position":[[44,4]]}}}],["recent",{"_index":159,"t":{"287":{"position":[[191,6]]}}}],["recommend",{"_index":174,"t":{"327":{"position":[[15,11]]}}}],["redeploy",{"_index":72,"t":{"127":{"position":[[66,8]]}}}],["registri",{"_index":42,"t":{"61":{"position":[[97,9]]},"101":{"position":[[81,10]]}}}],["releas",{"_index":125,"t":{"221":{"position":[[21,7]]}}}],["remot",{"_index":157,"t":{"287":{"position":[[152,6]]}}}],["repo",{"_index":60,"t":{"101":{"position":[[191,6]]}}}],["resourc",{"_index":4,"t":{"1":{"position":[[35,9],[69,8]]},"28":{"position":[[53,9],[123,10]]},"51":{"position":[[7,9]]},"89":{"position":[[107,10]]},"101":{"position":[[110,10],[210,8]]},"127":{"position":[[75,9]]},"133":{"position":[[60,9]]},"145":{"position":[[59,9]]},"235":{"position":[[33,8],[114,10]]},"327":{"position":[[62,8]]},"331":{"position":[[58,9]]}}}],["rest",{"_index":88,"t":{"157":{"position":[[22,4]]}}}],["restor",{"_index":149,"t":{"287":{"position":[[64,7],[236,7]]}}}],["result",{"_index":41,"t":{"61":{"position":[[68,6]]}}}],["rpc",{"_index":97,"t":{"167":{"position":[[23,3]]}}}],["run",{"_index":9,"t":{"1":{"position":[[101,3]]},"13":{"position":[[11,3]]},"61":{"position":[[31,7]]},"145":{"position":[[116,3]]},"259":{"position":[[3,3]]}}}],["rust",{"_index":94,"t":{"157":{"position":[[81,4]]}}}],["schedul",{"_index":10,"t":{"1":{"position":[[110,8]]},"13":{"position":[[68,9]]},"287":{"position":[[51,8]]}}}],["secret",{"_index":65,"t":{"123":{"position":[[13,6]]},"331":{"position":[[150,7]]}}}],["see",{"_index":135,"t":{"259":{"position":[[37,3]]}}}],["server",{"_index":82,"t":{"145":{"position":[[158,6]]},"211":{"position":[[41,8]]},"235":{"position":[[69,7]]},"287":{"position":[[159,7]]},"299":{"position":[[6,6]]},"357":{"position":[[52,7]]}}}],["servic",{"_index":184,"t":{"331":{"position":[[119,9]]}}}],["session",{"_index":189,"t":{"357":{"position":[[39,8],[76,8]]}}}],["set",{"_index":115,"t":{"191":{"position":[[79,7]]}}}],["setup",{"_index":166,"t":{"325":{"position":[[9,5]]}}}],["signific",{"_index":126,"t":{"221":{"position":[[34,11]]}}}],["singl",{"_index":185,"t":{"331":{"position":[[165,6]]}}}],["snapshot",{"_index":151,"t":{"287":{"position":[[90,9]]}}}],["sqlite",{"_index":168,"t":{"325":{"position":[[40,6]]}}}],["stack",{"_index":61,"t":{"101":{"position":[[198,7]]},"133":{"position":[[54,5]]},"235":{"position":[[93,5]]},"331":{"position":[[129,7]]}}}],["state",{"_index":177,"t":{"327":{"position":[[124,6]]}}}],["store",{"_index":155,"t":{"287":{"position":[[132,6],[213,7]]},"327":{"position":[[51,6]]}}}],["support",{"_index":32,"t":{"51":{"position":[[122,10]]}}}],["swarm",{"_index":180,"t":{"331":{"position":[[25,5],[52,5],[81,5]]}}}],["sync",{"_index":62,"t":{"101":{"position":[[219,6]]}}}],["system",{"_index":47,"t":{"89":{"position":[[49,6]]},"327":{"position":[[117,6]]}}}],["target",{"_index":81,"t":{"145":{"position":[[151,6]]}}}],["termin",{"_index":188,"t":{"357":{"position":[[30,8]]}}}],["through",{"_index":76,"t":{"133":{"position":[[42,7]]},"145":{"position":[[36,7]]},"235":{"position":[[21,7]]},"331":{"position":[[40,7]]}}}],["toml",{"_index":18,"t":{"28":{"position":[[75,4]]}}}],["tool",{"_index":106,"t":{"183":{"position":[[16,6]]}}}],["translat",{"_index":78,"t":{"145":{"position":[[72,10]]}}}],["trigger",{"_index":23,"t":{"51":{"position":[[24,9]]}}}],["type",{"_index":31,"t":{"51":{"position":[[112,5]]},"157":{"position":[[46,5]]}}}],["typescript",{"_index":95,"t":{"157":{"position":[[90,11]]}}}],["up",{"_index":116,"t":{"191":{"position":[[87,2]]},"287":{"position":[[30,2]]}}}],["updat",{"_index":14,"t":{"28":{"position":[[26,7]]},"127":{"position":[[90,7]]}}}],["us",{"_index":103,"t":{"173":{"position":[[27,4]]},"325":{"position":[[22,5],[88,5]]},"327":{"position":[[173,5]]}}}],["user",{"_index":50,"t":{"89":{"position":[[77,5]]},"327":{"position":[[86,4]]}}}],["v1",{"_index":172,"t":{"325":{"position":[[103,3]]}}}],["v1.18.0",{"_index":170,"t":{"325":{"position":[[71,8]]}}}],["v2",{"_index":123,"t":{"221":{"position":[[7,2]]}}}],["valu",{"_index":67,"t":{"123":{"position":[[44,5]]}}}],["variabl",{"_index":63,"t":{"123":{"position":[[2,8]]}}}],["via",{"_index":83,"t":{"145":{"position":[[165,3]]}}}],["want",{"_index":165,"t":{"299":{"position":[[17,4]]}}}],["web",{"_index":119,"t":{"211":{"position":[[12,3]]}}}],["webhook",{"_index":25,"t":{"51":{"position":[[46,8]]}}}],["websocket",{"_index":89,"t":{"157":{"position":[[31,9]]}}}],["workflow",{"_index":7,"t":{"1":{"position":[[78,10]]}}}],["write",{"_index":101,"t":{"167":{"position":[[55,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[],"invertedIndex":[],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Komodo offers Procedure and Action resources for orchestrating multi-resource workflows. Both can be run on a schedule","s":"Procedures and Actions","u":"/docs/automate/procedures","h":"","p":1},{"i":4,"t":"A Procedure composes multiple executions (like RunBuild, DeployStack, Deploy) into a series of Stages. Executions within a stage run in parallel; stages run sequentially. The Procedure waits for all executions in a stage to complete before moving to the next. [[procedure]] name = \"build-and-deploy\" description = \"Builds the app, then deploys both instances\" [[procedure.config.stage]] name = \"Build\" executions = [ { execution.type = \"RunBuild\", execution.params.build = \"my-app\" }, ] [[procedure.config.stage]] name = \"Deploy\" executions = [ { execution.type = \"Deploy\", execution.params.deployment = \"my-app-01\" }, { execution.type = \"Deploy\", execution.params.deployment = \"my-app-02\" }, ]","s":"Procedures","u":"/docs/automate/procedures","h":"#procedures","p":1},{"i":6,"t":"Field Description Default config.stage[].name Display name for the stage. — config.stage[].enabled Whether the stage is active. true config.stage[].executions List of executions to run in parallel within the stage. [] schedule Schedule expression. See Schedules. \"\" schedule_format English or Cron. English schedule_enabled Whether the schedule is active. true","s":"Config fields","u":"/docs/automate/procedures","h":"#config-fields","p":1},{"i":8,"t":"Many executions have a Batch variant (e.g. BatchDeployStackIfChanged) that matches multiple resources by name using wildcard and regex syntax. [[procedure.config.stage]] name = \"Deploy matching stacks\" executions = [ { execution.type = \"BatchDeployStackIfChanged\", execution.params.pattern = \"foo-* , \\\\^bar-.*$\\\\\" }, ]","s":"Batch Executions","u":"/docs/automate/procedures","h":"#batch-executions","p":1},{"i":10,"t":"Actions let you write Typescript scripts that call the Komodo API. A pre-initialized komodo client is available — no API key configuration needed. The in UI editor provides type-aware suggestions and inline documentation. const VERSION = \"1.16.5\"; const BRANCH = \"dev/\" + VERSION; const APPS = [\"core\", \"periphery\"]; const ARCHS = [\"x86\", \"aarch64\"]; await komodo.write(\"UpdateVariableValue\", { name: \"KOMODO_DEV_VERSION\", value: VERSION, }); for (const app of APPS) { for (const arch of ARCHS) { const name = `komodo-${app}-${arch}-dev`; await komodo.write(\"UpdateBuild\", { id: name, config: { version: VERSION as any, branch: BRANCH }, }); console.log(`Updated Build ${name}`); } } The Typescript client is also published on NPM.","s":"Actions","u":"/docs/automate/procedures","h":"#actions","p":1},{"i":12,"t":"Restart all deployments matching tags const deployments = await komodo.read(\"ListDeployments\", { query: { tags: [\"backend\"] }, }); for (const deployment of deployments) { await komodo.execute(\"RestartDeployment\", { deployment: deployment.name, }); console.log(`Restarted ${deployment.name}`); } Run a command on a server terminal await komodo.execute_server_terminal({ server: \"server-prod\", command: \"df -h\", init: { command: \"bash\" }, }, { onLine: (line) => console.log(line), onFinish: (code) => console.log(\"Exit code:\", code), }); Scale a deployment based on time of day const hour = new Date().getHours(); const replicas = hour >= 9 && hour <= 17 ? \"4\" : \"1\"; await komodo.write(\"UpdateDeployment\", { id: \"api-server\", config: { extra_args: [`--replicas=${replicas}`], }, }); await komodo.execute(\"Deploy\", { deployment: \"api-server\" }); console.log(`Scaled api-server to ${replicas} replicas`);","s":"Action examples","u":"/docs/automate/procedures","h":"#action-examples","p":1},{"i":14,"t":"Komodo can run Procedures and Actions automatically on a configured schedule.","s":"Schedules","u":"/docs/automate/schedules","h":"","p":13},{"i":16,"t":"Add scheduling fields to any Procedure or Action: [[procedure]] name = \"nightly-backup\" [procedure.config] schedule_format = \"English\" schedule = \"Every day at 03:00\" schedule_enabled = true schedule_timezone = \"America/New_York\" schedule_alert = true failure_alert = true","s":"Configuration","u":"/docs/automate/schedules","h":"#configuration","p":13},{"i":18,"t":"Field Description Default schedule_format English for natural language, or Cron for cron expressions. English schedule The schedule expression (see formats below). \"\" schedule_enabled Whether the schedule is active. true schedule_timezone TZ identifier (e.g. America/New_York). Uses Core's timezone if empty. \"\" schedule_alert Send an alert each time the schedule runs. true failure_alert Send an alert when a scheduled run fails. true","s":"Schedule fields","u":"/docs/automate/schedules","h":"#schedule-fields","p":13},{"i":21,"t":"Set schedule_format = \"English\" and write the schedule as a sentence: Every day at 03:00 Every 5 minutes At midnight on the 1st and 15th of the month Every Monday at 09:00 Komodo converts these to cron expressions internally using the english-to-cron crate.","s":"English (natural language)","u":"/docs/automate/schedules","h":"#english-natural-language","p":13},{"i":23,"t":"Set schedule_format = \"Cron\" and provide a 6-field cron expression (seconds are required): second minute hour day month day-of-week Examples: Expression Meaning 0 0 3 * * ? Every day at 03:00:00 0 */5 * * * ? Every 5 minutes 0 0 0 1,15 * ? At midnight on the 1st and 15th 0 0 9 ? * MON Every Monday at 09:00","s":"Cron","u":"/docs/automate/schedules","h":"#cron","p":13},{"i":25,"t":"The ListSchedules API endpoint returns all configured schedules with their status, including: Last run time Next scheduled run time Any schedule parse errors","s":"Viewing schedules","u":"/docs/automate/schedules","h":"#viewing-schedules","p":13},{"i":27,"t":"When schedule_alert is enabled, Komodo sends an alert through your configured Alerters each time a scheduled Procedure or Action runs. If failure_alert is enabled, an additional alert is sent when the run fails.","s":"Alerts","u":"/docs/automate/schedules","h":"#alerts","p":13},{"i":29,"t":"Komodo is able to create, update, delete, and deploy resources declared in TOML files by diffing them against the existing resources, and apply updates based on the diffs. Similar to Stacks, the files can be configured in UI, in a local file, or in files pushed to a remote git repo. The Komodo Core backend will poll the files for any updates, and alert about pending changes when diffs are detected. You can spread out your resource declarations across any number of files and use any nesting of folders to organize resources inside a root folder. Additionally, you can create multiple ResourceSyncs and configure Match Tags to filter down which resources are synced, and each sync will be handled independently. This allows different syncs to manage resources on a \"per-project\" basis. The UI will display the computed sync actions and only execute them upon manual confirmation. Or the sync execution git webhook may be configured on the git repo to automatically execute syncs upon pushes to the configured branch.","s":"Sync Resources","u":"/docs/automate/sync-resources","h":"","p":28},{"i":31,"t":"If the Sync is pointing to just a single file, you can enable \"Managed Mode\" to allow Core to write the updates you made in UI back to the file. This works no matter where the files are located, and will create a commit to your git repository for repo based files.","s":"Commit to Syncs","u":"/docs/automate/sync-resources","h":"#commit-to-syncs","p":28},{"i":34,"t":"Server config schema [[server]] # Declare a new server name = \"server-prod\" description = \"the prod server\" tags = [\"prod\"] [server.config] address = \"http://localhost:8120\" region = \"AshburnDc1\" enabled = true # default: false","s":"Server","u":"/docs/automate/sync-resources","h":"#server","p":28},{"i":36,"t":"Swarm config schema [[swarm]] name = \"production-swarm\" description = \"Production Docker Swarm cluster\" tags = [\"prod\"] [swarm.config] servers = [\"manager-01\", \"manager-02\", \"manager-03\"] send_unhealthy_alerts = true","s":"Swarm","u":"/docs/automate/sync-resources","h":"#swarm","p":28},{"i":38,"t":"Builder config schema Build config schema [[builder]] # Declare a builder name = \"builder-01\" tags = [] config.type = \"Aws\" [builder.config.params] region = \"us-east-2\" ami_id = \"ami-0e9bd154667944680\" # These things come from your specific setup subnet_id = \"subnet-xxxxxxxxxxxxxxxxxx\" key_pair_name = \"xxxxxxxx\" assign_public_ip = true use_public_ip = true security_group_ids = [ \"sg-xxxxxxxxxxxxxxxxxx\", \"sg-xxxxxxxxxxxxxxxxxx\" ] ## [[build]] name = \"test_logger\" description = \"Logs randomly at INFO, WARN, ERROR levels to test logging setups\" tags = [\"test\"] [build.config] builder = \"builder-01\" repo = \"mbecker20/test_logger\" branch = \"master\" git_account = \"mbecker20\" image_registry.type = \"Standard\" image_registry.params.domain = \"github.com\" # or your custom domain image_registry.params.account = \"your_username\" image_registry.params.organization = \"your_organization\" # optional # Set docker labels labels = \"\"\" org.opencontainers.image.source = https://github.com/mbecker20/test_logger org.opencontainers.image.description = Logs randomly at INFO, WARN, ERROR levels to test logging setups org.opencontainers.image.licenses = GPL-3.0 \"\"\"","s":"Builder and build","u":"/docs/automate/sync-resources","h":"#builder-and-build","p":28},{"i":40,"t":"Deployment config schema # Declare variables [[variable]] name = \"OTLP_ENDPOINT\" value = \"http://localhost:4317\" ## [[deployment]] # Declare a deployment name = \"test-logger-01\" description = \"test logger deployment 1\" tags = [\"test\"] # sync will deploy the container: # - if it is not running. # - has relevant config updates. # - the attached build has new version. deploy = true [deployment.config] server = \"server-01\" image.type = \"Build\" image.params.build = \"test_logger\" # set the volumes / bind mounts volumes = \"\"\" # Supports comments /data/logs = /etc/logs # And other formats (eg yaml list) - \"/data/config:/etc/config\" \"\"\" # Set the environment variables environment = \"\"\" # Comments supported OTLP_ENDPOINT = [[OTLP_ENDPOINT]] # interpolate variables into the envs. VARIABLE_1 = value_1 VARIABLE_2 = value_2 \"\"\" # Set Docker labels labels = \"deployment.type = logger\" ## [[deployment]] name = \"test-logger-02\" description = \"test logger deployment 2\" tags = [\"test\"] deploy = true # Create a dependency on test-logger-01. This deployment will only be deployed after test-logger-01 is deployed. # Additionally, any sync deploy of test-logger-01 will also trigger sync deploy of this deployment. after = [\"test-logger-01\"] [deployment.config] server = \"server-01\" image.type = \"Build\" image.params.build = \"test_logger\" volumes = \"\"\" /data/logs = /etc/logs /data/config = /etc/config\"\"\" environment = \"\"\" VARIABLE_1 = value_1 VARIABLE_2 = value_2 \"\"\" # Set Docker labels labels = \"deployment.type = logger\"","s":"Deployments","u":"/docs/automate/sync-resources","h":"#deployments","p":28},{"i":42,"t":"Stack config schema [[stack]] name = \"test-stack\" description = \"stack test\" deploy = true after = [\"test-logger-01\"] # Stacks can depend on deployments, and vice versa. tags = [\"test\"] [stack.config] server = \"server-prod\" file_paths = [\"mongo.yaml\", \"redis.yaml\"] git_provider = \"git.mogh.tech\" git_account = \"mbecker20\" # clone private repo by specifying account repo = \"mbecker20/stack_test\"","s":"Stack","u":"/docs/automate/sync-resources","h":"#stack","p":28},{"i":44,"t":"Procedure config schema [[procedure]] name = \"test-procedure\" description = \"Do some things in a specific order\" tags = [\"test\"] [[procedure.config.stage]] name = \"Build stuff\" executions = [ { execution.type = \"RunBuild\", execution.params.build = \"test_logger\" }, # Uses the Batch version, which matches many builds by pattern # This one matches all builds prefixed with `foo-` (wildcard) and `bar-` (regex). { execution.type = \"BatchRunBuild\", execution.params.pattern = \"foo-* , \\\\^bar-.*$\\\\\" }, { execution.type = \"PullRepo\", execution.params.repo = \"komodo-periphery\" }, ] [[procedure.config.stage]] name = \"Deploy test logger 1\" executions = [ { execution.type = \"Deploy\", execution.params.deployment = \"test-logger-01\" }, { execution.type = \"Deploy\", execution.params.deployment = \"test-logger-03\", enabled = false }, ] [[procedure.config.stage]] name = \"Deploy test logger 2\" enabled = false executions = [ { execution.type = \"Deploy\", execution.params.deployment = \"test-logger-02\" } ]","s":"Procedure","u":"/docs/automate/sync-resources","h":"#procedure","p":28},{"i":46,"t":"Repo config schema [[repo]] name = \"komodo-periphery\" description = \"Builds new versions of the periphery binary. Requires Rust installed on the host.\" tags = [\"komodo\"] [repo.config] server = \"server-01\" git_provider = \"git.mogh.tech\" # use an alternate git provider (default is github.com) git_account = \"mbecker20\" repo = \"moghtech/komodo\" # Run an action after the repo is pulled on_pull.path = \".\" on_pull.command = \"\"\" # Supports comments /root/.cargo/bin/cargo build -p komodo_periphery --release # Multiple lines will be combined together using '&&' cp ./target/release/periphery /root/periphery \"\"\"","s":"Repo","u":"/docs/automate/sync-resources","h":"#repo","p":28},{"i":48,"t":"Resource sync config schema [[resource_sync]] name = \"resource-sync\" [resource_sync.config] git_provider = \"git.mogh.tech\" # use an alternate git provider (default is github.com) git_account = \"mbecker20\" repo = \"moghtech/komodo\" resource_path = [\"stacks.toml\", \"repos.toml\"]","s":"Resource sync","u":"/docs/automate/sync-resources","h":"#resource-sync","p":28},{"i":50,"t":"UserGroup schema [[user_group]] name = \"groupo\" everyone = false # Set to true to give these permission to all users. users = [\"mbecker20\", \"karamvirsingh98\"] # Configure write access with all specific permissions all.Server = { level = \"Write\", specific = [\"Attach\", \"Logs\", \"Inspect\", \"Terminal\", \"Processes\"] } # Attach base level of Execute on all builds all.Build = \"Execute\" # Allow users to see all Builders, and attach builds to them. all.Builder = { level = \"Read\", specific = [\"Attach\"] } permissions = [ # Attach permissions to specific resources by name { target.type = \"Repo\", target.id = \"komodo-periphery\", level = \"Execute\" }, # Attach permissions to many resources with name matching regex (this uses '^(.+)-(.+)$' as regex expression) { target.type = \"Server\", target.id = \"\\\\^(.+)-(.+)$\\\\\", level = \"Read\" }, { target.type = \"Deployment\", target.id = \"\\\\^immich\\\\\", level = \"Execute\" }, ]","s":"User Group:","u":"/docs/automate/sync-resources","h":"#user-group","p":28},{"i":52,"t":"Komodo resources can be triggered by incoming webhooks from your git provider. GitHub and GitLab authentication types are supported, which also covers Gitea, Forgejo, and other compatible providers. note Gitea's default \"Gitea\" webhook type works with the GitHub authentication type.","s":"Webhooks","u":"/docs/automate/webhooks","h":"","p":51},{"i":54,"t":"Find the webhook URL on any resource's Config page under \"Webhooks\". The URL format is: https:///listener//// Component Options HOST Your Komodo endpoint. If Komodo is on a private network, set up a public proxy for /listener requests. AUTH_TYPE github — validates X-Hub-Signature-256. gitlab — validates X-Gitlab-Token. RESOURCE_TYPE build, repo, stack, sync, procedure, action ID_OR_NAME Resource ID or name. Use ID if the name may change. EXECUTION Depends on resource type (see below).","s":"Webhook URL","u":"/docs/automate/webhooks","h":"#webhook-url","p":51},{"i":56,"t":"Resource Available executions Build /build Repo /pull, /clone, /build Stack /deploy, /refresh Resource Sync /sync, /refresh Procedure / Action Branch name to listen for (e.g. /main), or /__ANY__ for all branches.","s":"Executions by resource type","u":"/docs/automate/webhooks","h":"#executions-by-resource-type","p":51},{"i":58,"t":"Copy the webhook URL from the resource's Config page in Komodo. On your git provider, go to the repo's Settings > Webhooks and create a new webhook. Set the Payload URL to the copied URL. Set Content-type to application/json. Set Secret to your KOMODO_WEBHOOK_SECRET. Select Push events as the trigger.","s":"Setting Up a Webhook","u":"/docs/automate/webhooks","h":"#setting-up-a-webhook","p":51},{"i":60,"t":"Your git provider sends webhooks on pushes to any branch. Komodo only triggers the action when the push matches the branch configured on the resource. For example, a Build pointed at the release branch will ignore pushes to main.","s":"Branch Filtering","u":"/docs/automate/webhooks","h":"#branch-filtering","p":51},{"i":62,"t":"Komodo builds Docker images by running docker build and pushing the result to a configured image registry.","s":"Build","u":"/docs/build","h":"","p":61},{"i":64,"t":"Komodo supports three ways of providing the Dockerfile and build context: Write in the UI — define the Dockerfile contents directly in Komodo. Supports variable and secret interpolation. Files on host — point to an existing Dockerfile and build context already present on the builder machine. Set files_on_host = true and use build_path / dockerfile_path to specify the paths. Git repo — clone a repository containing the Dockerfile. This is the default mode. Configure repo, branch, and optionally git_account for private repos.","s":"Dockerfile Sources","u":"/docs/build","h":"#dockerfile-sources","p":61},{"i":66,"t":"[[build]] name = \"my-app\" [build.config] builder = \"builder-01\" repo = \"myorg/my-app\" branch = \"main\" git_account = \"my-user\" image_registry = [ { domain = \"ghcr.io\", account = \"my-user\", organization = \"my-org\" } ]","s":"Configuration","u":"/docs/build","h":"#configuration","p":61},{"i":68,"t":"Field Description Default builder The Builder resource to run the build on. — version Current build version (major.minor.patch). 0.0.0 auto_increment_version Auto-increment patch number on each build. true image_name Alternate image name (uses build name if empty). \"\" image_tag Extra tag postfix, e.g. aarch64 → :1.2.3-aarch64. \"\" include_latest_tag Push :latest / :latest-{image_tag} tags. true include_version_tags Push semver tags (:1.2.3, :1.2, :1). true include_commit_tag Push commit hash tag (:a6v8h83). true linked_repo A Komodo Repo resource to source files from. \"\" git_provider Git provider domain. github.com git_https Use HTTPS to clone (versus HTTP). true git_account Git provider account for private repos. \"\" repo Repository in owner/repo format. \"\" branch Branch to clone. Webhooks only trigger on pushes to this branch. main commit Pin to a specific commit hash. \"\" files_on_host Source Dockerfile and build context from files already on the builder. false dockerfile UI-defined Dockerfile contents. Supports variable/secret interpolation. \"\" build_path Build context directory, relative to the repo root (or absolute path when files_on_host). . dockerfile_path Dockerfile path, relative to the build directory. Dockerfile image_registry Registry to push images to (domain + account + optional organization). [] build_args Build arguments in KEY=value format. Visible in docker history. \"\" secret_args Build secrets in KEY=value format. Access via RUN --mount=type=secret,id=KEY. Not visible in image history. \"\" skip_secret_interp Skip secret interpolation in build_args. false extra_args Additional flags passed to docker build. [] use_buildx Use docker buildx build instead of docker build. false pre_build Command to run after cloning but before docker build. — labels Docker labels in key=value format. \"\" webhook_enabled Whether incoming webhooks trigger builds. true webhook_secret Alternate webhook secret (uses default from config if empty). \"\" links Quick links displayed in the resource header. []","s":"Config fields","u":"/docs/build","h":"#config-fields","p":61},{"i":70,"t":"Komodo uses a major.minor.patch versioning scheme. By default, each build auto-increments the patch number. You can control exactly which tags are pushed using the following options:","s":"Image Versioning and Tagging","u":"/docs/build","h":"#image-versioning-and-tagging","p":61},{"i":72,"t":"Option Tags produced Example include_version_tags Full semver, minor, and major :1.2.3, :1.2, :1 include_latest_tag Latest tag :latest include_commit_tag Short commit hash :a6v8h83 All three are enabled by default. Disable any combination to control which tags are pushed.","s":"Tag types","u":"/docs/build","h":"#tag-types","p":61},{"i":74,"t":"The image_tag field appends a postfix to all generated tags. This is useful for multi-platform or variant builds: image_tag Version tag Latest tag Commit tag (empty) :1.2.3 :latest :a6v8h83 aarch64 :1.2.3-aarch64 :latest-aarch64 :a6v8h83-aarch64 When image_tag is set, an additional pure tag is also pushed: :aarch64.","s":"Image tag postfix","u":"/docs/build","h":"#image-tag-postfix","p":61},{"i":76,"t":"By default, the build's name is used as the image name. Set image_name to override this, e.g. if the build name doesn't match the desired image name on the registry.","s":"Custom image name","u":"/docs/build","h":"#custom-image-name","p":61},{"i":78,"t":"Set auto_increment_version = false to manage the version field yourself. The major and minor versions are always set manually — only the patch auto-increments.","s":"Manual versioning","u":"/docs/build","h":"#manual-versioning","p":61},{"i":80,"t":"Komodo supports pushing to any Docker-compatible registry. Configure accounts in Providers. A build can push to multiple registries simultaneously. The image_registry field accepts a list — each entry specifies a domain, account, and optional organization: [build.config] image_registry = [ { domain = \"ghcr.io\", account = \"my-user\", organization = \"my-org\" }, { domain = \"docker.io\", account = \"my-user\" }, ] The first registry in the list is used by default when a Deployment is connected to the Build. note GitHub access tokens must have the write:packages permission to push to GHCR. See the GitHub docs. When a Build is connected to a Deployment, the Deployment inherits the Build's registry credentials by default. If the builder's account isn't available to the Deployment's server, select a different account in the Deployment config.","s":"Image Registry","u":"/docs/build","h":"#image-registry","p":61},{"i":82,"t":"To build for multiple platforms (e.g. ARM + x86), set up Docker Buildx on the builder: docker buildx create --name builder --use --bootstrap docker buildx install # makes buildx the default for `docker build` Then pass the target platforms in the Build's Extra Args: --platform linux/amd64,linux/arm64","s":"Multi-platform builds (Buildx)","u":"/docs/build","h":"#multi-platform-builds-buildx","p":61},{"i":84,"t":"A Builder resource defines where builds run. Any Server connected to Komodo can be used as a builder, but building on production servers is not recommended.","s":"Builders","u":"/docs/build","h":"#builders","p":61},{"i":86,"t":"Point the builder at an existing Server running the Periphery agent.","s":"Server builder","u":"/docs/build","h":"#server-builder","p":61},{"i":88,"t":"Komodo can launch a temporary EC2 instance for each build and shut it down when finished. [[builder]] name = \"builder-01\" [builder.config] type = \"Aws\" params.region = \"us-east-2\" params.instance_type = \"c5.2xlarge\" params.ami_id = \"ami-xxxxxxxxxxxxxxxxxx\" params.subnet_id = \"subnet-xxxxxxxxxxxxxxxxxx\" params.key_pair_name = \"ssh-key\" params.assign_public_ip = true ## Required for outbound internet access unless you have network gateway. params.use_public_ip = true ## Setting 'false' uses the private IP (when Komodo Core is in same subnet). params.security_group_ids = [\"sg-xxxxxxxxxxxxxxxxxx\"] params.user_data = \"\"\" #!/bin/bash curl -sSL \\ https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery.py | \\ HOME=/root python3 - --version=v2.X.X \"\"\" To create the AMI: Launch an EC2 instance and install Docker: apt update && apt upgrade -y curl -fsSL https://get.docker.com | sh systemctl enable docker.service containerd.service Create an AMI from the instance in the AWS console. Create a security group and ensure it allows inbound access on port 8120 from Komodo Core. The instance user_data will install the Periphery agent as the instance starts up, and Komodo Core will then connect and build the image.","s":"AWS EC2 builder","u":"/docs/build","h":"#aws-ec2-builder","p":61},{"i":90,"t":"Komodo has a granular, layer-based permissioning system to provide non-admin users access only to intended Resources.","s":"Permissioning","u":"/docs/configuration/permissioning","h":"","p":89},{"i":92,"t":"While Komodo can assign permissions to specific users directly, it is recommended to instead create User Groups and assign permissions to them, as if they were a user. Users can then be added to multiple User Groups and they inherit the group's permissions, similar to linux permissions. There is also an Everyone mode for User Groups, if this is enabled then all users implicitly gain the groups permissions. For permissioning at scale, users can define User Groups in Resource Syncs.","s":"User Groups","u":"/docs/configuration/permissioning","h":"#user-groups","p":89},{"i":94,"t":"There are 4 permission levels a user / group can be given on a Resource: None. The user will not have any access to the resource. The user will not see it in the GUI, and it will not show up if the user queries the Komodo API directly. All attempts to view or update the resource will be blocked. This is the default for non-admins, unless using KOMODO_TRANSPARENT_MODE=true. Read. This is the first permission level that grants any access. It will enable the user to see the resource in the GUI and read the configuration. Any attempts to update configuration or trigger any action will be blocked. Using KOMODO_TRANSPARENT_MODE=true will make this level the base level on all resources, for all users. Execute. This level will allow the user to execute actions on the resource, like send a build command or trigger a redeploy. The user will still be blocked from updating configuration on the resource. Write. The user has full config write access to the resource, they can execute any actions, update the configuration, and delete the resource.","s":"Permission Levels","u":"/docs/configuration/permissioning","h":"#permission-levels","p":89},{"i":96,"t":"Permission levels alone are not quite enough to provide granular access control. Some features are additionally gated behind a specific permission for that feature. Logs: User can retrieve docker / docker compose logs on the associated resource. Valid on Server, Stack, Deployment. For admins wanting this permission by default for all users with read permissions, see below on default user groups. Inspect: User can \"inspect\" docker containers. Valid on Server, Stack, Deployment. On Servers: Access to this api will expose all container environments on the given server, and can easily lead to secrets being leaked to unintended users if not protected. Terminal: User can access the associated resource's terminal. If given on a Server, this allows server level terminal access, and all container exec priviledges (Including attached Stacks / Deployments). If given on a Stack or Deployment, this allows container exec terminal (even without Terminal on Server). Attach: User can \"attach\" other resources to the resource. If given on a Server, allows users to attach Stacks, Deployments, Repos, and Builders. If given on a Builder, allows users to attach Builds and Repos. If given on a Build, allows users to attach it to Deployments. If given on a Repo, allows users to attach it to Stacks, Builds, and Resource Syncs. Processes: User can retrieve the full running process list on the Server.","s":"Specific Permissions","u":"/docs/configuration/permissioning","h":"#specific-permissions","p":89},{"i":98,"t":"Users or User Groups can be given a base permission level on all Resources of a particular type, such as Stack. In TOML form, this looks like: [[user_group]] name = \"groupo\" users = [\"mbecker20\", \"karamvirsingh98\"] all.Build = \"Execute\" # <- Group members can run all builds (but not update config), all.Stack = { level = \"Read\", specific = [\"Logs\"] } # <- And see all Stacks / logs (no deploy / update, inspect, or terminal access). A user / group can still be given a greater permission level on select resources: permissions = [ # Grant addition specific permission (Logs are already granted above) { target.type = \"Stack\", target.id = \"my-stack\", level = \"Execute\", specific = [\"Inspect\", \"Terminal\"] }, # Use regex to match multiple resources, for example give john execute on all of their Stacks { target.type = \"Stack\", target.id = \"\\\\^john-(.+)$\\\\\", level = \"Execute\" }, ]","s":"Permissioning by Resource Type","u":"/docs/configuration/permissioning","h":"#permissioning-by-resource-type","p":89},{"i":100,"t":"Users can be given Admin privileges by a Super Admin (only the first user is given this status, set with super_admin: true on a User document in database). Super admins will see the \"Make Admin\" button when on a User page /users/${user_id}. These users have unrestricted access to all Komodo Resources. Additionally, these users can update other (non-admin) user's permissions on resources. Komodo admins are responsible for managing user accounts as well. When a user logs into Komodo for the first time, they will not immediately be granted access (this can changed with KOMODO_ENABLE_NEW_USERS=true). An admin must first enable the user, which can be done from the Users tab on Settings page. Users can also be disabled by an admin at any time, which blocks all their access to the GUI and API. Users also have some configurable global permissions, these are: create server permission create build permission Only users with these permissions (as well as admins) can add additional servers to Komodo, and can create additional builds, respectively.","s":"Administration","u":"/docs/configuration/permissioning","h":"#administration","p":89},{"i":102,"t":"Providers allow Komodo to authenticate against external git providers and docker registries on behalf of your resources. Once configured, provider accounts are available to attach to Builds, Repos, Stacks, and Resource Syncs.","s":"Providers","u":"/docs/configuration/providers","h":"","p":101},{"i":104,"t":"When configuring a Build, Repo, Stack, or Resource Sync that references a private repository, select the matching git provider and account in the resource's configuration. Komodo will use the token to authenticate the clone.","s":"Usage","u":"/docs/configuration/providers","h":"#usage","p":101},{"i":106,"t":"The easiest way to set up providers is through the Komodo UI. Navigate to Settings > Providers to manage your git and registry accounts. From this page you can: Add new git provider or docker registry accounts (domain, username, and access token). View accounts that were added via the UI as well as those loaded from config files. Edit or delete database-managed accounts.","s":"Managing Providers in the UI","u":"/docs/configuration/providers","h":"#managing-providers-in-the-ui","p":101},{"i":108,"t":"As an alternative to the UI, providers can be defined in config files: Core config (core.config.toml): Accounts are available globally to all resources. See Advanced Configuration. Periphery config (periphery.config.toml): Accounts are only available to resources running on that specific server. See Connect Servers. Accounts from config files also appear in the UI under Settings > Providers, but their tokens cannot be read back through the API or UI.","s":"Configuring via Config Files","u":"/docs/configuration/providers","h":"#configuring-via-config-files","p":101},{"i":110,"t":"Komodo supports cloning repos over HTTP/S from any provider that supports git clone https://:@// or git clone https://@// This includes GitHub, GitLab, Bitbucket, Forgejo, Gitea, and many other git providers.","s":"Git Providers","u":"/docs/configuration/providers","h":"#git-providers","p":101},{"i":112,"t":"Field Default Description domain github.com The hostname of the git provider. Do not include the protocol (http:// or https://). https true Whether to clone over HTTPS. Set to false for HTTP (e.g. local development). accounts [] A list of { username, token } pairs. Each account provides access to repos visible to that user.","s":"Fields","u":"/docs/configuration/providers","h":"#fields","p":101},{"i":114,"t":"# in core.config.toml or periphery.config.toml [[git_provider]] domain = \"github.com\" accounts = [ { username = \"my-user\", token = \"ghp_xxxxxxxxxxxx\" }, ] [[git_provider]] domain = \"git.example.com\" # self-hosted Gitea, GitLab, etc. accounts = [ { username = \"my-user\", token = \"access_token\" }, ] [[git_provider]] domain = \"localhost:3000\" https = false # clone over http:// accounts = [ { username = \"my-user\", token = \"access_token\" }, ]","s":"Configuration","u":"/docs/configuration/providers","h":"#configuration","p":101},{"i":116,"t":"Komodo supports pushing and pulling images from any Docker-compatible registry, including Docker Hub, GitHub Container Registry (GHCR), and self-hosted registries.","s":"Docker Registries","u":"/docs/configuration/providers","h":"#docker-registries","p":101},{"i":118,"t":"Field Default Description domain docker.io The hostname of the registry. Can include http:// for insecure registries, but this requires insecure registries enabled on your hosts. accounts [] A list of { username, token } pairs for registry authentication. organizations [] Optional list of organization/namespace names. When attached to a Build, images are published under the organization's namespace instead of the account's.","s":"Fields","u":"/docs/configuration/providers","h":"#fields-1","p":101},{"i":120,"t":"# in core.config.toml or periphery.config.toml [[docker_registry]] domain = \"docker.io\" accounts = [ { username = \"my-user\", token = \"dckr_pat_xxxxxxxxxxxx\" }, ] organizations = [\"MyOrg\"] [[docker_registry]] domain = \"ghcr.io\" accounts = [ { username = \"my-user\", token = \"ghp_xxxxxxxxxxxx\" }, ] [[docker_registry]] domain = \"registry.example.com\" # self-hosted registry accounts = [ { username = \"my-user\", token = \"access_token\" }, ] organizations = [\"MyTeam\"] note Your GitHub access token must have the write:packages permission in order to push images. For example, see the GitHub docs on access tokens.","s":"Configuration","u":"/docs/configuration/providers","h":"#configuration-1","p":101},{"i":122,"t":"When configuring a Build, select the registry domain and account to push images to. If organizations are defined, you can choose to publish under an organization namespace. When a Build is connected to a Deployment, the Deployment inherits the registry configuration by default. If that account is not available to the Deployment's server, you can choose a different account in the Deployment config.","s":"Usage","u":"/docs/configuration/providers","h":"#usage-1","p":101},{"i":124,"t":"A variable / secret in Komodo is just a key-value pair. KEY_1 = \"value_1\" You can interpolate the value into any resource Environment (and most other user configurable inputs, such as Repo On Clone and On Pull, or Stack Extra Args) using double brackets around the key to trigger interpolation: # Before interpolation SOME_ENV_VAR = [[KEY_1]] # <- wrap the key in double brackets '[[]]' # After interpolation: SOME_ENV_VAR = value_1","s":"Variables and Secrets","u":"/docs/configuration/variables","h":"","p":123},{"i":126,"t":"In the UI, you can go to Settings page, Variables tab. Here, you can create some Variables to store in the Komodo database. There is a \"secret\" option you can check, this will prevent the value from exposure in any updates / logs, as well as prevent access to the value to any non-admin Komodo users. Variables can also be managed in ResourceSyncs (see example) but should only be done for non-secret variables, to avoid committing sensitive data. You should manage secrets using one of the following options. Mount a config file to Core: Advanced Configuration In the Komodo Core config file, you can configure secrets using a block like: # in core.config.toml [secrets] KEY_1 = \"value_1\" KEY_2 = \"value_2\" KEY_1 and KEY_2 will be available for interpolation on all your resources, as if they were Variables set up in the UI. The keys are queryable and show up on the variable page (so you know they are available for use), but the values are not exposed by API for ANY user. Mount a config file to Periphery agent: In the Komodo Periphery config file, you can also configure secrets using the same syntax as the Core config file. The variable WILL NOT be available globally to all Komodo resources, it will only be available to the resources on the associated Server resource on which that single Periphery agent is running. This effectively distributes your secret locations, can be good or bad depending on your security requirements. It does avoid the need to send the secret over network from Core to Periphery, Periphery based secrets are never exposed to the network. Use a dedicated secret management tool such as Hashicorp Vault, alongside Komodo Ultimately Komodo variable / secret features may not fill enterprise level secret management requirements, organizations of this level should still use a dedicated secret management solution. At this point Komodo is not intended as an enterprise level secret management solution. These solutions do require application level integrations, your applications should only receive credentials to access the secret management API. Your applications will pull the actual secret values from the dedicated secret management tool, they stay out of Komodo entirely.","s":"Defining Variables and Secrets","u":"/docs/configuration/variables","h":"#defining-variables-and-secrets","p":123},{"i":128,"t":"Komodo can automatically check for newer Docker image digests and redeploy resources when updates are found.","s":"Automatic Updates","u":"/docs/deploy/auto-update","h":"","p":127},{"i":130,"t":"Both Stacks and Deployments support two update modes: Mode Behavior Poll for Updates Checks for newer images with the same tag. Displays an update indicator in the UI and sends an alert (if an Alerter is configured). Does not redeploy. Auto Update Same check, but automatically redeploys services with newer images. Also sends an alert. note Auto-update requires a \"rolling\" image tag like :latest. For pinned tags in git-sourced stacks, consider Renovate.","s":"Configuration","u":"/docs/deploy/auto-update","h":"#configuration","p":127},{"i":132,"t":"New installs include a Global Auto Update Procedure, scheduled daily. It loops through all resources with either mode enabled and checks registries for newer digests. [[procedure]] name = \"Global Auto Update\" description = \"Pulls and auto updates Stacks and Deployments using 'poll_for_updates' or 'auto_update'.\" tags = [\"system\"] config.schedule = \"Every day at 03:00\" [[procedure.config.stage]] name = \"Stage 1\" enabled = true executions = [ { execution.type = \"GlobalAutoUpdate\", execution.params = {}, enabled = true } ] info GlobalAutoUpdate can be integrated into other Procedures to coordinate timing with processes like backups. There is nothing special about the default Procedure — it is created for convenience.","s":"Global Auto Update Procedure","u":"/docs/deploy/auto-update","h":"#global-auto-update-procedure","p":127},{"i":134,"t":"Komodo can deploy Docker Compose projects through the Stack resource.","s":"Docker Compose","u":"/docs/deploy/compose","h":"","p":133},{"i":136,"t":"[[stack]] name = \"my-stack\" [stack.config] server = \"server-prod\" run_directory = \"/opt/stacks/my-stack\" file_paths = [\"compose.yaml\"] git_account = \"my-user\" repo = \"myorg/stacks\" environment = \"\"\" DB_HOST = db.example.com LOG_LEVEL = info \"\"\"","s":"Configuration","u":"/docs/deploy/compose","h":"#configuration","p":133},{"i":138,"t":"Field Description Default server The Server to deploy on. — file_paths List of compose files. Supports composing multiple files via docker compose -f ... -f .... [] run_directory Working directory for compose commands. — project_name Override the compose project name. Defaults to the Stack name. Stack name environment Environment variables written to a .env file and passed via --env-file. Supports variable interpolation. \"\" extra_args Additional flags passed to docker compose up. \"\" ignore_services Services to exclude from health checks (e.g. init containers that exit after startup). [] git_provider Git provider domain. github.com git_account Git provider account for private repos. — repo Repository in owner/repo format. — branch Branch to clone. main auto_update Automatically redeploy when newer image digests are available. false poll_for_updates Check for newer images and show an update indicator. false send_alerts Send alerts on stack state changes. true links Quick links displayed in the resource header. []","s":"Config fields","u":"/docs/deploy/compose","h":"#config-fields","p":133},{"i":140,"t":"Stacks support three ways to provide compose files: Write in the UI — Komodo writes the files to the host at deploy time. Files on the host — Point to existing files on the server. Git repo — Komodo clones the repo onto the host to deploy. Changes are tracked in git and you can use webhooks to auto-redeploy on push.","s":"Defining Compose Files","u":"/docs/deploy/compose","h":"#defining-compose-files","p":133},{"i":142,"t":"To import a running compose project, create a Stack in Komodo with access to the same compose files and attach the correct Server. Komodo matches projects by compose project name — if the running project name differs from the Stack name, set a custom project_name in the config. Run docker compose ls on the host to find existing project names.","s":"Importing Existing Projects","u":"/docs/deploy/compose","h":"#importing-existing-projects","p":133},{"i":144,"t":"A Stack can target a Swarm instead of a single Server to deploy via docker stack deploy. See Swarm for details.","s":"Deploying to a Swarm","u":"/docs/deploy/compose","h":"#deploying-to-a-swarm","p":133},{"i":146,"t":"Komodo can deploy Docker containers through the Deployment resource. It translates your configuration into a docker run command and executes it on the target Server via the Periphery agent.","s":"Containers","u":"/docs/deploy/containers","h":"","p":145},{"i":148,"t":"[[deployment]] name = \"my-app\" [deployment.config] server = \"server-prod\" image.type = \"Image\" image.params.image = \"ghcr.io/myorg/my-app:latest\" network = \"host\" restart = \"on-failure\" environment = \"\"\" DB_HOST = db.example.com LOG_LEVEL = info \"\"\" volumes = \"\"\" /data/my-app/data:/app/data /data/my-app/config:/app/config \"\"\"","s":"Configuration","u":"/docs/deploy/containers","h":"#configuration","p":145},{"i":150,"t":"Field Description Default server The Server to deploy on. — image Docker image — either a custom image string or an attached Komodo Build. — network Docker network to connect to. host bypasses the virtual network layer. host restart Restart policy (no, on-failure, always, unless-stopped). unless-stopped ports Port mappings when not using host network (e.g. 27018:27017). [] volumes Bind mounts in host_path:container_path format. \"\" environment Environment variables in KEY=value format. Supports variable interpolation. \"\" labels Docker labels in key=value format. \"\" command Override the default image command. Appended after the image in docker run. \"\" extra_args Additional flags passed directly to docker run. \"\" send_alerts Send alerts on container state changes. true auto_update Automatically redeploy when a newer image digest is available (same tag). false poll_for_updates Check for newer images and show an update indicator (without auto-deploying). false links Quick links displayed in the resource header. []","s":"Config fields","u":"/docs/deploy/containers","h":"#config-fields","p":145},{"i":152,"t":"There are two ways to specify the image: Komodo Build — attach a Build resource and Komodo deploys the latest (or a pinned) version. The registry credentials are inherited from the Build by default. Custom image — specify an image string directly, e.g. mongo or ghcr.io/myorg/my-app:1.0.0. Select a Docker registry account if the image is private.","s":"Image source","u":"/docs/deploy/containers","h":"#image-source","p":145},{"i":154,"t":"Komodo tracks container state and provides actions to manage the lifecycle: Action Description Deploy / Redeploy Destroys the existing container (if any) and creates a new one with the current config. Config changes only take effect after a redeploy. Start Starts a stopped container with its existing config. Stop Stops the container but preserves its logs and state. Remove Destroys the container entirely. note Stopping and starting a container does not apply config changes — you must redeploy for that.","s":"Container Lifecycle","u":"/docs/deploy/containers","h":"#container-lifecycle","p":145},{"i":156,"t":"Instead of targeting a single Server, a Deployment can target a Swarm to deploy the container as a Swarm service. You can attach Swarm configs and secrets to the service. See Swarm for details.","s":"Deploying to a Swarm","u":"/docs/deploy/containers","h":"#deploying-to-a-swarm","p":145},{"i":158,"t":"Komodo exposes a full REST and WebSocket API, typed CLI, and client libraries in Rust and TypeScript. You can automate, integrate, and extend it from any environment.","s":"Ecosystem","u":"/docs/ecosystem","h":"","p":157},{"i":160,"t":"The Komodo CLI, km, can be used to:","s":"📄️ Komodo CLI","u":"/docs/ecosystem","h":"","p":157},{"i":162,"t":"Komodo Core exposes an RPC-like HTTP API to read data, write configuration, and execute actions.","s":"📄️ API and Clients","u":"/docs/ecosystem","h":"","p":157},{"i":164,"t":"Community-built tools, guides, and alerter integrations for Komodo.","s":"📄️ Community","u":"/docs/ecosystem","h":"","p":157},{"i":166,"t":"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.","s":"📄️ Development","u":"/docs/ecosystem","h":"","p":157},{"i":168,"t":"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.","s":"API and Clients","u":"/docs/ecosystem/api","h":"","p":167},{"i":170,"t":"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?;","s":"Rust Client","u":"/docs/ecosystem/api","h":"#rust-client","p":167},{"i":172,"t":"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: { 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, });","s":"Typescript Client","u":"/docs/ecosystem/api","h":"#typescript-client","p":167},{"i":174,"t":"The Komodo CLI, km, can be used to: Quickly run executions and update resources and variables. Reset user passwords and elevate users to Super Admin. Perform Database backup, restore, and copy. Connect to server / container shell via Komodo Terminals. The Komodo Core image comes packaged with the Komodo CLI, and is available for usage inside running container with docker exec -it komodo-core km .... This way, it inherits the Core database config in order to easily perform backups with km db backup -y.","s":"Komodo CLI","u":"/docs/ecosystem/cli","h":"","p":173},{"i":176,"t":"km --help km deploy stack my-stack km run action my-action -y km database backup km db restore km set var MY_VAR my_value -y km update build my-build \"version=1.19.0&branch=release\" km x commit my-sync km set user mbecks super-admin true km set user mbecks password \"temp-password\" km ssh my-server km connect my-server bash -n my-session km exec my-container bash km attach my-container -s my-server","s":"Examples","u":"/docs/ecosystem/cli","h":"#examples","p":173},{"i":178,"t":"All terminal commands share the same disconnect shortcut: press Alt+Q to end the session. The session itself stays running and will keep the history if you connect again, or connect from a different device. SSH / Connect The km ssh command (alias for km connect) opens an interactive shell on a server managed by Komodo Periphery. Analogous to ssh. km ssh [command] [options] km connect [command] [options] Argument Description server Server name (required) command Shell command to start, e.g. bash (optional, defaults to Periphery default) -n, --name Terminal session name (default: ssh) -r, --recreate Force a fresh terminal, replacing any existing session with the same name Exec The km exec command opens an interactive shell inside a running container. Analogous to docker exec. km exec [options] Argument Description container Container name (required) shell Shell to use, e.g. bash or sh (required) -s, --server Server name — required if multiple servers have a container with the same name -r, --recreate Force a fresh terminal, replacing any existing session Attach The km attach command attaches to a running container's main process stdio. Analogous to docker attach. km attach [options] Argument Description container Container name (required) -s, --server Server name — required if multiple servers have a container with the same name -r, --recreate Force a fresh terminal, replacing any existing session","s":"Terminals","u":"/docs/ecosystem/cli","h":"#terminals","p":173},{"i":180,"t":"There are binaries available for Linux (x86_64 / aarch64), MacOS (apple silicon), as well as a distroless image: ghcr.io/moghtech/komodo-cli. Linux You can install the binary using the following command: System-wide, as root, to /usr/local/bin/km: curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/install-cli.py | python3 Or as non-root, to ${HOME}/.local/bin/km: curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/install-cli.py | python3 - --user MacOS (Homebrew) Add the moghtech/komodo tap, then install km: brew tap moghtech/komodo && \\ brew install km Container You can alias a docker run command: alias km='docker run --rm -v $HOME/.config/komodo:/config ghcr.io/moghtech/komodo-cli:2 km' km config","s":"Install","u":"/docs/ecosystem/cli","h":"#install","p":173},{"i":182,"t":"The CLI uses a configuration file to pass the Komodo host / api keys, database address and credentials, and configure some other behaviors. Additionally, all configuration fields can be individually overridden using CLI arguments or environment variables, with CLI arguments having top priority. Whenever you want to check how config will be loaded, you can use the km config command to print it out. File detection When run, CLI will scan the current working directory in addition to ${HOME}/.config/komodo for any files matching the wildcard pattern *komodo.cli*.*, parse them into a general representation, and then merge them together. Files which are detected later are merged later, meaning they will override on conflicting fields. By default, files in ${HOME}/.config/komodo come first in the merge ordering, meaning they are lower priority than those detected in the current working directory. You can also override these default paths by passing km -c /path/to/1/base.config.yaml -c ./overrides .... If you want km to find configuration files in another directory, you can make a .kminclude file inside one of the configured directories. # Supports comments ./.komodo # relative to directory containing `.kminclude` /etc/komodo/komodo.cli.toml # also supports absolute path Note that wildcards in these paths are not supported. Profiles In the files, you can configure multiple profiles, each with a name / aliases. Then you choose which config profile to use with km -p .... This allows you to easily switch between multiple Cores you want to connect to, or different database backup / restore options. In order to avoid passing -p every time, you can set a default_profile at the top level of the configuration file. Additionally, any fields you would like to be the \"default\" across all profiles can be set at the top level of the file. Example File The configuration can also be passed as YAML or JSON. You can use it-tools to convert this TOML file to your preferred format: YAML: https://it-tools.tech/toml-to-yaml JSON: https://it-tools.tech/toml-to-json Quick download to ./komodo/komodo.cli.toml: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/config/komodo.cli.toml https://github.com/moghtech/komodo/blob/main/config/komodo.cli.toml","s":"Configure","u":"/docs/ecosystem/cli","h":"#configure","p":173},{"i":184,"t":"Community-built tools, guides, and alerter integrations for Komodo.","s":"Community","u":"/docs/ecosystem/community","h":"","p":183},{"i":186,"t":"Ansible Role Komodo by bpbradley Komodo Import by FoxxMD","s":"3rd Party Tools","u":"/docs/ecosystem/community","h":"#3rd-party-tools","p":183},{"i":188,"t":"Migrating to Komodo by FoxxMD FAQ, Tips, and Tricks by FoxxMD Compose Environments Explained by FoxxMD How To: Automate version updates for your self-hosted Docker containers with Gitea, Renovate, and Komodo by TheNickOfTime Setting up Komodo, comparison to Portainer, and FAQ by Skyfay","s":"Posts and Guides","u":"/docs/ecosystem/community","h":"#posts-and-guides","p":183},{"i":190,"t":"These provide alerting implementations which can be used with the Custom Alerter type. Discord by FoxxMD Telegram by mattsmallman Ntfy by FoxxMD Gotify by FoxxMD Apprise by FoxxMD Email by Guten Ye","s":"Community Alerters","u":"/docs/ecosystem/community","h":"#community-alerters","p":183},{"i":192,"t":"If you are looking to contribute to Komodo, this page is a launching point for setting up your Komodo development environment.","s":"Development","u":"/docs/ecosystem/development","h":"","p":191},{"i":194,"t":"Running Komodo from source requires either Docker (and can use the included devcontainer), or can have the development dependencies installed locally: Backend (Core / Periphery APIs) Rust stable via rustup installer MongoDB or FerretDB available locally. On Debian/Ubuntu: apt install build-essential pkg-config libssl-dev required to build the rust source. Web UI Node >= 18.18 + NPM Yarn - (Tip: use corepack enable after installing node to use yarn) typeshare Deno >= 2.0.2","s":"Dependencies","u":"/docs/ecosystem/development","h":"#dependencies","p":191},{"i":196,"t":"mbecker20/runnables-cli can be used as a convience CLI for running common project tasks found in runfile.toml. Otherwise, you can create your own project tasks by references the cmds found in runfile.toml. All instructions below will use runnables-cli v1.3.7+.","s":"runnables-cli","u":"/docs/ecosystem/development","h":"#runnables-cli","p":191},{"i":198,"t":"After making changes to the project, run run dev-compose-build to rebuild Komodo and then run dev-compose-exposed to start a Komodo container with the UI accessible at localhost:9120. Any changes made to source files will require re-running the dev-compose-build and dev-compose-exposed commands.","s":"Docker","u":"/docs/ecosystem/development","h":"#docker","p":191},{"i":200,"t":"Use the included .devcontainer.json with VSCode or other compatible IDE to stand-up a full environment, including database, with one click. VSCode Tasks are provided for building and running Komodo. After opening the repository with the devcontainer run the task Init to build the ui/backend. Then, the task Run Komodo can be used to run ui/backend. Other tasks for rebuilding/running just one component of the stack (Core API, Periphery API, UI) are also provided.","s":"Devcontainer","u":"/docs/ecosystem/development","h":"#devcontainer","p":191},{"i":202,"t":"You can also run the components locally, using Docker only for the database.","s":"Local","u":"/docs/ecosystem/development","h":"#local","p":191},{"i":204,"t":"Create the local config directories. mkdir -p .dev/keys .dev/periphery Add .dev/core.config.toml with the following contents: host = \"http://localhost:9120\" private_key = \"file:.dev/keys/core.key\" local_auth = true enable_new_users = true jwt_secret = \"a_random_secret\" first_server_address = \"http://localhost:8120\" cors_allowed_origins = [\"http://localhost:5173\"] cors_allow_credentials = true session_allow_cross_site = true database.address = \"localhost:27017\" database.username = \"komodo\" database.password = \"komodo\" Add .dev/periphery.config.toml: ssl_enabled = false root_directory = \".dev/periphery\" Create ui/.env.development with the following: VITE_KOMODO_HOST=http://localhost:9120 Make sure your Rust toolchain is up to date and install the CLI tools: rustup update cargo install typeshare-cli runnables-cli run link-client","s":"Initial One-time Setup","u":"/docs/ecosystem/development","h":"#initial-one-time-setup","p":191},{"i":206,"t":"Start a Mongo instance in Docker: docker run -d --name komodo-mongo \\ -p 27017:27017 \\ -v komodo-mongo-data:/data/db \\ -v komodo-mongo-config:/data/configdb \\ -e MONGO_INITDB_ROOT_USERNAME=komodo \\ -e MONGO_INITDB_ROOT_PASSWORD=komodo \\ mongo In separate terminals, run Core, Periphery, and UI. run dev-core run dev-periphery ```sh run dev-ui # Start in dev (watch) mode Once everything is running, open http://localhost:5173 and create a user account.","s":"Starting the services","u":"/docs/ecosystem/development","h":"#starting-the-services","p":191},{"i":208,"t":"After API changes, rebuild the client with run gen-client # Rebuild client (after API changes)","s":"Rebuilding the frontend client","u":"/docs/ecosystem/development","h":"#rebuilding-the-frontend-client","p":191},{"i":210,"t":"Use run dev-docsite to start the Docusaurus Komodo docs site in development mode. Changes made to files in ./docsite will be automatically reloaded by the server.","s":"Docsite Development","u":"/docs/ecosystem/development","h":"#docsite-development","p":191},{"i":212,"t":"Komodo is a web application for managing servers, builds, deployments, and automated procedures. Connect servers. Monitor CPU, memory, and disk usage with alerts. Connect to shell sessions. Deploy containers. Create, start, stop, and redeploy Docker containers. View status, logs, and exec into shells. Deploy compose stacks. Define compose files in the UI, on the host, or in a git repo with auto-deploy on push. Manage Docker Swarms. Connect swarm managers and deploy services and stacks across your cluster. Build images. Define the dockerfile in UI or clone a git repo. Supports AWS EC2 spot instances for scalable build capacity. Run automation. Orchestrate multi-step workflows with Procedures and Actions. Schedule automations to run regularly. Manage configuration. shared variable and secret with interpolation across all resources. Full audit trail. every change is recorded, with who made it and when. There is no limit to the number of servers you can connect, and there never will be.","s":"What is Komodo?","u":"/docs/intro","h":"","p":211},{"i":214,"t":"Komodo is composed of two components: Core and Periphery. Component Role Core Web server hosting the API and browser UI. All user interaction flows through Core. Periphery Small, stateless agent running on each connected server. Called by Core to perform actions, report system usage, and retrieve container logs.","s":"Architecture","u":"/docs/intro","h":"#architecture","p":211},{"i":216,"t":"Core exposes a REST and WebSocket API for programmatic access. Client libraries are available: Komodo CLI Rust crate NPM package curl examples","s":"API","u":"/docs/intro","h":"#api","p":211},{"i":218,"t":"Komodo has a granular, role-based permissioning system so teams of developers, operators, and administrators can collaborate safely. See Permissioning for details. User sign-on supports username/password and OAuth (GitHub, Google, and generic OIDC). See Core Setup.","s":"Permissioning","u":"/docs/intro","h":"#permissioning","p":211},{"i":220,"t":"Komodo uses Docker as the container engine for building and deploying. info Podman is also supported via the podman → docker alias.","s":"Docker","u":"/docs/intro","h":"#docker","p":211},{"i":222,"t":"Komodo v2 is a major release with significant architectural changes and new features.","s":"v2.0.0","u":"/docs/releases/v2.0.0","h":"","p":221},{"i":224,"t":"Docker Swarm support: Manage swarm clusters, nodes, services, stacks, configs, and secrets. Outbound periphery: Periphery can now initiate the connection to Komodo Core. PKI authentication: Core and Periphery now authenticate with auto-generated key pairs and automatic rotation. Passkeys are deprecated. Onboarding keys: streamlined server onboarding with reusable keys. Improved terminals: Terminals dashboard, km ssh, and improved Action scripting. Improved auto updates: Uses a better system to handle auto updates based on image digest. New UI: Improved look with higher contrast and better UI primitives. Passkey / TOTP 2FA: Built in two factor authentication for username / password login. Multi-login Linking: Users can now link multiple login providers (Local, OIDC, Github, etc) to their account. Full OpenAPI documentation: Interactive API docs now available.","s":"Changelog","u":"/docs/releases/v2.0.0","h":"#changelog","p":221},{"i":226,"t":"Komodo v2 introduces a new connection and authentication method between Komodo Core and the Periphery agents running on your Servers. Find more information on Komodo v2 here. It is largely backward compatible with Komodo v1 configuration, and users can upgrade from v1 in place by following the steps below. note Starting with v2, Komodo will not publish images with the latest tag in favor of Semver (2, 2.0, 2.0.0). This prevents unintented major version upgrades when using auto updaters. Use :2 to stay up to date with all future Komodo v2 releases.","s":"Upgrading to Komodo v2","u":"/docs/releases/v2.0.0","h":"#upgrading-to-komodo-v2","p":221},{"i":228,"t":"The first step is to upgrade both Core and Periphery to v2 versions, along with some small configuration changes. Upgrade Core In the Komodo Core compose service, update the image to :2 tag, and add a new mount to /config/keys. services: core: image: ghcr.io/moghtech/komodo-core:2 init: true # This should be added regardless of version volumes: - keys:/config/keys - (...unchanged) (...unchanged) volumes: keys: (...unchanged) warning Ensure the Komodo Core service includes init: true, as shown above. Failing to do so may cause a build up of zombie processes, and it wasn't included in earlier releases example compose file. Upgrade Periphery If you are running Komodo Periphery in a container, you also need the :2 tag for the image, and the keys will default to being stored in $PERIPHERY_ROOT_DIRECTORY/keys which should already be mounted. Still, if running Periphery in container, ensure you see the private / public keys in the key directory, you may need to add a mount if you customized mount directories. Systemd Periphery users just need to update their Periphery binary version. The keys will be stored in your root_directory (default: /etc/komodo/keys). After getting both Core and Periphery running, everything should already work correctly at this point.","s":"1. Upgrade Core and Periphery to v2","u":"/docs/releases/v2.0.0","h":"#1-upgrade-core-and-periphery-to-v2","p":221},{"i":230,"t":"If you want to reverse the agent connection, skip this step and go to 2b. If you want to keep the Core to Periphery connection direction, you can increase the security by moving from passkey authentication to public key authentication. Navigate to the Settings page, at the top you will find the Core Public Key (starting with MCow...). Copy this key and and redeploy Periphery agents with updated configuration: ## Accepted public keys to allow Core(s) to connect. ## Periphery gains knowledge of the Core public key through the noise handshake. ## If neither these nor passkeys provided, inbound connections will not be authenticated. ## Accepts Spki base64 DER directly and PEM file. Use `file:/path/to/core.pub` to load from file. ## Env: PERIPHERY_CORE_PUBLIC_KEYS ## Optional, no default. core_public_keys = \"\" After confirming the connection still works, you can remove any legacy passkey configuration for both Core and Periphery as it is no longer needed.","s":"2a. Move to public key authentication","u":"/docs/releases/v2.0.0","h":"#2a-move-to-public-key-authentication","p":221},{"i":232,"t":"The Periphery agent is now able to establish an outbound connection to Komodo Core. After updating to Komodo v2, you can follow these steps to migrate to outbound connections using public key authentication. Note you must be an Admin user on Komodo. (Periphery container only.) Ensure the automatically generated private keys are persisted by mounting to the /config/keys of the Periphery container, as noted above. Navigate to Settings / Onboarding and create a new onboarding key. Save it for later. Enable privileged mode on the new Onboarding Key. Redeploy Periphery agents with updated configuration: ## The address of Komodo Core. Must be reachable from this host. ## If provided, Periphery will operate in outbound mode. ## Env: PERIPHERY_CORE_ADDRESS ## Default: None core_address = \"\" # Example: demo.komo.do, ws://localhost:9120 ## The Server this Periphery agent should \"connect as\". ## Systemd periphery can use the system hostname by setting `connect_as = \"$(hostname)\"`. ## Env: PERIPHERY_CONNECT_AS ## Default: None connect_as = \"\" ## Make Onboarding Keys in Server settings. ## Not needed if connecting as Server that already exists. ## Env: PERIPHERY_ONBOARDING_KEY onboarding_key = \"\" Upon connecting, the privileged onboarding key will allow the existing server's expected public key to be updated, allowing the Periphery agent to connect. In general when onboarding new servers, privileged mode is not needed.","s":"2b. Reversing the agent connection","u":"/docs/releases/v2.0.0","h":"#2b-reversing-the-agent-connection","p":221},{"i":234,"t":"info If you don't know what this is, you don't need to do anything. Congratulations, you are done. Rename execute_terminal -> execute_server_terminal. So in v1 Action: // This took 2 calls in v1 await komodo.write(\"CreateTerminal\", { server: \"my-server\", name: \"my-terminal\", command: \"bash\", recreate: \"Always\", }); await komodo.execute_terminal( { server: \"my-server\", terminal: \"my-terminal\", command: \"ls -l\" }, { onLine: (line) => console.log(line) }, ); In v2 becomes: // Streamlined terminal execute with init options. await komodo.execute_server_terminal( { server: \"my-server\", terminal: \"my-terminal\", command: \"ls -l\", init: { command: \"bash\", recreate: \"Always\" }, }, { onLine: (line) => console.log(line) }, );","s":"3. Fix any komodo.execute_terminal in Actions","u":"/docs/releases/v2.0.0","h":"#3-fix-any-komodoexecute_terminal-in-actions","p":221},{"i":236,"t":"Komodo is extendible through the Resource abstraction. Entities like Server, Deployment, and Stack are all Komodo Resources. All resources have common traits, such as a unique name and id amongst all other resources of the same resource type. All resources can be assigned tags, which can be used to group related resources. note Many resources need access to git repos / docker registries. There is an in-built token management system (managed in UI or in config file) to give resources access to credentials. All resources which depend on git repos / docker registries are able to use these credentials to access private repos.","s":"Resources","u":"/docs/resources","h":"","p":235},{"i":238,"t":"Configure the connection to periphery agents. Set alerting thresholds. Can be attached to by Deployments, Stacks, Repos, and Builders.","s":"Server","u":"/docs/resources","h":"#server","p":235},{"i":240,"t":"Configure the manager nodes to control the Swarm through. Manage swarm nodes, stacks, services, tasks, configs, and secrets. Can be attached to by Deployments and Stacks.","s":"Swarm","u":"/docs/resources","h":"#swarm","p":235},{"i":242,"t":"Deploy a docker container on the attached Server. Manage services at the container level, perform orchestration using Procedures and ResourceSyncs.","s":"Deployment","u":"/docs/resources","h":"#deployment","p":235},{"i":244,"t":"Deploy with docker compose. Provide the compose file in UI, or move the files to a git repo and use a webhook for auto redeploy on push. Supports composing multiple compose files using docker compose -f ... -f .... Pass environment variables usable within the compose file. Interpolate in app-wide variables / secrets.","s":"Stack","u":"/docs/resources","h":"#stack","p":235},{"i":246,"t":"Put scripts in git repos, and run them on a Server, or using a Builder. Can build binaries, perform automation, really whatever you can think of.","s":"Repo","u":"/docs/resources","h":"#repo","p":235},{"i":248,"t":"Build application source into docker images, and push them to the configured registry. The source can be any git repo containing a Dockerfile.","s":"Build","u":"/docs/resources","h":"#build","p":235},{"i":250,"t":"Either points to a connected server, or holds configuration to launch a single-use AWS instance to build the image. Can be attached to Builds and Repos.","s":"Builder","u":"/docs/resources","h":"#builder","p":235},{"i":252,"t":"Compose many actions on other resource type, like RunBuild or DeployStack, and run it on button push (or with a webhook). Can run one or more actions in parallel \"stages\", and compose a series of parallel stages to run sequentially.","s":"Procedure","u":"/docs/resources","h":"#procedure","p":235},{"i":254,"t":"Write scripts calling the Komodo API in Typescript Use a pre-initialized Komodo client within the script, no api keys necessary. Type aware in UI editor. Get suggestions and see in depth docs as you type. The Typescript client is also published on NPM.","s":"Action","u":"/docs/resources","h":"#action","p":235},{"i":256,"t":"Orchestrate all your configuration declaratively by defining it in toml files, which are checked into a git repo. Can deploy Deployments and Stacks if changes are suggested. Specify deploy ordering with after array. (like docker compose depends_on but can span across servers.).","s":"Resource Sync","u":"/docs/resources","h":"#resource-sync","p":235},{"i":258,"t":"Route alerts to various endpoints. Can configure rules on each Alerter, such as resource whitelist, blacklist, or alert type filter.","s":"Alerter","u":"/docs/resources","h":"#alerter","p":235},{"i":260,"t":"To run Komodo, you will need Docker. See the docker install docs.","s":"Setup Komodo Core","u":"/docs/setup","h":"","p":259},{"i":262,"t":"Using MongoDB Using FerretDB (Postgres) info Some systems do not support running the latest MongoDB versions. Users with these systems should use FerretDB instead. info FerretDB v1 users: There is an upgrade guide for FerretDB v2 available here. 📄️ MongoDB MongoDB is the recommended database for Komodo. It stores all resource configuration, user accounts, audit logs, and system state. Komodo Core communicates with it directly using the MongoDB driver. 📄️ FerretDB - If you setup Komodo using Postgres or Sqlite options prior to Komodo v1.18.0, you are using FerretDB v1. 📄️ Advanced Setup Additional configuration options for Komodo Core and Periphery, including custom certificate authorities, OAuth/OIDC providers, and mounted config files. 📄️ Connect More Servers Every server you want to manage with Komodo needs the Periphery agent installed. 📄️ Backup and Restore Komodo can automatically back up its database on a schedule and restore from any previous snapshot. Backups are gzip-compressed and stored on disk or a remote server, and by default the most recent 14 backups are stored. The backup and restore operations are handled by the Komodo CLI, which is packaged in the Core image for convenience.","s":"Deploy with Docker Compose","u":"/docs/setup","h":"#deploy-with-docker-compose","p":259},{"i":264,"t":"MongoDB is the recommended database for Komodo. It stores all resource configuration, user accounts, audit logs, and system state. Komodo Core communicates with it directly using the MongoDB driver.","s":"📄️ MongoDB","u":"/docs/setup","h":"","p":259},{"i":266,"t":"- If you setup Komodo using Postgres or Sqlite options prior to Komodo v1.18.0, you are using FerretDB v1.","s":"📄️ FerretDB","u":"/docs/setup","h":"","p":259},{"i":268,"t":"Additional configuration options for Komodo Core and Periphery, including custom certificate authorities, OAuth/OIDC providers, and mounted config files.","s":"📄️ Advanced Setup","u":"/docs/setup","h":"","p":259},{"i":270,"t":"Every server you want to manage with Komodo needs the Periphery agent installed.","s":"📄️ Connect More Servers","u":"/docs/setup","h":"","p":259},{"i":272,"t":"Komodo can automatically back up its database on a schedule and restore from any previous snapshot. Backups are gzip-compressed and stored on disk or a remote server, and by default the most recent 14 backups are stored. The backup and restore operations are handled by the Komodo CLI, which is packaged in the Core image for convenience.","s":"📄️ Backup and Restore","u":"/docs/setup","h":"","p":259},{"i":274,"t":"Additional configuration options for Komodo Core and Periphery, including custom certificate authorities, OAuth/OIDC providers, and mounted config files.","s":"Advanced Setup","u":"/docs/setup/advanced","h":"","p":273},{"i":276,"t":"In order to communicate with companion services on private networks, such as OIDC and git providers, Komodo Core and Periphery may both need to trust one or more custom CAs. Starting in V2, Both the Komodo Core and Periphery images will automatically update-ca-certificates on startup, just mount any required root certificates inside /usr/local/share/ca-certificates: volumes: ## ... (unchanged) ## Mount custom root CA certificates to trust individually - /path/to/root_ca1.crt:/usr/local/share/ca-certificates/root_ca1.crt - /path/to/root_ca2.crt:/usr/local/share/ca-certificates/root_ca2.crt ## OR the whole folder is fine too. - /path/to/custom-certs:/usr/local/share/ca-certificates","s":"Custom Certificate Authorities","u":"/docs/setup/advanced","h":"#custom-certificate-authorities","p":273},{"i":278,"t":"To enable OAuth2 login, you must create a client on the respective OAuth provider, for example GitHub or Google. Komodo also supports self hosted OAuth2 providers like Authentik, Gitea and Keycloak. Komodo uses the web application login flow. The redirect uri is: /auth/github/callback for GitHub. /auth/google/callback for Google. /auth/oidc/callback for OIDC.","s":"OIDC / OAuth2","u":"/docs/setup/advanced","h":"#oidc--oauth2","p":273},{"i":280,"t":"Check out the Authentik integration docs.","s":"Authentik","u":"/docs/setup/advanced","h":"#authentik","p":273},{"i":282,"t":"Create an OIDC client in Keycloak. Note down the Client ID that you enter (e.g.: \"komodo\"), you will need it for Komodo configuration Valid Redirect URIs: use /auth/oidc/callback and substitute with your Komodo url. Turn Client authentication to On. After you finished creating the client, open it and go to Credentials tab and copy the Client Secret Edit your environment variables for komodo core docker container and set the following: KOMODO_OIDC_ENABLED=true KOMODO_OIDC_PROVIDER=https:///realms/master or replace master with another realm if you don't want to use the default one KOMODO_OIDC_CLIENT_ID=... what you specified as Client ID KOMODO_OIDC_CLIENT_SECRET=... that you copied from Keycloak","s":"Keycloak","u":"/docs/setup/advanced","h":"#keycloak","p":273},{"i":284,"t":"If using a reverse proxy with Komodo Core, you can limit the IPs which can connect to the Periphery endpoint. For example with Caddy: (reject-ips) { @externalIp not remote_ip 192.168.0.0/16 12.34.56.78/32 respond @externalIp 403 } komodo.example.com { handle /ws/periphery { import reject-ips reverse_proxy komodo-core:9120 } handle { reverse_proxy komodo-core:9120 } } note Your reverse proxy should set X-FORWARDED-HOST header to your Komodo Core domain, which caddy does by default.","s":"Limit Periphery IPs","u":"/docs/setup/advanced","h":"#limit-periphery-ips","p":273},{"i":286,"t":"If you prefer to keep sensitive information out of environment variables, you can optionally write a config file on your host, and mount it to /config/config.toml in the Komodo core container. The configuration can also be passed as YAML or JSON. You can use it-tools to convert this TOML file to your preferred format: YAML: https://it-tools.tech/toml-to-yaml JSON: https://it-tools.tech/toml-to-json info Configuration can still be passed in environment variables, and will take precedent over what is passed in the file. Quick download to ./komodo/core.config.toml: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/config/core.config.toml https://github.com/moghtech/komodo/blob/main/config/core.config.toml","s":"Mount a Config File","u":"/docs/setup/advanced","h":"#mount-a-config-file","p":273},{"i":288,"t":"Komodo can automatically back up its database on a schedule and restore from any previous snapshot. Backups are gzip-compressed and stored on disk or a remote server, and by default the most recent 14 backups are stored. The backup and restore operations are handled by the Komodo CLI, which is packaged in the Core image for convenience.","s":"Backup and Restore","u":"/docs/setup/backup","h":"","p":287},{"i":290,"t":"New installs (v1.19.0+) automatically create the Backup Core Database Procedure, scheduled daily. If you don't have it, this is the Toml: [[procedure]] name = \"Backup Core Database\" description = \"Triggers the Core database backup at the scheduled time.\" tags = [\"system\"] config.schedule = \"Every day at 01:00\" [[procedure.config.stage]] name = \"Stage 1\" enabled = true executions = [ { execution.type = \"BackupCoreDatabase\", execution.params = {}, enabled = true } ] info You are also able to integrate BackupCoreDatabase into other Procedures, for example to trigger this process before launching a backup container. There is nothing special about this Procedure, it's just created by default for guidance / convenience.","s":"Scheduled Backup","u":"/docs/setup/backup","h":"#scheduled-backup","p":287},{"i":292,"t":"When Komodo takes a database backup, it creates a folder named for the time the backup was taken, and dumps the gzip-compressed documents to files in this folder. In order to store the backups to disk, mount a host path to /backups in the Komodo Core container. Due to its larger size and relative unimportance, the Stats collection (containing historical server cpu / mem / disk usage) is not included in dated backups. Just latest Stats are maintained at the top level of the backup folder. In order to prevent unbounded growth, the backup process implements a pruning feature which will ensure only the most recent 14 backup folders are kept. To change this number, set max_backups (KOMODO_CLI_MAX_BACKUPS) in core.config.toml, komodo.cli.toml, or in the Core container environment. # Folder structure /backups | 2025-08-12_03-00-01 | | Action.gz | | Alerter.gz | | ... | 2025-08-13_03-00-01 | 2025-08-14_03-00-01 | ... | Stats.gz warning Currently no built-in encryption is supported, so you may want to encrypt the files before backing up remotely if your backup solution doesn't support that natively.","s":"Backups","u":"/docs/setup/backup","h":"#backups","p":287},{"i":294,"t":"Since database backup is actually a function of the Komodo CLI, you can also backup directly to a remote server using the ghcr.io/moghtech/komodo-cli image. This service will backup once and then exit, so the scheduled deployment should still happen using a Procedure or Action: services: cli: image: ghcr.io/moghtech/komodo-cli command: km database backup -y volumes: - /path/to/komodo/backups:/backups environment: ## Database port must be reachable. KOMODO_DATABASE_ADDRESS: komodo.example.com:27017 KOMODO_DATABASE_USERNAME: KOMODO_DATABASE_PASSWORD: KOMODO_DATABASE_DB_NAME: komodo KOMODO_CLI_MAX_BACKUPS: 30 # set to your preference","s":"Remote Backups","u":"/docs/setup/backup","h":"#remote-backups","p":287},{"i":296,"t":"The Komodo CLI handles database restores as well. services: cli: image: ghcr.io/moghtech/komodo-cli ## Optionally specify a specific folder with `--restore-folder`, ## otherwise restores the most recent backup. command: km database restore -y # --restore-folder 2025-08-14_03-00-01 volumes: # Same mount to backup files as above - /path/to/komodo/backups:/backups environment: ## Database port must be reachable. ## Note the different env vars needed compared to backup. ## This is to prevent any accidental restores. KOMODO_CLI_DATABASE_TARGET_ADDRESS: komodo.example.com:27017 KOMODO_CLI_DATABASE_TARGET_USERNAME: KOMODO_CLI_DATABASE_TARGET_PASSWORD: KOMODO_CLI_DATABASE_TARGET_DB_NAME: komodo-restore warning The restore process can be run multiple times with same backup files, and won't create any extra copies. HOWEVER it will not \"clear\" the target database beforehand. If the restore database is already populated, those old documents will also remain. You may want to drop / delete the target database before restoring to it in this case.","s":"Restore","u":"/docs/setup/backup","h":"#restore","p":287},{"i":298,"t":"So long as the backup process completes successfully, the files produces can always be restored no matter how active the Komodo instance is at the time of backup. However writes that happen during the backup process, such as updates to the resource configuration, may or may not be included in the backup depending on the timing. While it should be rare that this causes any kind of issue when it comes to restoring, if your Komodo undergoes a lot of usage at all hours and you are worried about consistency, you could consider locking Mongo before the backup. Just make sure to unlock the database afterwards.","s":"Consistency","u":"/docs/setup/backup","h":"#consistency","p":287},{"i":300,"t":"Every server you want to manage with Komodo needs the Periphery agent installed. Periphery is a small, stateless binary that provides receives commands from Komodo Core over a bi-directional websocket connection. Connecting a server has 3 steps: Create an onboarding key via the Komodo Core API / UI. Install the Periphery agent on the server or VM, passing the onboarding key. Confirm the connection status is OK.","s":"Connect More Servers","u":"/docs/setup/connect-servers","h":"","p":299},{"i":302,"t":"You can install Periphery as a systemd managed process, run it as a docker container, or run the binary directly with another process manager.","s":"Install Periphery","u":"/docs/setup/connect-servers","h":"#install-periphery","p":299},{"i":304,"t":"info This is the recommended and simplest method to run Periphery. It avoids a number of complications which can come up when running Periphery in a container. See this discussion. Root install curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery.py \\ | python3 - \\ --core-address=\"https://\" \\ --connect-as=\"$(hostname)\" \\ --onboarding-key=\"O-...\" User install Periphery can also be installed to run as a systemd user service (for the calling user). curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery.py \\ | python3 - --user \\ --core-address=\"https://\" \\ --connect-as=\"$(hostname)\" \\ --onboarding-key=\"O-...\" Enable the Periphery service to start automatically after a reboot. sudo systemctl enable periphery Important For systemctl user installs: To ensure periphery stays running when your user logs out, make sure to enable linger: sudo loginctl enable-linger $USER Configuration file The configuration file location will depend on root vs system install: Root install: /etc/komodo/periphery.config.toml User install: $HOME/.config/komodo/periphery.config.toml The full example configuration file is here. You can find more information (and view the script) in the script readme. info This script can be run multiple times without issue, and it won't change existing config after the first run. Just run it again after a Komodo version release, and it will update the periphery version. tip For deployment to many servers, a tool like Ansible should be used. An example of such a setup can be found here: https://github.com/bpbradley/ansible-role-komodo","s":"Systemd","u":"/docs/setup/connect-servers","h":"#systemd","p":299},{"i":306,"t":"You can use a docker compose file: https://github.com/moghtech/komodo/blob/main/compose/periphery.compose.yaml","s":"Container","u":"/docs/setup/connect-servers","h":"#container","p":299},{"i":308,"t":"Download the periphery binary from the latest release. Create and edit your config files, following the config example. note See the periphery config docs for more information on configuring periphery. Ensure that connectivity with Komodo Core is possible via the chosen connection method. So either: Periphery can reach Komodo Core at the configured core_address. Komodo Core can reach Periphery on the specified port (default 8120). Install docker. See the docker install docs. note Ensure that the user which periphery is run as has access to the docker group without sudo. Start the periphery binary with your preferred process manager, like systemd.","s":"Binary","u":"/docs/setup/connect-servers","h":"#binary","p":299},{"i":310,"t":"periphery --config-path /path/to/periphery.config.toml info You can run periphery --help to see the manual. When running periphery in docker, use command to pass in additional arguments. command: periphery --config-path /path/in/container/to/periphery.config.base.toml","s":"Example periphery start command","u":"/docs/setup/connect-servers","h":"#example-periphery-start-command","p":299},{"i":312,"t":"Core and Periphery authenticate using automatically generated public/private key pairs. No manual key management is required.","s":"Authentication and Key Rotation","u":"/docs/setup/connect-servers","h":"#authentication-and-key-rotation","p":299},{"i":314,"t":"When you create an onboarding key in the UI or API, Komodo Core generates a key pair, and the private key is returned once the the user as the \"onboarding key\". When Periphery first connects using the onboarding key, it generates its own key pair, and sends just the public key to Core. Core stores this public key for each Server. All subsequent communication is authenticated by performing a cryptographic handshake and validating the transfered public key matches. The onboarding key is no longer needed after the initial connection, and the Periphery private key never leaves the server.","s":"How it works","u":"/docs/setup/connect-servers","h":"#how-it-works","p":299},{"i":316,"t":"Component Install Method Default path Core Container /config/keys/core.key Periphery Container /config/keys/periphery.key Periphery Systemd ${root_directory}/keys/periphery.key Keys can also be specified inline in config instead of as file paths.","s":"Default key locations","u":"/docs/setup/connect-servers","h":"#default-key-locations","p":299},{"i":318,"t":"Komodo supports automatic rotation of the Periphery key pairs. When triggered, already connected Periphery agents generate a new key pair and sends the new public key to Komodo Core, which updates its expected public key for that server. Each Server has an auto_rotate_keys setting (default: true) that controls whether it participates in the bulk RotateAllServerKeys operation. You can also rotate keys for individual servers at any time through the API or UI.","s":"Automatic key rotation","u":"/docs/setup/connect-servers","h":"#automatic-key-rotation","p":299},{"i":320,"t":"Onboarding keys are reusable and support several options: Option Description enabled Enable or disable the key. expires Expiration timestamp (0 = never). tags Default tags applied to servers created with this key. copy_server Template Server to copy configuration from. create_builder Automatically create a Builder resource for the new server. privileged Allow the key to update public keys on existing servers.","s":"Onboarding key options","u":"/docs/setup/connect-servers","h":"#onboarding-key-options","p":299},{"i":322,"t":"The configuration can also be passed as YAML or JSON. You can use it-tools to convert this TOML file to your preferred format: YAML: it-tools.tech/toml-to-yaml JSON: it-tools.tech/toml-to-json Quick download to ./komodo/periphery.config.toml: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/config/periphery.config.toml https://github.com/moghtech/komodo/blob/main/config/periphery.config.toml","s":"Configuration","u":"/docs/setup/connect-servers","h":"#configuration","p":299},{"i":324,"t":"Either file paths or directory paths can be passed to --config-path (alias: -c). By default, no paths will be used, meaning the configuration is entirely loaded via environment variables. When using directories, the file entries can be filtered by name with the --config-keyword argument, which can be passed multiple times to add more keywords. These are each wildcard patterns to match file names. Only config files with file names that contain a keyword will be merged, with files matching later defined keywords having higher priority on field conflicts. By default, the only keyword is *config*.*. This matches files like config.toml, periphery.config.yaml, etc. When passing multiple config files, later --config-path given in the command will always override previous ones. Directory config files are merged in alphabetical order by name, so config_b.toml will override config_a.toml. There are two ways to merge config files. The default behavior is to completely replace any base fields with whatever fields are present in the override config. So if you pass allowed_ips = [] in your override config, the final allowed_ips will be an empty list as well. --merge-nested-config true will merge config fields recursively and extend config array fields. For example, with --merge-nested-config true you can specify an allowed ip in the base config, and another in the override config, they will both be present in the final config. Similarly, you can specify a base Docker / GitHub account pair, and extend them with additional accounts in the override config.","s":"Passing config files","u":"/docs/setup/connect-servers","h":"#passing-config-files","p":299},{"i":326,"t":"info If you setup Komodo using Postgres or Sqlite options prior to Komodo v1.18.0, you are using FerretDB v1. Komodo now uses FerretDB v2. For existing users, upgrading requires a migration. FerretDB is a MongoDB-compatible database backed by Postgres + DocumentDB extension. It is a solid option with performance comparable to MongoDB, and can also be run on some systems which do not support MongoDB. Copy komodo/ferretdb.compose.yaml and komodo/compose.env to your host: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/compose/ferretdb.compose.yaml && \\ wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/compose/compose.env Edit the variables in komodo/compose.env. Deploy using command: docker compose -p komodo -f komodo/ferretdb.compose.yaml --env-file komodo/compose.env up -d ferretdb.compose.yaml compose.env https://github.com/moghtech/komodo/blob/main/compose/ferretdb.compose.yaml https://github.com/moghtech/komodo/blob/main/compose/compose.env","s":"FerretDB","u":"/docs/setup/ferretdb","h":"","p":325},{"i":328,"t":"MongoDB is the recommended database for Komodo. It stores all resource configuration, user accounts, audit logs, and system state. Komodo Core communicates with it directly using the MongoDB driver.","s":"MongoDB","u":"/docs/setup/mongo","h":"","p":327},{"i":330,"t":"Copy komodo/mongo.compose.yaml and komodo/compose.env to your host: wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/compose/mongo.compose.yaml && \\ wget -P komodo https://raw.githubusercontent.com/moghtech/komodo/main/compose/compose.env Edit the variables in komodo/compose.env. Deploy using command: docker compose -p komodo -f komodo/mongo.compose.yaml --env-file komodo/compose.env up -d mongo.compose.yaml compose.env https://github.com/moghtech/komodo/blob/main/compose/mongo.compose.yaml https://github.com/moghtech/komodo/blob/main/compose/compose.env","s":"Quick Start","u":"/docs/setup/mongo","h":"#quick-start","p":327},{"i":332,"t":"Komodo can manage Docker Swarm clusters through the Swarm resource. Connect your swarm manager nodes and manage nodes, services, stacks, configs, and secrets from a single interface.","s":"Swarm","u":"/docs/swarm","h":"","p":331},{"i":334,"t":"A Swarm resource points to one or more manager nodes — these are Servers that already have Periphery installed and are part of a Docker Swarm as managers. If one manager is unreachable, Komodo will try the next one in the list. [[swarm]] name = \"production-swarm\" [swarm.config] server_ids = [\"manager-01\", \"manager-02\", \"manager-03\"] send_unhealthy_alerts = true","s":"Configuration","u":"/docs/swarm","h":"#configuration","p":331},{"i":336,"t":"Field Description Default servers List of Swarm manager Server names/IDs. Tries each sequentially on failure. [] send_unhealthy_alerts Send alerts when nodes or tasks are unhealthy. true maintenance_windows Scheduled windows during which alerts are suppressed. [] links Quick links displayed in the resource header. []","s":"Config fields","u":"/docs/swarm","h":"#config-fields","p":331},{"i":338,"t":"To use Docker Swarm with Komodo, you first need to initialize a swarm on one of your connected servers.","s":"Getting Started","u":"/docs/swarm","h":"#getting-started","p":331},{"i":340,"t":"SSH into your server (or use a Komodo terminal) and run docker swarm init: docker swarm init --advertise-addr ","s":"1. Initialize the Swarm","u":"/docs/swarm","h":"#1-initialize-the-swarm","p":331},{"i":342,"t":"Create a new Swarm resource and add the server as a manager node. Once created, Komodo will detect the swarm and display its nodes.","s":"2. Create the Swarm resource in Komodo","u":"/docs/swarm","h":"#2-create-the-swarm-resource-in-komodo","p":331},{"i":344,"t":"To add more servers to the swarm, navigate to the Swarm's node list in the UI and click the Join button. This will display the docker swarm join command with the correct token and address — copy it and run it on the server you want to add. There are separate join commands for worker and manager nodes. tip After a node joins, add it as a Server in Komodo and (for managers) include it in the Swarm resource's servers list for redundancy.","s":"3. Join additional nodes","u":"/docs/swarm","h":"#3-join-additional-nodes","p":331},{"i":346,"t":"View all nodes in the swarm with their role, availability, status, and other information.","s":"Nodes","u":"/docs/swarm","h":"#nodes","p":331},{"i":348,"t":"Swarm services can be managed directly, or created from Deployment resources by configuring swarm instead of server in the Deployment config. View running, desired, and completed task counts. Inspect service configuration and attached configs/secrets. View and search service logs with grep support.","s":"Services","u":"/docs/swarm","h":"#services","p":331},{"i":350,"t":"Deploy compose-based stacks to the swarm using docker stack deploy. Stack resources can target a Swarm by configuring swarm instead of server in the Stack config. Define compose files in the UI, on the host, or in a git repo (same as regular Stacks). View the services and tasks that make up a stack.","s":"Stacks","u":"/docs/swarm","h":"#stacks","p":331},{"i":352,"t":"Manage Docker Swarm configs and secrets directly from Komodo. Create configs and secrets with labels and an optional template driver. Rotate configs and secrets — since they are immutable in Docker, Komodo handles the rotation pattern automatically: Creates a temporary replacement. Updates all referencing services to use the temporary version. Removes and recreates the original with the new data. Updates services back to the original name. Remove configs and secrets. note Configs and secrets have a maximum size of 500KB.","s":"Configs and Secrets","u":"/docs/swarm","h":"#configs-and-secrets","p":331},{"i":354,"t":"Komodo tracks the overall health of each Swarm: State Meaning Healthy All nodes and tasks are OK. Unhealthy Some nodes or tasks don't match the desired state. Down All nodes or tasks are down. Unknown Status cannot be determined. When send_unhealthy_alerts is enabled, Komodo will route alerts through your configured Alerters.","s":"Health Monitoring","u":"/docs/swarm","h":"#health-monitoring","p":331},{"i":356,"t":"Both Deployments and Stacks can target a Swarm instead of a single Server: On a Deployment, set swarm to deploy the container as a Swarm service. You can attach swarm configs and secrets to the service. On a Stack, set swarm to deploy via docker stack deploy instead of docker compose up.","s":"Deploying to a Swarm","u":"/docs/swarm","h":"#deploying-to-a-swarm","p":331},{"i":358,"t":"Komodo provides browser-based terminal sessions for servers and containers. Sessions are persistent, support multiple simultaneous connections, and commands can be scripted and scheduled.","s":"Terminals","u":"/docs/terminals","h":"","p":357},{"i":360,"t":"Open a shell directly on a connected server. The default command is bash, configurable per-Periphery via default_terminal_command.","s":"Server Terminals","u":"/docs/terminals","h":"#server-terminals","p":357},{"i":362,"t":"Connect to a running container in two modes: Exec (default) — runs a new command inside the container (docker exec). Typically used for interactive shells. Attach — attaches to the container's main process (docker attach). Useful for interacting with the primary process directly. Container terminals are available on Deployments, Stack services, and any container visible on a server.","s":"Container Terminals","u":"/docs/terminals","h":"#container-terminals","p":357},{"i":364,"t":"You can create multiple named terminal sessions on the same resource. Each session has its own independent PTY process and output history. Terminal names must be unique within a target (e.g. two terminals named \"debug\" can exist on different servers). Multiple users can connect to the same terminal session simultaneously — output is broadcast to all connected clients. Sessions persist until explicitly deleted or Periphery restarts.","s":"Multiple Sessions","u":"/docs/terminals","h":"#multiple-sessions","p":357},{"i":366,"t":"Each terminal maintains a rolling 1 MiB output buffer. When you reconnect to an existing session, the history is replayed so you can see previous output.","s":"Terminal History","u":"/docs/terminals","h":"#terminal-history","p":357},{"i":368,"t":"Terminal sessions can also be accessed from the command line using the Komodo CLI. km ssh — open a shell on a server km exec — exec into a container km attach — attach to a container's main process Press Alt+Q to disconnect from any CLI terminal session while the session itself stays running.","s":"CLI","u":"/docs/terminals","h":"#cli","p":357},{"i":370,"t":"The execute_terminal API method allows you to run a command on a terminal and stream the output back over HTTP. This is useful for: Actions — TypeScript scripts can call execute_terminal on the Komodo client to run commands on any server or container and process the output programmatically. Automation — integrate terminal command execution into external tools via the REST API. The TypeScript client provides convenience methods for each target type. All methods accept optional callbacks with onLine (called per output line) and onFinish (called with the exit code). // Server terminal await komodo.execute_server_terminal({ server: \"my-server\", terminal: \"automation\", command: \"df -h\", init: { command: \"bash\", recreate: \"DifferentCommand\" }, }, { onLine: (line) => console.log(line), onFinish: (code) => console.log(\"Exit code:\", code), }); // Container terminal await komodo.execute_container_terminal({ server: \"my-server\", container: \"my-container\", terminal: \"debug\", command: \"cat /var/log/errors.log\", init: { command: \"sh\", mode: \"Exec\", recreate: \"Never\" }, }); // Stack service terminal await komodo.execute_stack_service_terminal({ stack: \"my-stack\", service: \"web\", terminal: \"debug\", command: \"nginx -t\", init: { command: \"sh\" }, }); // Deployment terminal await komodo.execute_deployment_terminal({ deployment: \"my-deployment\", terminal: \"check\", command: \"node --version\", init: { command: \"sh\", recreate: \"Always\" }, });","s":"Execute Terminal","u":"/docs/terminals","h":"#execute-terminal","p":357},{"i":372,"t":"Terminal behavior can be configured in the Periphery config file: Setting Description Default default_terminal_command Default shell command for new server terminals. bash disable_terminals Disable server terminal sessions. false disable_container_terminals Disable container terminal sessions. false","s":"Periphery Configuration","u":"/docs/terminals","h":"#periphery-configuration","p":357}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,0.753,1,6.97,2,3.793,3,3.054,4,2.419,5,5.381,6,5.381,7,6.231,8,4.462,9,1.749,10,3.418]],["t/4",[2,3.639,8,2.461,9,1.416,11,1.799,12,1.841,13,3.757,14,4.652,15,3.438,16,2.472,17,3.438,18,5.381,19,2.809,20,3.169,21,3.169,22,3.845,23,2.969,24,2.561,25,3.169,26,3.169,27,2.149,28,1.536,29,2.081,30,1.685,31,5.381,32,2.675,33,4.123,34,4.884,35,3.438,36,5.046,37,2.154,38,2.809]],["t/6",[9,1.354,10,4.19,13,2.585,18,5.862,19,3.943,20,4.45,27,1.735,28,1.255,30,2.366,39,2.783,40,1.653,41,5.398,42,3.331,43,5.398,44,5.226,45,5.897,46,2.949,47,5.398,48,3.117,49,3.943,50,2.366,51,3.943,52,5.524,53,4.168,54,4.45]],["t/8",[4,1.553,12,2.585,13,3.426,16,1.627,27,2.3,28,1.525,33,3.943,34,3.943,55,3.596,56,4.826,57,4.826,58,2.938,59,7.155,60,3.787,61,1.04,62,4.168,63,4.168,64,4.826,65,1.92,66,4.826,67,4.826,68,4.826]],["t/10",[0,0.693,3,1.569,27,2.287,28,1.487,29,1.115,31,5.198,69,2.006,70,3.726,71,2.386,72,2.492,73,2.252,74,3.202,75,2.616,76,2.914,77,1.715,78,1.756,79,0.94,80,1.8,81,1.476,82,3.202,83,1.231,84,1.896,85,3.202,86,2.952,87,3.202,88,2.492,89,6.828,90,3.828,91,3.582,92,3.957,93,3.911,94,1.115,95,1.151,96,7.116,97,3.202,98,2.765,99,3.726,100,3.582,101,3.582,102,2.765,103,3.582,104,2.492,105,1.03,106,3.582,107,2.386,108,2.616]],["t/12",[9,0.808,16,2.408,28,1.541,60,1.705,73,2.528,89,5.556,99,5.059,104,2.241,105,0.926,109,2.486,110,2.211,111,3.22,112,2.879,113,2.654,114,3.22,115,4.94,116,3.22,117,2.478,118,1.637,119,1.579,120,2.654,121,2.241,122,2.879,123,2.879,124,2.145,125,2.145,126,2.654,127,2.352,128,2.654,129,2.879,130,5.373,131,2.879,132,2.879,133,1.752,134,1.66,135,2.241,136,4.954,137,1.473,138,3.22,139,6.01,140,2.879,141,3.22,142,2.879,143,2.061,144,3.22,145,2.486,146,3.22,147,3.22,148,3.22]],["t/14",[0,0.802,2,4.038,3,3.251,9,1.862,10,3.638,79,1.947,149,3.472]],["t/16",[2,4.044,3,2.507,10,3.644,27,1.839,28,1.479,39,2.949,46,3.403,51,4.179,52,4.417,54,4.715,135,3.981,150,3.53,151,5.721,152,3.113,153,5.721,154,4.715,155,5.115,156,5.115,157,4.715,158,4.715]],["t/18",[9,1.67,10,4.203,28,1.042,30,2.126,39,2.501,40,1.486,44,3.544,45,3.999,46,3.133,49,4.863,50,2.126,51,3.544,52,5.14,53,5.14,54,3.999,58,2.64,61,0.934,134,2.501,155,4.337,156,4.337,157,3.999,158,3.999,159,4.852,160,4.852,161,2.994,162,3.544,163,4.852,164,4.852,165,4.852,166,4.852,167,3.746,168,3.844,169,3.524,170,2.27,171,3.999]],["t/21",[0,0.644,10,2.922,28,0.932,49,4.352,51,4.352,52,5.891,53,5.891,61,1.148,69,3.337,135,4.146,154,4.911,172,2.083,173,5.958,174,5.327,175,5.327,176,5.327,177,5.327,178,5.327,179,5.327,180,5.327,181,5.327,182,4.6,183,5.958,184,5.327]],["t/23",[28,1.497,39,2.38,49,4.7,51,3.373,53,4.967,83,1.587,135,5.152,136,3.806,140,4.128,172,1.614,174,5.752,175,5.752,176,4.128,177,4.128,178,4.128,179,4.128,180,4.128,181,4.128,185,4.618,186,6.434,187,2.586,188,4.618,189,2.321,190,3.565,191,8.159,192,4.128,193,4.618,194,4.618,195,4.618]],["t/25",[9,2.022,10,4.295,26,5.355,73,2.732,79,1.705,134,4.154,196,6.497,197,5.016,198,5.809,199,4.521,200,3.265,201,6.497,202,5.809,203,5.809]],["t/27",[0,0.679,2,3.42,3,2.754,9,1.98,10,3.081,79,1.649,134,3.239,157,5.179,158,5.179,168,3.629,169,4.567,170,2.94,171,5.179,204,3.779,205,3.42,206,3.42,207,6.284]],["t/29",[0,0.553,3,1.477,4,2.247,12,1.614,13,2.96,16,1.016,42,2.08,60,1.785,61,0.649,65,1.199,79,1.811,81,2.109,92,2.08,94,1.049,110,1.509,113,2.779,133,1.835,149,1.577,169,1.785,170,1.577,208,1.919,209,2.319,210,2.463,211,3.737,212,2.246,213,2.639,214,3.371,215,3.014,216,1.835,217,2.779,218,5.116,219,3.014,220,2.346,221,2.509,222,2.346,223,2.549,224,1.919,225,3.014,226,3.371,227,1.694,228,2.779,229,3.371,230,2.346,231,2.346,232,3.014,233,3.95,234,2.158,235,2.346,236,2.463,237,2.463,238,2.779,239,2.779,240,2.603,241,4.511,242,2.158,243,3.014,244,1.835,245,2.158,246,1.337,247,2.779,248,2.346,249,3.371,250,3.371,251,4.574,252,2.603,253,2.779,254,2.08]],["t/31",[69,3.337,81,2.456,94,1.854,133,3.242,204,2.853,208,2.235,209,2.235,213,2.998,223,2.456,224,2.235,241,3.44,244,3.242,246,2.363,255,3.44,256,3.969,257,3.553,258,4.6,259,3.677,260,4.146,261,5.327,262,4.911,263,4.146,264,4.146]],["t/34",[27,1.803,28,1.493,30,2.458,40,1.718,46,2.312,105,1.613,110,2.511,118,1.921,121,5.69,137,2.566,204,2.686,211,4.097,265,3.461,266,5.609,267,4.097,268,5.015,269,5.015,270,5.609,271,3.142]],["t/36",[27,1.857,28,1.422,30,2.532,37,3.237,38,4.221,46,2.382,105,1.662,110,2.587,118,1.233,121,4.021,246,3.29,265,3.566,272,4.105,273,6.166,274,1.494,275,4.461,276,5.166,277,4.763,278,4.461]],["t/38",[27,1.445,28,1.543,29,1.399,30,1.25,37,2.518,46,1.853,92,1.76,105,1.293,110,2.012,172,0.997,203,4.019,211,2.084,224,1.07,265,2.774,269,2.55,274,0.737,279,3.972,280,2.853,281,2.202,282,2.853,283,2.55,284,1.9,285,2.853,286,2.55,287,2.853,288,2.55,289,2.084,290,1.76,291,3.872,292,2.853,293,2.55,294,4.975,295,2.853,296,2.853,297,2.853,298,2.853,299,2.853,300,4.019,301,2.351,302,3.343,303,4.496,304,2.518,305,3.471,306,2.774,307,4.296,308,2.351,309,2.853,310,2.55,311,1.76,312,1.985,313,2.853,314,2.853,315,2.853,316,1.9,317,1.701,318,1.598,319,2.853,320,2.853,321,2.853,322,2.853,323,1.224,324,3.284,325,2.853,326,2.853,327,2.853,328,2.853,329,2.853,330,2.853]],["t/40",[9,0.531,16,2.522,27,1.459,28,1.553,29,1.412,30,1.547,37,3.777,38,1.546,46,1.455,48,1.222,90,1.064,102,1.634,105,1.015,110,1.58,118,1.13,137,0.969,143,1.355,161,1.306,172,1.851,208,0.794,209,0.794,211,2.578,237,1.546,241,2.621,265,1.306,274,0.912,284,1.41,301,2.909,307,5.844,324,3.869,331,2.73,332,4.539,333,2.117,334,6.239,335,0.703,336,2.117,337,0.99,338,3.155,339,3.155,340,3.529,341,3.023,342,1.893,343,1.186,344,1.427,345,2.909,346,3.529,347,3.529,348,2.117,349,1.634,350,2.117,351,2.077,352,1.306,353,1.41,354,3.529,355,2.909,356,3.529,357,3.155,358,3.529,359,1.355,360,1.306,361,2.117,362,2.117]],["t/42",[16,1.961,27,1.509,28,1.501,30,2.056,37,2.629,46,1.935,65,3.012,105,1.35,110,2.101,118,1.388,121,3.265,224,2.441,265,2.896,307,6.227,311,2.896,312,3.265,334,3.868,359,3.004,363,4.693,364,4.693,365,4.196,366,3.868,367,4.693,368,4.693,369,3.265,370,3.868,371,2.629,372,2.554,373,2.798,374,2.056,375,4.693]],["t/44",[0,0.308,2,3.028,13,2.664,14,2.351,16,2.071,27,2.03,28,1.57,29,1.732,30,1.25,33,4.064,34,5.331,35,2.55,36,4.975,37,1.598,38,2.084,55,1.9,56,2.55,60,2.38,61,0.549,62,2.202,63,2.202,66,2.55,67,4.019,68,4.019,90,1.434,95,0.917,105,0.82,110,1.277,143,1.826,204,2.153,265,1.76,271,2.518,277,2.351,284,1.9,288,2.55,290,1.76,301,2.351,307,5.898,334,5.663,376,1.826,377,2.853,378,2.202,379,1.647,380,2.853,381,2.853,382,2.853,383,2.853]],["t/46",[0,0.628,3,1.755,9,1.005,12,1.918,27,1.288,28,1.512,29,1.81,30,1.755,37,2.244,40,1.227,61,1.12,83,1.376,90,2.013,95,1.869,105,1.152,110,1.793,118,1.241,127,2.926,137,1.833,187,2.244,223,1.651,224,2.817,265,2.472,311,2.472,312,2.787,316,2.668,344,1.619,345,3.302,369,2.787,370,3.302,384,2.668,385,2.668,386,1.964,387,1.685,388,4.006,389,3.093,390,3.302,391,2.787,392,4.006,393,4.006,394,4.006,395,2.564,396,4.006,397,2.668,398,3.581,399,3.581,400,4.006,401,4.006,402,4.006]],["t/48",[4,2.138,27,1.839,28,1.452,40,1.752,61,1.102,83,1.966,105,1.645,223,2.358,224,2.146,241,4.292,265,3.53,311,3.53,312,3.981,316,3.811,369,3.981,370,4.715,389,4.417,390,4.715,403,5.721,404,5.721,405,5.721,406,5.721,407,5.721]],["t/50",[0,0.321,4,1.335,13,3.091,16,0.895,27,1.836,28,1.563,29,1.444,46,1.225,49,2.17,50,1.302,55,1.979,60,1.572,61,0.572,63,3.583,69,2.6,79,0.78,95,0.955,118,0.634,119,1.457,133,1.616,172,1.038,224,1.114,244,1.616,265,1.833,271,1.664,279,1.616,290,3.984,302,1.572,306,4.581,312,2.067,337,3.474,408,2.971,409,2.656,410,2.656,411,2.656,412,2.448,413,4.177,414,2.031,415,2.656,416,1.39,417,2.971,418,2.293,419,1.531,420,4.149,421,3.091,422,5.106,423,5.106,424,2.971]],["t/52",[0,0.637,4,1.696,40,1.806,83,2.604,84,4.434,223,2.431,254,4.677,260,4.103,344,2.384,360,3.639,425,5.272,426,4.52,427,4.553,428,4.377,429,5.897,430,5.536,431,5.272,432,4.103,433,3.122,434,5.897]],["t/54",[0,0.672,2,2.397,3,1.93,4,1.79,13,2.109,27,2.001,28,0.974,29,1.371,50,1.93,61,0.849,65,1.567,84,2.332,104,4.331,105,1.267,161,2.718,162,3.218,172,1.54,197,3.401,224,1.652,227,2.214,241,2.544,254,3.841,323,1.891,359,2.82,372,2.397,387,1.853,426,2.627,427,4.806,435,3.065,436,5.131,437,3.218,438,2.82,439,3.401,440,4.405,441,3.218,442,3.065,443,1.891,444,2.934,445,3.938,446,3.938,447,4.405,448,4.405,449,4.806,450,5.131,451,3.938,452,4.405,453,4.405,454,2.544,455,4.405,456,4.405]],["t/56",[2,3.242,3,2.611,4,2.194,13,2.853,16,1.796,27,1.915,28,0.932,29,2.619,58,3.242,65,2.119,77,2.853,92,4.708,224,2.235,241,4.406,371,3.337,391,4.146,446,5.327,457,7.63,458,3.814,459,5.958]],["t/58",[0,0.6,28,0.869,83,1.909,84,2.941,105,1.598,137,2.541,172,3.02,208,2.084,221,2.724,223,2.29,254,5.022,360,3.428,436,6.708,437,4.058,438,3.556,460,4.499,461,4.289,462,5.555,463,5.555,464,4.289,465,5.555,466,2.792,467,5.555,468,3.865,469,5.555]],["t/60",[0,0.672,3,2.724,4,1.788,29,1.934,60,3.29,79,1.631,83,2.136,92,5.297,168,3.589,189,3.124,221,4.209,223,2.562,254,3.836,255,3.589,360,3.836,397,4.141,458,3.979,470,6.216]],["t/62",[0,0.753,9,1.749,29,2.618,79,1.829,221,3.418,274,2.174,471,3.273,472,6.97,473,3.69]],["t/64",[0,0.68,28,1.302,29,1.958,40,1.37,46,1.844,61,0.862,69,2.506,79,1.174,81,1.844,83,1.537,92,2.761,172,1.564,213,1.511,216,2.435,223,1.844,224,2.73,255,2.583,257,2.668,264,3.113,279,2.435,311,2.761,323,1.92,331,2.306,335,1.486,344,2.544,352,2.761,371,2.506,372,2.435,373,2.668,387,1.881,464,3.454,466,2.248,474,3.687,475,3.113,476,6.098,477,5.626,478,2.668,479,2.306,480,2.864,481,4,482,4.474,483,4,484,4,485,4,486,2.98]],["t/66",[27,1.769,28,1.549,29,1.712,31,5.292,37,3.082,92,3.395,224,2.064,234,3.522,279,3.942,308,4.535,311,3.395,318,3.082,374,2.411,414,2.576,458,3.522,487,5.502,488,4.535,489,4.535,490,4.919]],["t/68",[0,0.201,4,1.189,9,1.038,24,1.241,27,1.019,28,1.356,29,2.472,30,0.816,39,0.96,40,0.971,42,1.15,44,1.361,46,2.453,58,1.014,61,0.94,81,0.768,83,1.089,90,1.593,92,2.552,98,2.447,105,0.536,110,2.184,117,0.768,143,1.193,145,1.438,161,3.011,167,2.447,170,0.872,206,1.014,213,1.071,221,2.682,223,1.306,224,1.83,231,1.296,234,1.193,236,1.361,254,2.552,263,2.878,264,1.296,271,2.317,274,1.538,279,2.251,290,1.15,311,1.15,316,1.241,318,1.775,323,0.8,324,2.315,344,0.753,352,1.956,360,1.956,369,1.296,371,2.317,372,1.014,374,1.389,389,2.447,416,0.872,425,1.666,458,1.193,464,1.438,466,2.078,471,1.609,473,0.986,476,4.224,477,2.833,478,1.111,480,1.193,483,2.833,484,1.666,485,1.666,486,2.111,488,1.536,491,1.438,492,1.666,493,1.863,494,1.666,495,1.076,496,1.536,497,1.536,498,1.666,499,2.833,500,1.438,501,1.666,502,2.612,503,1.666,504,1.956,505,1.666,506,1.536,507,1.666,508,1.666,509,2.833,510,1.536,511,1.863,512,2.315,513,1.863,514,2.111,515,1.863,516,1.666,517,1.536,518,1.863,519,2.205,520,2.612,521,1.666,522,3.169,523,1.361,524,3.698,525,2.612,526,2.447,527,1.863,528,0.986,529,1.863,530,1.863,531,1.666,532,1.536,533,1.076,534,1.863,535,1.666,536,1.111,537,1.863,538,1.863,539,1.863,540,2.205,541,1.241,542,1.361]],["t/70",[0,0.694,29,1.999,40,1.968,61,1.541,90,3.229,110,2.876,170,3.006,221,3.15,231,4.47,323,2.757,492,5.744,495,3.71,496,5.295,497,5.295,543,6.425,544,4.693,545,6.425,546,4.113]],["t/72",[40,1.77,110,3.713,143,3.699,189,2.904,204,2.767,221,2.833,263,4.021,323,2.48,398,5.166,474,4.763,502,4.763,503,5.166,504,4.616,505,5.166,506,4.763,507,5.166,508,5.166,509,5.166,510,4.763,544,4.221,547,5.166,548,3.566,549,5.166,550,4.461,551,5.778,552,4.461]],["t/74",[6,4.168,29,1.68,39,2.783,57,4.826,61,1.04,90,2.713,98,6.864,110,3.979,167,4.168,172,1.887,206,2.938,221,2.647,263,3.756,499,7.174,501,4.826,502,5.897,504,4.952,510,5.897,553,4.826,554,3.456,555,4.826,556,5.398]],["t/76",[27,2.944,29,2.022,40,1.99,58,3.536,60,3.439,61,1.251,172,2.271,471,3.136,473,3.439,498,5.809,557,5.355,558,4.746,559,5.809,560,5.355]],["t/78",[28,1.261,39,3.349,90,4.049,172,2.816,246,2.577,252,5.016,271,3.639,494,5.809,495,3.752,496,5.355,497,5.355,549,5.809,550,5.016,561,6.497,562,4.521]],["t/80",[0,0.389,12,1.726,16,2.152,28,1.443,29,2.003,39,1.858,40,1.648,48,3.106,50,1.579,61,0.694,77,1.726,79,0.946,83,1.238,105,1.036,118,0.769,170,1.686,221,3.156,234,3.444,245,2.307,274,0.932,308,2.97,318,3.605,323,1.547,344,1.457,373,2.149,374,3.51,413,2.149,414,1.913,416,1.686,426,3.208,432,2.508,433,1.908,454,2.081,468,2.508,473,3.779,488,4.434,489,2.97,490,3.222,557,2.97,563,2.97,564,2.97,565,3.222,566,2.97,567,2.307,568,1.982,569,3.222,570,3.222,571,2.307,572,2.633,573,2.508,574,3.604,575,3.604,576,3.222]],["t/82",[12,2.585,27,1.735,28,1.119,29,2.227,40,1.653,58,2.938,61,1.04,97,4.826,172,1.887,208,2.025,274,2.209,279,3.893,386,2.647,443,2.317,500,4.168,533,3.117,535,7.639,555,7.174,557,4.45,577,5.398,578,5.398,579,3.219,580,3.331,581,4.826,582,5.398]],["t/84",[0,0.735,4,1.957,9,1.707,29,2.58,61,1.311,118,1.769,273,5.609,279,4.511,478,4.058,568,2.507,583,4.735]],["t/86",[9,1.862,95,2.385,118,1.583,216,4.038,255,4.285,279,4.038,584,4.038]],["t/88",[0,0.68,27,0.912,28,1.459,29,1.394,32,4.769,37,1.59,46,1.846,61,0.547,78,1.392,84,1.503,94,1.726,95,0.912,170,1.328,172,0.992,187,1.59,204,1.359,208,2.08,209,1.065,240,2.192,244,1.545,271,1.59,274,0.734,279,2.437,281,3.458,283,2.538,284,1.891,286,4.959,293,4.004,294,4.959,300,2.538,372,1.545,386,2.196,416,2.095,442,1.975,443,1.218,471,1.105,568,1.046,584,1.545,585,3.271,586,2.538,587,4.004,588,2.838,589,2.538,590,2.838,591,2.838,592,2.838,593,2.838,594,2.838,595,2.838,596,2.838,597,1.975,598,2.838,599,2.34,600,2.838,601,2.34,602,2.838,603,2.838,604,2.34,605,1.693,606,2.838,607,2.838,608,2.838,609,3.458,610,2.34,611,2.538,612,2.538,613,2.838,614,2.34,615,2.838,616,4.004,617,2.073,618,2.073,619,2.838,620,2.838,621,2.192,622,2.538,623,2.838,624,2.838,625,2.838,626,2.34,627,1.891,628,1.975,629,2.538,630,2.073,631,2.538,632,2.838,633,1.59]],["t/90",[0,0.744,4,1.981,83,2.366,133,3.747,413,4.106,414,2.449,416,3.222,634,5.676,635,6.157,636,3.645,637,5.03,638,4.408,639,6.157]],["t/92",[0,0.547,4,1.457,12,2.425,132,4.529,204,2.425,208,1.9,219,4.529,241,2.925,257,3.021,290,3.126,411,4.529,413,5.349,414,3.363,478,3.021,479,2.611,536,3.021,572,3.7,583,3.524,627,5.796,640,6.129,641,4.175,642,5.065,643,4.529,644,5.065,645,4.529]],["t/94",[0,0.385,3,2.8,4,2.5,13,3.059,28,0.557,29,1.108,40,1.09,50,2.335,61,1.027,69,2.985,73,1.497,79,1.862,105,1.024,112,3.182,117,1.467,133,1.937,142,3.182,168,2.055,204,1.704,209,2.661,210,2.6,244,1.937,306,4.688,360,3.289,413,3.178,414,3.091,416,2.989,421,3.55,443,1.528,479,1.835,548,2.196,567,2.278,579,2.122,601,2.934,627,2.371,637,2.6,638,2.278,646,2.6,647,2.934,648,4.765,649,2.748,650,5.33,651,2.371,652,5.266,653,5.33,654,2.934,655,2.055,656,2.371]],["t/96",[4,1.758,9,0.675,11,1.26,16,2.146,28,0.672,29,1.667,40,1.315,48,1.555,50,1.18,65,2.531,73,1.132,83,0.925,118,1.706,119,3.275,162,1.967,200,1.353,224,2.009,237,1.967,241,1.555,244,3.873,274,1.385,279,2.337,290,1.661,302,2.273,306,2.65,335,2.031,337,3.495,351,1.232,413,3.645,414,3.029,416,2.86,418,3.315,419,2.214,421,1.793,437,1.967,449,3.315,466,1.353,544,1.967,548,1.661,627,1.793,634,2.219,638,1.723,646,5.456,657,2.692,658,2.692,659,2.692,660,3.315,661,2.692,662,2.692,663,3.839,664,3.839,665,1.605,666,1.793,667,2.219,668,2.692,669,2.407,670,2.692,671,2.692,672,2.692,673,2.749,674,2.692,675,2.692,676,2.079]],["t/98",[4,1.676,9,0.769,12,1.468,13,3.144,16,0.924,27,0.985,28,1.541,29,0.954,50,1.343,60,1.623,61,0.59,63,2.367,65,2.675,84,1.623,105,0.882,119,2.332,133,1.668,189,1.541,206,1.668,209,1.784,212,2.042,290,3.596,302,3.085,306,4.386,312,2.133,409,2.741,410,2.741,412,2.527,413,3.916,414,2.335,415,2.741,416,1.434,418,3.672,420,2.741,421,2.042,422,4.252,423,4.252,468,2.133,480,1.962,627,3.882,646,3.474,654,3.92,656,2.042,677,3.066,678,1.962,679,3.066,680,2.367,681,3.066,682,3.066,683,3.066,684,2.367,685,4.756]],["t/100",[0,0.759,4,1.512,29,1.636,46,1.44,50,1.531,73,1.469,79,0.917,88,2.431,118,1.122,134,2.71,150,2.156,172,1.837,199,2.431,204,1.673,206,2.861,208,2.37,209,1.311,227,1.756,237,2.552,246,1.386,302,1.85,374,1.531,413,4.495,414,3.261,416,2.956,438,3.365,552,2.698,567,4.045,579,2.084,637,2.552,638,5.537,646,3.84,648,3.124,652,2.88,654,2.88,686,2.88,687,4.333,688,3.494,689,1.635,690,2.88,691,3.494,692,3.494,693,3.494,694,3.494,695,3.658,696,3.494,697,3.494,698,2.88,699,2.88,700,2.698,701,3.124]],["t/102",[0,0.664,4,2.239,29,1.914,65,2.187,77,2.944,79,1.614,83,2.935,215,5.498,223,2.535,224,2.307,241,3.551,244,3.346,274,1.59,337,2.877,374,2.695,428,3.551,473,3.255,702,5.498,703,6.15,704,4.492]],["t/104",[0,0.679,4,1.807,29,1.956,60,3.326,61,1.21,65,2.235,79,2.071,83,2.159,223,2.59,224,2.357,241,3.629,264,4.372,371,3.52,372,3.42,374,2.754,428,3.629,437,4.59,454,3.629,468,4.372,705,5.618]],["t/106",[0,0.547,28,0.792,81,2.826,83,2.67,105,1.457,137,2.317,150,3.126,172,2.396,205,2.756,210,3.7,213,1.711,223,2.826,246,2.719,274,1.309,318,2.837,374,3.649,416,2.37,438,3.243,443,2.174,454,2.925,473,3.629,475,3.524,528,2.681,641,4.175,651,3.374,689,2.37,695,3.524,706,5.065,707,3.911,708,3.243,709,4.175,710,3.911,711,3.7]],["t/108",[4,1.972,9,1.271,28,0.792,50,3.004,73,2.13,77,3.283,79,1.329,81,3.204,83,2.356,94,1.576,95,1.628,105,2.395,118,1.463,172,1.77,205,2.756,213,2.316,259,3.126,290,3.126,374,3.406,389,3.911,421,3.374,439,3.911,454,2.925,478,3.021,568,1.866,700,3.911,712,3.7,713,4.175,714,4.175,715,5.065]],["t/110",[0,0.664,55,4.096,83,2.675,200,3.09,223,3.521,224,2.307,344,3.147,371,4.785,426,3.667,427,4.748,430,4.492,431,5.498,716,4.096,717,6.15,718,6.15,719,6.15,720,6.15]],["t/112",[28,1.238,30,2.301,39,2.707,40,1.608,44,3.835,46,2.164,48,3.032,58,2.857,83,2.413,170,2.457,172,1.835,200,2.639,220,3.653,223,2.164,224,1.969,271,2.941,316,3.497,318,2.941,371,2.941,374,3.078,414,1.867,416,2.457,454,3.032,514,5.867,525,4.328,708,3.361,716,3.497,721,4.328,722,5.25,723,3.653,724,3.361]],["t/114",[28,1.576,271,2.394,316,2.847,318,3.977,369,4.94,371,2.394,374,3.111,387,1.797,414,2.525,427,3.3,430,3.122,454,4.1,514,4.058,708,4.545,712,3.122,714,3.523,716,2.847,725,3.821,726,4.274,727,3.122,728,3.523,729,5.447,730,4.274]],["t/116",[0,0.702,200,3.265,221,3.186,274,2.083,335,2.159,344,2.626,387,2.732,391,4.521,426,3.874,432,4.521,451,5.809,471,2.528,473,4.636,570,5.809,727,4.746]],["t/118",[27,1.657,28,1.312,29,1.605,30,2.259,39,2.658,40,1.579,48,4.007,107,3.435,187,2.888,200,2.591,204,2.469,234,3.301,318,2.888,323,2.213,337,2.413,374,2.259,387,2.168,428,2.977,439,3.981,454,2.977,471,2.007,473,4.441,514,3.435,536,3.075,566,4.25,708,3.301,721,4.25,724,3.301,731,6.939,732,5.156,733,5.156,734,4.61,735,5.156]],["t/120",[28,1.564,50,1.719,189,1.972,221,1.924,234,3.667,318,3.789,374,2.964,376,2.512,387,1.65,413,2.34,414,2.406,416,2.68,426,3.416,433,2.077,454,4.568,471,1.527,473,2.077,489,3.234,566,3.234,569,3.508,571,2.512,708,4.331,712,2.866,714,3.234,725,3.508,727,2.866,729,3.508,736,6.765,737,3.924,738,3.924,739,3.924,740,3.924]],["t/122",[16,2.465,29,2.283,40,1.718,77,2.686,79,1.925,105,1.613,107,3.736,118,1.197,221,2.75,234,4.697,245,3.591,318,3.142,374,3.583,439,4.331,468,3.903,471,2.183,473,3.884,478,3.345,568,2.066,572,4.097,576,5.015,734,5.015,741,6.56]],["t/124",[0,0.52,4,1.384,24,3.205,28,1.463,61,0.927,65,1.711,78,3.71,79,1.262,102,5.11,224,1.805,331,2.48,351,2.201,352,5.03,355,5.456,360,2.969,371,2.695,391,3.347,414,1.711,466,2.418,500,3.714,581,4.301,678,3.08,724,3.08,742,5.918,743,4.811,744,6.619,745,6.619,746,4.811,747,6.619,748,4.811]],["t/126",[0,0.783,4,1.492,9,0.514,28,0.904,50,0.898,61,1.204,64,1.832,73,1.444,77,2.484,78,1.005,79,1.163,80,1.03,81,1.416,94,1.615,95,1.858,102,4.006,105,1.662,118,0.437,133,1.115,168,1.183,172,1.2,187,2.483,189,1.03,208,0.769,209,0.769,213,1.952,230,1.426,234,1.312,238,1.689,246,2.763,255,1.183,256,1.365,262,1.689,263,1.426,302,1.085,306,3.202,323,1.474,331,3.592,343,1.924,352,1.264,355,1.689,357,1.832,359,1.312,379,1.183,391,1.426,414,1.221,416,1.607,438,2.199,442,2.39,443,1.474,461,1.582,466,4.278,546,1.312,573,1.426,584,1.869,605,1.222,626,1.689,637,2.509,638,1.312,639,1.832,649,1.582,652,1.689,656,1.365,660,1.582,664,1.832,666,2.288,678,1.312,689,0.959,695,1.426,698,1.689,699,1.689,700,1.582,712,1.497,713,1.689,716,1.365,742,3.07,749,1.497,750,1.264,751,1.222,752,2.652,753,2.049,754,2.831,755,1.832,756,1.582,757,3.434,758,2.049,759,1.832,760,1.832,761,2.049,762,2.049,763,2.049,764,1.497,765,4.434,766,2.119,767,2.049,768,2.049,769,2.049,770,2.049,771,2.049,772,3.434,773,3.964,774,3.423,775,1.312,776,1.832,777,1.832,778,1.497,779,1.689]],["t/128",[0,0.762,4,2.029,149,3.301,209,2.646,274,1.824,471,2.746,655,4.074,751,4.207,780,5.154,781,5.154,782,5.815]],["t/130",[8,3.029,16,1.426,42,2.92,65,2.327,79,1.242,81,1.951,110,3.358,149,2.214,168,3.779,169,3.971,187,2.65,209,3.187,223,1.951,225,4.23,257,3.902,344,1.913,433,2.505,471,2.919,495,3.779,504,2.92,512,3.456,517,3.9,605,3.902,655,3.779,751,3.902,780,4.78,783,3.152,784,3.653,785,3.9,786,2.214,787,4.23,788,4.23,789,4.23]],["t/132",[2,4.009,4,1.106,10,1.885,13,1.841,16,1.159,18,2.809,27,1.814,28,1.495,30,1.685,33,2.809,34,2.809,40,1.178,46,2.327,61,0.741,65,1.367,110,1.721,134,1.982,135,2.675,137,1.759,143,2.461,152,2.092,154,3.169,200,1.932,204,3.202,205,2.092,208,1.442,209,2.508,257,2.293,304,2.154,386,1.885,391,2.675,419,1.982,473,2.035,495,3.861,636,2.035,700,4.358,751,2.293,775,2.461,780,2.809,781,2.809,790,3.438,791,3.845,792,3.169,793,3.169,794,3.438,795,5.644,796,3.438,797,3.845,798,3.438,799,3.438,800,2.675]],["t/134",[0,0.791,4,2.107,11,3.427,16,2.208,65,2.605,205,3.986,248,5.097,274,1.894]],["t/136",[27,1.803,28,1.535,65,2.908,118,1.566,121,3.903,224,2.104,304,3.142,311,3.461,351,2.566,365,5.015,366,4.623,414,1.995,801,5.015,802,5.609,803,5.609,804,5.609,805,5.015,806,5.015,807,5.015]],["t/138",[4,0.854,11,3.474,12,1.422,16,0.895,27,1.836,28,1.345,30,1.302,39,1.531,40,1.421,42,1.833,46,1.225,48,1.715,58,1.616,65,2.031,77,1.422,83,1.595,92,2.864,117,1.225,118,0.99,124,1.979,145,2.293,149,1.39,161,1.833,168,1.715,169,1.572,206,1.616,209,1.114,213,2.181,223,1.913,224,1.741,227,1.493,248,2.067,260,2.067,264,2.067,271,2.6,274,1.2,311,1.833,316,1.979,318,1.664,331,2.392,335,0.987,344,1.876,351,2.123,352,1.833,353,3.091,366,2.448,369,2.067,371,1.664,372,1.616,374,1.302,443,1.275,458,1.902,471,1.806,516,2.656,519,2.067,528,2.457,532,2.448,533,2.68,540,3.229,541,1.979,542,2.17,558,2.17,649,2.293,655,1.715,751,2.767,780,3.39,781,2.17,785,2.448,786,1.39,792,2.448,793,2.448,801,2.656,808,3.583,809,2.656,810,2.971,811,2.971,812,2.971,813,2.656,814,2.448,815,2.656,816,2.656,817,1.979]],["t/140",[0,0.754,11,2.434,16,2.104,28,1.233,61,1.002,65,1.85,69,3.91,81,2.145,83,1.788,118,1.11,134,2.682,213,2.844,216,2.831,221,2.551,223,2.878,224,2.618,227,2.615,254,3.211,255,3.004,344,2.103,371,2.914,387,3.313,474,4.288,475,3.62,495,3.004,655,3.004,818,5.203,819,4.288]],["t/142",[0,0.754,9,1.977,11,3.939,27,2.706,28,0.814,60,2.754,65,2.483,105,1.496,118,1.11,172,1.819,208,1.952,213,1.758,216,2.831,245,3.331,248,6.11,274,1.345,317,3.103,337,2.434,387,2.188,416,2.434,435,3.62,605,3.103,809,4.652,820,3.801,821,4.652,822,4.652]],["t/144",[16,2.499,50,2.982,65,2.948,118,1.452,256,4.533,272,3.879,274,1.759,528,3.602,536,4.058,580,4.199,823,5.609]],["t/146",[0,0.702,4,1.869,9,1.63,13,3.111,16,2.429,79,1.705,95,2.088,117,2.678,118,1.386,205,3.536,274,2.083,335,2.159,528,3.439,580,4.009,584,3.536,824,6.497]],["t/148",[16,1.568,27,1.672,28,1.545,31,3.801,109,4.017,118,1.49,121,3.62,304,2.914,338,4.652,339,4.652,341,3.466,351,2.38,387,2.188,442,3.62,471,2.025,805,4.652,806,4.652,807,4.652,825,5.203,826,4.652,827,5.203,828,4.288,829,6.981,830,5.203,831,5.203]],["t/150",[0,0.326,4,0.868,9,1.179,16,1.416,28,1.326,29,0.939,30,1.322,39,1.555,40,1.439,42,1.862,46,1.244,58,1.642,61,0.581,77,1.445,109,3.627,110,1.351,117,1.937,118,1.002,145,2.33,149,1.412,161,3.56,168,1.742,169,1.597,206,1.642,209,1.132,227,1.516,271,2.631,274,1.824,317,1.799,324,3.432,331,2.422,335,1.002,337,1.412,341,2.01,342,2.698,343,1.69,344,1.22,351,2.149,352,1.862,387,2.426,442,4.531,471,3.036,479,1.555,495,1.742,524,4.2,532,2.487,533,1.742,540,3.269,541,2.01,542,2.204,553,2.698,558,2.204,562,2.099,568,1.112,601,3.872,605,1.799,630,3.432,635,2.698,649,2.33,655,1.742,676,2.33,751,1.799,780,3.432,781,2.204,785,2.487,792,2.487,793,2.487,816,2.698,817,2.01,828,2.487,832,2.698,833,3.017,834,3.017,835,3.017,836,3.872,837,3.017,838,3.017,839,3.017]],["t/152",[0,0.768,4,1.538,16,1.612,28,1.112,29,2.486,40,1.638,58,2.91,90,2.688,274,1.383,317,3.189,337,2.502,372,2.91,373,4.24,374,2.344,468,3.721,471,3.313,473,3.764,475,3.721,479,2.757,504,3.3,517,4.408,572,3.907,573,3.721,783,3.563,826,4.781,832,4.781,840,4.408,841,5.348]],["t/154",[0,0.511,3,2.867,16,1.426,28,1.024,30,2.073,83,1.626,105,2.328,137,2.165,208,1.775,216,3.561,217,3.9,227,3.288,246,1.876,302,2.505,335,2.919,379,2.732,433,2.505,491,3.653,633,4.202,655,4.331,760,4.23,779,3.9,817,4.359,819,3.9,836,6.671,842,4.732,843,6.544,844,3.9,845,4.732,846,3.9]],["t/156",[16,2.412,50,2.815,105,1.848,118,1.371,256,4.279,272,4.268,335,2.134,337,3.006,466,3.229,536,3.831,580,4.938,786,3.744,823,5.295]],["t/158",[0,0.718,70,4.625,73,2.795,76,3.617,84,3.519,351,3.041,385,4.428,548,4.102,666,4.428,775,4.255,847,5.479,848,5.479,849,3.519,850,5.943,851,4.856,852,5.479]],["t/160",[0,0.834,61,1.487,849,4.086,853,4.603]],["t/162",[0,0.753,3,3.054,13,3.337,69,3.904,73,2.931,79,1.829,94,2.169,421,4.643,514,4.643,666,4.643,756,5.381,854,6.231]],["t/164",[0,0.802,169,3.928,766,4.579,775,4.75,855,4.943,856,5.42,857,6.116]],["t/166",[0,0.915,172,2.466,255,4.074,351,3.228,438,4.517,443,3.028,585,5.154,680,5.448,723,4.909,858,6.308]],["t/168",[0,0.672,3,2.724,13,2.976,69,3.482,70,4.325,73,3.296,76,3.383,77,3.753,79,1.631,88,4.325,94,1.934,385,4.141,421,4.141,514,4.141,548,3.836,666,4.141,749,4.541,756,4.799,854,5.557,859,6.216]],["t/170",[0,0.824,28,1.435,65,2.713,76,3.242,99,5.309,107,3.969,209,2.235,385,3.969,647,4.911,860,5.958,861,5.327,862,5.958,863,5.327,864,5.958,865,5.958,866,5.958,867,5.958,868,5.958,869,5.958]],["t/172",[0,0.524,28,1.529,65,2.368,70,3.376,73,2.04,76,2.64,78,3.264,84,3.524,89,6.264,99,4.632,107,3.232,108,3.544,209,1.82,466,3.346,820,3.544,861,5.952,863,4.337,870,4.852,871,4.852,872,4.852,873,6.657,874,4.852,875,4.852,876,4.852,877,4.852,878,4.852]],["t/174",[0,0.891,4,1.257,9,1.553,13,2.093,28,0.969,61,0.842,77,2.093,94,2.237,105,1.257,118,0.933,119,2.144,152,3.912,209,1.64,235,3.042,274,1.13,289,3.193,331,2.254,335,2.057,376,2.799,414,2.202,460,2.698,471,1.701,475,3.042,528,2.314,568,1.611,572,3.193,618,3.193,638,2.799,667,3.603,673,2.799,687,3.603,689,2.897,849,3.277,853,4.286,879,4.372,880,4.372,881,3.193,882,4.372,883,4.308,884,2.799,885,2.912,886,3.193,887,3.193,888,3.375]],["t/176",[3,2.67,9,1.072,16,1.288,29,1.896,46,1.762,65,2.167,118,1.515,125,4.058,152,2.326,172,2.481,209,1.603,241,2.468,263,2.974,335,2.024,337,2,414,2.167,450,3.523,568,1.575,597,2.974,618,4.45,638,2.736,673,2.736,687,3.523,689,2,853,5.719,881,4.45,884,2.736,888,3.3,889,3.821,890,3.821,891,4.274,892,4.274,893,4.274,894,6.093,895,4.274,896,3.821,897,2.736,898,3.821]],["t/178",[0,0.254,9,1.226,12,1.843,27,2.523,28,0.764,30,2.141,40,1.496,58,2.094,61,0.453,95,1.237,117,3.038,118,1.715,119,3.055,125,2.563,187,3.747,216,2.659,235,1.636,245,1.505,246,0.932,274,0.995,323,2.674,335,2.534,337,2.915,419,1.212,458,1.505,523,3.569,526,1.815,568,2.295,597,4.335,605,3.368,621,1.815,633,1.317,673,3.615,778,1.717,853,4.395,885,4.456,896,2.102,897,4.282,898,3.441,899,2.102,900,2.102,901,2.351,902,2.102,903,2.102,904,2.351,905,2.102,906,1.938,907,2.102,908,2.351,909,1.815,910,2.678,911,2.971,912,4.886,913,4.886,914,3.772,915,4.886,916,4.886,917,3.772,918,1.938,919,2.351]],["t/180",[9,1.474,28,1.255,61,0.783,77,1.945,98,3.137,105,1.168,117,2.422,150,2.507,236,4.291,274,1.05,335,1.35,384,3.913,386,3.384,390,4.842,414,1.445,471,1.581,546,2.601,609,4.536,610,4.842,614,4.842,636,2.151,637,2.968,643,5.252,695,2.827,849,2.151,853,4.509,909,4.536,920,4.063,921,5.875,922,4.063,923,4.063,924,4.063,925,4.536,926,3.632,927,4.063,928,5.875,929,5.875,930,4.063,931,4.063,932,5.875,933,5.875,934,4.063,935,4.063,936,3.632,937,4.063,938,4.063]],["t/182",[0,0.483,9,0.52,12,1.659,27,0.666,28,1.095,39,2.303,40,1.368,60,1.096,61,1.12,62,2.676,73,0.871,78,1.016,79,1.837,94,0.645,105,1.285,117,0.854,134,1.068,152,1.127,161,1.278,170,0.969,172,1.211,182,1.599,189,1.041,190,2.676,202,1.852,206,1.127,212,1.38,213,2.667,228,3.683,230,1.441,235,1.441,237,2.531,244,1.127,245,1.326,260,2.411,267,1.513,289,1.513,306,2.138,323,0.889,331,1.068,335,0.688,344,1.806,345,1.707,349,3.45,351,0.948,376,2.218,378,1.599,379,1.196,387,0.871,395,2.86,399,1.852,433,1.096,435,1.441,486,2.976,491,2.676,519,4.045,520,1.707,521,1.852,523,2.531,533,3.016,541,1.38,554,1.326,558,3.264,567,1.326,568,0.763,573,1.441,579,1.235,665,2.664,667,1.707,689,1.621,709,1.707,710,1.599,741,1.852,751,1.235,754,1.707,766,1.278,784,1.599,849,2.765,853,3.115,884,1.326,939,1.707,940,2.071,941,1.852,942,3.683,943,3.098,944,2.071,945,2.071,946,2.071,947,3.465,948,2.071,949,2.071,950,3.995,951,2.856,952,1.852,953,2.071,954,3.098,955,2.071,956,1.599,957,3.465,958,2.071,959,6.287,960,2.071,961,2.071,962,1.852,963,2.071,964,3.683,965,1.513,966,3.098,967,2.856,968,1.599,969,2.071,970,1.513,971,2.071,972,2.071]],["t/184",[0,0.802,169,3.928,766,4.579,775,4.75,855,4.943,856,5.42,857,6.116]],["t/186",[0,0.943,820,5.42,973,6.634,974,5.42,975,7.42,976,6.116]],["t/188",[0,0.896,11,2.704,90,2.904,172,2.02,209,2.167,274,1.494,335,1.92,351,2.644,387,2.43,430,4.221,443,2.48,727,4.221,789,5.166,851,4.221,976,6.837,977,4.763,978,7.481,979,4.461,980,5.778,981,5.778,982,5.778,983,5.778,984,5.778,985,5.778]],["t/190",[61,1.224,83,2.183,84,3.363,169,4.206,317,3.789,976,7.488,986,5.68,987,6.354,988,6.354,989,6.354,990,6.354,991,6.354,992,6.354,993,6.354,994,6.354,995,6.354]],["t/192",[0,0.915,172,2.466,255,4.074,351,3.228,438,4.517,443,3.028,585,5.154,680,5.448,723,4.909,858,6.308]],["t/194",[0,0.48,9,1.114,28,1.231,29,1.948,61,1.396,73,1.867,77,2.126,81,1.83,93,3.243,94,1.381,95,1.427,105,1.277,108,3.243,113,3.659,187,3.506,200,2.231,204,2.126,220,4.355,274,1.148,359,2.842,385,4.169,386,3.86,512,4.572,528,2.35,616,3.969,723,3.089,979,3.427,996,3.969,997,4.439,998,3.969,999,3.243,1000,3.427,1001,4.439,1002,4.439,1003,4.439,1004,4.439,1005,3.243,1006,3.614,1007,4.439,1008,6.259,1009,4.439,1010,3.969,1011,4.439,1012,4.439]],["t/196",[9,1.511,61,1.479,162,4.398,208,2.258,248,5.344,705,5.383,782,6.331,849,4.477,1013,6.021,1014,6.021,1015,5.383,1016,5.116,1017,7.681,1018,5.383,1019,6.021,1020,6.021,1021,5.383,1022,6.021]],["t/198",[0,0.783,9,2.16,11,4.028,29,2.255,81,2.268,93,6.288,117,2.268,187,3.082,213,1.859,227,3.641,248,3.828,258,4.248,335,1.828,416,2.574,512,4.019,579,3.281,633,3.082,666,4.826,1023,4.919,1024,5.502,1025,5.502]],["t/200",[0,0.732,9,2.074,29,2.108,61,1.305,65,1.77,73,2.849,81,2.052,83,2.328,94,1.549,95,1.6,104,3.463,124,3.316,200,3.405,264,3.463,351,2.277,379,3.912,432,3.463,441,3.636,443,2.136,548,3.072,689,2.329,910,3.463,996,4.45,1016,5.507,1026,4.978,1027,6.775,1028,4.978,1029,4.45,1030,6.775,1031,4.978]],["t/202",[9,1.886,61,1.448,220,5.23,274,1.943,441,5.491,689,3.517]],["t/204",[0,0.607,9,0.958,28,1.472,46,3.027,76,2.078,105,1.098,150,3.466,208,2.107,209,1.433,220,2.658,268,3.415,271,2.139,385,2.544,386,2.754,387,1.606,395,2.445,443,1.639,464,2.949,519,2.658,540,2.658,546,3.595,579,2.278,766,2.357,849,3.526,998,3.415,1010,3.415,1021,3.415,1032,3.82,1033,3.82,1034,5.616,1035,3.82,1036,3.82,1037,3.82,1038,3.82,1039,3.82,1040,3.82,1041,3.82,1042,3.82,1043,3.82,1044,3.82,1045,3.415,1046,3.82,1047,3.82,1048,3.82,1049,3.82,1050,3.82,1051,3.82,1052,3.82,1053,3.82,1054,3.415,1055,3.82,1056,3.82,1057,3.148,1058,3.82,1059,3.148,1060,3.82]],["t/206",[0,0.78,9,2.155,27,1.416,28,1.381,32,3.065,81,2.566,93,5.73,94,1.937,95,2.001,119,2.16,208,1.652,257,2.627,274,1.609,374,1.93,395,2.82,414,1.567,621,3.401,633,3.487,704,3.218,840,6.821,910,3.065,936,5.565,1045,3.938,1061,3.631,1062,4.405,1063,4.405,1064,4.405,1065,6.225,1066,4.405,1067,4.405,1068,3.938,1069,4.405,1070,3.938]],["t/208",[9,1.749,28,1.09,73,3.537,76,4.916,227,4.227,1023,7.52,1071,6.97]],["t/210",[0,0.702,9,1.63,61,1.251,93,4.746,118,1.386,149,3.04,213,2.195,227,3.265,257,3.874,258,5.016,571,4.159,633,3.639,723,4.521,1072,8.058,1073,6.497,1074,6.497,1075,6.497]],["t/212",[0,0.36,2,2.76,3,1.46,4,0.958,5,2.573,6,2.573,7,2.979,9,1.272,10,1.634,11,2.373,16,2.225,29,1.91,32,2.319,65,1.803,79,0.874,81,2.09,118,1.31,169,1.764,199,2.319,208,1.25,213,1.126,221,1.634,223,2.09,224,1.902,227,1.675,231,2.319,246,2.721,258,2.573,272,2.373,274,1.311,275,2.573,281,2.573,302,1.764,331,1.718,335,1.685,344,1.347,352,2.056,371,1.867,387,1.401,466,1.675,471,1.297,476,2.573,478,3.024,495,1.924,548,2.056,568,2.528,587,2.979,633,1.867,651,2.22,655,1.924,673,2.133,764,2.434,774,2.573,786,1.559,836,2.747,851,4.484,885,3.378,887,2.434,897,2.133,899,2.979,1005,2.434,1076,3.332,1077,2.979,1078,3.332,1079,2.434,1080,3.332,1081,3.332,1082,3.332,1083,2.319,1084,3.332,1085,2.573,1086,3.332,1087,3.332,1088,2.979]],["t/214",[0,0.572,3,2.322,9,1.329,11,2.479,72,3.687,73,2.228,81,2.184,94,2.639,95,2.272,118,1.508,170,2.479,205,2.884,302,2.805,335,1.76,387,2.228,414,1.884,441,5.162,568,1.952,584,2.884,636,2.805,663,4.737,783,3.53,883,3.687,887,3.871,911,4.091,974,3.871,1005,3.871,1089,4.737,1090,4.737,1091,4.367,1092,4.737,1093,5.299]],["t/216",[0,0.702,73,2.732,76,3.536,77,3.111,94,2.022,108,4.746,184,5.809,189,3.265,385,4.328,416,3.04,609,5.016,666,4.328,847,5.355,848,5.355,849,3.439,850,5.809,886,4.746,1094,5.809]],["t/218",[0,0.637,50,3.321,94,1.835,133,3.209,291,4.103,344,2.384,413,4.52,414,2.097,426,3.516,554,3.775,634,4.861,636,3.122,723,4.103,823,4.861,974,4.308,1095,5.897,1096,4.103,1097,5.897,1098,5.897,1099,5.897,1100,5.897,1101,5.897,1102,5.272,1103,5.272,1104,4.308]],["t/220",[0,0.727,16,2.027,28,1.052,29,2.093,61,1.295,274,2.128,304,3.767,335,2.234,344,2.719,528,3.56,909,5.193,1105,6.725,1106,8.231]],["t/222",[0,0.781,137,3.309,227,3.635,397,4.818,550,5.585,660,5.585,1107,4.63,1108,7.233,1109,7.233]],["t/224",[0,0.356,3,1.443,6,2.543,12,1.577,28,0.786,61,0.634,65,1.171,71,2.194,73,1.385,75,2.406,77,1.577,78,2.989,81,2.072,83,1.132,88,2.292,94,1.564,95,1.959,105,0.947,118,0.703,119,2.465,133,1.793,137,1.507,149,1.541,209,1.885,220,2.292,242,2.109,246,1.306,272,2.352,274,0.852,275,2.543,344,1.332,374,1.443,414,1.171,426,1.964,428,3.52,466,1.655,471,1.282,495,3.52,540,3.498,548,2.033,554,2.109,568,1.214,571,2.109,597,2.292,599,2.715,636,1.744,680,2.543,708,2.109,724,2.109,728,2.715,781,2.406,783,2.194,786,1.541,853,1.964,856,2.406,881,2.406,911,2.543,1006,1.902,1104,2.406,1110,5.622,1111,3.294,1112,2.715,1113,4.494,1114,3.294,1115,3.498,1116,2.945,1117,2.945,1118,6.82,1119,3.294,1120,5.027,1121,2.945,1122,3.294,1123,3.294,1124,3.294,1125,3.294,1126,3.294,1127,5.449,1128,3.294]],["t/226",[0,0.921,9,1.08,61,1.18,79,1.13,90,2.164,94,1.34,95,1.384,107,2.868,110,1.928,118,0.919,137,1.97,162,3.145,209,1.615,284,4.08,397,2.868,414,1.531,428,2.487,432,2.996,433,2.279,435,2.996,443,1.848,471,1.676,495,2.487,504,2.657,506,3.549,546,2.757,550,3.325,568,1.586,584,2.343,617,4.474,633,2.412,749,3.145,752,3.325,778,3.145,962,3.85,1059,3.549,1083,2.996,1107,4.971,1129,4.306,1130,3.145,1131,2.657,1132,3.145,1133,4.306,1134,4.306,1135,4.474,1136,4.306,1137,4.306,1138,4.306,1139,4.306,1140,4.306,1141,4.306]],["t/228",[0,0.613,8,2.947,9,1.424,11,2.154,28,0.72,29,0.915,40,1.41,46,1.898,50,1.288,78,3.418,79,0.772,80,2.851,90,2.851,94,2.301,95,2.484,110,2.061,124,3.067,137,1.345,150,2.841,171,2.423,189,1.478,200,2.314,209,1.727,213,0.993,227,1.478,255,1.698,260,2.046,284,3.067,305,2.27,317,1.753,335,1.529,341,3.067,343,3.596,372,1.6,384,1.958,397,1.958,414,1.046,419,1.516,443,1.262,444,1.958,471,2.208,480,2.947,519,3.203,567,1.882,617,4.145,628,3.203,641,2.423,656,1.958,669,2.629,684,2.27,750,2.841,786,2.655,925,2.27,1054,2.629,1070,2.629,1083,2.046,1091,2.423,1107,1.882,1142,2.94,1143,2.629,1144,2.94,1145,2.94,1146,2.94,1147,5.073,1148,2.94,1149,2.629,1150,2.94,1151,2.94,1152,2.94,1153,2.94,1154,2.046,1155,2.94,1156,2.94,1157,2.94]],["t/230",[8,2.21,25,2.846,28,1.28,40,1.057,61,0.665,78,3.677,79,1.367,80,1.735,83,1.186,94,2.174,95,2.246,172,1.207,205,1.879,209,1.295,213,1.76,244,1.879,253,2.846,260,2.402,323,1.482,353,2.3,428,3.622,435,2.402,438,2.21,444,4.654,460,2.13,461,2.666,479,1.78,531,3.087,564,4.293,568,2.762,584,2.835,626,2.846,629,3.087,633,1.934,645,3.087,655,1.994,656,2.3,665,3.106,707,2.666,710,2.666,846,2.846,906,2.846,942,2.846,1083,2.402,1113,5.608,1158,3.087,1159,3.452,1160,3.087,1161,3.452,1162,3.452,1163,3.452,1164,3.452,1165,3.452,1166,3.087,1167,3.452,1168,3.452,1169,3.452,1170,3.452,1171,3.452,1172,3.452,1173,3.452,1174,3.452,1175,3.452,1176,3.087]],["t/232",[0,0.65,28,1.407,40,1.286,61,0.809,78,3.622,79,0.687,80,2.111,83,0.9,94,1.307,95,2.468,118,1.284,137,2.406,149,1.225,172,1.838,189,1.316,204,1.254,208,0.982,209,1.972,216,2.286,244,2.286,251,2.341,257,3.136,267,1.913,335,1.395,343,1.467,353,3.503,372,1.425,387,1.101,414,0.931,428,1.512,433,2.223,444,2.798,480,1.676,546,1.676,554,2.689,568,2.59,579,1.561,584,3.274,599,4.334,628,1.822,636,1.386,638,1.676,647,3.462,655,1.512,684,2.022,686,4.334,707,2.022,721,3.462,951,2.158,977,2.158,1083,1.822,1096,1.822,1107,1.676,1110,2.158,1115,4.892,1143,2.341,1154,1.822,1177,2.619,1178,2.158,1179,2.619,1180,2.158,1181,2.619,1182,2.341,1183,2.619,1184,2.619,1185,2.619,1186,4.2,1187,2.619,1188,2.619,1189,2.619,1190,2.619,1191,2.619,1192,2.619,1193,2.341]],["t/234",[3,1.652,13,1.805,27,1.212,28,1.514,72,2.623,80,1.894,99,4.599,117,3.008,118,1.738,119,3.993,120,3.107,124,3.705,125,3.705,126,4.584,127,4.063,128,4.584,284,2.511,304,2.111,323,1.618,562,3.87,698,3.107,759,3.37,822,4.972,914,4.294,1107,2.413,1116,3.37,1135,4.063,1194,4.294,1195,3.769,1196,3.769,1197,3.769,1198,3.37,1199,3.769,1200,3.769,1201,3.769,1202,3.769,1203,5.562,1204,3.769]],["t/236",[0,0.658,4,2.656,16,1.288,27,1.374,28,0.953,55,2.847,61,1.174,65,1.52,80,2.148,81,1.762,84,2.262,104,2.974,105,1.229,110,1.913,118,0.912,205,2.326,213,1.444,223,2.512,224,2.663,246,2.416,274,1.575,359,2.736,372,2.326,412,3.523,416,3.322,433,2.262,454,2.468,473,3.225,573,4.239,605,2.549,627,2.847,636,2.262,640,3.821,678,2.736,852,3.523,856,3.122,1015,3.821,1205,4.274,1206,4.274,1207,4.274,1208,3.821,1209,4.274,1210,4.274]],["t/238",[16,2.101,65,2.479,79,1.829,95,2.24,169,3.69,172,2.436,224,2.614,279,3.793,337,3.261,568,2.568,584,3.793,1211,6.97]],["t/240",[16,1.981,65,2.886,79,1.724,105,1.89,205,3.576,246,3.218,272,3.797,337,3.075,466,3.302,544,4.8,786,3.075,1006,4.686,1016,4.377]],["t/242",[2,3.703,5,5.254,16,2.051,61,1.311,118,1.452,238,5.609,246,2.699,274,1.759,306,4.199,335,2.754,337,3.184,786,3.184,883,4.735]],["t/244",[11,4.219,12,2.469,16,1.554,19,3.766,25,4.25,28,1.227,31,3.766,61,1.337,81,2.126,83,1.772,213,2.834,221,2.528,223,2.126,224,1.934,254,3.182,274,1.794,331,3.577,344,2.084,351,2.359,352,3.182,466,2.591,495,2.977,533,2.977,655,2.977,808,5.357,926,4.61,1212,5.156]],["t/246",[9,1.687,29,2.093,61,1.295,71,4.48,118,1.435,223,2.772,224,2.523,279,3.66,384,4.48,851,4.913,883,4.679,1213,6.725,1214,6.725,1215,6.013,1216,6.725]],["t/248",[29,2.143,79,1.807,221,3.377,223,2.839,224,2.583,274,1.78,335,2.288,471,2.68,473,3.645,476,5.317,512,6.1,774,5.317]],["t/250",[29,2.561,32,4.679,61,1.295,79,1.765,118,1.435,224,2.523,255,3.883,256,4.48,281,5.193,337,3.147,471,2.617,568,2.478,585,4.913,1217,6.725]],["t/252",[3,3.411,4,1.769,9,2.143,11,3.642,14,5.069,15,5.498,17,5.498,18,5.686,20,6.416,21,5.069,55,4.096,84,3.255,221,3.015,254,3.795,379,3.551,690,5.069,1131,3.795]],["t/254",[0,0.808,19,4.221,50,2.532,61,1.113,69,3.237,70,5.205,71,4.983,72,4.021,73,3.146,74,5.166,75,4.221,76,4.071,78,2.833,81,2.382,82,5.166,84,3.96,85,5.166,86,4.763,107,3.849,108,4.221,571,3.699,1218,5.778,1219,5.778]],["t/256",[5,4.748,11,2.877,16,2.575,65,2.187,79,1.614,86,5.069,118,1.312,211,4.492,212,4.096,213,2.077,223,2.535,224,2.307,227,3.09,274,1.59,373,3.667,376,3.937,478,3.667,751,3.667,1220,5.498,1221,6.15,1222,6.15]],["t/258",[4,1.934,79,1.765,84,3.56,169,4.708,170,3.147,197,5.193,239,5.543,678,4.305,1223,6.013,1224,6.725,1225,6.725,1226,6.725,1227,6.725]],["t/260",[0,0.791,9,1.838,50,3.21,80,3.681,274,2.24,386,3.592,571,4.689]],["t/262",[0,0.861,4,0.837,9,0.73,10,1.427,28,1.085,40,0.891,61,1.418,77,1.393,79,1.199,80,1.463,83,1,90,1.463,94,1.754,95,1.468,105,0.837,118,1.203,149,1.362,152,3.474,200,1.463,206,1.584,213,0.983,222,2.025,242,1.863,246,1.154,259,1.796,291,3.178,302,1.541,304,2.558,317,1.735,323,1.96,343,1.63,344,1.177,374,1.275,386,1.427,414,2.005,443,1.249,471,1.133,479,1.5,504,1.796,536,1.735,568,1.072,583,2.025,584,1.584,617,2.126,636,2.984,665,1.735,689,2.137,713,2.399,749,2.126,750,3.478,800,2.025,817,1.939,849,1.541,855,1.939,857,2.399,884,3.608,886,2.126,999,5.067,1000,5.683,1079,2.126,1085,2.247,1096,2.025,1107,1.863,1131,1.796,1135,3.336,1228,3.764,1229,2.247,1230,2.399,1231,2.399,1232,2.399,1233,2.247,1234,2.399,1235,2.399,1236,2.126,1237,2.399,1238,2.247,1239,2.247,1240,2.126,1241,2.247]],["t/264",[0,0.858,4,1.827,61,1.224,79,1.667,94,1.977,302,3.363,374,2.784,414,2.259,479,3.275,583,4.421,636,3.363,689,2.973,750,3.921,817,4.232,855,4.232,999,5.804,1085,4.905,1229,4.905]],["t/266",[0,0.909,61,1.62,291,4.85,323,2.991,1000,5.381,1135,5.091,1228,5.745,1230,5.745,1231,5.745,1232,5.745]],["t/268",[0,0.727,79,1.765,83,2.311,94,2.093,95,2.162,105,1.934,200,3.38,206,3.66,213,2.272,317,4.01,323,2.886,343,3.767,1233,5.193,1234,5.543,1235,5.543]],["t/270",[0,0.791,80,3.681,95,2.355,118,1.563,246,2.905,386,3.592,584,3.986,665,4.368]],["t/272",[0,0.798,10,2.778,40,1.735,94,1.763,118,1.209,149,2.65,152,4.471,222,3.941,242,3.626,259,3.495,443,2.431,471,2.204,689,2.65,750,4.557,800,3.941,849,2.999,884,4.727,886,4.138,1079,4.138,1096,3.941,1236,4.138,1237,4.669,1238,4.374,1239,4.374,1240,4.138,1241,4.374]],["t/274",[0,0.727,79,1.765,83,2.311,94,2.093,95,2.162,105,1.934,200,3.38,206,3.66,213,2.272,317,4.01,323,2.886,343,3.767,1233,5.193,1234,5.543,1235,5.543]],["t/276",[0,0.665,8,3.942,28,1.219,80,2.18,83,1.491,94,1.916,95,1.979,149,2.03,187,2.43,209,1.627,223,1.789,233,3.35,235,3.019,236,4.498,317,3.672,341,2.89,343,3.449,372,2.361,376,2.777,379,2.505,442,3.019,471,1.688,633,2.43,678,2.777,786,2.03,815,3.879,855,2.89,939,3.576,1104,3.169,1107,2.777,1131,2.677,1147,3.879,1233,6.353,1242,4.339,1243,6.158,1244,7.159,1245,4.339,1246,4.339,1247,4.339,1248,4.339,1249,4.339,1250,4.339,1251,4.339,1252,4.339,1253,4.339]],["t/278",[0,0.783,61,1.06,76,2.994,83,2.489,189,2.765,204,2.634,208,2.064,344,2.224,387,2.314,426,4.32,430,4.019,701,4.919,727,4.019,774,4.248,1005,4.019,1090,4.919,1102,4.919,1103,6.477,1104,4.019,1127,6.477,1254,7.245,1255,4.919,1256,4.919,1257,4.919,1258,4.919,1259,5.502,1260,5.502,1261,4.919]],["t/280",[230,5.3,571,4.876,751,4.542,775,4.876,1255,6.81]],["t/282",[0,0.833,40,1.299,58,2.309,61,1.167,76,4.617,79,1.113,80,2.132,94,1.32,104,4.217,172,1.483,208,2.273,240,3.276,274,1.097,310,3.793,331,2.187,335,1.409,351,1.941,373,2.53,379,2.45,428,2.45,433,2.246,436,3.497,449,3.276,460,3.74,461,3.276,466,2.132,546,2.716,573,2.952,589,3.793,665,2.53,699,3.497,711,3.099,910,2.952,917,3.276,956,3.276,1104,3.099,1194,3.276,1256,6.321,1257,3.793,1258,3.793,1261,3.793,1262,4.243,1263,4.243,1264,4.243,1265,4.243,1266,4.243,1267,4.243,1268,4.243,1269,4.243,1270,4.243,1271,4.243]],["t/284",[0,0.862,28,1.425,40,1.403,61,0.882,94,1.991,95,1.472,172,1.601,189,2.302,197,3.537,242,4.096,318,2.566,387,1.926,433,2.425,445,5.72,450,3.776,542,3.346,568,1.688,604,6.077,820,3.346,1088,4.095,1158,5.72,1272,6.398,1273,6.398,1274,6.398,1275,4.581,1276,4.581,1277,4.581,1278,4.581,1279,4.581,1280,4.581,1281,4.581,1282,6.398,1283,6.398,1284,4.581]],["t/286",[0,0.691,61,0.882,69,2.566,79,1.679,94,1.426,105,1.317,161,2.827,182,3.537,212,3.051,213,2.491,230,3.187,304,2.566,323,1.966,331,3.298,335,1.522,343,2.566,349,5.692,351,2.927,387,1.926,395,2.932,533,4.257,541,3.051,656,3.051,716,3.051,755,4.095,766,2.827,844,3.776,906,3.776,964,6.077,965,4.673,966,5.72,967,5.273,968,3.537,970,3.346,1132,3.346,1285,4.581,1286,4.581,1287,4.581,1288,4.581,1289,4.581]],["t/288",[0,0.798,10,2.778,40,1.735,94,1.763,118,1.209,149,2.65,152,4.471,222,3.941,242,3.626,259,3.495,443,2.431,471,2.204,689,2.65,750,4.557,800,3.941,849,2.999,884,4.727,886,4.138,1079,4.138,1096,3.941,1236,4.138,1237,4.669,1238,4.374,1239,4.374,1240,4.138,1241,4.374]],["t/290",[2,4.035,10,2.795,13,1.866,18,2.847,24,2.596,27,1.832,28,1.498,30,1.708,33,2.847,34,2.847,40,1.194,46,2.35,94,2.097,110,1.745,134,2.009,135,2.712,137,1.783,143,2.495,149,1.823,152,4.035,189,1.959,204,2.729,208,2.138,212,2.596,304,2.183,335,1.295,360,3.517,386,1.911,419,2.009,585,2.847,636,2.063,689,3.153,775,2.495,790,3.484,794,3.484,796,3.484,798,3.484,799,3.484,800,2.712,1194,3.009,1290,3.897,1291,3.897,1292,5.7,1293,3.897,1294,3.897]],["t/292",[0,0.488,24,1.91,27,0.922,28,1.42,37,3.127,88,1.995,94,1.405,118,0.612,134,1.478,152,4.544,172,1.002,200,1.441,208,1.075,213,1.525,222,1.995,227,1.441,231,1.995,233,5.317,259,1.769,305,2.213,306,1.769,335,1.855,343,1.606,344,1.825,351,1.312,376,2.889,387,1.206,419,1.478,443,1.23,486,1.91,491,2.213,504,1.769,520,2.363,559,2.563,628,1.995,660,2.213,665,1.709,689,1.341,712,2.094,750,1.769,752,2.213,773,2.563,844,2.363,856,2.094,887,2.094,942,2.363,986,2.563,1059,2.363,1077,2.563,1079,3.297,1238,2.213,1239,2.213,1240,2.094,1241,2.213,1295,2.867,1296,2.867,1297,2.867,1298,2.867,1299,2.563,1300,2.867,1301,4.513,1302,2.867,1303,2.867,1304,2.867,1305,2.563,1306,2.867,1307,2.867,1308,2.867,1309,2.867,1310,2.867,1311,2.563,1312,2.867,1313,2.867,1314,4.991,1315,4.991,1316,2.867,1317,4.991,1318,2.867,1319,2.867,1320,2.867,1321,2.563,1322,2.867,1323,4.513,1324,2.867]],["t/294",[0,0.684,2,2.454,3,1.976,10,2.211,16,1.359,28,0.99,61,1.219,117,1.859,118,0.962,152,4.313,172,1.576,222,3.137,341,3.003,351,2.063,471,2.462,479,2.324,618,3.294,630,3.294,656,3.003,689,3.42,704,3.294,708,2.886,777,4.031,786,2.961,814,3.716,849,4.196,853,2.689,881,3.294,888,4.885,925,4.885,965,3.294,1180,3.716,1311,4.031,1325,4.509,1326,4.031,1327,4.031,1328,4.509,1329,4.031,1330,4.509,1331,4.509,1332,4.509,1333,4.509]],["t/296",[0,0.536,9,0.812,12,1.551,24,2.157,28,1.324,37,1.814,80,1.627,88,2.253,117,1.335,134,1.669,152,3.679,208,1.215,210,2.365,213,1.676,233,4.657,242,2.073,245,2.073,290,1.998,305,2.5,323,1.39,341,2.157,343,1.814,351,1.482,353,2.157,373,1.931,419,1.669,433,1.714,460,1.998,471,1.26,480,2.073,500,2.5,580,3.062,605,2.959,618,2.365,630,2.365,665,1.931,684,2.5,689,3.598,695,2.253,708,2.073,709,2.669,752,2.5,786,1.515,849,3.193,853,1.931,881,2.365,884,5.53,888,3.831,890,2.895,925,2.5,1018,2.895,1180,2.669,1240,2.365,1314,2.895,1315,2.895,1317,2.895,1321,2.895,1327,2.895,1329,2.895,1334,2.895,1335,3.238,1336,3.238,1337,3.238,1338,3.238,1339,3.238,1340,2.895,1341,3.238,1342,3.238,1343,3.238,1344,3.238,1345,3.238,1346,3.238,1347,3.238]],["t/298",[0,0.707,4,1.361,23,3.653,24,3.152,32,3.292,45,3.9,69,2.65,79,1.242,134,3.373,136,3.9,152,4.623,200,2.378,209,1.775,213,1.598,261,4.23,289,3.456,359,3.029,419,3.373,547,4.23,562,3.292,579,2.822,678,3.029,689,2.214,788,4.23,840,3.9,884,4.189,887,3.456,1057,3.9,1149,4.23,1326,4.23,1348,4.732,1349,4.732,1350,4.23,1351,4.732,1352,4.732,1353,4.23,1354,4.732,1355,4.732,1356,4.732,1357,4.732,1358,4.732,1359,4.732,1360,4.732]],["t/300",[0,0.825,28,0.765,73,2.058,78,3.283,80,2.459,81,2.017,83,1.681,94,2.084,95,2.454,117,2.017,118,1.629,192,4.374,199,3.404,208,1.835,246,1.94,253,4.033,384,3.259,386,3.283,528,2.59,533,2.825,568,2.812,584,3.644,665,2.918,716,3.259,776,4.374,848,4.033,1083,3.404,1091,4.033,1092,4.374,1115,4.659,1160,4.374,1361,4.893,1362,4.893,1363,4.374]],["t/302",[9,2.08,95,2.187,246,3.288,274,1.759,335,2.261,384,4.533,386,3.337,419,4.274,479,3.508,956,5.254,1154,4.735]],["t/304",[0,0.438,9,1.82,12,1.199,16,0.755,28,1.307,50,1.097,55,1.668,61,0.482,71,3.399,72,1.743,79,1.339,90,2.036,94,1.261,95,2.332,105,0.72,118,0.534,134,1.291,149,1.172,189,2.036,204,2.807,209,0.939,213,1.724,216,1.363,227,1.259,230,1.743,231,1.743,236,3.728,262,2.064,267,2.96,289,1.829,291,1.743,302,1.326,304,2.27,335,0.832,359,1.603,386,3.557,397,1.668,414,2.686,435,1.743,443,1.075,548,1.545,567,1.603,568,1.493,579,1.493,583,1.743,609,3.128,610,3.34,611,3.623,612,3.623,614,3.34,622,3.623,628,1.743,633,1.403,636,1.326,651,1.668,676,1.934,678,1.603,749,2.96,754,2.064,766,1.545,778,1.829,782,2.064,786,1.896,820,1.829,907,2.239,973,2.239,974,1.829,979,1.934,1057,2.064,1115,2.819,1130,1.829,1131,1.545,1132,1.829,1154,1.743,1340,2.239,1353,2.239,1364,2.504,1365,2.504,1366,2.504,1367,4.052,1368,4.052,1369,4.052,1370,2.504,1371,3.623,1372,4.052,1373,2.504,1374,2.504,1375,2.504,1376,2.504,1377,2.504,1378,2.504]],["t/306",[11,3.564,61,1.467,213,2.573,274,1.969,1379,7.617]],["t/308",[0,0.758,9,1.049,40,1.28,50,2.628,79,1.574,94,2.182,95,2.795,105,2.017,189,2.101,208,1.568,213,1.412,246,1.658,274,1.813,373,2.493,384,3.995,386,2.941,397,2.785,414,1.487,416,1.956,419,2.155,433,3.175,504,2.58,528,2.213,546,2.676,568,2.209,571,3.839,627,2.785,628,4.173,630,3.054,631,3.738,633,2.342,676,3.228,711,3.054,965,3.054,968,3.228,1130,3.054,1131,2.58,1132,3.054,1154,2.909,1182,3.738,1371,3.738,1380,4.181,1381,4.181,1382,5.997]],["t/310",[9,1.953,50,2.695,61,1.184,95,2.886,105,2.239,117,3.209,206,3.346,252,4.748,274,1.59,304,3.445,486,5.186,523,4.492,533,3.551,889,5.498,1383,6.15,1384,6.15]],["t/312",[61,1.326,78,4.094,94,2.143,95,2.214,149,3.222,187,3.857,246,2.731,252,5.317,428,3.977,554,4.408,724,4.408,1385,6.887]],["t/314",[0,0.48,60,2.35,61,0.855,73,1.867,75,3.243,78,4.617,80,2.231,81,1.83,94,2.256,95,2.012,118,1.335,168,2.563,170,2.077,198,3.969,208,1.665,372,3.406,414,1.579,428,2.563,444,4.829,449,3.427,554,4.006,567,2.842,568,2.306,704,3.243,724,4.006,750,2.739,764,3.243,855,2.957,883,3.089,1115,5.477,1166,3.969,1176,3.969,1386,4.439,1387,4.439,1388,4.439,1389,4.439]],["t/316",[40,1.925,78,3.081,87,5.618,94,1.956,95,2.537,105,1.807,213,2.123,335,2.622,373,3.747,386,3.081,441,4.59,486,5.257,536,3.747,1130,4.59,1154,4.372,1390,6.284,1391,6.284,1392,6.284]],["t/318",[0,0.723,40,1.498,44,3.574,46,2.017,73,2.058,78,4.216,81,2.017,94,1.523,95,2.152,118,1.629,134,2.522,137,3.064,149,2.289,168,2.825,170,2.289,172,1.71,205,2.663,209,1.835,344,1.978,360,3.019,444,4.46,480,3.132,544,3.574,554,3.132,568,1.802,584,2.663,724,4.287,939,4.033,1096,3.404,1112,5.519,1193,4.374,1393,4.893,1394,4.893,1395,4.893,1396,4.893]],["t/320",[4,1.432,28,0.779,30,2.181,40,1.524,78,4.241,79,1.306,110,3.033,118,1.764,137,2.277,149,2.329,191,4.45,204,3.244,208,2.541,209,1.867,216,2.709,217,4.103,244,2.709,279,2.709,323,2.908,344,2.012,444,3.316,460,3.072,552,3.843,686,4.103,764,3.636,1115,3.463,1117,4.45,1397,4.978,1398,6.775,1399,4.978,1400,4.978,1401,4.45,1402,4.978]],["t/322",[0,0.65,61,1.16,79,1.58,161,3.715,182,4.648,212,4.01,213,2.034,349,6.53,395,3.854,533,3.477,541,4.01,766,3.715,964,6.971,965,4.398,967,6.331,968,4.648,970,4.398,1403,6.021,1404,6.021,1405,6.021]],["t/324",[8,1.617,12,1.954,23,1.951,27,1.894,28,0.803,39,3.334,40,1.572,46,1.682,48,1.459,60,2.717,61,0.786,62,1.951,79,0.663,105,2.59,117,1.041,133,2.793,134,1.302,150,1.559,167,1.951,170,1.182,189,1.27,190,1.951,206,1.375,213,2.715,232,3.648,239,2.082,244,1.375,274,0.653,331,1.302,335,0.839,351,1.156,373,2.433,374,1.788,376,1.617,378,1.951,379,1.459,426,1.507,475,1.758,478,1.507,481,3.648,486,4.309,519,3.572,523,1.845,528,1.337,533,3.403,558,5.053,562,1.758,565,2.259,604,2.082,646,1.845,695,1.758,710,1.951,724,1.617,728,2.082,779,2.082,783,1.683,784,1.951,852,3.363,909,1.951,917,1.951,941,2.259,943,2.259,950,6.185,951,3.363,952,2.259,954,2.259,956,1.951,1121,2.259,1131,1.559,1215,2.259,1220,2.259,1236,1.845,1406,6.468,1407,2.526,1408,2.526,1409,2.526,1410,2.526,1411,2.526,1412,4.081,1413,4.081,1414,2.526,1415,2.526]],["t/326",[0,0.892,9,0.984,11,1.836,16,1.183,28,1.058,61,1.433,117,1.618,187,2.198,213,1.326,216,2.135,259,2.421,274,1.014,291,2.73,304,2.198,323,2.458,331,2.023,344,1.586,353,2.614,387,1.65,395,4.331,414,1.395,432,2.73,443,1.684,460,2.421,617,2.866,636,2.077,689,1.836,711,2.866,808,3.03,883,2.73,970,4.184,977,3.234,999,4.942,1000,5.223,1061,3.234,1107,2.512,1110,3.234,1135,2.866,1228,4.721,1230,3.234,1231,3.234,1232,3.234,1334,3.508,1416,3.924,1417,3.924,1418,3.924,1419,5.728,1420,6.048,1421,3.924,1422,3.508,1423,3.924,1424,3.508,1425,3.924,1426,3.508]],["t/328",[0,0.858,4,1.827,61,1.224,79,1.667,94,1.977,302,3.363,374,2.784,414,2.259,479,3.275,583,4.421,636,3.363,689,2.973,750,3.921,817,4.232,855,4.232,999,5.804,1085,4.905,1229,4.905]],["t/330",[0,0.871,11,2.55,16,1.643,28,1.126,61,1.05,117,2.247,213,1.841,274,1.409,331,2.809,353,3.63,387,2.292,395,5.161,443,2.339,460,3.363,711,3.981,808,4.208,970,5.259,1061,4.492,1420,7.208,1422,4.872,1424,4.872,1426,4.872,1427,7.2,1428,5.45,1429,5.45,1430,5.45]],["t/332",[0,0.686,4,1.827,65,2.259,105,1.827,205,3.457,246,3.439,256,4.232,272,4.057,274,1.642,275,4.905,466,3.193,568,2.341,786,2.973,1006,4.588,1431,6.354]],["t/334",[0,0.557,4,1.483,26,4.25,27,1.657,28,1.312,37,2.888,38,3.766,46,2.126,48,2.977,95,1.657,118,1.1,246,3.576,255,2.977,272,3.925,273,4.25,274,1.333,276,4.61,277,4.25,278,3.981,379,4.528,386,2.528,480,3.301,1006,2.977,1131,3.182,1432,5.156,1433,5.156,1434,4.61,1435,5.156]],["t/336",[4,1.567,10,2.672,21,4.492,28,1.261,30,2.388,39,2.809,40,1.669,42,3.363,46,2.247,48,3.147,118,1.536,168,3.147,169,3.811,170,2.55,246,2.161,272,2.55,278,4.208,540,5.009,541,3.63,542,3.981,828,4.492,1006,3.147,1016,3.63,1350,4.872,1434,4.872,1436,5.45,1437,4.872,1438,5.45,1439,5.45,1440,5.45]],["t/338",[0,0.762,61,1.359,75,5.154,80,3.546,118,1.506,272,3.965,274,1.824,379,4.074,567,4.517,568,2.599]],["t/340",[0,0.727,9,1.687,61,1.295,118,1.435,119,3.298,124,5.483,272,3.851,274,2.128,597,4.679,1441,6.725,1442,6.725,1443,6.725]],["t/342",[0,0.727,4,1.934,42,4.15,118,1.435,137,3.077,150,4.15,208,3.087,228,5.543,246,2.667,272,3.851,704,4.913,1006,4.753]],["t/344",[0,0.538,9,1.249,28,0.779,42,3.072,48,3.912,81,2.052,117,2.793,118,1.764,150,4.753,200,2.501,246,2.687,267,3.636,272,3.604,274,1.287,437,3.636,454,2.874,460,3.072,665,2.968,690,4.103,707,3.843,821,4.45,979,3.843,1006,4.448,1029,4.45,1068,4.45,1131,3.072,1444,4.978,1445,8.268,1446,4.978,1447,4.978]],["t/346",[77,3.553,199,5.163,272,3.472,651,4.943,974,5.42,1006,4.285,1132,5.42]],["t/348",[4,1.645,9,1.435,16,2.24,23,4.417,79,1.95,105,1.645,118,1.221,208,2.146,246,2.269,272,3.477,302,3.028,337,2.677,344,2.313,418,4.417,479,2.949,536,3.411,560,4.715,651,4.951,786,3.863,1016,3.811,1448,5.721,1449,5.721,1450,5.721,1451,5.721]],["t/350",[4,1.567,11,3.369,16,2.17,61,1.05,65,3.258,79,1.43,81,2.247,105,1.567,118,1.163,133,2.966,213,1.841,223,2.247,224,2.044,272,3.772,274,1.409,387,2.292,443,2.339,478,3.25,536,3.25,579,3.25,580,3.363,605,3.25,651,3.63,786,2.55,1016,3.63,1452,5.45]],["t/352",[0,0.699,27,1.496,28,0.728,61,0.897,90,2.339,105,2.429,137,2.13,149,2.178,208,2.427,209,2.427,242,2.98,246,1.846,259,2.872,272,2.178,274,1.673,323,1.998,324,3.4,378,3.594,433,2.464,466,4.244,479,2.4,586,5.784,756,3.594,786,3.027,846,5.333,914,3.594,917,3.594,1112,5.333,1229,3.594,1299,4.162,1401,4.162,1453,4.655,1454,4.655,1455,6.47,1456,4.655,1457,4.655]],["t/354",[0,0.783,60,2.912,79,1.444,169,3.835,170,2.574,190,4.248,199,3.828,204,2.634,205,2.994,240,5.594,272,2.574,278,4.248,560,4.535,813,4.919,817,4.826,819,4.535,1006,4.677,1016,5.396,1194,4.248,1223,4.919,1363,4.919,1437,4.919,1458,5.502,1459,5.502,1460,5.502,1461,5.502]],["t/356",[8,3.591,11,2.624,16,2.713,65,2.908,105,1.613,118,1.197,172,2.565,256,3.736,272,4.212,274,1.897,335,1.864,337,2.624,443,2.407,466,2.819,528,2.969,536,4.375,580,3.461,786,3.433]],["t/358",[0,0.71,10,3.222,12,3.146,71,4.377,83,2.258,117,2.709,118,1.402,119,3.222,133,3.576,335,2.183,344,2.657,563,5.416,568,2.421,897,5.194,1089,5.875,1178,5.416]],["t/360",[40,2.109,79,1.807,95,2.214,117,2.839,118,1.469,125,4.587,247,5.676,479,3.55,528,3.645,568,2.537,885,4.587,910,4.792,1462,6.157]],["t/362",[9,1.741,16,1.554,28,1.086,40,1.579,61,1.337,65,1.834,77,2.469,117,2.126,118,1.1,119,2.528,137,2.359,235,3.588,257,3.075,274,1.794,335,2.787,337,3.669,419,3.577,458,3.301,479,2.658,525,4.25,568,1.9,673,4.442,783,3.435,786,2.413,885,3.435,911,5.357,918,4.25,1463,5.156,1464,5.156]],["t/364",[4,1.419,12,3.225,19,3.605,27,2.465,28,0.772,58,2.685,76,2.685,95,1.586,109,3.81,118,1.053,119,4.04,170,2.309,208,1.851,210,3.605,216,2.685,243,4.412,245,3.159,414,1.755,419,2.544,526,3.81,563,4.067,568,2.481,580,3.045,605,4.016,783,3.287,897,5.274,1178,4.067,1208,4.412,1465,4.935,1466,5.551,1467,4.412,1468,4.935,1469,4.935,1470,4.935]],["t/366",[50,2.913,119,3.259,143,4.255,170,3.11,216,3.617,526,5.132,787,5.943,897,4.255,1236,4.856,1305,5.943,1466,6.736,1471,6.648,1472,6.648,1473,6.648,1474,6.648]],["t/368",[0,0.562,9,1.305,28,1.233,61,1.002,117,2.145,118,1.49,119,3.423,127,3.801,335,2.617,337,3.266,416,2.434,419,2.682,458,3.331,597,3.62,673,4.469,778,3.801,849,3.695,853,4.698,885,4.65,897,5.043,900,4.652,902,4.652,903,4.652,905,4.652,910,3.62,918,4.288]],["t/370",[0,0.273,3,1.107,9,1.024,13,1.21,16,1.547,28,1.449,61,0.487,65,1.826,70,2.839,71,1.683,72,3.572,73,1.716,76,2.221,83,0.868,84,1.337,90,1.27,99,4.101,117,3.387,118,1.476,119,3.94,120,2.082,122,2.259,123,2.259,124,3.926,125,1.683,126,3.363,127,2.981,128,2.082,129,3.648,130,5.269,131,2.259,170,1.182,244,1.375,247,2.082,257,1.507,259,1.559,323,1.084,335,1.958,419,1.302,514,1.683,528,1.337,562,1.758,564,2.082,580,1.559,621,3.963,673,1.617,702,2.259,716,1.683,751,1.507,764,1.845,766,1.559,775,1.617,786,1.909,800,1.758,814,2.082,847,2.082,851,2.981,914,3.963,1005,1.845,1006,1.459,1094,2.259,1130,3.75,1198,3.648,1466,4.231,1467,3.648,1475,2.526,1476,2.526,1477,2.526,1478,2.526,1479,2.526,1480,2.526,1481,2.526,1482,2.526,1483,2.526,1484,2.526]],["t/372",[30,2.532,40,2.291,79,1.516,95,1.857,105,1.662,117,2.382,118,1.596,119,4.302,125,3.849,137,2.644,172,2.02,213,1.952,271,4.19,335,1.92,552,5.776,784,4.461,885,3.849,897,4.789,1462,5.166,1485,5.778,1486,5.778]]],"invertedIndex":[["",{"_index":28,"t":{"4":{"position":[[279,1],[312,1],[392,1],[413,1],[415,1],[417,1],[434,1],[471,1],[482,2],[485,1],[519,1],[541,1],[543,1],[545,1],[562,1],[602,1],[616,2],[619,1],[636,1],[676,1],[690,2],[693,1]]},"6":{"position":[[74,1],[215,2],[263,2]]},"8":{"position":[[175,1],[213,1],[215,1],[217,1],[234,1],[290,1],[297,1],[299,1],[308,6],[315,2],[318,1]]},"10":{"position":[[112,1],[236,1],[261,1],[270,1],[292,1],[329,1],[393,1],[439,3],[467,1],[495,1],[508,1],[573,1],[593,1],[635,2],[638,3],[680,1],[682,1]]},"12":{"position":[[57,1],[96,1],[105,1],[125,2],[128,3],[170,1],[214,1],[245,3],[294,1],[418,1],[436,2],[439,2],[442,1],[459,2],[498,2],[534,3],[590,1],[630,1],[637,2],[642,2],[650,2],[656,1],[662,1],[708,1],[736,1],[750,2],[778,2],[781,3],[816,1],[843,3]]},"16":{"position":[[69,1],[123,1],[144,1],[184,1],[209,1],[245,1],[266,1]]},"18":{"position":[[164,2],[309,2]]},"21":{"position":[[20,1]]},"23":{"position":[[20,1],[167,1],[169,1],[171,1],[201,1],[203,1],[205,1],[207,1],[236,1],[238,1],[278,1],[280,1]]},"34":{"position":[[32,1],[60,1],[88,1],[113,1],[148,1],[181,1],[204,1],[211,1]]},"36":{"position":[[35,1],[68,1],[109,1],[143,1],[210,1]]},"38":{"position":[[54,1],[79,1],[99,1],[101,2],[116,1],[155,1],[176,1],[202,1],[257,1],[301,1],[331,1],[352,1],[378,1],[380,1],[431,1],[433,2],[451,1],[479,1],[553,1],[587,1],[607,1],[640,1],[663,1],[697,1],[739,1],[754,1],[808,1],[861,1],[883,1],[894,1],[921,1],[923,3],[959,1],[1039,1],[1140,1],[1150,3]]},"40":{"position":[[25,1],[63,1],[87,1],[113,2],[131,1],[159,1],[190,1],[224,1],[235,1],[269,1],[295,1],[328,1],[375,1],[409,1],[434,1],[463,1],[479,1],[497,1],[519,1],[521,3],[525,1],[556,1],[568,1],[632,3],[636,1],[680,1],[682,3],[686,1],[721,1],[741,1],[791,1],[812,1],[822,3],[826,1],[853,1],[872,1],[882,2],[905,1],[936,1],[970,1],[988,1],[995,1],[1108,1],[1214,1],[1262,1],[1287,1],[1316,1],[1340,1],[1342,3],[1357,1],[1382,1],[1411,1],[1413,3],[1428,1],[1449,1],[1459,3],[1463,1],[1490,1],[1509,1]]},"42":{"position":[[35,1],[62,1],[84,1],[97,1],[118,1],[175,1],[208,1],[235,1],[279,1],[309,1],[323,1],[371,1]]},"44":{"position":[[43,1],[74,1],[118,1],[161,1],[188,1],[190,1],[192,1],[209,1],[246,1],[262,2],[265,1],[328,1],[377,1],[399,1],[410,1],[427,1],[471,1],[478,1],[480,1],[489,6],[496,2],[499,1],[516,1],[552,1],[573,2],[576,1],[610,1],[646,1],[648,1],[650,1],[667,1],[707,1],[726,2],[729,1],[746,1],[786,1],[814,1],[822,2],[825,1],[859,1],[892,1],[911,1],[913,1],[915,1],[932,1],[972,1],[991,1],[993,1]]},"46":{"position":[[33,1],[66,1],[157,1],[191,1],[218,1],[236,1],[304,1],[323,1],[343,1],[397,1],[399,3],[419,1],[421,3],[425,1],[504,1],[553,4],[604,3]]},"48":{"position":[[51,1],[105,1],[123,1],[191,1],[210,1],[244,1]]},"50":{"position":[[37,1],[57,1],[65,1],[124,1],[159,1],[225,1],[227,1],[235,1],[255,1],[312,1],[314,1],[369,1],[381,1],[455,1],[457,1],[465,1],[484,1],[497,1],[511,1],[513,1],[515,1],[566,1],[580,1],[600,1],[628,1],[640,2],[643,1],[718,6],[725,6],[753,1],[767,1],[789,1],[791,8],[800,9],[816,1],[825,2],[828,1],[842,1],[868,1],[891,1],[903,2],[906,1]]},"54":{"position":[[308,1],[348,1]]},"56":{"position":[[134,1]]},"58":{"position":[[112,1]]},"64":{"position":[[90,1],[201,1],[311,1],[337,1],[386,1]]},"66":{"position":[[15,1],[49,1],[69,1],[93,1],[114,1],[141,1],[143,1],[145,1],[154,1],[175,1],[201,1],[212,1],[214,1]]},"68":{"position":[[76,1],[266,2],[311,1],[329,2],[364,1],[574,2],[723,2],[764,2],[882,2],[1059,2],[1163,1],[1292,1],[1302,1],[1328,2],[1406,2],[1529,2],[1650,2],[1783,1],[1827,2],[1970,2],[2025,2]]},"78":{"position":[[27,1],[126,1]]},"80":{"position":[[188,1],[287,1],[289,1],[291,1],[300,1],[321,1],[347,1],[358,2],[361,1],[370,1],[393,1],[405,2],[408,1]]},"82":{"position":[[42,1],[163,1]]},"88":{"position":[[107,1],[144,1],[166,1],[201,1],[230,1],[274,1],[325,1],[361,1],[368,2],[463,1],[470,2],[573,1],[618,1],[620,3],[646,1],[730,1],[732,1],[772,3],[849,2],[901,1]]},"94":{"position":[[37,1]]},"96":{"position":[[196,1],[843,1]]},"98":{"position":[[163,1],[180,1],[225,1],[237,1],[239,1],[310,1],[312,1],[320,1],[339,1],[350,1],[352,1],[354,1],[376,1],[394,1],[441,1],[528,1],[530,1],[532,1],[602,1],[616,1],[637,1],[657,1],[679,1],[705,2],[708,1],[802,1],[816,1],[837,1],[848,9],[864,1],[876,2],[879,1]]},"106":{"position":[[83,1]]},"108":{"position":[[382,1]]},"112":{"position":[[226,2],[239,1],[257,1]]},"114":{"position":[[0,1],[71,1],[95,1],[97,1],[99,1],[110,1],[129,1],[150,2],[153,1],[179,1],[199,1],[242,1],[244,1],[246,1],[257,1],[276,1],[293,2],[296,1],[322,1],[347,1],[355,1],[385,1],[387,1],[389,1],[400,1],[419,1],[436,2],[439,1]]},"118":{"position":[[188,2],[201,1],[219,1],[270,2]]},"120":{"position":[[0,1],[74,1],[97,1],[99,1],[101,1],[112,1],[131,1],[157,2],[160,1],[176,1],[215,1],[236,1],[238,1],[240,1],[251,1],[270,1],[291,2],[294,1],[323,1],[348,1],[380,1],[382,1],[384,1],[395,1],[414,1],[431,2],[434,1],[450,1]]},"124":{"position":[[11,1],[62,1],[295,1],[331,1],[343,1],[345,1],[380,6],[387,1],[423,1]]},"126":{"position":[[223,1],[640,1],[678,1],[696,1],[1684,1]]},"132":{"position":[[186,1],[221,1],[319,1],[348,1],[403,1],[423,1],[441,1],[443,1],[445,1],[462,1],[501,1],[503,3],[515,1],[522,1],[524,1],[691,1]]},"136":{"position":[[15,1],[50,1],[80,1],[116,1],[147,1],[164,1],[193,1],[195,3],[207,1],[234,1],[241,3]]},"138":{"position":[[58,1],[150,3],[157,4],[162,2],[219,1],[425,2],[485,2],[591,2],[691,1],[731,1],[1024,2]]},"140":{"position":[[68,1],[140,1],[190,1]]},"142":{"position":[[179,1]]},"148":{"position":[[20,1],[58,1],[85,1],[114,1],[154,1],[171,1],[198,1],[200,3],[212,1],[239,1],[246,3],[258,1],[260,3],[324,3]]},"150":{"position":[[58,1],[79,1],[139,1],[373,2],[432,2],[523,2],[568,2],[655,2],[717,2],[1022,2]]},"152":{"position":[[54,1],[212,1]]},"154":{"position":[[102,1],[478,1]]},"170":{"position":[[71,1],[182,1],[238,1],[268,1],[317,2]]},"172":{"position":[[67,1],[89,1],[126,1],[165,1],[192,1],[234,2],[237,3],[241,2],[291,1],[325,4],[330,2],[371,1],[409,1],[434,3]]},"174":{"position":[[212,1],[398,4]]},"178":{"position":[[211,1],[972,1],[1335,1]]},"180":{"position":[[47,1],[337,1],[477,1],[585,2],[588,1]]},"182":{"position":[[58,1],[1006,4],[1149,1],[1179,1],[1255,1],[1417,1],[1493,4],[1607,1]]},"194":{"position":[[165,1],[370,2],[379,1],[468,2]]},"204":{"position":[[131,1],[169,1],[208,1],[232,1],[250,1],[291,1],[338,1],[389,1],[421,1],[445,1],[483,1],[512,1],[567,1],[590,1]]},"206":{"position":[[68,1],[85,1],[117,1],[157,1],[196,1],[235,1],[343,1]]},"208":{"position":[[58,1]]},"220":{"position":[[116,1]]},"224":{"position":[[619,1],[679,1]]},"228":{"position":[[294,1],[919,1]]},"230":{"position":[[413,2],[466,2],[547,2],[637,2],[735,2],[770,2],[812,1]]},"232":{"position":[[437,1],[606,2],[671,2],[728,2],[759,2],[789,1],[820,1],[865,2],[921,2],[993,1],[1011,2],[1040,2],[1068,1],[1086,2],[1130,2],[1189,2],[1237,1]]},"234":{"position":[[124,1],[168,2],[232,1],[313,3],[348,1],[413,2],[416,1],[433,2],[454,2],[457,2],[475,2],[564,1],[636,1],[674,2],[677,2],[680,1],[697,2],[718,2],[721,2]]},"236":{"position":[[370,1],[551,1]]},"244":{"position":[[203,3],[210,4],[308,1]]},"262":{"position":[[246,3],[457,3],[577,3],[750,3],[856,3]]},"276":{"position":[[378,2],[381,3],[397,2],[596,2]]},"284":{"position":[[147,1],[229,1],[250,1],[273,1],[324,1],[333,1],[366,1],[368,1]]},"290":{"position":[[157,1],[194,1],[260,1],[289,1],[344,1],[364,1],[382,1],[384,1],[386,1],[403,1],[444,1],[446,3],[458,1],[465,1],[467,1],[709,1]]},"292":{"position":[[367,1],[373,1],[786,1],[814,1],[836,1],[838,1],[850,1],[852,1],[865,1],[867,1],[869,3],[873,1],[895,1],[917,1],[919,3],[923,1]]},"294":{"position":[[417,2],[642,1]]},"296":{"position":[[100,2],[145,1],[165,2],[243,1],[291,1],[377,2],[413,2],[471,2],[1010,1]]},"300":{"position":[[295,1]]},"304":{"position":[[287,1],[289,1],[301,1],[343,1],[372,1],[394,4],[594,1],[596,1],[615,1],[657,1],[686,1],[708,4]]},"320":{"position":[[144,1]]},"324":{"position":[[1080,1],[1082,2],[1478,1]]},"326":{"position":[[252,1],[574,2],[577,1]]},"330":{"position":[[165,2],[168,1]]},"334":{"position":[[53,1],[243,1],[290,1],[357,1]]},"336":{"position":[[110,2],[261,2],[316,2]]},"344":{"position":[[188,1]]},"352":{"position":[[161,1]]},"362":{"position":[[60,1],[163,1]]},"364":{"position":[[323,1]]},"368":{"position":[[99,1],[154,1],[200,1]]},"370":{"position":[[140,1],[303,1],[570,2],[697,1],[745,2],[748,2],[751,1],[768,2],[807,2],[843,3],[847,2],[1020,1],[1069,2],[1072,3],[1076,2],[1229,1],[1245,2],[1248,3],[1252,2],[1399,1],[1435,2],[1438,3]]}}}],["0",{"_index":191,"t":{"23":{"position":[[161,1],[163,1],[195,1],[225,1],[227,1],[229,1],[272,1],[274,1]]},"320":{"position":[[141,2]]}}}],["0.0.0",{"_index":493,"t":{"68":{"position":[[129,5]]}}}],["00",{"_index":1317,"t":{"292":{"position":[[830,2],[889,2],[911,2]]},"296":{"position":[[276,2]]}}}],["01",{"_index":37,"t":{"4":{"position":[[612,3]]},"36":{"position":[[155,4]]},"38":{"position":[[90,3],[598,3]]},"40":{"position":[[174,3],[419,3],[1032,3],[1092,2],[1155,2],[1230,4],[1272,3]]},"42":{"position":[[113,4]]},"44":{"position":[[722,3]]},"46":{"position":[[201,3]]},"66":{"position":[[60,3]]},"88":{"position":[[118,3]]},"292":{"position":[[833,2],[892,2],[914,2]]},"296":{"position":[[279,2]]},"334":{"position":[[302,4]]}}}],["01:00",{"_index":1291,"t":{"290":{"position":[[305,6]]}}}],["02",{"_index":38,"t":{"4":{"position":[[686,3]]},"36":{"position":[[169,4]]},"40":{"position":[[920,3]]},"44":{"position":[[987,3]]},"334":{"position":[[316,4]]}}}],["03",{"_index":277,"t":{"36":{"position":[[183,4]]},"44":{"position":[[801,4]]},"334":{"position":[[330,4]]}}}],["03:00",{"_index":154,"t":{"16":{"position":[[160,6]]},"21":{"position":[[83,5]]},"132":{"position":[[364,6]]}}}],["03:00:00",{"_index":193,"t":{"23":{"position":[[186,8]]}}}],["08",{"_index":1315,"t":{"292":{"position":[[821,2],[880,2],[902,2]]},"296":{"position":[[267,2]]}}}],["09:00",{"_index":181,"t":{"21":{"position":[[166,5]]},"23":{"position":[[302,5]]}}}],["0e9bd154667944680",{"_index":287,"t":{"38":{"position":[[183,18]]}}}],["1",{"_index":143,"t":{"12":{"position":[[664,4]]},"40":{"position":[[216,2]]},"44":{"position":[[632,2]]},"68":{"position":[[450,4]]},"72":{"position":[[94,2]]},"132":{"position":[[412,2]]},"290":{"position":[[353,2]]},"366":{"position":[[34,1]]}}}],["1,15",{"_index":194,"t":{"23":{"position":[[231,4]]}}}],["1.16.5",{"_index":91,"t":{"10":{"position":[[238,9]]}}}],["1.2",{"_index":507,"t":{"68":{"position":[[444,5]]},"72":{"position":[[88,5]]}}}],["1.2.3",{"_index":502,"t":{"68":{"position":[[313,6],[435,8]]},"72":{"position":[[80,7]]},"74":{"position":[[166,6],[198,6]]}}}],["12.34.56.78/32",{"_index":1277,"t":{"284":{"position":[[190,14]]}}}],["12_03",{"_index":1316,"t":{"292":{"position":[[824,5]]}}}],["13_03",{"_index":1320,"t":{"292":{"position":[[883,5]]}}}],["14",{"_index":1241,"t":{"262":{"position":[[1077,2]]},"272":{"position":[[198,2]]},"288":{"position":[[198,2]]},"292":{"position":[[618,2]]}}}],["14_03",{"_index":1321,"t":{"292":{"position":[[905,5]]},"296":{"position":[[270,5]]}}}],["15th",{"_index":178,"t":{"21":{"position":[[132,4]]},"23":{"position":[[267,4]]}}}],["17",{"_index":141,"t":{"12":{"position":[[653,2]]}}}],["18.18",{"_index":1007,"t":{"194":{"position":[[373,5]]}}}],["192.168.0.0/16",{"_index":1276,"t":{"284":{"position":[[175,14]]}}}],["1st",{"_index":177,"t":{"21":{"position":[[124,3]]},"23":{"position":[[259,3]]}}}],["2",{"_index":284,"t":{"38":{"position":[[166,2]]},"40":{"position":[[962,2]]},"44":{"position":[[881,2]]},"88":{"position":[[177,2]]},"226":{"position":[[401,3],[496,2]]},"228":{"position":[[184,2],[719,2]]},"234":{"position":[[181,1]]}}}],["2.0",{"_index":1138,"t":{"226":{"position":[[405,4]]}}}],["2.0.0",{"_index":1139,"t":{"226":{"position":[[410,7]]}}}],["2.0.2",{"_index":1012,"t":{"194":{"position":[[471,5]]}}}],["2025",{"_index":1314,"t":{"292":{"position":[[816,4],[875,4],[897,4]]},"296":{"position":[[262,4]]}}}],["256",{"_index":453,"t":{"54":{"position":[[336,4]]}}}],["27017:27017",{"_index":1062,"t":{"206":{"position":[[73,11]]}}}],["27018:27017",{"_index":838,"t":{"150":{"position":[[359,13]]}}}],["2b",{"_index":1159,"t":{"230":{"position":[[70,3]]}}}],["2fa",{"_index":1125,"t":{"224":{"position":[[626,4]]}}}],["3",{"_index":192,"t":{"23":{"position":[[165,1]]},"300":{"position":[[237,1]]}}}],["3.0",{"_index":330,"t":{"38":{"position":[[1146,3]]}}}],["30",{"_index":1333,"t":{"294":{"position":[[639,2]]}}}],["4",{"_index":142,"t":{"12":{"position":[[658,3]]},"94":{"position":[[10,1]]}}}],["403",{"_index":1279,"t":{"284":{"position":[[225,3]]}}}],["5",{"_index":174,"t":{"21":{"position":[[95,1]]},"23":{"position":[[197,3],[215,1]]}}}],["500kb",{"_index":1457,"t":{"352":{"position":[[520,6]]}}}],["6",{"_index":185,"t":{"23":{"position":[[43,1]]}}}],["8120",{"_index":631,"t":{"88":{"position":[[1077,4]]},"308":{"position":[[428,6]]}}}],["9",{"_index":140,"t":{"12":{"position":[[640,1]]},"23":{"position":[[276,1]]}}}],["__any__",{"_index":459,"t":{"56":{"position":[[186,8]]}}}],["a6v8h83",{"_index":510,"t":{"68":{"position":[[500,11]]},"72":{"position":[[172,8]]},"74":{"position":[[181,8],[229,8]]}}}],["a_random_secret",{"_index":1042,"t":{"204":{"position":[[252,17]]}}}],["aarch64",{"_index":98,"t":{"10":{"position":[[339,11]]},"68":{"position":[[303,7],[320,8]]},"74":{"position":[[190,7],[205,7],[221,7],[238,7],[308,9]]},"180":{"position":[[49,9]]}}}],["abov",{"_index":684,"t":{"98":{"position":[[595,6]]},"228":{"position":[[499,6]]},"232":{"position":[[409,6]]},"296":{"position":[[323,5]]}}}],["absolut",{"_index":521,"t":{"68":{"position":[[1128,8]]},"182":{"position":[[1271,8]]}}}],["abstract",{"_index":1205,"t":{"236":{"position":[[42,12]]}}}],["accept",{"_index":564,"t":{"80":{"position":[[173,7]]},"230":{"position":[[416,8],[640,7]]},"370":{"position":[[465,6]]}}}],["access",{"_index":416,"t":{"50":{"position":[[177,6]]},"68":{"position":[[1456,6]]},"80":{"position":[[517,6]]},"88":{"position":[[402,6],[1062,6]]},"90":{"position":[[83,6]]},"94":{"position":[[106,6],[433,7],[943,6]]},"96":{"position":[[65,6],[494,6],[674,6],[773,7]]},"98":{"position":[[425,8]]},"100":{"position":[[271,6],[543,6],[771,6]]},"106":{"position":[[233,6]]},"112":{"position":[[288,6]]},"120":{"position":[[480,6],[594,6]]},"126":{"position":[[250,6],[2049,6]]},"142":{"position":[[67,6]]},"198":{"position":[[154,10]]},"216":{"position":[[55,7]]},"236":{"position":[[350,6],[488,6],[608,6]]},"308":{"position":[[536,6]]},"368":{"position":[[30,8]]}}}],["access_token",{"_index":729,"t":{"114":{"position":[[278,14],[421,14]]},"120":{"position":[[416,14]]}}}],["accident",{"_index":1335,"t":{"296":{"position":[[497,10]]}}}],["account",{"_index":374,"t":{"42":{"position":[[358,7]]},"66":{"position":[[167,7]]},"68":{"position":[[696,7],[1294,7]]},"80":{"position":[[69,8],[221,8],[313,7],[385,7],[738,7],[809,7]]},"100":{"position":[[439,8]]},"102":{"position":[[147,8]]},"104":{"position":[[131,7]]},"106":{"position":[[127,9],[201,8],[253,8],[364,9]]},"108":{"position":[[103,8],[223,8],[318,8]]},"112":{"position":[[217,8],[271,7]]},"114":{"position":[[86,8],[233,8],[376,8]]},"118":{"position":[[179,8]]},"120":{"position":[[88,8],[227,8],[371,8]]},"122":{"position":[[57,7],[287,7],[367,7]]},"138":{"position":[[664,7]]},"152":{"position":[[315,7]]},"206":{"position":[[444,8]]},"224":{"position":[[798,8]]},"262":{"position":[[349,9]]},"264":{"position":[[91,9]]},"324":{"position":[[1487,7],[1533,8]]},"328":{"position":[[91,9]]}}}],["account'",{"_index":735,"t":{"118":{"position":[[417,10]]}}}],["action",{"_index":3,"t":{"2":{"position":[[28,6]]},"10":{"position":[[0,7]]},"14":{"position":[[30,7]]},"16":{"position":[[42,7]]},"27":{"position":[[122,6]]},"29":{"position":[[827,7]]},"46":{"position":[[352,6]]},"54":{"position":[[427,6]]},"56":{"position":[[136,6]]},"60":{"position":[[83,6]]},"94":{"position":[[576,6],[755,7],[988,8]]},"154":{"position":[[43,7],[76,6]]},"162":{"position":[[88,8]]},"168":{"position":[[88,8]]},"176":{"position":[[42,6],[52,6]]},"212":{"position":[[704,8]]},"214":{"position":[[255,8]]},"224":{"position":[[434,6]]},"234":{"position":[[160,7]]},"252":{"position":[[13,7],[142,7]]},"294":{"position":[[271,7]]},"370":{"position":[[132,7]]}}}],["action.gz",{"_index":1318,"t":{"292":{"position":[[840,9]]}}}],["activ",{"_index":45,"t":{"6":{"position":[[120,7],[348,7]]},"18":{"position":[[208,7]]},"298":{"position":[[110,6]]}}}],["actual",{"_index":777,"t":{"126":{"position":[[2115,6]]},"294":{"position":[[25,8]]}}}],["ad",{"_index":641,"t":{"92":{"position":[[186,5]]},"106":{"position":[[272,5]]},"228":{"position":[[311,5]]}}}],["add",{"_index":150,"t":{"16":{"position":[[0,3]]},"100":{"position":[[970,3]]},"106":{"position":[[161,3]]},"180":{"position":[[514,3]]},"204":{"position":[[71,3],[523,3]]},"228":{"position":[[196,3],[971,3]]},"324":{"position":[[327,3]]},"342":{"position":[[32,3]]},"344":{"position":[[3,3],[235,4],[327,3]]}}}],["addit",{"_index":206,"t":{"27":{"position":[[167,10]]},"68":{"position":[[1609,10]]},"74":{"position":[[272,10]]},"98":{"position":[[540,8]]},"100":{"position":[[974,10],[1019,10]]},"138":{"position":[[439,10]]},"150":{"position":[[669,10]]},"182":{"position":[[474,8]]},"262":{"position":[[596,10]]},"268":{"position":[[0,10]]},"274":{"position":[[0,10]]},"310":{"position":[[165,10]]},"324":{"position":[[1522,10]]}}}],["addition",{"_index":237,"t":{"29":{"position":[[550,13]]},"40":{"position":[[1110,13]]},"96":{"position":[[99,12]]},"100":{"position":[[303,13]]},"182":{"position":[[140,13],[1751,13]]}}}],["addr",{"_index":1442,"t":{"340":{"position":[[105,4]]}}}],["address",{"_index":267,"t":{"34":{"position":[[140,7]]},"182":{"position":[[79,7]]},"232":{"position":[[613,7]]},"304":{"position":[[333,9],[647,9]]},"344":{"position":[[180,7]]}}}],["address=\"https:///listener////@//:@///auth/github/callback",{"_index":1259,"t":{"278":{"position":[[264,34]]}}}],["komodo_host>/auth/google/callback",{"_index":1260,"t":{"278":{"position":[[311,34]]}}}],["komodo_host>/auth/oidc/callback",{"_index":1261,"t":{"278":{"position":[[358,32]]},"282":{"position":[[159,32]]}}}],["komodo_oidc_client_id",{"_index":1270,"t":{"282":{"position":[[632,25]]}}}],["komodo_oidc_client_secret",{"_index":1271,"t":{"282":{"position":[[690,29]]}}}],["komodo_oidc_enabled=tru",{"_index":1266,"t":{"282":{"position":[[466,24]]}}}],["komodo_oidc_provider=https:///realms/mast",{"_index":1268,"t":{"282":{"position":[[535,18]]}}}],["us",{"_index":61,"t":{"8":{"position":[[110,5]]},"18":{"position":[[278,4]]},"21":{"position":[[225,5]]},"29":{"position":[[479,3]]},"44":{"position":[[267,4]]},"46":{"position":[[238,3],[547,5]]},"48":{"position":[[125,3]]},"50":{"position":[[713,4]]},"54":{"position":[[466,3]]},"64":{"position":[[322,3]]},"68":{"position":[[238,5],[632,3],[1664,3],[1933,5]]},"70":{"position":[[7,4],[154,5]]},"74":{"position":[[69,6]]},"76":{"position":[[32,4]]},"80":{"position":[[444,4]]},"82":{"position":[[125,3]]},"84":{"position":[[83,4]]},"88":{"position":[[489,4]]},"94":{"position":[[340,5],[600,5]]},"98":{"position":[[710,3]]},"104":{"position":[[184,3]]},"124":{"position":[[232,5]]},"126":{"position":[[474,5],[620,5],[919,5],[1085,5],[1576,3],[1805,3]]},"132":{"position":[[270,5]]},"140":{"position":[[279,3]]},"150":{"position":[[334,5]]},"160":{"position":[[27,4]]},"174":{"position":[[27,4]]},"178":{"position":[[915,4]]},"180":{"position":[[176,5]]},"182":{"position":[[8,4],[210,5],[358,3],[1468,3],[1948,3]]},"190":{"position":[[52,4]]},"194":{"position":[[59,3],[398,3],[443,3]]},"196":{"position":[[31,4],[234,3]]},"200":{"position":[[0,3],[326,4]]},"202":{"position":[[41,5]]},"210":{"position":[[0,3]]},"220":{"position":[[7,4]]},"224":{"position":[[475,4]]},"226":{"position":[[471,5],[492,3]]},"230":{"position":[[687,3]]},"232":{"position":[[175,5],[946,3]]},"236":{"position":[[292,4],[583,3]]},"242":{"position":[[112,5]]},"244":{"position":[[96,3],[179,5]]},"246":{"position":[[55,5]]},"250":{"position":[[79,3]]},"254":{"position":[[51,3]]},"262":{"position":[[0,5],[14,5],[142,3],[431,5],[492,5],[558,5]]},"264":{"position":[[173,5]]},"266":{"position":[[22,5],[88,5]]},"278":{"position":[[206,4]]},"282":{"position":[[155,3],[612,3]]},"284":{"position":[[3,5]]},"286":{"position":[[255,3]]},"294":{"position":[[112,5],[250,5]]},"304":{"position":[[1562,5]]},"306":{"position":[[8,3]]},"310":{"position":[[142,3]]},"312":{"position":[[32,5]]},"314":{"position":[[191,5]]},"322":{"position":[[62,3]]},"324":{"position":[[110,5],[193,5]]},"326":{"position":[[25,5],[91,5],[121,4],[718,5]]},"328":{"position":[[173,5]]},"330":{"position":[[309,5]]},"338":{"position":[[3,3]]},"340":{"position":[[25,3]]},"350":{"position":[[41,5]]},"352":{"position":[[319,3]]},"362":{"position":[[127,4],[223,6]]},"368":{"position":[[61,5]]},"370":{"position":[[120,6]]}}}],["usabl",{"_index":1212,"t":{"244":{"position":[[242,6]]}}}],["usag",{"_index":887,"t":{"174":{"position":[[331,5]]},"212":{"position":[[144,5]]},"214":{"position":[[278,6]]},"292":{"position":[[380,6]]},"298":{"position":[[451,5]]}}}],["use_buildx",{"_index":534,"t":{"68":{"position":[[1653,10]]}}}],["use_public_ip",{"_index":298,"t":{"38":{"position":[[338,13]]}}}],["user",{"_index":414,"t":{"50":{"position":[[111,6],[118,5],[389,5]]},"66":{"position":[[120,5],[181,6]]},"80":{"position":[[327,6],[399,5]]},"90":{"position":[[77,5]]},"92":{"position":[[48,5],[100,4],[162,5],[168,5],[204,4],[323,4],[364,5],[438,5],[455,4]]},"94":{"position":[[32,4],[83,4],[134,4],[198,4],[460,4],[697,6],[739,4],[833,4],[916,4]]},"96":{"position":[[171,4],[336,5],[386,4],[408,4],[631,5],[665,4],[973,4],[1053,5],[1141,5],[1203,5],[1265,5],[1334,4]]},"98":{"position":[[0,5],[9,4],[174,5],[436,4]]},"100":{"position":[[0,5],[69,4],[128,4],[212,4],[247,5],[323,5],[434,4],[464,4],[635,5],[668,5],[696,5],[798,5],[917,5]]},"112":{"position":[[320,5]]},"114":{"position":[[116,6],[263,6],[406,6]]},"120":{"position":[[118,6],[257,6],[401,6]]},"124":{"position":[[150,4]]},"126":{"position":[[294,6],[971,5]]},"136":{"position":[[153,5]]},"174":{"position":[[101,4],[128,5]]},"176":{"position":[[209,4],[245,4]]},"180":{"position":[[491,4]]},"206":{"position":[[439,4]]},"214":{"position":[[125,4]]},"218":{"position":[[164,4]]},"224":{"position":[[718,5]]},"226":{"position":[[243,5]]},"228":{"position":[[1038,5]]},"232":{"position":[[234,4]]},"262":{"position":[[110,5],[181,6],[344,4]]},"264":{"position":[[86,4]]},"304":{"position":[[399,4],[465,4],[495,6],[610,4],[838,4],[897,4],[968,5],[1113,4]]},"308":{"position":[[501,4]]},"314":{"position":[[131,4]]},"326":{"position":[[152,6]]},"328":{"position":[[86,4]]},"364":{"position":[[261,5]]}}}],["user'",{"_index":693,"t":{"100":{"position":[[358,6]]}}}],["user_data",{"_index":632,"t":{"88":{"position":[[1113,9]]}}}],["user_group",{"_index":409,"t":{"50":{"position":[[17,14]]},"98":{"position":[[143,14]]}}}],["usergroup",{"_index":408,"t":{"50":{"position":[[0,9]]}}}],["usernam",{"_index":708,"t":{"106":{"position":[[219,9]]},"112":{"position":[[241,9]]},"114":{"position":[[101,8],[248,8],[391,8]]},"118":{"position":[[203,9]]},"120":{"position":[[103,8],[242,8],[386,8]]},"224":{"position":[[670,8]]},"294":{"position":[[533,9]]},"296":{"position":[[620,9]]}}}],["username/password",{"_index":1101,"t":{"218":{"position":[[186,17]]}}}],["users/${user_id",{"_index":691,"t":{"100":{"position":[[222,18]]}}}],["usr/local/bin/km",{"_index":927,"t":{"180":{"position":[[230,18]]}}}],["usr/local/share/ca",{"_index":1245,"t":{"276":{"position":[[335,19]]}}}],["v",{"_index":936,"t":{"180":{"position":[[680,1]]},"206":{"position":[[88,1],[120,1]]}}}],["v1",{"_index":1135,"t":{"226":{"position":[[221,2],[266,2]]},"234":{"position":[[157,2],[192,2]]},"262":{"position":[[178,2],[573,3]]},"266":{"position":[[103,3]]},"326":{"position":[[106,3]]}}}],["v1.18.0",{"_index":1232,"t":{"262":{"position":[[541,8]]},"266":{"position":[[71,8]]},"326":{"position":[[74,8]]}}}],["v1.19.0",{"_index":1290,"t":{"290":{"position":[[13,10]]}}}],["v1.3.7",{"_index":1022,"t":{"196":{"position":[[252,8]]}}}],["v2",{"_index":1107,"t":{"222":{"position":[[7,2]]},"226":{"position":[[7,2],[166,2],[327,3],[541,2]]},"228":{"position":[[56,2]]},"232":{"position":[[109,3]]},"234":{"position":[[463,2]]},"262":{"position":[[227,2]]},"276":{"position":[[186,3]]},"326":{"position":[[135,3]]}}}],["valid",{"_index":449,"t":{"54":{"position":[[310,9],[350,9]]},"96":{"position":[[246,5],[446,5]]},"282":{"position":[[134,5]]},"314":{"position":[[422,10]]}}}],["valu",{"_index":102,"t":{"10":{"position":[[423,6]]},"40":{"position":[[81,5]]},"124":{"position":[[44,5],[98,5]]},"126":{"position":[[188,5],[264,5],[933,6],[2129,6]]}}}],["value_1",{"_index":355,"t":{"40":{"position":[[793,7],[1430,7]]},"124":{"position":[[64,9],[425,7]]},"126":{"position":[[680,9]]}}}],["value_2",{"_index":357,"t":{"40":{"position":[[814,7],[1451,7]]},"126":{"position":[[698,9]]}}}],["var",{"_index":890,"t":{"176":{"position":[[102,3]]},"296":{"position":[[439,4]]}}}],["var/log/errors.log",{"_index":1480,"t":{"370":{"position":[[992,21]]}}}],["variabl",{"_index":331,"t":{"40":{"position":[[35,9],[45,12],[658,9],[755,9]]},"64":{"position":[[152,8]]},"124":{"position":[[2,8]]},"126":{"position":[[40,9],[81,9],[301,9],[401,10],[799,9],[869,8],[1136,8],[1675,8]]},"138":{"position":[[332,9],[401,8]]},"150":{"position":[[459,9],[499,8]]},"174":{"position":[[84,10]]},"182":{"position":[[245,10]]},"212":{"position":[[781,8]]},"244":{"position":[[232,9],[298,9]]},"282":{"position":[[400,9]]},"286":{"position":[[63,10],[456,10]]},"324":{"position":[[177,10]]},"326":{"position":[[678,9]]},"330":{"position":[[269,9]]}}}],["variable/secret",{"_index":518,"t":{"68":{"position":[[1028,15]]}}}],["variable_1",{"_index":354,"t":{"40":{"position":[[780,10],[1417,10]]}}}],["variable_2",{"_index":356,"t":{"40":{"position":[[801,10],[1438,10]]}}}],["variant",{"_index":57,"t":{"8":{"position":[[29,7]]},"74":{"position":[[98,7]]}}}],["variou",{"_index":1224,"t":{"258":{"position":[[16,7]]}}}],["vault",{"_index":768,"t":{"126":{"position":[[1633,6]]}}}],["versa",{"_index":364,"t":{"42":{"position":[[163,6]]}}}],["version",{"_index":90,"t":{"10":{"position":[[228,7],[272,8],[430,8],[595,8],[604,7]]},"40":{"position":[[359,8]]},"44":{"position":[[282,8]]},"46":{"position":[[80,8]]},"68":{"position":[[78,7],[100,7]]},"70":{"position":[[32,10]]},"74":{"position":[[124,7]]},"78":{"position":[[49,7],[93,8]]},"152":{"position":[[124,8]]},"188":{"position":[[120,7]]},"226":{"position":[[449,7]]},"228":{"position":[[59,9],[331,7],[1087,8]]},"262":{"position":[[100,9]]},"304":{"position":[[1437,7],[1487,8]]},"352":{"position":[[337,8]]},"370":{"position":[[1383,9]]}}}],["version=1.19.0&branch=releas",{"_index":893,"t":{"176":{"position":[[150,31]]}}}],["version=v2.x.x",{"_index":615,"t":{"88":{"position":[[757,14]]}}}],["versu",{"_index":515,"t":{"68":{"position":[[651,7]]}}}],["via",{"_index":528,"t":{"68":{"position":[[1463,3]]},"106":{"position":[[278,3]]},"138":{"position":[[128,3],[376,3]]},"144":{"position":[[64,3]]},"146":{"position":[[165,3]]},"174":{"position":[[230,3]]},"194":{"position":[[195,3]]},"220":{"position":[[101,3]]},"300":{"position":[[271,3]]},"308":{"position":[[256,3]]},"324":{"position":[[161,3]]},"356":{"position":[[235,3]]},"360":{"position":[[101,3]]},"370":{"position":[[362,3]]}}}],["vice",{"_index":363,"t":{"42":{"position":[[158,4]]}}}],["view",{"_index":651,"t":{"94":{"position":[[252,4]]},"106":{"position":[[248,4]]},"212":{"position":[[262,4]]},"304":{"position":[[1250,4]]},"346":{"position":[[0,4]]},"348":{"position":[[142,4],[252,4]]},"350":{"position":[[251,4]]}}}],["virtual",{"_index":834,"t":{"150":{"position":[[197,7]]}}}],["visibl",{"_index":525,"t":{"68":{"position":[[1379,7],[1503,7]]},"112":{"position":[[304,7]]},"362":{"position":[[365,7]]}}}],["vite_komodo_host=http://localhost:9120",{"_index":1056,"t":{"204":{"position":[[656,38]]}}}],["vm",{"_index":1362,"t":{"300":{"position":[[346,3]]}}}],["volum",{"_index":341,"t":{"40":{"position":[[489,7],[511,7],[1332,7]]},"148":{"position":[[250,7]]},"150":{"position":[[376,7]]},"228":{"position":[[339,8],[400,8]]},"276":{"position":[[369,8]]},"294":{"position":[[360,8]]},"296":{"position":[[282,8]]}}}],["vs",{"_index":1374,"t":{"304":{"position":[[1046,2]]}}}],["vscode",{"_index":1027,"t":{"200":{"position":[[41,6],[140,6]]}}}],["wait",{"_index":22,"t":{"4":{"position":[[185,5]]}}}],["want",{"_index":665,"t":{"96":{"position":[[293,7]]},"182":{"position":[[309,4],[1018,4],[1558,4]]},"230":{"position":[[7,4],[81,4]]},"262":{"position":[[792,4]]},"270":{"position":[[17,4]]},"282":{"position":[[604,4]]},"292":{"position":[[1000,4]]},"296":{"position":[[997,4]]},"300":{"position":[[17,4]]},"344":{"position":[[227,4]]}}}],["warn",{"_index":305,"t":{"38":{"position":[[505,5],[1064,5]]},"228":{"position":[[430,7]]},"292":{"position":[[934,7]]},"296":{"position":[[732,7]]}}}],["wasn't",{"_index":1151,"t":{"228":{"position":[[572,6]]}}}],["watch",{"_index":1069,"t":{"206":{"position":[[358,7]]}}}],["way",{"_index":475,"t":{"64":{"position":[[22,4]]},"106":{"position":[[12,3]]},"140":{"position":[[21,4]]},"152":{"position":[[14,4]]},"174":{"position":[[408,4]]},"324":{"position":[[906,4]]}}}],["web",{"_index":1005,"t":{"194":{"position":[[358,3]]},"212":{"position":[[12,3]]},"214":{"position":[[78,3]]},"278":{"position":[[215,3]]},"370":{"position":[[1176,6]]}}}],["webhook",{"_index":254,"t":{"29":{"position":[[909,7]]},"52":{"position":[[46,8],[228,7]]},"54":{"position":[[9,7],[57,11]]},"58":{"position":[[9,7],[114,8],[140,8]]},"60":{"position":[[24,8]]},"68":{"position":[[791,8],[1863,8],[1918,7]]},"140":{"position":[[283,8]]},"244":{"position":[[102,7]]},"252":{"position":[[112,9]]}}}],["webhook_en",{"_index":538,"t":{"68":{"position":[[1830,15]]}}}],["webhook_secret",{"_index":539,"t":{"68":{"position":[[1893,14]]}}}],["websocket",{"_index":848,"t":{"158":{"position":[[31,9]]},"216":{"position":[[24,9]]},"300":{"position":[[191,9]]}}}],["week",{"_index":188,"t":{"23":{"position":[[127,4]]}}}],["well",{"_index":695,"t":{"100":{"position":[[451,5],[950,4]]},"106":{"position":[[292,4]]},"126":{"position":[[234,4]]},"180":{"position":[[85,4]]},"296":{"position":[[44,5]]},"324":{"position":[[1157,5]]}}}],["wget",{"_index":970,"t":{"182":{"position":[[2139,4]]},"286":{"position":[[569,4]]},"322":{"position":[[243,4]]},"326":{"position":[[474,4],[579,4]]},"330":{"position":[[68,4],[170,4]]}}}],["whatev",{"_index":1215,"t":{"246":{"position":[[119,8]]},"324":{"position":[[1001,8]]}}}],["whenev",{"_index":944,"t":{"182":{"position":[[296,8]]}}}],["whether",{"_index":44,"t":{"6":{"position":[[99,7],[324,7]]},"18":{"position":[[184,7]]},"68":{"position":[[1846,7]]},"112":{"position":[[140,7]]},"318":{"position":[[312,7]]}}}],["whitelist",{"_index":1226,"t":{"258":{"position":[[89,10]]}}}],["whole",{"_index":1250,"t":{"276":{"position":[[606,5]]}}}],["wide",{"_index":926,"t":{"180":{"position":[[212,5]]},"244":{"position":[[293,4]]}}}],["wildcard",{"_index":62,"t":{"8":{"position":[[116,8]]},"44":{"position":[[379,10]]},"182":{"position":[[536,8],[1295,9]]},"324":{"position":[[361,8]]}}}],["window",{"_index":1439,"t":{"336":{"position":[[217,7]]}}}],["with_healthcheck",{"_index":865,"t":{"170":{"position":[[142,19]]}}}],["within",{"_index":19,"t":{"4":{"position":[[114,6]]},"6":{"position":[[197,6]]},"244":{"position":[[249,6]]},"254":{"position":[[87,6]]},"364":{"position":[[169,6]]}}}],["without",{"_index":676,"t":{"96":{"position":[[936,7]]},"150":{"position":[[938,8]]},"304":{"position":[[1332,7]]},"308":{"position":[[563,7]]}}}],["won't",{"_index":1340,"t":{"296":{"position":[[814,5]]},"304":{"position":[[1354,5]]}}}],["work",{"_index":260,"t":{"31":{"position":[[150,5]]},"52":{"position":[[241,5]]},"138":{"position":[[179,7]]},"182":{"position":[[453,7],[885,7]]},"228":{"position":[[1245,4]]},"230":{"position":[[877,6]]}}}],["worker",{"_index":1446,"t":{"344":{"position":[[277,6]]}}}],["workflow",{"_index":7,"t":{"2":{"position":[[78,10]]},"212":{"position":[[674,9]]}}}],["worri",{"_index":1356,"t":{"298":{"position":[[482,7]]}}}],["wrap",{"_index":748,"t":{"124":{"position":[[348,4]]}}}],["write",{"_index":69,"t":{"10":{"position":[[16,5]]},"21":{"position":[[36,5]]},"31":{"position":[[94,5]]},"50":{"position":[[171,5],[237,8]]},"64":{"position":[[74,5]]},"94":{"position":[[905,6],[937,5]]},"140":{"position":[[52,5],[77,6]]},"162":{"position":[[55,5]]},"168":{"position":[[55,5]]},"254":{"position":[[0,5]]},"286":{"position":[[93,5]]},"298":{"position":[[171,6]]}}}],["write:packag",{"_index":569,"t":{"80":{"position":[[545,14]]},"120":{"position":[[507,14]]}}}],["written",{"_index":810,"t":{"138":{"position":[[342,7]]}}}],["ws/peripheri",{"_index":1281,"t":{"284":{"position":[[259,13]]}}}],["ws://localhost:9120",{"_index":1185,"t":{"232":{"position":[[845,19]]}}}],["x",{"_index":450,"t":{"54":{"position":[[320,1],[360,1]]},"176":{"position":[[185,1]]},"284":{"position":[[405,1]]}}}],["x86",{"_index":97,"t":{"10":{"position":[[331,7]]},"82":{"position":[[44,5]]}}}],["x86_64",{"_index":920,"t":{"180":{"position":[[39,7]]}}}],["xxxxxxxx",{"_index":296,"t":{"38":{"position":[[303,10]]}}}],["xxxxxxxxxxxxxxxxxx",{"_index":294,"t":{"38":{"position":[[267,19],[386,20],[411,19]]},"88":{"position":[[237,19],[284,19],[580,20]]}}}],["y",{"_index":618,"t":{"88":{"position":[[865,1]]},"174":{"position":[[504,2]]},"176":{"position":[[60,1],[123,1]]},"294":{"position":[[358,1]]},"296":{"position":[[241,1]]}}}],["yaml",{"_index":349,"t":{"40":{"position":[[592,4]]},"182":{"position":[[1926,4],[2013,5],[2049,4]]},"286":{"position":[[233,4],[320,5],[356,4]]},"322":{"position":[[40,4],[127,5],[155,4]]}}}],["yarn",{"_index":1008,"t":{"194":{"position":[[385,4],[447,5]]}}}],["ye",{"_index":995,"t":{"190":{"position":[[195,2]]}}}],["your_core_public_key",{"_index":1174,"t":{"230":{"position":[[814,24]]}}}],["your_key",{"_index":863,"t":{"170":{"position":[[115,11]]},"172":{"position":[[199,11]]}}}],["your_komodo_core_address",{"_index":1183,"t":{"232":{"position":[[791,28]]}}}],["your_onboarding_key",{"_index":1191,"t":{"232":{"position":[[1239,23]]}}}],["your_organ",{"_index":322,"t":{"38":{"position":[[863,19]]}}}],["your_secret",{"_index":864,"t":{"170":{"position":[[127,14]]}}}],["your_usernam",{"_index":320,"t":{"38":{"position":[[810,15]]}}}],["yourself",{"_index":561,"t":{"78":{"position":[[63,9]]}}}],["zombi",{"_index":1150,"t":{"228":{"position":[[547,6]]}}}]],"pipeline":["stemmer"]}}]
\ No newline at end of file
diff --git a/search.html b/search.html
index 5e71568bb..1d865e93a 100644
--- a/search.html
+++ b/search.html
@@ -4,7 +4,7 @@
Search the documentation
-
+