[READ-ONLY] Mirror of https://github.com/FoxxMD/komodo-import. Import existing compose stacks into Komodo foxxmd.github.io/komodo-import
compose docker import komodo toml
0

Configure Feed

Select the types of activity you want to include in your feed.

deploy: 7baa9c2e51aab82b23e226c0b67027979b31bb36

github-actions[bot] (Aug 13, 2025, 8:24 PM UTC) 33531062 9606e686

+132 -43
+1 -1
404.html
··· 1 - <!doctype html><html lang=en dir=ltr class="plugin-native plugin-id-default" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Page Not Found | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/404.html/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docusaurus_tag content=default><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docsearch:docusaurus_tag content=default><meta data-rh=true property=og:title content="Page Not Found | Komodo Import"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/404.html/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/404.html/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/404.html/ hreflang=x-default><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.0d2cf591.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 1 + <!doctype html><html lang=en dir=ltr class="plugin-native plugin-id-default" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Page Not Found | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/404.html/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docusaurus_tag content=default><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docsearch:docusaurus_tag content=default><meta data-rh=true property=og:title content="Page Not Found | Komodo Import"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/404.html/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/404.html/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/404.html/ hreflang=x-default><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.3c5778fb.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 2 2 <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 3 3 </defs></svg> 4 4 <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/komodo-import/><b class="navbar__title text--truncate">Komodo Import</b></a><a class="navbar__item navbar__link" href=/komodo-import/docs/quickstart/>Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><main class="container margin-vert--xl"><div class=row><div class="col col--6 col--offset-3"><h1 class=hero__title>Page Not Found</h1><p>We could not find what you were looking for.<p>Please contact the owner of the site that linked you to the original URL and let them know their link is broken.</div></div></main></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/komodo-import/>Overview</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/installation/>Installation</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/usage/>Usage</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 Komodo Import. Built with Docusaurus.</div></div></div></footer></div>
+1
assets/js/0c76d939.30265dc5.js
··· 1 + "use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["775"],{5413:function(e,n,s){s.r(n),s.d(n,{frontMatter:()=>r,default:()=>a,toc:()=>c,metadata:()=>i,assets:()=>d,contentTitle:()=>o});var i=JSON.parse('{"id":"usage/overview","title":"Overview","description":"Key Concepts","source":"@site/docs/usage/overview.mdx","sourceDirName":"usage","slug":"/usage/overview","permalink":"/komodo-import/docs/usage/overview","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/usage/overview.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"Overview","toc_max_heading_level":4},"sidebar":"tutorialSidebar","previous":{"title":"Usage","permalink":"/komodo-import/docs/category/usage"},"next":{"title":"Using Sync Resources","permalink":"/komodo-import/docs/usage/resourceSync"}}'),t=s(5893),l=s(65);s(7902),s(5525),s(792),s(7294),s(5094),s(6893),s(1142);let r={sidebar_position:2,title:"Overview",toc_max_heading_level:4},o=void 0,d={},c=[{value:"Key Concepts",id:"key-concepts",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Configuration",id:"configuration",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Inputs",id:"inputs-1",level:2},{value:"Stacks",id:"stacks",level:3},{value:"Common Stack Configuration",id:"common-stack-configuration",level:5},{value:"Files On Server",id:"files-on-server",level:4},{value:"Project Files Detection",id:"project-file-detection",level:6},{value:"Configuration",id:"fos-config",level:5},{value:"Git Repo",id:"git-repo",level:4},{value:"Monorepos",id:"monorepos",level:6},{value:"Configuration",id:"configuration-1",level:4},{value:"Outputs",id:"outputs-1",level:2},{value:"Console",id:"console",level:3},{value:"API Sync",id:"api-sync",level:3},{value:"File",id:"file",level:3},{value:"Komodo API",id:"komodo-api",level:2},{value:"API Configuration",id:"api-configuration",level:4}];function h(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.a)(),...e.components},{Details:s}=n;return s||function(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"key-concepts",children:"Key Concepts"}),"\n",(0,t.jsxs)(n.p,{children:["There are three parts to using Komodo Import (KI). ",(0,t.jsx)(n.strong,{children:"Which Inputs, Configuration, and Outputs are used are all defined using environmental variables."})]}),"\n",(0,t.jsx)(n.h3,{id:"inputs",children:"Inputs"}),"\n",(0,t.jsxs)(n.p,{children:["This is what KI reads to generate ",(0,t.jsx)(n.a,{href:"https://komo.do/docs/resources",children:"Komodo Resources"}),". These are existing, docker-related resources on an individual machine such as"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://docs.docker.com/compose/how-tos/project-name/",children:"Docker Compose projects"})," (",(0,t.jsx)(n.code,{children:"compose.yaml"}),")"]}),"\n",(0,t.jsx)(n.li,{children:"Docker containers"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"configuration",children:"Configuration"}),"\n",(0,t.jsxs)(n.p,{children:["These are ",(0,t.jsx)(n.strong,{children:"environmental variables"})," supplied to KI to:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"set defaults for Komodo Resources (image registry, auto update, etc.)"}),"\n",(0,t.jsx)(n.li,{children:"define required fields for Komodo Resources (Server Name, Run Directory, etc.)"}),"\n",(0,t.jsx)(n.li,{children:"define settings for how KI to interacts with Komodo (API Key, existing Resource behavior, etc.)"}),"\n",(0,t.jsxs)(n.li,{children:["define what ",(0,t.jsx)(n.a,{href:"#outputs",children:"Outputs"})," KI uses (log to file, export to Komodo, etc.)"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"outputs",children:"Outputs"}),"\n",(0,t.jsxs)(n.p,{children:["These are where and how KI puts the Resources created from ",(0,t.jsx)(n.a,{href:"#inputs",children:"Inputs"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Log to output (docker logs, node console)"}),"\n",(0,t.jsx)(n.li,{children:"Log to file"}),"\n",(0,t.jsx)(n.li,{children:"Export to Komodo API (create Resource Sync, etc.)"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"inputs-1",children:"Inputs"}),"\n",(0,t.jsx)(n.h3,{id:"stacks",children:"Stacks"}),"\n",(0,t.jsxs)(n.p,{children:["KI can create Komodo ",(0,t.jsx)(n.a,{href:"https://komo.do/docs/resources#stack",children:"Stack"})," Resources from existing resources on your machine."]}),"\n",(0,t.jsx)(n.h5,{id:"common-stack-configuration",children:"Common Stack Configuration"}),"\n",(0,t.jsx)(n.p,{children:"These environmental variables are applicable to all Stack types below."}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Environmental Variables"}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"ENV"}),(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"Required"}),(0,t.jsx)(n.th,{children:"Default"}),(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"SERVER_NAME"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["The name of the Komodo ",(0,t.jsx)(n.a,{href:"https://komo.do/docs/resources#server",children:"Server"})," where a Stack is located"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"HOST_PARENT_PATH"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["The parent directory on the ",(0,t.jsx)(n.strong,{children:"host"})," where stack folders are located."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"WRITE_ENV"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["Write the contents of found .env files to Komodo ",(0,t.jsx)(n.strong,{children:"Environment"}),". Likely want this as ",(0,t.jsx)(n.code,{children:"true"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"FOLDER_GLOB"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"*"})}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["The ",(0,t.jsx)(n.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use for finding folders in the top-level folder given to Komodo Import"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"FOLDER_IGNORE_GLOB"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["The ",(0,t.jsx)(n.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use to ignore folders in the top-level folder given to Komodo Import"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"COMPOSE_FILE_GLOB"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"**/{compose,docker-compose}*.y?(a)ml"})}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["The ",(0,t.jsx)(n.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use for finding files for ",(0,t.jsx)(n.strong,{children:"Files Paths"})," in Stack config"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"ENV_FILE_GLOB"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"**/.env"})}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["The ",(0,t.jsx)(n.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use for finding files for ",(0,t.jsx)(n.strong,{children:"Additional Env Files"})," in Stack config"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"KOMODO_ENV_NAME"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:".komodoenv"})}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["If existing .env files are found, and ",(0,t.jsx)(n.code,{children:"WRITE_ENV=false"}),", then this name will be used for the .env that Komodo writes using its own Environment section"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"IMAGE_REGISTRY_PROVIDER"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"Name of Image Registry to use"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"IMAGE_REGISTRY_ACCOUNT"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"Image Registry account to use"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"POLL_FOR_UPDATE"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"Poll for newer images?"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"AUTO_UPDATE"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"Auto Update stack?"})]})]})]})]}),"\n",(0,t.jsx)(n.h4,{id:"files-on-server",children:"Files On Server"}),"\n",(0,t.jsxs)(n.p,{children:["Use existing, non git-based ",(0,t.jsx)(n.a,{href:"https://docs.docker.com/compose/how-tos/project-name/",children:"Docker Compose projects"})," (",(0,t.jsx)(n.code,{children:"compose.yaml"}),") as ",(0,t.jsx)(n.strong,{children:"Files On Server"})," mode Komodo Stacks."]}),"\n",(0,t.jsxs)(n.p,{children:["KI will generate multiple Stacks from all folders within the given folder. This is similar to how ",(0,t.jsx)(n.a,{href:"https://github.com/louislam/dockge",children:"dockge"})," works."]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Example"}),(0,t.jsx)(n.p,{children:"If your folder structure looks like this"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:".\n\u2514\u2500\u2500 /home/myUser/homelab/\n \u251C\u2500\u2500 immich/\n \u2502 \u2514\u2500\u2500 compose.yaml\n \u251C\u2500\u2500 plex/\n \u2502 \u2514\u2500\u2500 docker-compose.yaml\n \u2514\u2500\u2500 uptime-kuma/\n \u2514\u2500\u2500 compose.yaml\n"})}),(0,t.jsxs)(n.p,{children:["and you use ",(0,t.jsx)(n.code,{children:"/home/myUser/homelab/"})," with KI then it will output stacks for"]}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"immich"})," with Run Directory ",(0,t.jsx)(n.code,{children:"/home/myUser/homelab/immich"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"plex"})," with Run Directory ",(0,t.jsx)(n.code,{children:"/home/myUser/homelab/plex"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"uptime-kuma"})," with Run Directory ",(0,t.jsx)(n.code,{children:"/home/myUser/homelab/uptime-kuma"})]}),"\n"]})]}),"\n",(0,t.jsx)(n.h6,{id:"project-file-detection",children:"Project Files Detection"}),"\n",(0,t.jsxs)(n.p,{children:["Komodo Import makes some reasonable assumptions about which ",(0,t.jsx)(n.code,{children:"compose.yaml"})," and ",(0,t.jsx)(n.code,{children:".env"})," files you want to use within each project's folder. These can be overriden using the ",(0,t.jsx)(n.code,{children:"*_GLOB"})," environmental varibales from the ",(0,t.jsx)(n.a,{href:"#fos-config",children:"Configuration"})," below."]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"File Detection and Behavior Details"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Compose Files","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Default pattern","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Looks for ",(0,t.jsx)(n.code,{children:"compose.y(a)ml"})," and ",(0,t.jsx)(n.code,{children:"docker-compose.y(a)ml"})]}),"\n",(0,t.jsxs)(n.li,{children:["Files may have interim names like ",(0,t.jsx)(n.code,{children:"compose.dev.yaml"})]}),"\n",(0,t.jsxs)(n.li,{children:["Can be overridden with ",(0,t.jsx)(n.code,{children:"COMPOSE_FILE_GLOB"})," env"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Will prioritize ",(0,t.jsx)(n.code,{children:"compose.yaml"})," over ",(0,t.jsx)(n.code,{children:"docker-compose.yaml"})]}),"\n",(0,t.jsxs)(n.li,{children:["Will choose the file with the shortest path EX","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Prioritizes ",(0,t.jsx)(n.code,{children:"./compose.yaml"})," over ",(0,t.jsx)(n.code,{children:"./aFolder/compose.yaml"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[".env Files","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Default pattern","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Adds all ",(0,t.jsx)(n.code,{children:".env"})," files found at top-level or sub-folders"]}),"\n",(0,t.jsxs)(n.li,{children:["Can be overridden with ",(0,t.jsx)(n.code,{children:"ENV_FILE_GLOB"})," env"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["If a ",(0,t.jsx)(n.code,{children:".env"})," file is found then configures Komodo to write it's own Environment section to ",(0,t.jsx)(n.code,{children:".komodoenv"})," instead of ",(0,t.jsx)(n.code,{children:".env"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Komodo env name can be overridden with ",(0,t.jsx)(n.code,{children:"KOMODO_ENV_NAME"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),(0,t.jsxs)(n.p,{children:["Komodo Import will ",(0,t.jsx)(n.strong,{children:"log"})," which files it detects and indicate which ones it will use for each project. These can be manually modified in the generated TOML, ",(0,t.jsx)(n.a,{href:"#api-sync",children:"API Sync Resource"}),", or after creating the Stack in Komodo."]})]}),"\n",(0,t.jsx)(n.h5,{id:"fos-config",children:"Configuration"}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Environmental Variables"}),(0,t.jsxs)(n.p,{children:["Use the ",(0,t.jsx)(n.a,{href:"#common-stack-configuration",children:(0,t.jsx)(n.strong,{children:"Common Stack Configuration environmental variables"})})]})]}),"\n",(0,t.jsxs)(n.p,{children:["For ",(0,t.jsx)(n.a,{href:"../../installation#docker",children:"docker"})," usage the folder with your projects should be mounted to ",(0,t.jsx)(n.code,{children:"/filesOnServer"})," in the container."]}),"\n",(0,t.jsx)(n.h4,{id:"git-repo",children:"Git Repo"}),"\n",(0,t.jsxs)(n.p,{children:["Use existing, ",(0,t.jsx)(n.strong,{children:"git repository"})," folders containing ",(0,t.jsx)(n.a,{href:"https://docs.docker.com/compose/how-tos/project-name/",children:"Docker Compose projects"})," (",(0,t.jsx)(n.code,{children:"compose.yaml"}),") as ",(0,t.jsx)(n.strong,{children:"Git Repo"})," mode Komodo Stacks."]}),"\n",(0,t.jsx)(n.p,{children:"KI will generate multiple Stacks from all folders within the given folder. Each folder detected as a git repository will have all required fields in a Git Repo Komodo Stack configured based on information from the local repository."}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"How Repository Parsing Works"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["A folder is only built as a Git Repo stack if...","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["It contains a valid ",(0,t.jsx)(n.code,{children:".git"})," folder"]}),"\n",(0,t.jsx)(n.li,{children:"The git repo has a valid remote"}),"\n",(0,t.jsx)(n.li,{children:"The current checked out local branch is tracking a remote branch"}),"\n",(0,t.jsxs)(n.li,{children:["If any of the above are not true then the folder is instead parsed as a ",(0,t.jsx)(n.a,{href:"#files-on-server",children:"Files On Server"})," Stack"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Additionally, if ",(0,t.jsx)(n.a,{href:"#komodo-api",children:(0,t.jsx)(n.strong,{children:"Komodo API is configured"})})," then...","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["If Komodo has a ",(0,t.jsx)(n.a,{href:"https://komo.do/docs/resources#repo",children:"Repo"})," Resource that matches the remote, then the Git Repo Stack uses a Linked Repo"]}),"\n",(0,t.jsx)(n.li,{children:"If Komodo has a Git Provider matching the remote URL domain then that is used, along with the Git Provider user (private git is automatically detected)"}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Example"}),(0,t.jsx)(n.p,{children:"You have two repositories at"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"https://git.mydomain.com/myUser/immich"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"https://github.com/anotherUser/plex"})}),"\n"]}),(0,t.jsx)(n.p,{children:"Your folder structure looks like this"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"/home/myUser/homelab\n\u251C\u2500\u2500 immich\n\u2502 \u251C\u2500\u2500 .git\n\u2502 \u2514\u2500\u2500 compose.yaml\n\u251C\u2500\u2500 plex\n\u2502 \u251C\u2500\u2500 .git\n\u2502 \u2514\u2500\u2500 docker-compose.yaml\n\u2514\u2500\u2500 uptime-kuma\n \u2514\u2500\u2500 compose.yaml\n"})}),(0,t.jsxs)(n.p,{children:["You run Komodo Import with the ",(0,t.jsx)(n.code,{children:"homelab"})," directory:"]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:'docker run ... -e "HOST_PARENT_PATH=/home/myUser/homelab" -v /home/myUser/homelab:/filesOnServer foxxmd/komodo-import'})}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"immich"})," is created as a Git Repo Stack with","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Git Provider: ",(0,t.jsx)(n.code,{children:"git.mydomain.com"})]}),"\n",(0,t.jsxs)(n.li,{children:["Repo: ",(0,t.jsx)(n.code,{children:"myUser/immich"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"plex"})," is created as a Git Repo Stack with","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Git Provider: ",(0,t.jsx)(n.code,{children:"github.com"})]}),"\n",(0,t.jsxs)(n.li,{children:["Repo: ",(0,t.jsx)(n.code,{children:"anotherUser/immich"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"uptime-kuma"})," is created as a Files On Server Stack","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Run Directory: ",(0,t.jsx)(n.code,{children:"/home/myUser/homelab/uptime-kuma"})]}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,t.jsx)(n.h6,{id:"monorepos",children:"Monorepos"}),"\n",(0,t.jsxs)(n.p,{children:["Komodo Import can also handle ",(0,t.jsx)(n.strong,{children:"monorepos."})," Mount the top-level repository folder to the usual ",(0,t.jsx)(n.code,{children:"/filesOnServer"})," location and it will automatically treat sub-folders as Git Repo Stacks using the top-level repository."]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Example"}),(0,t.jsxs)(n.p,{children:["You have a repository at ",(0,t.jsx)(n.code,{children:"https://git.mydomain.com/myUser/homelab"})," and each folder in the repo is a different stack."]}),(0,t.jsx)(n.p,{children:"Your folder structure (on the host machine) looks like this:"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"/home/myUser/homelab\n\u251C\u2500\u2500 .git\n\u251C\u2500\u2500 immich\n\u2502 \u2514\u2500\u2500 compose.yaml\n\u251C\u2500\u2500 plex\n\u2502 \u2514\u2500\u2500 docker-compose.yaml\n\u2514\u2500\u2500 uptime-kuma\n \u2514\u2500\u2500 compose.yaml\n"})}),(0,t.jsxs)(n.p,{children:["You run Komodo Import with the ",(0,t.jsx)(n.code,{children:"homelab"})," directory:"]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"docker run ... -v /home/myUser/homelab:/filesOnServer foxxmd/komodo-import"})}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"immich"})," is created as a Git Repo Stack with","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Git Provider: ",(0,t.jsx)(n.code,{children:"git.mydomain.com"})]}),"\n",(0,t.jsxs)(n.li,{children:["Repo: ",(0,t.jsx)(n.code,{children:"myUser/homelab"})]}),"\n",(0,t.jsxs)(n.li,{children:["Run Directory: ",(0,t.jsx)(n.code,{children:"immich"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"plex"})," is created as a Git Repo Stack with","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Git Provider: ",(0,t.jsx)(n.code,{children:"git.mydomain.com"})]}),"\n",(0,t.jsxs)(n.li,{children:["Repo: ",(0,t.jsx)(n.code,{children:"myUser/homelab"})]}),"\n",(0,t.jsxs)(n.li,{children:["Run Directory: ",(0,t.jsx)(n.code,{children:"plex"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"uptime-kuma"})," is created as a Files On Server Stack","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Git Provider: ",(0,t.jsx)(n.code,{children:"git.mydomain.com"})]}),"\n",(0,t.jsxs)(n.li,{children:["Repo: ",(0,t.jsx)(n.code,{children:"myUser/homelab"})]}),"\n",(0,t.jsxs)(n.li,{children:["Run Directory: ",(0,t.jsx)(n.code,{children:"uptime-kuma"})]}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Nested Monorepo"}),(0,t.jsxs)(n.p,{children:["If your stack folders are not the immediate sub-folders in your repository then specify the ",(0,t.jsx)(n.em,{children:"relative directory from git root"})," as ",(0,t.jsx)(n.code,{children:"GIT_STACKS_DIR"})," to specify what parent folder to use:"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"/home/myUser/homelab\n\u251C\u2500\u2500 .git\n\u251C\u2500\u2500 myStacks\n\u2502 \u251C\u2500\u2500 immich\n\u2502 \u2502 \u2514\u2500\u2500 compose.yaml\n\u2502 \u251C\u2500\u2500 plex\n\u2502 \u2502 \u2514\u2500\u2500 docker-compose.yaml\n\u2502 \u2514\u2500\u2500 uptime-kuma\n\u2502 \u2514\u2500\u2500 compose.yaml\n\u2514\u2500\u2500 somethingElse\n"})}),(0,t.jsxs)(n.p,{children:["Use ",(0,t.jsx)(n.code,{children:"GIT_STACKS_DIR=myStacks"})," with the above example."]})]}),"\n",(0,t.jsx)(n.h4,{id:"configuration-1",children:"Configuration"}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Environmental Variables"}),(0,t.jsxs)(n.p,{children:["Combine with ",(0,t.jsx)(n.a,{href:"#common-stack-configuration",children:(0,t.jsx)(n.strong,{children:"Common Stack Configuration environmental variables"})})]}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"ENV"}),(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"Required"}),(0,t.jsx)(n.th,{children:"Default"}),(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"GIT_STACKS_DIR"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["Set sub-folder to use for stacks when generating from a ",(0,t.jsx)(n.a,{href:"#monorepo",children:"monorepo"})]})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"outputs-1",children:"Outputs"}),"\n",(0,t.jsx)(n.h3,{id:"console",children:"Console"}),"\n",(0,t.jsxs)(n.p,{children:["KI will always output the raw TOML form of a ",(0,t.jsx)(n.a,{href:"https://komo.do/docs/sync-resources",children:"Sync Resource"})," to console unless the env ",(0,t.jsx)(n.code,{children:"LOG_TOML=false"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"You'll see this in docker logs or node's console like this:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'[2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync\n\n\u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F\n[[stack]]\nname = "compose"\n\n[stack.config]\nserver = "my-cool-server"\nrun_directory = "/home/myUser/homelab/compose"\n\n...\n\n\u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F\n[2025-08-11 14:06:19.119 -0400] INFO : [App] Done!\n'})}),"\n",(0,t.jsxs)(n.p,{children:["Use this with ",(0,t.jsx)(n.a,{href:"../resourceSync#create-sync-resource",children:"manually creating Sync Resources"})]}),"\n",(0,t.jsxs)(n.admonition,{type:"tip",children:[(0,t.jsxs)(n.p,{children:["Use ",(0,t.jsx)(n.code,{children:"--no-log-prefix"})," to get output without the service name prefix, makes getting clear TOML output easier."]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"docker compose up --no-log-prefix\n"})})]}),"\n",(0,t.jsx)(n.h3,{id:"api-sync",children:"API Sync"}),"\n",(0,t.jsxs)(n.p,{children:["Komodo Import can ",(0,t.jsx)(n.strong,{children:"directly create Sync Resources in Komodo"})," using Komodo's API. ",(0,t.jsx)(n.strong,{children:"This output will only create the Sync, it will not execute it."})," After creating the Sync you should ",(0,t.jsx)(n.a,{href:"../resourceSync#verify-sync-changes",children:"verify its content before executing."})]}),"\n",(0,t.jsxs)(n.p,{children:["First, follow the instructions and configuration in the ",(0,t.jsx)(n.a,{href:"#komodo-api",children:"Komodo API"})," section."]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["Currently, the user creating the Api Key must be an ",(0,t.jsx)(n.strong,{children:"Admin"})," to create Sync Resources (but this will hopefully be more granular in the future)."]})}),"\n",(0,t.jsx)(n.p,{children:"Then, add these environmental variables to Komodo Import:"}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Environmental Variables"}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"ENV"}),(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"Required"}),(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"Default"}),(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"OUTPUT_API_SYNC"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["Must be ",(0,t.jsx)(n.code,{children:"true"})," to activate API Sync"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"EXISTING_SYNC"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"append"}),(0,t.jsxs)(n.td,{style:{textAlign:"left"},children:["Behavior if Resource Sync already exists. Either ",(0,t.jsx)(n.code,{children:"append"})," or ",(0,t.jsx)(n.code,{children:"overwrite"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"SYNC_NAME"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"-"}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"komodo-import"}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"Name of Sync to create/modify"})]})]})]})]}),"\n",(0,t.jsx)(n.h3,{id:"file",children:"File"}),"\n",(0,t.jsxs)(n.p,{children:["Komodo Import will attempt to write the generated output to a ",(0,t.jsx)(n.code,{children:".toml"})," file if the ENV ",(0,t.jsx)(n.code,{children:"OUTPUT_DIR"})," is present. This should be the ",(0,t.jsx)(n.em,{children:"directory"})," (not file) that the generated file should be written to."]}),"\n",(0,t.jsxs)(n.p,{children:["Bind mount a folder into the container and set ",(0,t.jsx)(n.code,{children:"OUTPUT_DIR"})," like in the example below:"]}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"File Output Example"}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"services:\n komodo-import:\n # ...\n environment:\n # ...\n - OUTPUT_DIR=/output\n volumes:\n # ...\n - /my/host/folder:/output\n"})})]}),"\n",(0,t.jsxs)(n.p,{children:["Use this with ",(0,t.jsx)(n.a,{href:"../resourceSync#create-sync-resource",children:"manually creating Sync Resources"})]}),"\n",(0,t.jsx)(n.h2,{id:"komodo-api",children:"Komodo API"}),"\n",(0,t.jsx)(n.p,{children:"Komodo Import can take advantage of your existing Komodo instance to configure Stacks with linked repos, write Resource Syncs directly, etc..."}),"\n",(0,t.jsx)(n.p,{children:"You will need to create an API Key and Secret to use the API."}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"API Key Creation Instructions"}),(0,t.jsx)(n.p,{children:"Navigate to your Komodo Web UI:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Open ",(0,t.jsx)(n.strong,{children:"Settings"})," -> ",(0,t.jsx)(n.strong,{children:"Profile"})]}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.strong,{children:"New Api Key"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Give it a name and optional Expiry"}),"\n",(0,t.jsxs)(n.li,{children:["Create the key and Copy the show ",(0,t.jsx)(n.strong,{children:"Key"})," and ",(0,t.jsx)(n.strong,{children:"Secret"})]}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,t.jsx)(n.h4,{id:"api-configuration",children:"API Configuration"}),"\n",(0,t.jsx)(n.p,{children:"Add these environmental variables to Komodo Import to use the Komodo API."}),"\n",(0,t.jsxs)(s,{children:[(0,t.jsx)("summary",{children:"Environmental Variables"}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"ENV"}),(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"Required"}),(0,t.jsx)(n.th,{children:"Default"}),(0,t.jsx)(n.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"KOMODO_URL"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"Komodo Server URL"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"API_KEY"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"Komodo API Key"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{style:{textAlign:"left"},children:(0,t.jsx)(n.code,{children:"API_SECRET"})}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,t.jsx)(n.td,{}),(0,t.jsx)(n.td,{style:{textAlign:"left"},children:"Komodo API Secret"})]})]})]})]}),"\n",(0,t.jsx)(n.p,{children:"Your Komodo URL should be as specific as possible, including port if required. Some examples of valid urls:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"http://192.168.0.100:9120"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"https://komodo.mydomain.com"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.code,{children:"https://myKomodo.com"})}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"http://komodo"})," (in docker network, for example)"]}),"\n"]})]})}function a(e={}){let{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}}}]);
-1
assets/js/0c76d939.c8ceb889.js
··· 1 - "use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["775"],{5413:function(e,s,t){t.r(s),t.d(s,{frontMatter:()=>r,default:()=>a,toc:()=>c,metadata:()=>n,assets:()=>d,contentTitle:()=>o});var n=JSON.parse('{"id":"usage/overview","title":"Overview","description":"Key Concepts","source":"@site/docs/usage/overview.mdx","sourceDirName":"usage","slug":"/usage/overview","permalink":"/komodo-import/docs/usage/overview","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/usage/overview.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"title":"Overview","toc_max_heading_level":4},"sidebar":"tutorialSidebar","previous":{"title":"Usage","permalink":"/komodo-import/docs/category/usage"},"next":{"title":"Using Sync Resources","permalink":"/komodo-import/docs/usage/resourceSync"}}'),i=t(5893),l=t(65);t(7902),t(5525),t(792),t(7294),t(5094),t(6893),t(1142);let r={sidebar_position:2,title:"Overview",toc_max_heading_level:4},o=void 0,d={},c=[{value:"Key Concepts",id:"key-concepts",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Configuration",id:"configuration",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Inputs",id:"inputs-1",level:2},{value:"Stacks",id:"stacks",level:3},{value:"Files On Server",id:"files-on-server",level:4},{value:"Project Files Detection",id:"project-file-detection",level:6},{value:"Configuration",id:"fos-config",level:5},{value:"Git-Based",id:"git-based",level:4},{value:"Outputs",id:"outputs-1",level:2},{value:"Console",id:"console",level:3},{value:"API Sync",id:"api-sync",level:3},{value:"File",id:"file",level:3}];function h(e){let s={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.a)(),...e.components},{Details:t}=s;return t||function(e,s){throw Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"key-concepts",children:"Key Concepts"}),"\n",(0,i.jsxs)(s.p,{children:["There are three parts to using Komodo Import (KI). ",(0,i.jsx)(s.strong,{children:"Which Inputs, Configuration, and Outputs are used are all defined using environmental variables."})]}),"\n",(0,i.jsx)(s.h3,{id:"inputs",children:"Inputs"}),"\n",(0,i.jsxs)(s.p,{children:["This is what KI reads to generate ",(0,i.jsx)(s.a,{href:"https://komo.do/docs/resources",children:"Komodo Resources"}),". These are existing, docker-related resources on an individual machine such as"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.a,{href:"https://docs.docker.com/compose/how-tos/project-name/",children:"Docker Compose projects"})," (",(0,i.jsx)(s.code,{children:"compose.yaml"}),")"]}),"\n",(0,i.jsx)(s.li,{children:"Docker containers"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"configuration",children:"Configuration"}),"\n",(0,i.jsxs)(s.p,{children:["These are ",(0,i.jsx)(s.strong,{children:"environmental variables"})," supplied to KI to:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"set defaults for Komodo Resources (image registry, auto update, etc.)"}),"\n",(0,i.jsx)(s.li,{children:"define required fields for Komodo Resources (Server Name, Run Directory, etc.)"}),"\n",(0,i.jsx)(s.li,{children:"define settings for how KI to interacts with Komodo (API Key, existing Resource behavior, etc.)"}),"\n",(0,i.jsxs)(s.li,{children:["define what ",(0,i.jsx)(s.a,{href:"#outputs",children:"Outputs"})," KI uses (log to file, export to Komodo, etc.)"]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"outputs",children:"Outputs"}),"\n",(0,i.jsxs)(s.p,{children:["These are where and how KI puts the Resources created from ",(0,i.jsx)(s.a,{href:"#inputs",children:"Inputs"}),":"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Log to output (docker logs, node console)"}),"\n",(0,i.jsx)(s.li,{children:"Log to file"}),"\n",(0,i.jsx)(s.li,{children:"Export to Komodo API (create Resource Sync, etc.)"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"inputs-1",children:"Inputs"}),"\n",(0,i.jsx)(s.h3,{id:"stacks",children:"Stacks"}),"\n",(0,i.jsxs)(s.p,{children:["KI can create Komodo ",(0,i.jsx)(s.a,{href:"https://komo.do/docs/resources#stack",children:"Stack"})," Resources from existing resources on your machine."]}),"\n",(0,i.jsx)(s.h4,{id:"files-on-server",children:"Files On Server"}),"\n",(0,i.jsxs)(s.p,{children:["Use existing ",(0,i.jsx)(s.a,{href:"https://docs.docker.com/compose/how-tos/project-name/",children:"Docker Compose projects"})," (",(0,i.jsx)(s.code,{children:"compose.yaml"}),") as ",(0,i.jsx)(s.a,{href:"#files-on-server",children:(0,i.jsx)(s.strong,{children:"Files On Server"})})," mode Komodo Stacks."]}),"\n",(0,i.jsxs)(s.p,{children:["KI will generate multiple Stacks from all folders within the given folder. This is similar to how ",(0,i.jsx)(s.a,{href:"https://github.com/louislam/dockge",children:"dockge"})," works."]}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"Example"}),(0,i.jsx)(s.p,{children:"If your folder structure looks like this"}),(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{children:".\n\u2514\u2500\u2500 /home/myUser/homelab/\n \u251C\u2500\u2500 immich/\n \u2502 \u2514\u2500\u2500 compose.yaml\n \u251C\u2500\u2500 plex/\n \u2502 \u2514\u2500\u2500 docker-compose.yaml\n \u2514\u2500\u2500 uptime-kuma/\n \u2514\u2500\u2500 compose.yaml\n"})}),(0,i.jsxs)(s.p,{children:["and you use ",(0,i.jsx)(s.code,{children:"/home/myUser/homelab/"})," with KI then it will output stacks for"]}),(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"immich"}),"\n",(0,i.jsx)(s.li,{children:"plex"}),"\n",(0,i.jsx)(s.li,{children:"uptime-kuma"}),"\n"]})]}),"\n",(0,i.jsx)(s.admonition,{type:"note",children:(0,i.jsxs)(s.p,{children:["This method does not yet support ",(0,i.jsx)(s.strong,{children:"git-based"})," Stacks. Any git-based projects will only be detected as Files On Server."]})}),"\n",(0,i.jsx)(s.h6,{id:"project-file-detection",children:"Project Files Detection"}),"\n",(0,i.jsxs)(s.p,{children:["Komodo Import makes some reasonable assumptions about which ",(0,i.jsx)(s.code,{children:"compose.yaml"})," and ",(0,i.jsx)(s.code,{children:".env"})," files you want to use within each project's folder. These can be overriden using the ",(0,i.jsx)(s.code,{children:"*_GLOB"})," environmental varibales from the ",(0,i.jsx)(s.a,{href:"#fos-config",children:"Configuration"})," below."]}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"File Detection and Behavior Details"}),(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Compose Files","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Default pattern","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Looks for ",(0,i.jsx)(s.code,{children:"compose.y(a)ml"})," and ",(0,i.jsx)(s.code,{children:"docker-compose.y(a)ml"})]}),"\n",(0,i.jsxs)(s.li,{children:["Files may have interim names like ",(0,i.jsx)(s.code,{children:"compose.dev.yaml"})]}),"\n",(0,i.jsxs)(s.li,{children:["Can be overridden with ",(0,i.jsx)(s.code,{children:"COMPOSE_FILE_GLOB"})," env"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["Will prioritize ",(0,i.jsx)(s.code,{children:"compose.yaml"})," over ",(0,i.jsx)(s.code,{children:"docker-compose.yaml"})]}),"\n",(0,i.jsxs)(s.li,{children:["Will choose the file with the shortest path EX","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Prioritizes ",(0,i.jsx)(s.code,{children:"./compose.yaml"})," over ",(0,i.jsx)(s.code,{children:"./aFolder/compose.yaml"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:[".env Files","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Default pattern","\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Adds all ",(0,i.jsx)(s.code,{children:".env"})," files found at top-level or sub-folders"]}),"\n",(0,i.jsxs)(s.li,{children:["Can be overridden with ",(0,i.jsx)(s.code,{children:"ENV_FILE_GLOB"})," env"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(s.li,{children:["If a ",(0,i.jsx)(s.code,{children:".env"})," file is found then configures Komodo to write it's own Environment section to ",(0,i.jsx)(s.code,{children:".komodoenv"})," instead of ",(0,i.jsx)(s.code,{children:".env"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Komodo env name can be overridden with ",(0,i.jsx)(s.code,{children:"KOMODO_ENV_NAME"})]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),(0,i.jsxs)(s.p,{children:["Komodo Import will ",(0,i.jsx)(s.strong,{children:"log"})," which files it detects and indicate which ones it will use for each project. These can be manually modified in the generated TOML, ",(0,i.jsx)(s.a,{href:"#api-sync",children:"API Sync Resource"}),", or after creating the Stack in Komodo."]})]}),"\n",(0,i.jsx)(s.h5,{id:"fos-config",children:"Configuration"}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"Environmental Variables"}),(0,i.jsxs)(s.table,{children:[(0,i.jsx)(s.thead,{children:(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,i.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,i.jsx)(s.th,{children:"Default"}),(0,i.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,i.jsxs)(s.tbody,{children:[(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"SERVER_NAME"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,i.jsx)(s.td,{}),(0,i.jsxs)(s.td,{style:{textAlign:"left"},children:["The name of the Komodo ",(0,i.jsx)(s.a,{href:"https://komo.do/docs/resources#server",children:"Server"})," where a Stack is located"]})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"HOST_PARENT_PATH"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,i.jsx)(s.td,{}),(0,i.jsxs)(s.td,{style:{textAlign:"left"},children:["The parent directory on the ",(0,i.jsx)(s.strong,{children:"host"})," where stack folders are located. Used for generating Stack Run Directory"]})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"COMPOSE_FILE_GLOB"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(s.td,{}),(0,i.jsxs)(s.td,{style:{textAlign:"left"},children:["A ",(0,i.jsx)(s.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use for finding files for ",(0,i.jsx)(s.strong,{children:"Files Paths"})," in Stack config"]})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"ENV_FILE_GLOB"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(s.td,{}),(0,i.jsxs)(s.td,{style:{textAlign:"left"},children:["A ",(0,i.jsx)(s.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use for finding files for ",(0,i.jsx)(s.strong,{children:"Additional Env Files"})," in Stack config"]})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"KOMODO_ENV_NAME"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:".komodoenv"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"If existing .env files are found then this name will be used for the .env that Komodo writes using its own Environment section"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"IMAGE_REGISTRY_PROVIDER"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(s.td,{}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"Name of Image Registry to use"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"IMAGE_REGISTRY_ACCOUNT"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(s.td,{}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"Image Registry account to use"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"POLL_FOR_UPDATE"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(s.td,{children:"false"}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"Poll for newer images?"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"AUTO_UPDATE"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(s.td,{children:"false"}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"Auto Update stack?"})]})]})]})]}),"\n",(0,i.jsxs)(s.p,{children:["For ",(0,i.jsx)(s.a,{href:"../../installation#docker",children:"docker"})," usage the folder with your projects should be mounted to ",(0,i.jsx)(s.code,{children:"/filesOnServer"})," in the container."]}),"\n",(0,i.jsx)(s.h4,{id:"git-based",children:"Git-Based"}),"\n",(0,i.jsx)(s.p,{children:"Coming soon!"}),"\n",(0,i.jsx)(s.h2,{id:"outputs-1",children:"Outputs"}),"\n",(0,i.jsx)(s.h3,{id:"console",children:"Console"}),"\n",(0,i.jsxs)(s.p,{children:["KI will always output the raw TOML form of a ",(0,i.jsx)(s.a,{href:"https://komo.do/docs/sync-resources",children:"Sync Resource"})," to console unless the env ",(0,i.jsx)(s.code,{children:"LOG_TOML=false"}),"."]}),"\n",(0,i.jsx)(s.p,{children:"You'll see this in docker logs or node's console like this:"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{children:'[2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync\n\n\u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F\n[[stack]]\nname = "compose"\n\n[stack.config]\nserver = "my-cool-server"\nrun_directory = "/home/myUser/homelab/compose"\n\n...\n\n\u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F\n[2025-08-11 14:06:19.119 -0400] INFO : [App] Done!\n'})}),"\n",(0,i.jsxs)(s.p,{children:["Use this with ",(0,i.jsx)(s.a,{href:"../resourceSync#create-sync-resource",children:"manually creating Sync Resources"})]}),"\n",(0,i.jsxs)(s.admonition,{type:"tip",children:[(0,i.jsxs)(s.p,{children:["Use ",(0,i.jsx)(s.code,{children:"--no-log-prefix"})," to get output without the service name prefix, makes getting clear TOML output easier."]}),(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{children:"docker compose up --no-log-prefix\n"})})]}),"\n",(0,i.jsx)(s.h3,{id:"api-sync",children:"API Sync"}),"\n",(0,i.jsxs)(s.p,{children:["Komodo Import can ",(0,i.jsx)(s.strong,{children:"directly create Sync Resources in Komodo"})," using Komodo's API. ",(0,i.jsx)(s.strong,{children:"This output will only create the Sync, it will not execute it."})," After creating the Sync you should ",(0,i.jsx)(s.a,{href:"../resourceSync#verify-sync-changes",children:"verify its content before executing."})]}),"\n",(0,i.jsx)(s.p,{children:"You will need to create an API Key and Secret to use the API."}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"API Key Creation Instructions"}),(0,i.jsx)(s.p,{children:"Navigate to your Komodo Web UI:"}),(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Open ",(0,i.jsx)(s.strong,{children:"Settings"})," -> ",(0,i.jsx)(s.strong,{children:"Profile"})]}),"\n",(0,i.jsxs)(s.li,{children:["Click ",(0,i.jsx)(s.strong,{children:"New Api Key"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Give it a name and optional Expiry"}),"\n",(0,i.jsxs)(s.li,{children:["Create the key and Copy the show ",(0,i.jsx)(s.strong,{children:"Key"})," and ",(0,i.jsx)(s.strong,{children:"Secret"})]}),"\n"]}),"\n"]}),"\n"]}),(0,i.jsxs)(s.p,{children:["Currently, the user creating the Api Key must be an ",(0,i.jsx)(s.strong,{children:"Admin"})," to create Sync Resources (but this will hopefully be more granular in the future)."]})]}),"\n",(0,i.jsx)(s.p,{children:"Add these environmental variables to Komodo Import:"}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"Environmental Variables"}),(0,i.jsxs)(s.table,{children:[(0,i.jsx)(s.thead,{children:(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,i.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,i.jsx)(s.th,{children:"Default"}),(0,i.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,i.jsxs)(s.tbody,{children:[(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"KOMODO_URL"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,i.jsx)(s.td,{}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"Komodo Server URL for use with creating/modifying Resource Sync directly"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"API_KEY"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,i.jsx)(s.td,{}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"Komodo API Key"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"API_SECRET"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,i.jsx)(s.td,{}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"Komodo API Secret"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"EXISTING_SYNC"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(s.td,{children:"append"}),(0,i.jsxs)(s.td,{style:{textAlign:"left"},children:["Behavior if Resource Sync already exists. Either ",(0,i.jsx)(s.code,{children:"append"})," or ",(0,i.jsx)(s.code,{children:"overwrite"})]})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{style:{textAlign:"left"},children:(0,i.jsx)(s.code,{children:"SYNC_NAME"})}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,i.jsx)(s.td,{children:"komodo-import"}),(0,i.jsx)(s.td,{style:{textAlign:"left"},children:"Name of Sync to create/modify"})]})]})]})]}),"\n",(0,i.jsx)(s.h3,{id:"file",children:"File"}),"\n",(0,i.jsxs)(s.p,{children:["Komodo Import will attempt to write the generated output to a ",(0,i.jsx)(s.code,{children:".toml"})," file if the ENV ",(0,i.jsx)(s.code,{children:"OUTPUT_DIR"})," is present. This should be the ",(0,i.jsx)(s.em,{children:"directory"})," (not file) that the generated file should be written to."]}),"\n",(0,i.jsxs)(s.p,{children:["Bind mount a folder into the container and set ",(0,i.jsx)(s.code,{children:"OUTPUT_DIR"})," like in the example below:"]}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"File Output Example"}),(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-yaml",children:"services:\n komodo-import:\n # ...\n environment:\n # ...\n - OUTPUT_DIR=/output\n volumes:\n # ...\n - /my/host/folder:/output\n"})})]}),"\n",(0,i.jsxs)(s.p,{children:["Use this with ",(0,i.jsx)(s.a,{href:"../resourceSync#create-sync-resource",children:"manually creating Sync Resources"})]})]})}function a(e={}){let{wrapper:s}={...(0,l.a)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}}}]);
-1
assets/js/74876495.73e8b547.js
··· 1 - "use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["631"],{3699:function(e,r,n){n.r(r),n.d(r,{frontMatter:()=>l,default:()=>p,toc:()=>d,metadata:()=>o,assets:()=>u,contentTitle:()=>c});var o=JSON.parse('{"id":"quickstart","title":"Quickstart","description":"Scenario","source":"@site/docs/quickstart.mdx","sourceDirName":".","slug":"/quickstart","permalink":"/komodo-import/docs/quickstart","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/quickstart.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Quickstart","sidebar_position":1},"sidebar":"tutorialSidebar","next":{"title":"Installation","permalink":"/komodo-import/docs/category/installation"}}'),t=n(5893),s=n(65),a=n(7902),i=n(5525);let l={title:"Quickstart",sidebar_position:1},c=void 0,u={},d=[{value:"Scenario",id:"scenario",level:2},{value:"Create Docker Compose File",id:"create-docker-compose-file",level:2}];function m(e){let r={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.h2,{id:"scenario",children:"Scenario"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:"You have Komodo already setup"}),"\n",(0,t.jsxs)(r.li,{children:["You have installed ",(0,t.jsx)(r.a,{href:"https://komo.do/docs/connect-servers",children:"Periphery"})," on a machine","\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["The Komodo ",(0,t.jsx)(r.a,{href:"https://komo.do/docs/resources#server",children:"Server"})," name is ",(0,t.jsx)(r.code,{children:"my-cool-server"})]}),"\n",(0,t.jsx)(r.li,{children:"The machine is currently using dockge and has all of its compose projects located in one folder like this:"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:".\n\u2514\u2500\u2500 /home/myUser/homelab/\n \u251C\u2500\u2500 immich/\n \u2502 \u2514\u2500\u2500 compose.yaml\n \u251C\u2500\u2500 plex/\n \u2502 \u2514\u2500\u2500 docker-compose.yaml\n \u2514\u2500\u2500 uptime-kuma/\n \u2514\u2500\u2500 compose.yaml\n"})}),"\n",(0,t.jsxs)(r.p,{children:["You want to import all of the existing compose projects into Komodo as ",(0,t.jsx)(r.a,{href:"../usage/overview#files-on-server",children:"Files On Server"})," ",(0,t.jsx)(r.a,{href:"https://komo.do/docs/resources#stack",children:"Stacks"})," attached to ",(0,t.jsx)(r.code,{children:"my-cool-server"}),"."]}),"\n",(0,t.jsx)(r.h2,{id:"create-docker-compose-file",children:"Create Docker Compose File"}),"\n",(0,t.jsxs)(r.p,{children:["Use the ",(0,t.jsxs)(r.a,{href:"https://github.com/FoxxMD/komodo-import/blob/main/compose.yaml",children:["example ",(0,t.jsx)(r.code,{children:"compose.yaml"})," file from the repository"]})," as a starting point."]}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["Bind ",(0,t.jsx)(r.code,{children:"/home/myUser/homelab/"})," into the container at ",(0,t.jsx)(r.code,{children:"/filesOnServer"})," so Komodo Import can scan the parent folder"]}),"\n",(0,t.jsxs)(r.li,{children:["Define ",(0,t.jsx)(r.code,{children:"HOST_PARENT_PATH=/home/myUser/homelab"})," so Komodo Import knows how to create Run Directory in a Komodo Stack correctly"]}),"\n"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-yaml",children:"services:\n komodo-import:\n image: foxxmd/komodo-import:latest\n volumes:\n ## ParentDirectory:FILES_ON_SERVER_DIR\n - /home/myUser/homelab:/filesOnServer\n \n ## optional, TOML is saved to file here when OUTPUT_DIR env is present\n #- ./output:/output\n environment:\n - TZ=America/New_York\n ## Komodo Server name to use for generated Stacks\n - SERVER_NAME=my-cool-server\n ## ParentDirectory on the host use as Stack Run Directory prefix\n - HOST_PARENT_PATH=/home/myUser/homelab\n restart: no\n"})}),"\n",(0,t.jsxs)(a.Z,{groupId:"output",queryString:!0,children:[(0,t.jsxs)(i.Z,{value:"console",label:"Console",children:[(0,t.jsxs)(r.p,{children:["This ",(0,t.jsx)(r.a,{href:"../usage/overview#outputs",children:"Output"})," write renders the Sync Resource TOML to docker logs. Run komodo-import with ",(0,t.jsx)(r.code,{children:"--no-log-prefix"})," to get the generated TOML output for a Sync Resource."]}),(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-shell",children:"docker compose up --no-log-prefix\n"})}),(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:'[2025-08-11 14:06:19.080 -0400] INFO : [Init] Debug Mode: NO\n[2025-08-11 14:06:19.094 -0400] INFO : [App] Version: 0.1.0\n[2025-08-11 14:06:19.095 -0400] INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer\n[2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Processing Stacks for 2 folders:\n/filesOnServer/immich\n/filesOnServer/plex\n/filesOnServer/uptime-kuma\n[2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml\n[2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] Env Glob: **/.env\n[2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] [compose] Found Stack \'compose\' at dir /filesOnServer/compose.yaml\n[2025-08-11 14:06:19.103 -0400] WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob\n[2025-08-11 14:06:19.103 -0400] INFO : [App] [Files On Server] [compose] Stack config complete\n\n...\n\n[2025-08-11 14:06:19.118 -0400] INFO : [App] [Files On Server] Built Stack configs for 3 folders\n[2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync\n\n\u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F\n\n[[stack]]\nname = "immich"\n\n[stack.config]\nserver = "my-cool-server"\nrun_directory = "/home/myUser/homelab/immich"\nfiles_on_host = true\nauto_update = false\npoll_for_updates = false\nfile_paths = [ "docker/docker-compose.yaml" ]\n\n[[stack]]\nname = "plex"\n\n[stack.config]\nserver = "my-cool-server"\nrun_directory = "/home/myUser/homelab/plex"\nfiles_on_host = true\nauto_update = false\npoll_for_updates = false\n\n[[stack]]\nname = "uptime-kuma"\n\n[stack.config]\nserver = "my-cool-server"\nrun_directory = "/home/myUser/homelab/uptime-kuma"\nfiles_on_host = true\nauto_update = false\npoll_for_updates = false\nenv_file_path = ".komodoEnv"\nadditional_env_files = [ ".env" ]\n\u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F\n[2025-08-11 14:06:19.119 -0400] INFO : [App] Done!\n'})}),(0,t.jsxs)(r.p,{children:["Now ",(0,t.jsx)(r.a,{href:"../usage/resourceSync#create-sync-resource",children:"manually create a Sync Resource"})," and Execute to import your projects."]})]}),(0,t.jsxs)(i.Z,{value:"sync-api",label:"Sync API",children:[(0,t.jsxs)(r.p,{children:["This ",(0,t.jsx)(r.a,{href:"../usage/overview#outputs",children:"Output"})," writes the Sync Resource directly to your Komodo instance (but does not execute it!)"]}),(0,t.jsxs)(r.p,{children:["Create an ",(0,t.jsx)(r.a,{href:"../usage/overview#api-sync",children:"API Key and Secret"})," in Komodo, then add it to your Komodo Import ",(0,t.jsx)(r.code,{children:"compose.yaml"}),":"]}),(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-yaml",children:"services:\n komodo-import:\n image: foxxmd/komodo-import:latest\n volumes:\n ## ParentDirectory:FILES_ON_SERVER_DIR\n - /home/myUser/homelab:/filesOnServer\n \n ## optional, TOML is saved to file here when OUTPUT_DIR env is present\n #- ./output:/output\n environment:\n - TZ=America/New_York\n ## Komodo Server name to use for generated Stacks\n - SERVER_NAME=my-cool-server\n ## ParentDirectory on the host use as Stack Run Directory prefix\n - HOST_PARENT_PATH=/home/myUser/homelab\n\n - KOMODO_URL=http://192.168.0.101:9120\n - API_KEY=K-3A6btIPZYeBuD5ebSa9uD5ebuD5ebHIjYxT5sc\n - API_SECRET=S-qnaXD1frutYlfC2ZYlfCSzqiYlfC1WYlfCVR34Yj4\n restart: no\n"})}),(0,t.jsx)(r.p,{children:"Run komodo-import to create the Sync Resource"}),(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-shell",children:"$ docker compose up --no-log-prefix\n...\n[2025-08-11 17:46:54.030 -0400] INFO : [App] [Sync API] Using 'komodo-import' as Sync Name\n[2025-08-11 17:46:54.032 -0400] VERBOSE: [App] [Sync API] KOMODO_URL: http://192.168.0.101:9120 | Normalized: http://192.168.0.101:9120/\n[2025-08-11 17:46:54.411 -0400] INFO : [App] [Sync API] Resource Sync created.\n[2025-08-11 17:46:54.411 -0400] INFO : [App] [Sync API] Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57\n"})}),(0,t.jsxs)(r.p,{children:["Then continue to ",(0,t.jsx)(r.a,{href:"../usage/resourceSync#verify-sync-changes",children:"verifying the Sync Resource"})," in Komodo and Executing it to import your projects."]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,s.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(m,{...e})}):m(e)}},5525:function(e,r,n){n.d(r,{Z:()=>s});var o=n(5893);n(7294);var t=n(7026);function s({children:e,hidden:r,className:n}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,t.Z)("tabItem_Ymn6",n),hidden:r,children:e})}},7902:function(e,r,n){n.d(r,{Z:()=>x});var o=n(5893),t=n(7294),s=n(7026),a=n(9599),i=n(6550),l=n(2e3),c=n(4520),u=n(8341),d=n(6009);function m(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p({value:e,tabValues:r}){return r.some(r=>r.value===e)}var h=n(7227);function f({className:e,block:r,selectedValue:n,selectValue:t,tabValues:i}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.o5)(),u=e=>{let r=e.currentTarget,o=i[l.indexOf(r)].value;o!==n&&(c(r),t(o))},d=e=>{let r=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=l.indexOf(e.currentTarget)+1;r=l[n]??l[0];break}case"ArrowLeft":{let n=l.indexOf(e.currentTarget)-1;r=l[n]??l[l.length-1]}}r?.focus()};return(0,o.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":r},e),children:i.map(({value:e,label:r,attributes:t})=>(0,o.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>{l.push(e)},onKeyDown:d,onClick:u,...t,className:(0,s.Z)("tabs__item","tabItem_LNqP",t?.className,{"tabs__item--active":n===e}),children:r??e},e))})}function v({lazy:e,children:r,selectedValue:n}){let a=(Array.isArray(r)?r:[r]).filter(Boolean);if(e){let e=a.find(e=>e.props.value===n);return e?(0,t.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,o.jsx)("div",{className:"margin-top--md",children:a.map((e,r)=>(0,t.cloneElement)(e,{key:r,hidden:e.props.value!==n}))})}function y(e){let r=function(e){let{defaultValue:r,queryString:n=!1,groupId:o}=e,s=function(e){let{values:r,children:n}=e;return(0,t.useMemo)(()=>{let e=r??m(n).map(({props:{value:e,label:r,attributes:n,default:o}})=>({value:e,label:r,attributes:n,default:o})),o=(0,u.lx)(e,(e,r)=>e.value===r.value);if(o.length>0)throw Error(`Docusaurus error: Duplicate values "${o.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`);return e},[r,n])}(e),[a,h]=(0,t.useState)(()=>(function({defaultValue:e,tabValues:r}){if(0===r.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:r}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let n=r.find(e=>e.default)??r[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:r,tabValues:s})),[f,v]=function({queryString:e=!1,groupId:r}){let n=(0,i.k6)(),o=function({queryString:e=!1,groupId:r}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:e,groupId:r});return[(0,c._X)(o),(0,t.useCallback)(e=>{if(!o)return;let r=new URLSearchParams(n.location.search);r.set(o,e),n.replace({...n.location,search:r.toString()})},[o,n])]}({queryString:n,groupId:o}),[y,x]=function({groupId:e}){let r=e?`docusaurus.tab.${e}`:null,[n,o]=(0,d.Nk)(r);return[n,(0,t.useCallback)(e=>{r&&o.set(e)},[r,o])]}({groupId:o}),k=(()=>{let e=f??y;return p({value:e,tabValues:s})?e:null})();return(0,l.Z)(()=>{k&&h(k)},[k]),{selectedValue:a,selectValue:(0,t.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);h(e),v(e),x(e)},[v,x,s]),tabValues:s}}(e);return(0,o.jsxs)("div",{className:(0,s.Z)("tabs-container","tabList__CuJ"),children:[(0,o.jsx)(f,{...r,...e}),(0,o.jsx)(v,{...r,...e})]})}function x(e){let r=(0,h.Z)();return(0,o.jsx)(y,{...e,children:m(e.children)},String(r))}}}]);
+1
assets/js/74876495.8614907e.js
··· 1 + "use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["631"],{3699:function(e,r,o){o.r(r),o.d(r,{frontMatter:()=>l,default:()=>m,toc:()=>d,metadata:()=>n,assets:()=>u,contentTitle:()=>c});var n=JSON.parse('{"id":"quickstart","title":"Quickstart","description":"Scenario","source":"@site/docs/quickstart.mdx","sourceDirName":".","slug":"/quickstart","permalink":"/komodo-import/docs/quickstart","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/quickstart.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Quickstart","sidebar_position":1},"sidebar":"tutorialSidebar","next":{"title":"Installation","permalink":"/komodo-import/docs/category/installation"}}'),t=o(5893),s=o(65),a=o(7902),i=o(5525);let l={title:"Quickstart",sidebar_position:1},c=void 0,u={},d=[{value:"Scenario",id:"scenario",level:2},{value:"Create Docker Compose File",id:"create-docker-compose-file",level:2},{value:"Choose Desired Output",id:"choose-desired-output",level:2}];function p(e){let r={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.h2,{id:"scenario",children:"Scenario"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:"You have Komodo already setup"}),"\n",(0,t.jsxs)(r.li,{children:["You have installed ",(0,t.jsx)(r.a,{href:"https://komo.do/docs/connect-servers",children:"Periphery"})," on a machine","\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["The Komodo ",(0,t.jsx)(r.a,{href:"https://komo.do/docs/resources#server",children:"Server"})," name is ",(0,t.jsx)(r.code,{children:"my-cool-server"})]}),"\n",(0,t.jsx)(r.li,{children:"The machine is currently using dockge and has all of its compose projects located in one folder like this:"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:".\n\u2514\u2500\u2500 /home/myUser/homelab/\n \u251C\u2500\u2500 immich/\n \u2502 \u2514\u2500\u2500 compose.yaml\n \u251C\u2500\u2500 plex/\n \u2502 \u2514\u2500\u2500 docker-compose.yaml\n \u2514\u2500\u2500 uptime-kuma/\n \u2514\u2500\u2500 compose.yaml\n"})}),"\n",(0,t.jsxs)(r.p,{children:["You want to import all of the existing compose projects into Komodo as ",(0,t.jsx)(r.a,{href:"../usage/overview#files-on-server",children:"Files On Server"})," ",(0,t.jsx)(r.a,{href:"https://komo.do/docs/resources#stack",children:"Stacks"})," attached to ",(0,t.jsx)(r.code,{children:"my-cool-server"}),"."]}),"\n",(0,t.jsx)(r.admonition,{type:"tip",children:(0,t.jsxs)(r.p,{children:["Using git repositories instead of plain folders? Check out the ",(0,t.jsx)(r.a,{href:"../usage/overview#git-repo",children:"Git Repo Stack docs"})]})}),"\n",(0,t.jsx)(r.h2,{id:"create-docker-compose-file",children:"Create Docker Compose File"}),"\n",(0,t.jsxs)(r.p,{children:["Use the ",(0,t.jsxs)(r.a,{href:"https://github.com/FoxxMD/komodo-import/blob/main/compose.yaml",children:["example ",(0,t.jsx)(r.code,{children:"compose.yaml"})," file from the repository"]})," as a starting point."]}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["Bind ",(0,t.jsx)(r.code,{children:"/home/myUser/homelab/"})," into the container at ",(0,t.jsx)(r.code,{children:"/filesOnServer"})," so Komodo Import can scan the parent folder (this is the same for plain folder and git repo stack methods)"]}),"\n",(0,t.jsxs)(r.li,{children:["Define ",(0,t.jsx)(r.code,{children:"HOST_PARENT_PATH=/home/myUser/homelab"})," so Komodo Import knows how to create Run Directory in a Komodo Stack correctly"]}),"\n"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-yaml",children:"services:\n komodo-import:\n image: foxxmd/komodo-import:latest\n volumes:\n ## ParentDirectory:FILES_ON_SERVER_DIR\n - /home/myUser/homelab:/filesOnServer\n \n ## optional, TOML is saved to file here when OUTPUT_DIR env is present\n #- ./output:/output\n environment:\n - TZ=America/New_York\n ## Komodo Server name to use for generated Stacks\n - SERVER_NAME=my-cool-server\n ## ParentDirectory on the host use as Stack Run Directory prefix\n - HOST_PARENT_PATH=/home/myUser/homelab\n restart: no\n"})}),"\n",(0,t.jsx)(r.h2,{id:"choose-desired-output",children:"Choose Desired Output"}),"\n",(0,t.jsxs)(a.Z,{groupId:"output",queryString:!0,children:[(0,t.jsxs)(i.Z,{value:"console",label:"Console",children:[(0,t.jsxs)(r.p,{children:["This ",(0,t.jsx)(r.a,{href:"../usage/overview#outputs",children:"Output"})," renders the Sync Resource TOML to docker logs. Run komodo-import with ",(0,t.jsx)(r.code,{children:"--no-log-prefix"})," to get the generated TOML output for a Sync Resource."]}),(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-shell",children:"docker compose up --no-log-prefix\n"})}),(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{children:'[2025-08-11 14:06:19.080 -0400] INFO : [Init] Debug Mode: NO\n[2025-08-11 14:06:19.094 -0400] INFO : [App] Version: 0.1.0\n[2025-08-11 14:06:19.095 -0400] INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer\n[2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Processing Stacks for 2 folders:\n/filesOnServer/immich\n/filesOnServer/plex\n/filesOnServer/uptime-kuma\n[2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml\n[2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] Env Glob: **/.env\n[2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] [compose] Found Stack \'compose\' at dir /filesOnServer/compose.yaml\n[2025-08-11 14:06:19.103 -0400] WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob\n[2025-08-11 14:06:19.103 -0400] INFO : [App] [Files On Server] [compose] Stack config complete\n\n...\n\n[2025-08-11 14:06:19.118 -0400] INFO : [App] [Files On Server] Built Stack configs for 3 folders\n[2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync\n\n\u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F\n\n[[stack]]\nname = "immich"\n\n[stack.config]\nserver = "my-cool-server"\nrun_directory = "/home/myUser/homelab/immich"\nfiles_on_host = true\nauto_update = false\npoll_for_updates = false\nfile_paths = [ "docker/docker-compose.yaml" ]\n\n[[stack]]\nname = "plex"\n\n[stack.config]\nserver = "my-cool-server"\nrun_directory = "/home/myUser/homelab/plex"\nfiles_on_host = true\nauto_update = false\npoll_for_updates = false\n\n[[stack]]\nname = "uptime-kuma"\n\n[stack.config]\nserver = "my-cool-server"\nrun_directory = "/home/myUser/homelab/uptime-kuma"\nfiles_on_host = true\nauto_update = false\npoll_for_updates = false\nenv_file_path = ".komodoEnv"\nadditional_env_files = [ ".env" ]\n\u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F \u2702\uFE0F\n[2025-08-11 14:06:19.119 -0400] INFO : [App] Done!\n'})}),(0,t.jsxs)(r.p,{children:["Now, ",(0,t.jsx)(r.a,{href:"../usage/resourceSync#create-sync-resource",children:"manually create a Sync Resource"})," and Execute to import your projects."]}),(0,t.jsxs)(r.p,{children:["Or, use ",(0,t.jsx)(r.a,{href:"./?output=sync-api#choose-desired-output",children:"Sync Api"})," output instead to directly write the Sync Resource to Komodo."]})]}),(0,t.jsxs)(i.Z,{value:"sync-api",label:"Sync API",children:[(0,t.jsxs)(r.p,{children:["This ",(0,t.jsx)(r.a,{href:"../usage/overview#outputs",children:"Output"})," writes the Sync Resource directly to your Komodo instance (but does not execute it!)"]}),(0,t.jsxs)(r.p,{children:["Create an ",(0,t.jsx)(r.a,{href:"../usage/overview#api-sync",children:"API Key and Secret"})," in Komodo, then add it to your Komodo Import ",(0,t.jsx)(r.code,{children:"compose.yaml"}),":"]}),(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-yaml",children:"services:\n komodo-import:\n image: foxxmd/komodo-import:latest\n volumes:\n ## ParentDirectory:FILES_ON_SERVER_DIR\n - /home/myUser/homelab:/filesOnServer\n \n ## optional, TOML is saved to file here when OUTPUT_DIR env is present\n #- ./output:/output\n environment:\n - TZ=America/New_York\n ## Komodo Server name to use for generated Stacks\n - SERVER_NAME=my-cool-server\n ## ParentDirectory on the host use as Stack Run Directory prefix\n - HOST_PARENT_PATH=/home/myUser/homelab\n\n - KOMODO_URL=http://192.168.0.101:9120\n - API_KEY=K-3A6btIPZYeBuD5ebSa9uD5ebuD5ebHIjYxT5sc\n - API_SECRET=S-qnaXD1frutYlfC2ZYlfCSzqiYlfC1WYlfCVR34Yj4\n restart: no\n"})}),(0,t.jsx)(r.p,{children:"Run komodo-import to create the Sync Resource"}),(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-shell",children:"$ docker compose up --no-log-prefix\n...\n[2025-08-11 17:46:54.030 -0400] INFO : [App] [Sync API] Using 'komodo-import' as Sync Name\n[2025-08-11 17:46:54.032 -0400] VERBOSE: [App] [Sync API] KOMODO_URL: http://192.168.0.101:9120 | Normalized: http://192.168.0.101:9120/\n[2025-08-11 17:46:54.411 -0400] INFO : [App] [Sync API] Resource Sync created.\n[2025-08-11 17:46:54.411 -0400] INFO : [App] [Sync API] Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57\n"})}),(0,t.jsxs)(r.p,{children:["Then continue to ",(0,t.jsx)(r.a,{href:"../usage/resourceSync#verify-sync-changes",children:"verifying the Sync Resource"})," in Komodo and Executing it to import your projects."]})]})]})]})}function m(e={}){let{wrapper:r}={...(0,s.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},5525:function(e,r,o){o.d(r,{Z:()=>s});var n=o(5893);o(7294);var t=o(7026);function s({children:e,hidden:r,className:o}){return(0,n.jsx)("div",{role:"tabpanel",className:(0,t.Z)("tabItem_Ymn6",o),hidden:r,children:e})}},7902:function(e,r,o){o.d(r,{Z:()=>x});var n=o(5893),t=o(7294),s=o(7026),a=o(9599),i=o(6550),l=o(2e3),c=o(4520),u=o(8341),d=o(6009);function p(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function m({value:e,tabValues:r}){return r.some(r=>r.value===e)}var h=o(7227);function f({className:e,block:r,selectedValue:o,selectValue:t,tabValues:i}){let l=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.o5)(),u=e=>{let r=e.currentTarget,n=i[l.indexOf(r)].value;n!==o&&(c(r),t(n))},d=e=>{let r=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let o=l.indexOf(e.currentTarget)+1;r=l[o]??l[0];break}case"ArrowLeft":{let o=l.indexOf(e.currentTarget)-1;r=l[o]??l[l.length-1]}}r?.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":r},e),children:i.map(({value:e,label:r,attributes:t})=>(0,n.jsx)("li",{role:"tab",tabIndex:o===e?0:-1,"aria-selected":o===e,ref:e=>{l.push(e)},onKeyDown:d,onClick:u,...t,className:(0,s.Z)("tabs__item","tabItem_LNqP",t?.className,{"tabs__item--active":o===e}),children:r??e},e))})}function v({lazy:e,children:r,selectedValue:o}){let a=(Array.isArray(r)?r:[r]).filter(Boolean);if(e){let e=a.find(e=>e.props.value===o);return e?(0,t.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:a.map((e,r)=>(0,t.cloneElement)(e,{key:r,hidden:e.props.value!==o}))})}function y(e){let r=function(e){let{defaultValue:r,queryString:o=!1,groupId:n}=e,s=function(e){let{values:r,children:o}=e;return(0,t.useMemo)(()=>{let e=r??p(o).map(({props:{value:e,label:r,attributes:o,default:n}})=>({value:e,label:r,attributes:o,default:n})),n=(0,u.lx)(e,(e,r)=>e.value===r.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`);return e},[r,o])}(e),[a,h]=(0,t.useState)(()=>(function({defaultValue:e,tabValues:r}){if(0===r.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!m({value:e,tabValues:r}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let o=r.find(e=>e.default)??r[0];if(!o)throw Error("Unexpected error: 0 tabValues");return o.value})({defaultValue:r,tabValues:s})),[f,v]=function({queryString:e=!1,groupId:r}){let o=(0,i.k6)(),n=function({queryString:e=!1,groupId:r}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:e,groupId:r});return[(0,c._X)(n),(0,t.useCallback)(e=>{if(!n)return;let r=new URLSearchParams(o.location.search);r.set(n,e),o.replace({...o.location,search:r.toString()})},[n,o])]}({queryString:o,groupId:n}),[y,x]=function({groupId:e}){let r=e?`docusaurus.tab.${e}`:null,[o,n]=(0,d.Nk)(r);return[o,(0,t.useCallback)(e=>{r&&n.set(e)},[r,n])]}({groupId:n}),k=(()=>{let e=f??y;return m({value:e,tabValues:s})?e:null})();return(0,l.Z)(()=>{k&&h(k)},[k]),{selectedValue:a,selectValue:(0,t.useCallback)(e=>{if(!m({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);h(e),v(e),x(e)},[v,x,s]),tabValues:s}}(e);return(0,n.jsxs)("div",{className:(0,s.Z)("tabs-container","tabList__CuJ"),children:[(0,n.jsx)(f,{...r,...e}),(0,n.jsx)(v,{...r,...e})]})}function x(e){let r=(0,h.Z)();return(0,n.jsx)(y,{...e,children:p(e.children)},String(r))}}}]);
+1
assets/js/854.415ecae9.js
··· 1 + (()=>{"use strict";var e,r,t,n,o,s={4237:function(e,r,t){t.d(r,{J:()=>s,_k:()=>n,bJ:()=>i,dK:()=>o});let n=[],o=["en"],s="search-index{dir}.json?_=def419cf",i=1}},i={};function f(e){var r=i[e];if(void 0!==r)return r.exports;var t=i[e]={exports:{}};return s[e](t,t.exports,f),t.exports}f.m=s,f.x=()=>{var e=f.O(void 0,["354"],function(){return f(4775)});return f.O(e)},f.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return f.d(r,{a:r}),r},f.d=(e,r)=>{for(var t in r)f.o(r,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce((r,t)=>(f.f[t](e,r),r),[])),f.u=e=>"assets/js/"+e+".2912f7ec.js",f.miniCssF=e=>""+e+".css",f.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e=[],f.O=(r,t,n,o)=>{if(t){o=o||0;for(var s=e.length;s>0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[t,n,o];return}for(var i=1/0,s=0;s<e.length;s++){for(var t=e[s][0],n=e[s][1],o=e[s][2],a=!0,u=0;u<t.length;u++)(!1&o||i>=o)&&Object.keys(f.O).every(e=>f.O[e](t[u]))?t.splice(u--,1):(a=!1,o<i&&(i=o));if(a){e.splice(s--,1);var p=n();void 0!==p&&(r=p)}}return r},f.p="/komodo-import/",f.rv=()=>"1.4.6",r=f.x,f.x=()=>f.e("354").then(r),f.gca=function(e){return e=({})[e]||e,f.p+f.u(e)},t={854:1},f.f.i=(e,r)=>{t[e]||importScripts(f.p+f.u(e))},o=(n=self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push.bind(n),n.push=e=>{var r=e[0],n=e[1],s=e[2];for(var i in n)f.o(n,i)&&(f.m[i]=n[i]);for(s&&s(f);r.length;)t[r.pop()]=1;o(e)},f.x()})();
-1
assets/js/854.ba5171e0.js
··· 1 - (()=>{"use strict";var e,r,t,n,o,s={4237:function(e,r,t){t.d(r,{J:()=>s,_k:()=>n,bJ:()=>i,dK:()=>o});let n=[],o=["en"],s="search-index{dir}.json?_=179e5a68",i=1}},i={};function a(e){var r=i[e];if(void 0!==r)return r.exports;var t=i[e]={exports:{}};return s[e](t,t.exports,a),t.exports}a.m=s,a.x=()=>{var e=a.O(void 0,["354"],function(){return a(4775)});return a.O(e)},a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce((r,t)=>(a.f[t](e,r),r),[])),a.u=e=>"assets/js/"+e+".2912f7ec.js",a.miniCssF=e=>""+e+".css",a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e=[],a.O=(r,t,n,o)=>{if(t){o=o||0;for(var s=e.length;s>0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[t,n,o];return}for(var i=1/0,s=0;s<e.length;s++){for(var t=e[s][0],n=e[s][1],o=e[s][2],u=!0,f=0;f<t.length;f++)(!1&o||i>=o)&&Object.keys(a.O).every(e=>a.O[e](t[f]))?t.splice(f--,1):(u=!1,o<i&&(i=o));if(u){e.splice(s--,1);var p=n();void 0!==p&&(r=p)}}return r},a.p="/komodo-import/",a.rv=()=>"1.4.6",r=a.x,a.x=()=>a.e("354").then(r),a.gca=function(e){return e=({})[e]||e,a.p+a.u(e)},t={854:1},a.f.i=(e,r)=>{t[e]||importScripts(a.p+a.u(e))},o=(n=self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push.bind(n),n.push=e=>{var r=e[0],n=e[1],s=e[2];for(var i in n)a.o(n,i)&&(a.m[i]=n[i]);for(s&&s(a);r.length;)t[r.pop()]=1;o(e)},a.x()})();
+1
assets/js/e7ce6630.135cc1e3.js
··· 1 + "use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["952"],{6418:function(e,s,i){i.r(s),i.d(s,{frontMatter:()=>r,default:()=>h,toc:()=>a,metadata:()=>t,assets:()=>o,contentTitle:()=>c});var t=JSON.parse('{"type":"mdx","permalink":"/komodo-import/","source":"@site/src/pages/index.mdx","title":"Overview","description":"Latest Release","frontMatter":{"title":"Overview"},"unlisted":false}'),n=i(5893),l=i(65);let r={title:"Overview"},c="Overview",o={},a=[{value:"Overview",id:"overview-1",level:2},{value:"Quick Start",id:"quick-start",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"License",id:"license",level:2}];function d(e){let s={a:"a",h1:"h1",h2:"h2",header:"header",img:"img",input:"input",li:"li",p:"p",strong:"strong",ul:"ul",...(0,l.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"overview",children:"Overview"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"https://github.com/FoxxMD/komodo-import/releases",children:(0,n.jsx)(s.img,{src:"https://img.shields.io/github/v/release/foxxmd/komodo-import",alt:"Latest Release"})}),"\n",(0,n.jsx)(s.a,{href:"https://opensource.org/licenses/MIT",children:(0,n.jsx)(s.img,{src:"https://img.shields.io/badge/License-MIT-yellow.svg",alt:"License: MIT"})}),"\n",(0,n.jsx)(s.a,{href:"https://hub.docker.com/r/foxxmd/komodo-import",children:(0,n.jsx)(s.img,{src:"https://img.shields.io/docker/pulls/foxxmd/komodo-import",alt:"Docker Pulls"})})]}),"\n",(0,n.jsxs)(s.p,{children:["Generate TOML ",(0,n.jsx)(s.a,{href:"https://komo.do/docs/sync-resources",children:"Sync Resources"})," for ",(0,n.jsx)(s.a,{href:"https://komo.do",children:"Komodo"})," from your existing Docker Compose projects. The missing import tool for onboarding Komodo!"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"\uD83D\uDEA7 VERY alpha development!"})}),"\n",(0,n.jsx)(s.h2,{id:"overview-1",children:"Overview"}),"\n",(0,n.jsxs)(s.p,{children:["Komodo Import is a small docker container that takes some user-provided configuration, reads ",(0,n.jsx)(s.strong,{children:"existing"})," folder structures on your machine, and generates ",(0,n.jsx)(s.a,{href:"https://komo.do/docs/sync-resources",children:"Sync Resources"})," to use with Komodo."]}),"\n",(0,n.jsx)(s.p,{children:"Current functionality:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Generate Resources from...","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Stack","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ",(0,n.jsx)(s.a,{href:"./docs/usage/overview#files-on-server",children:"Files On Server"})," Stacks from plain folders"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ",(0,n.jsx)(s.a,{href:"./docs/usage/overview#git-repo",children:"Git-based"})," Stacks from folders containing git repository"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Generate To...","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","TOML","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","in ",(0,n.jsx)(s.a,{href:"./docs/usage/overview#console",children:"Docker Logs"})]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","in ",(0,n.jsx)(s.a,{href:"./docs/usage/overview#file",children:"File"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Import directly with Komodo API","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ",(0,n.jsx)(s.a,{href:"./docs/usage/overview#api-sync",children:"Create/modify Resource Sync"})]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Create/modify Stacks"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Create/modify Deployments"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsxs)(s.a,{href:"./docs/quickstart",children:["See the ",(0,n.jsx)(s.strong,{children:"Quick Start Guide"})]})}),"\n",(0,n.jsx)(s.h2,{id:"installation",children:"Installation"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsxs)(s.a,{href:"./docs/installation",children:["See the ",(0,n.jsx)(s.strong,{children:"Installation"})," documentation"]})}),"\n",(0,n.jsx)(s.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsxs)(s.a,{href:"./docs/usage/overview",children:["See the ",(0,n.jsx)(s.strong,{children:"Usage"})," documentation"]})}),"\n",(0,n.jsx)(s.h2,{id:"license",children:"License"}),"\n",(0,n.jsx)(s.p,{children:"MIT"})]})}function h(e={}){let{wrapper:s}={...(0,l.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}}}]);
-1
assets/js/e7ce6630.f740a074.js
··· 1 - "use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["952"],{6418:function(e,s,i){i.r(s),i.d(s,{frontMatter:()=>c,default:()=>h,toc:()=>o,metadata:()=>t,assets:()=>a,contentTitle:()=>r});var t=JSON.parse('{"type":"mdx","permalink":"/komodo-import/","source":"@site/src/pages/index.mdx","title":"Overview","description":"Latest Release","frontMatter":{"title":"Overview"},"unlisted":false}'),n=i(5893),l=i(65);let c={title:"Overview"},r="Overview",a={},o=[{value:"Overview",id:"overview-1",level:2},{value:"Quick Start",id:"quick-start",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"License",id:"license",level:2}];function d(e){let s={a:"a",h1:"h1",h2:"h2",header:"header",img:"img",input:"input",li:"li",p:"p",strong:"strong",ul:"ul",...(0,l.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"overview",children:"Overview"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.a,{href:"https://github.com/FoxxMD/komodo-import/releases",children:(0,n.jsx)(s.img,{src:"https://img.shields.io/github/v/release/foxxmd/komodo-import",alt:"Latest Release"})}),"\n",(0,n.jsx)(s.a,{href:"https://opensource.org/licenses/MIT",children:(0,n.jsx)(s.img,{src:"https://img.shields.io/badge/License-MIT-yellow.svg",alt:"License: MIT"})}),"\n",(0,n.jsx)(s.a,{href:"https://hub.docker.com/r/foxxmd/komodo-import",children:(0,n.jsx)(s.img,{src:"https://img.shields.io/docker/pulls/foxxmd/komodo-import",alt:"Docker Pulls"})})]}),"\n",(0,n.jsxs)(s.p,{children:["Generate TOML ",(0,n.jsx)(s.a,{href:"https://komo.do/docs/sync-resources",children:"Sync Resources"})," for ",(0,n.jsx)(s.a,{href:"https://komo.do",children:"Komodo"})," from your existing Docker Compose projects. The missing import tool for onboarding Komodo!"]}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.strong,{children:"\uD83D\uDEA7 VERY alpha development!"})}),"\n",(0,n.jsx)(s.h2,{id:"overview-1",children:"Overview"}),"\n",(0,n.jsxs)(s.p,{children:["Komodo Import is a small docker container that takes some user-provided configuration, reads ",(0,n.jsx)(s.strong,{children:"existing"})," folder structures on your machine, and generates ",(0,n.jsx)(s.a,{href:"https://komo.do/docs/sync-resources",children:"Sync Resources"})," to use with Komodo."]}),"\n",(0,n.jsx)(s.p,{children:"Current functionality:"}),"\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Generate TOML","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ",(0,n.jsx)(s.a,{href:"./docs/usage/overview#console",children:"To Docker Logs"})]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ",(0,n.jsx)(s.a,{href:"./docs/usage/overview#file",children:"To File"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Generate Toml For...","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Stack","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ",(0,n.jsx)(s.a,{href:"./docs/usage/overview#files-on-server",children:'"Files On Server"'})," Stack types"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Git Repo"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," "," Import directly with Komodo API","\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ",(0,n.jsx)(s.a,{href:"./docs/usage/overview#api-sync",children:"Create/modify Resource Sync"})]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Create/modify Stacks"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Create/modify Deployments"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsxs)(s.a,{href:"./docs/quickstart",children:["See the ",(0,n.jsx)(s.strong,{children:"Quick Start Guide"})]})}),"\n",(0,n.jsx)(s.h2,{id:"installation",children:"Installation"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsxs)(s.a,{href:"./docs/installation",children:["See the ",(0,n.jsx)(s.strong,{children:"Installation"})," documentation"]})}),"\n",(0,n.jsx)(s.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsxs)(s.a,{href:"./docs/usage/overview",children:["See the ",(0,n.jsx)(s.strong,{children:"Usage"})," documentation"]})}),"\n",(0,n.jsx)(s.h2,{id:"license",children:"License"}),"\n",(0,n.jsx)(s.p,{children:"MIT"})]})}function h(e={}){let{wrapper:s}={...(0,l.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}}}]);
+1 -1
assets/js/runtime~main.0d2cf591.js assets/js/runtime~main.3c5778fb.js
··· 1 - (()=>{"use strict";var e,t,r,o,a,n,d,i={},c={};function f(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={id:e,loaded:!1,exports:{}};return i[e].call(r.exports,r,r.exports,f),r.loaded=!0,r.exports}f.m=i,f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(r,o){if(1&o&&(r=this(r)),8&o||"object"==typeof r&&r&&(4&o&&r.__esModule||16&o&&"function"==typeof r.then))return r;var a=Object.create(null);f.r(a);var n={};e=e||[null,t({}),t([]),t(t)];for(var d=2&o&&r;"object"==typeof d&&!~e.indexOf(d);d=t(d))Object.getOwnPropertyNames(d).forEach(e=>{n[e]=()=>r[e]});return n.default=()=>r,f.d(a,n),a},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce((t,r)=>(f.f[r](e,t),t),[])),f.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),f.u=e=>"assets/js/"+(({112:"aba21aa0",151:"138e0e15",16:"common",177:"4bf48adb",211:"a7bd4aaa",230:"1a4e3797",286:"bf69edfb",302:"90524f8a",337:"2595c16e",365:"a7456010",432:"5e95c892",48:"17896441",493:"1f391b9e",6:"ea51e0d4",631:"74876495",775:"0c76d939",914:"a94703ab",952:"e7ce6630",983:"14eb3368"})[e]||e)+"."+({112:"b34ec71b",151:"afe3d715",16:"df7c21a2",177:"20bb6869",196:"21f9323f",21:"54b1ef8f",211:"ea5aebbb",230:"deb02c69",286:"1bddb561",302:"482144b0",337:"e2be806c",365:"e34fa5b5",432:"c1fa3c47",48:"44db8d2e",493:"6ffef63d",513:"549961f1",6:"b9a861f6",619:"2303a57f",631:"73e8b547",775:"c8ceb889",839:"1306b380",854:"ba5171e0",914:"2c0b26bf",952:"f740a074",983:"67e97984"})[e]+".js",f.miniCssF=e=>""+e+".css",f.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},f.l=function(e,t,o,a){if(r[e])return void r[e].push(t);if(void 0!==o)for(var n,d,i=document.getElementsByTagName("script"),c=0;c<i.length;c++){var u=i[c];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")=="my-website:"+o){n=u;break}}n||(d=!0,(n=document.createElement("script")).charset="utf-8",n.timeout=120,f.nc&&n.setAttribute("nonce",f.nc),n.setAttribute("data-webpack","my-website:"+o),n.src=e),r[e]=[t];var s=function(t,o){n.onerror=n.onload=null,clearTimeout(b);var a=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach(function(e){return e(o)}),t)return t(o)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=s.bind(null,n.onerror),n.onload=s.bind(null,n.onload),d&&document.head.appendChild(n)},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o=[],f.O=(e,t,r,a)=>{if(t){a=a||0;for(var n=o.length;n>0&&o[n-1][2]>a;n--)o[n]=o[n-1];o[n]=[t,r,a];return}for(var d=1/0,n=0;n<o.length;n++){for(var t=o[n][0],r=o[n][1],a=o[n][2],i=!0,c=0;c<t.length;c++)(!1&a||d>=a)&&Object.keys(f.O).every(e=>f.O[e](t[c]))?t.splice(c--,1):(i=!1,a<d&&(d=a));if(i){o.splice(n--,1);var u=r();void 0!==u&&(e=u)}}return e},f.p="/komodo-import/",f.rv=()=>"1.4.6",f.gca=function(e){return e=({0x11113f9:"48",0x476864f:"631",ea51e0d4:"6",common:"16",aba21aa0:"112","138e0e15":"151","4bf48adb":"177",a7bd4aaa:"211","1a4e3797":"230",bf69edfb:"286","90524f8a":"302","2595c16e":"337",a7456010:"365","5e95c892":"432","1f391b9e":"493","0c76d939":"775",a94703ab:"914",e7ce6630:"952","14eb3368":"983"})[e]||e,f.p+f.u(e)},f.b=document.baseURI||self.location.href,a={212:0,580:0},f.f.j=function(e,t){var r=f.o(a,e)?a[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(212|580)$/.test(e))a[e]=0;else{var o=new Promise((t,o)=>r=a[e]=[t,o]);t.push(r[2]=o);var n=f.p+f.u(e),d=Error();f.l(n,function(t){if(f.o(a,e)&&(0!==(r=a[e])&&(a[e]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+o+": "+n+")",d.name="ChunkLoadError",d.type=o,d.request=n,r[1](d)}},"chunk-"+e,e)}},f.O.j=e=>0===a[e],n=(e,t)=>{var r,o,n=t[0],d=t[1],i=t[2],c=0;if(n.some(e=>0!==a[e])){for(r in d)f.o(d,r)&&(f.m[r]=d[r]);if(i)var u=i(f)}for(e&&e(t);c<n.length;c++)o=n[c],f.o(a,o)&&a[o]&&a[o][0](),a[o]=0;return f.O(u)},(d=self.webpackChunkmy_website=self.webpackChunkmy_website||[]).forEach(n.bind(null,0)),d.push=n.bind(null,d.push.bind(d))})(); 1 + (()=>{"use strict";var e,t,r,o,a,n,c,i={},d={};function f(e){var t=d[e];if(void 0!==t)return t.exports;var r=d[e]={id:e,loaded:!1,exports:{}};return i[e].call(r.exports,r,r.exports,f),r.loaded=!0,r.exports}f.m=i,f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(r,o){if(1&o&&(r=this(r)),8&o||"object"==typeof r&&r&&(4&o&&r.__esModule||16&o&&"function"==typeof r.then))return r;var a=Object.create(null);f.r(a);var n={};e=e||[null,t({}),t([]),t(t)];for(var c=2&o&&r;"object"==typeof c&&!~e.indexOf(c);c=t(c))Object.getOwnPropertyNames(c).forEach(e=>{n[e]=()=>r[e]});return n.default=()=>r,f.d(a,n),a},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce((t,r)=>(f.f[r](e,t),t),[])),f.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),f.u=e=>"assets/js/"+(({112:"aba21aa0",151:"138e0e15",16:"common",177:"4bf48adb",211:"a7bd4aaa",230:"1a4e3797",286:"bf69edfb",302:"90524f8a",337:"2595c16e",365:"a7456010",432:"5e95c892",48:"17896441",493:"1f391b9e",6:"ea51e0d4",631:"74876495",775:"0c76d939",914:"a94703ab",952:"e7ce6630",983:"14eb3368"})[e]||e)+"."+({112:"b34ec71b",151:"afe3d715",16:"df7c21a2",177:"20bb6869",196:"21f9323f",21:"54b1ef8f",211:"ea5aebbb",230:"deb02c69",286:"1bddb561",302:"482144b0",337:"e2be806c",365:"e34fa5b5",432:"c1fa3c47",48:"44db8d2e",493:"6ffef63d",513:"549961f1",6:"b9a861f6",619:"2303a57f",631:"8614907e",775:"30265dc5",839:"1306b380",854:"415ecae9",914:"2c0b26bf",952:"135cc1e3",983:"67e97984"})[e]+".js",f.miniCssF=e=>""+e+".css",f.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},f.l=function(e,t,o,a){if(r[e])return void r[e].push(t);if(void 0!==o)for(var n,c,i=document.getElementsByTagName("script"),d=0;d<i.length;d++){var u=i[d];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")=="my-website:"+o){n=u;break}}n||(c=!0,(n=document.createElement("script")).charset="utf-8",n.timeout=120,f.nc&&n.setAttribute("nonce",f.nc),n.setAttribute("data-webpack","my-website:"+o),n.src=e),r[e]=[t];var b=function(t,o){n.onerror=n.onload=null,clearTimeout(s);var a=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach(function(e){return e(o)}),t)return t(o)},s=setTimeout(b.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=b.bind(null,n.onerror),n.onload=b.bind(null,n.onload),c&&document.head.appendChild(n)},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o=[],f.O=(e,t,r,a)=>{if(t){a=a||0;for(var n=o.length;n>0&&o[n-1][2]>a;n--)o[n]=o[n-1];o[n]=[t,r,a];return}for(var c=1/0,n=0;n<o.length;n++){for(var t=o[n][0],r=o[n][1],a=o[n][2],i=!0,d=0;d<t.length;d++)(!1&a||c>=a)&&Object.keys(f.O).every(e=>f.O[e](t[d]))?t.splice(d--,1):(i=!1,a<c&&(c=a));if(i){o.splice(n--,1);var u=r();void 0!==u&&(e=u)}}return e},f.p="/komodo-import/",f.rv=()=>"1.4.6",f.gca=function(e){return e=({0x11113f9:"48",0x476864f:"631",ea51e0d4:"6",common:"16",aba21aa0:"112","138e0e15":"151","4bf48adb":"177",a7bd4aaa:"211","1a4e3797":"230",bf69edfb:"286","90524f8a":"302","2595c16e":"337",a7456010:"365","5e95c892":"432","1f391b9e":"493","0c76d939":"775",a94703ab:"914",e7ce6630:"952","14eb3368":"983"})[e]||e,f.p+f.u(e)},f.b=document.baseURI||self.location.href,a={212:0,580:0},f.f.j=function(e,t){var r=f.o(a,e)?a[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(212|580)$/.test(e))a[e]=0;else{var o=new Promise((t,o)=>r=a[e]=[t,o]);t.push(r[2]=o);var n=f.p+f.u(e),c=Error();f.l(n,function(t){if(f.o(a,e)&&(0!==(r=a[e])&&(a[e]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+o+": "+n+")",c.name="ChunkLoadError",c.type=o,c.request=n,r[1](c)}},"chunk-"+e,e)}},f.O.j=e=>0===a[e],n=(e,t)=>{var r,o,n=t[0],c=t[1],i=t[2],d=0;if(n.some(e=>0!==a[e])){for(r in c)f.o(c,r)&&(f.m[r]=c[r]);if(i)var u=i(f)}for(e&&e(t);d<n.length;d++)o=n[d],f.o(a,o)&&a[o]&&a[o][0](),a[o]=0;return f.O(u)},(c=self.webpackChunkmy_website=self.webpackChunkmy_website||[]).forEach(n.bind(null,0)),c.push=n.bind(null,c.push.bind(c))})();
+1 -1
docs/category/installation/index.html
··· 1 - <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Installation | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/category/installation/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Installation | Komodo Import"><meta data-rh=true name=description content="Way to install Multi-Scrobbler"><meta data-rh=true property=og:description content="Way to install Multi-Scrobbler"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/category/installation/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/category/installation/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/category/installation/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/installation","name":"Installation","position":1}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.0d2cf591.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 1 + <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Installation | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/category/installation/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Installation | Komodo Import"><meta data-rh=true name=description content="Way to install Multi-Scrobbler"><meta data-rh=true property=og:description content="Way to install Multi-Scrobbler"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/category/installation/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/category/installation/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/category/installation/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/installation","name":"Installation","position":1}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.3c5778fb.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 2 2 <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 3 3 </defs></svg> 4 4 <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/komodo-import/><b class="navbar__title text--truncate">Komodo Import</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/komodo-import/docs/quickstart/>Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex=-1 class=sidebarLogo_isFc href=/komodo-import/><b>Komodo Import</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/komodo-import/docs/quickstart/>Quickstart</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current=page href=/komodo-import/docs/category/installation/>Installation</a><button aria-label="Collapse sidebar category 'Installation'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/komodo-import/docs/installation/>Overview</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/komodo-import/docs/category/usage/>Usage</a><button aria-label="Expand sidebar category 'Usage'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=generatedIndexPage_vN6x><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/komodo-import/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Installation</span></ul></nav><header><h1 class=title_kItE>Installation</h1><p>Way to install Multi-Scrobbler</header><article class=margin-top--lg><section class=row><article class="docCardListItem_W1sv col col--6"><a class="card padding--lg cardContainer_fWXF" href=/komodo-import/docs/installation/><h2 class="text--truncate cardTitle_rnsV" title=Overview>📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title=Docker>Docker</p></a></article></section></article><footer class=margin-top--md><nav class=pagination-nav aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/komodo-import/docs/quickstart/><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Quickstart</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/komodo-import/docs/installation/><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Overview</div></a></nav></footer></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/komodo-import/>Overview</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/installation/>Installation</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/usage/>Usage</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 Komodo Import. Built with Docusaurus.</div></div></div></footer></div>
+1 -1
docs/category/usage/index.html
··· 1 - <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Usage | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/category/usage/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Usage | Komodo Import"><meta data-rh=true name=description content="Using Komodo Import and examples"><meta data-rh=true property=og:description content="Using Komodo Import and examples"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/category/usage/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/category/usage/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/category/usage/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/usage","name":"Usage","position":1}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.0d2cf591.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 1 + <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Usage | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/category/usage/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Usage | Komodo Import"><meta data-rh=true name=description content="Using Komodo Import and examples"><meta data-rh=true property=og:description content="Using Komodo Import and examples"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/category/usage/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/category/usage/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/category/usage/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/usage","name":"Usage","position":1}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.3c5778fb.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 2 2 <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 3 3 </defs></svg> 4 4 <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/komodo-import/><b class="navbar__title text--truncate">Komodo Import</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/komodo-import/docs/quickstart/>Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex=-1 class=sidebarLogo_isFc href=/komodo-import/><b>Komodo Import</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/komodo-import/docs/quickstart/>Quickstart</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/komodo-import/docs/category/installation/>Installation</a><button aria-label="Expand sidebar category 'Installation'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current=page href=/komodo-import/docs/category/usage/>Usage</a><button aria-label="Collapse sidebar category 'Usage'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/komodo-import/docs/usage/overview/>Overview</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/komodo-import/docs/usage/resourceSync/>Using Sync Resources</a></ul></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=generatedIndexPage_vN6x><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/komodo-import/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Usage</span></ul></nav><header><h1 class=title_kItE>Usage</h1><p>Using Komodo Import and examples</header><article class=margin-top--lg><section class=row><article class="docCardListItem_W1sv col col--6"><a class="card padding--lg cardContainer_fWXF" href=/komodo-import/docs/usage/overview/><h2 class="text--truncate cardTitle_rnsV" title=Overview>📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Key Concepts">Key Concepts</p></a></article><article class="docCardListItem_W1sv col col--6"><a class="card padding--lg cardContainer_fWXF" href=/komodo-import/docs/usage/resourceSync/><h2 class="text--truncate cardTitle_rnsV" title="Using Sync Resources">📄️<!-- --> <!-- -->Using Sync Resources</h2><p class="text--truncate cardDescription_PWke" title="What is a Sync Resource?">What is a Sync Resource?</p></a></article></section></article><footer class=margin-top--md><nav class=pagination-nav aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/komodo-import/docs/installation/><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Overview</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/komodo-import/docs/usage/overview/><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Overview</div></a></nav></footer></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/komodo-import/>Overview</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/installation/>Installation</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/usage/>Usage</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 Komodo Import. Built with Docusaurus.</div></div></div></footer></div>
+1 -1
docs/installation/index.html
··· 1 - <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-installation/installation" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Overview | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/installation/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Overview | Komodo Import"><meta data-rh=true name=description content=Docker><meta data-rh=true property=og:description content=Docker><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/installation/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/installation/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/installation/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/installation","name":"Installation","position":1},{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/installation/","name":"Overview","position":2}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.0d2cf591.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 1 + <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-installation/installation" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Overview | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/installation/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Overview | Komodo Import"><meta data-rh=true name=description content=Docker><meta data-rh=true property=og:description content=Docker><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/installation/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/installation/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/installation/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/installation","name":"Installation","position":1},{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/installation/","name":"Overview","position":2}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.3c5778fb.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 2 2 <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 3 3 </defs></svg> 4 4 <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/komodo-import/><b class="navbar__title text--truncate">Komodo Import</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/komodo-import/docs/quickstart/>Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex=-1 class=sidebarLogo_isFc href=/komodo-import/><b>Komodo Import</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/komodo-import/docs/quickstart/>Quickstart</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/komodo-import/docs/category/installation/>Installation</a><button aria-label="Collapse sidebar category 'Installation'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/komodo-import/docs/installation/>Overview</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/komodo-import/docs/category/usage/>Usage</a><button aria-label="Expand sidebar category 'Usage'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/komodo-import/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/komodo-import/docs/category/installation/><span>Installation</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Overview</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Overview</h1></header><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=docker>Docker<a href=#docker class=hash-link aria-label="Direct link to Docker" title="Direct link to Docker">​</a></h2>
+5 -3
docs/quickstart/index.html
··· 1 - <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-quickstart" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Quickstart | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/quickstart/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Quickstart | Komodo Import"><meta data-rh=true name=description content=Scenario><meta data-rh=true property=og:description content=Scenario><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/quickstart/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/quickstart/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/quickstart/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/quickstart","name":"Quickstart","position":1}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.0d2cf591.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 1 + <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-quickstart" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Quickstart | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/quickstart/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Quickstart | Komodo Import"><meta data-rh=true name=description content=Scenario><meta data-rh=true property=og:description content=Scenario><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/quickstart/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/quickstart/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/quickstart/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/quickstart","name":"Quickstart","position":1}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.3c5778fb.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 2 2 <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 3 3 </defs></svg> 4 4 <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/komodo-import/><b class="navbar__title text--truncate">Komodo Import</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/komodo-import/docs/quickstart/>Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex=-1 class=sidebarLogo_isFc href=/komodo-import/><b>Komodo Import</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current=page href=/komodo-import/docs/quickstart/>Quickstart</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/komodo-import/docs/category/installation/>Installation</a><button aria-label="Expand sidebar category 'Installation'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/komodo-import/docs/category/usage/>Usage</a><button aria-label="Expand sidebar category 'Usage'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/komodo-import/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Quickstart</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Quickstart</h1></header><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=scenario>Scenario<a href=#scenario class=hash-link aria-label="Direct link to Scenario" title="Direct link to Scenario">​</a></h2> ··· 13 13 </ul> 14 14 <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">.</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">└── /home/myUser/homelab/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ├── immich/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> │ └── compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ├── plex/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> │ └── docker-compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> └── uptime-kuma/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> └── compose.yaml</span><br></span></code></pre></div></div> 15 15 <p>You want to import all of the existing compose projects into Komodo as <a href=/komodo-import/docs/usage/overview/#files-on-server>Files On Server</a> <a href=https://komo.do/docs/resources#stack target=_blank rel="noopener noreferrer">Stacks</a> attached to <code>my-cool-server</code>.</p> 16 + <div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 12 16"><path fill-rule=evenodd d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"/></svg></span>tip</div><div class=admonitionContent_BuS1><p>Using git repositories instead of plain folders? Check out the <a href=/komodo-import/docs/usage/overview/#git-repo>Git Repo Stack docs</a></div></div> 16 17 <h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=create-docker-compose-file>Create Docker Compose File<a href=#create-docker-compose-file class=hash-link aria-label="Direct link to Create Docker Compose File" title="Direct link to Create Docker Compose File">​</a></h2> 17 18 <p>Use the <a href=https://github.com/FoxxMD/komodo-import/blob/main/compose.yaml target=_blank rel="noopener noreferrer">example <code>compose.yaml</code> file from the repository</a> as a starting point.</p> 18 19 <ul> 19 - <li>Bind <code>/home/myUser/homelab/</code> into the container at <code>/filesOnServer</code> so Komodo Import can scan the parent folder</li> 20 + <li>Bind <code>/home/myUser/homelab/</code> into the container at <code>/filesOnServer</code> so Komodo Import can scan the parent folder (this is the same for plain folder and git repo stack methods)</li> 20 21 <li>Define <code>HOST_PARENT_PATH=/home/myUser/homelab</code> so Komodo Import knows how to create Run Directory in a Komodo Stack correctly</li> 21 22 </ul> 22 23 <div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">komodo-import</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">image</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> foxxmd/komodo</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">import</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">latest</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">volumes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## ParentDirectory:FILES_ON_SERVER_DIR</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> /home/myUser/homelab</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">/filesOnServer</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## optional, TOML is saved to file here when OUTPUT_DIR env is present</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">#- ./output:/output</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">environment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> TZ=America/New_York</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## Komodo Server name to use for generated Stacks</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> SERVER_NAME=my</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">cool</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">server</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## ParentDirectory on the host use as Stack Run Directory prefix</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> HOST_PARENT_PATH=/home/myUser/homelab</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">restart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> no</span><br></span></code></pre></div></div> 23 - <div class="tabs-container tabList__CuJ"><ul role=tablist aria-orientation=horizontal class=tabs><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_LNqP tabs__item--active">Console<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">Sync API</ul><div class=margin-top--md><div role=tabpanel class=tabItem_Ymn6><p>This <a href=/komodo-import/docs/usage/overview/#outputs>Output</a> write renders the Sync Resource TOML to docker logs. Run komodo-import with <code>--no-log-prefix</code> to get the generated TOML output for a Sync Resource.<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token function" style="color:rgb(80, 250, 123)">docker</span><span class="token plain"> compose up --no-log-prefix</span><br></span></code></pre></div></div><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.080 -0400] INFO : [Init] Debug Mode: NO</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.094 -0400] INFO : [App] Version: 0.1.0</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.095 -0400] INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Processing Stacks for 2 folders:</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">/filesOnServer/immich</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">/filesOnServer/plex</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">/filesOnServer/uptime-kuma</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] Env Glob: **/.env</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.103 -0400] WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.103 -0400] INFO : [App] [Files On Server] [compose] Stack config complete</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">...</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.118 -0400] INFO : [App] [Files On Server] Built Stack configs for 3 folders</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[[stack]]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">name = "immich"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[stack.config]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">server = "my-cool-server"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">run_directory = "/home/myUser/homelab/immich"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">files_on_host = true</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">auto_update = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">poll_for_updates = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">file_paths = [ "docker/docker-compose.yaml" ]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[[stack]]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">name = "plex"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[stack.config]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">server = "my-cool-server"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">run_directory = "/home/myUser/homelab/plex"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">files_on_host = true</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">auto_update = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">poll_for_updates = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[[stack]]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">name = "uptime-kuma"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[stack.config]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">server = "my-cool-server"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">run_directory = "/home/myUser/homelab/uptime-kuma"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">files_on_host = true</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">auto_update = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">poll_for_updates = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">env_file_path = ".komodoEnv"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">additional_env_files = [ ".env" ]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.119 -0400] INFO : [App] Done!</span><br></span></code></pre></div></div><p>Now <a href=/komodo-import/docs/usage/resourceSync/#create-sync-resource>manually create a Sync Resource</a> and Execute to import your projects.</div><div role=tabpanel class=tabItem_Ymn6 hidden><p>This <a href=/komodo-import/docs/usage/overview/#outputs>Output</a> writes the Sync Resource directly to your Komodo instance (but does not execute it!)<p>Create an <a href=/komodo-import/docs/usage/overview/#api-sync>API Key and Secret</a> in Komodo, then add it to your Komodo Import <code>compose.yaml</code>:<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">komodo-import</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">image</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> foxxmd/komodo</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">import</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">latest</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">volumes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## ParentDirectory:FILES_ON_SERVER_DIR</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> /home/myUser/homelab</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">/filesOnServer</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## optional, TOML is saved to file here when OUTPUT_DIR env is present</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">#- ./output:/output</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">environment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> TZ=America/New_York</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## Komodo Server name to use for generated Stacks</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> SERVER_NAME=my</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">cool</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">server</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## ParentDirectory on the host use as Stack Run Directory prefix</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> HOST_PARENT_PATH=/home/myUser/homelab</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> KOMODO_URL=http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">//192.168.0.101</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token number">9120</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> API_KEY=K</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">3A6btIPZYeBuD5ebSa9uD5ebuD5ebHIjYxT5sc</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> API_SECRET=S</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">qnaXD1frutYlfC2ZYlfCSzqiYlfC1WYlfCVR34Yj4</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">restart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> no</span><br></span></code></pre></div></div><p>Run komodo-import to create the Sync Resource<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">docker</span><span class="token plain"> compose up --no-log-prefix</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">..</span><span class="token plain">.</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2025</span><span class="token plain">-08-11 </span><span class="token number">17</span><span class="token plain">:46:54.030 -0400</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">App</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">Sync API</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Using </span><span class="token string" style="color:rgb(255, 121, 198)">'komodo-import'</span><span class="token plain"> as Sync Name</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2025</span><span class="token plain">-08-11 </span><span class="token number">17</span><span class="token plain">:46:54.032 -0400</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> VERBOSE: </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">App</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">Sync API</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> KOMODO_URL: http://192.168.0.101:9120 </span><span class="token operator">|</span><span class="token plain"> Normalized: http://192.168.0.101:9120/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2025</span><span class="token plain">-08-11 </span><span class="token number">17</span><span class="token plain">:46:54.411 -0400</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">App</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">Sync API</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Resource Sync created.</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2025</span><span class="token plain">-08-11 </span><span class="token number">17</span><span class="token plain">:46:54.411 -0400</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">App</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">Sync API</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57</span><br></span></code></pre></div></div><p>Then continue to <a href=/komodo-import/docs/usage/resourceSync/#verify-sync-changes>verifying the Sync Resource</a> in Komodo and Executing it to import your projects.</div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class=col><a href=https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/quickstart.mdx target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href=/komodo-import/docs/category/installation/><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Installation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#scenario class="table-of-contents__link toc-highlight">Scenario</a><li><a href=#create-docker-compose-file class="table-of-contents__link toc-highlight">Create Docker Compose File</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/komodo-import/>Overview</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/installation/>Installation</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/usage/>Usage</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 Komodo Import. Built with Docusaurus.</div></div></div></footer></div> 24 + <h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=choose-desired-output>Choose Desired Output<a href=#choose-desired-output class=hash-link aria-label="Direct link to Choose Desired Output" title="Direct link to Choose Desired Output">​</a></h2> 25 + <div class="tabs-container tabList__CuJ"><ul role=tablist aria-orientation=horizontal class=tabs><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_LNqP tabs__item--active">Console<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">Sync API</ul><div class=margin-top--md><div role=tabpanel class=tabItem_Ymn6><p>This <a href=/komodo-import/docs/usage/overview/#outputs>Output</a> renders the Sync Resource TOML to docker logs. Run komodo-import with <code>--no-log-prefix</code> to get the generated TOML output for a Sync Resource.<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token function" style="color:rgb(80, 250, 123)">docker</span><span class="token plain"> compose up --no-log-prefix</span><br></span></code></pre></div></div><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.080 -0400] INFO : [Init] Debug Mode: NO</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.094 -0400] INFO : [App] Version: 0.1.0</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.095 -0400] INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Processing Stacks for 2 folders:</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">/filesOnServer/immich</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">/filesOnServer/plex</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">/filesOnServer/uptime-kuma</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] Env Glob: **/.env</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.103 -0400] WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.103 -0400] INFO : [App] [Files On Server] [compose] Stack config complete</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">...</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.118 -0400] INFO : [App] [Files On Server] Built Stack configs for 3 folders</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[[stack]]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">name = "immich"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[stack.config]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">server = "my-cool-server"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">run_directory = "/home/myUser/homelab/immich"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">files_on_host = true</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">auto_update = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">poll_for_updates = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">file_paths = [ "docker/docker-compose.yaml" ]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[[stack]]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">name = "plex"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[stack.config]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">server = "my-cool-server"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">run_directory = "/home/myUser/homelab/plex"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">files_on_host = true</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">auto_update = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">poll_for_updates = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[[stack]]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">name = "uptime-kuma"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[stack.config]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">server = "my-cool-server"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">run_directory = "/home/myUser/homelab/uptime-kuma"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">files_on_host = true</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">auto_update = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">poll_for_updates = false</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">env_file_path = ".komodoEnv"</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">additional_env_files = [ ".env" ]</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">[2025-08-11 14:06:19.119 -0400] INFO : [App] Done!</span><br></span></code></pre></div></div><p>Now, <a href=/komodo-import/docs/usage/resourceSync/#create-sync-resource>manually create a Sync Resource</a> and Execute to import your projects.<p>Or, use <a href="/komodo-import/docs/quickstart/?output=sync-api#choose-desired-output">Sync Api</a> output instead to directly write the Sync Resource to Komodo.</div><div role=tabpanel class=tabItem_Ymn6 hidden><p>This <a href=/komodo-import/docs/usage/overview/#outputs>Output</a> writes the Sync Resource directly to your Komodo instance (but does not execute it!)<p>Create an <a href=/komodo-import/docs/usage/overview/#api-sync>API Key and Secret</a> in Komodo, then add it to your Komodo Import <code>compose.yaml</code>:<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">komodo-import</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">image</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> foxxmd/komodo</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">import</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">latest</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">volumes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## ParentDirectory:FILES_ON_SERVER_DIR</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> /home/myUser/homelab</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">/filesOnServer</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## optional, TOML is saved to file here when OUTPUT_DIR env is present</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">#- ./output:/output</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">environment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> TZ=America/New_York</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## Komodo Server name to use for generated Stacks</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> SERVER_NAME=my</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">cool</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">server</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">## ParentDirectory on the host use as Stack Run Directory prefix</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> HOST_PARENT_PATH=/home/myUser/homelab</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> KOMODO_URL=http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">//192.168.0.101</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token number">9120</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> API_KEY=K</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">3A6btIPZYeBuD5ebSa9uD5ebuD5ebHIjYxT5sc</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> API_SECRET=S</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">qnaXD1frutYlfC2ZYlfCSzqiYlfC1WYlfCVR34Yj4</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">restart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> no</span><br></span></code></pre></div></div><p>Run komodo-import to create the Sync Resource<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">docker</span><span class="token plain"> compose up --no-log-prefix</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">..</span><span class="token plain">.</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2025</span><span class="token plain">-08-11 </span><span class="token number">17</span><span class="token plain">:46:54.030 -0400</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">App</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">Sync API</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Using </span><span class="token string" style="color:rgb(255, 121, 198)">'komodo-import'</span><span class="token plain"> as Sync Name</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2025</span><span class="token plain">-08-11 </span><span class="token number">17</span><span class="token plain">:46:54.032 -0400</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> VERBOSE: </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">App</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">Sync API</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> KOMODO_URL: http://192.168.0.101:9120 </span><span class="token operator">|</span><span class="token plain"> Normalized: http://192.168.0.101:9120/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2025</span><span class="token plain">-08-11 </span><span class="token number">17</span><span class="token plain">:46:54.411 -0400</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">App</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">Sync API</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Resource Sync created.</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2025</span><span class="token plain">-08-11 </span><span class="token number">17</span><span class="token plain">:46:54.411 -0400</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">App</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">Sync API</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57</span><br></span></code></pre></div></div><p>Then continue to <a href=/komodo-import/docs/usage/resourceSync/#verify-sync-changes>verifying the Sync Resource</a> in Komodo and Executing it to import your projects.</div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class=col><a href=https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/quickstart.mdx target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href=/komodo-import/docs/category/installation/><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Installation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#scenario class="table-of-contents__link toc-highlight">Scenario</a><li><a href=#create-docker-compose-file class="table-of-contents__link toc-highlight">Create Docker Compose File</a><li><a href=#choose-desired-output class="table-of-contents__link toc-highlight">Choose Desired Output</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/komodo-import/>Overview</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/installation/>Installation</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/usage/>Usage</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 Komodo Import. Built with Docusaurus.</div></div></div></footer></div>
+100 -17
docs/usage/overview/index.html
··· 1 - <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-usage/overview" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Overview | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/usage/overview/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Overview | Komodo Import"><meta data-rh=true name=description content="Key Concepts"><meta data-rh=true property=og:description content="Key Concepts"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/usage/overview/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/usage/overview/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/usage/overview/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/usage","name":"Usage","position":1},{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/usage/overview","name":"Overview","position":2}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.0d2cf591.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 1 + <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-usage/overview" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Overview | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/usage/overview/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Overview | Komodo Import"><meta data-rh=true name=description content="Key Concepts"><meta data-rh=true property=og:description content="Key Concepts"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/usage/overview/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/usage/overview/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/usage/overview/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/usage","name":"Usage","position":1},{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/usage/overview","name":"Overview","position":2}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.3c5778fb.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 2 2 <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 3 3 </defs></svg> 4 4 <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/komodo-import/><b class="navbar__title text--truncate">Komodo Import</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/komodo-import/docs/quickstart/>Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex=-1 class=sidebarLogo_isFc href=/komodo-import/><b>Komodo Import</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/komodo-import/docs/quickstart/>Quickstart</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/komodo-import/docs/category/installation/>Installation</a><button aria-label="Expand sidebar category 'Installation'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/komodo-import/docs/category/usage/>Usage</a><button aria-label="Collapse sidebar category 'Usage'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/komodo-import/docs/usage/overview/>Overview</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/komodo-import/docs/usage/resourceSync/>Using Sync Resources</a></ul></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/komodo-import/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/komodo-import/docs/category/usage/><span>Usage</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Overview</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Overview</h1></header><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=key-concepts>Key Concepts<a href=#key-concepts class=hash-link aria-label="Direct link to Key Concepts" title="Direct link to Key Concepts">​</a></h2> ··· 27 27 <h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=inputs-1>Inputs<a href=#inputs-1 class=hash-link aria-label="Direct link to Inputs" title="Direct link to Inputs">​</a></h2> 28 28 <h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=stacks>Stacks<a href=#stacks class=hash-link aria-label="Direct link to Stacks" title="Direct link to Stacks">​</a></h3> 29 29 <p>KI can create Komodo <a href=https://komo.do/docs/resources#stack target=_blank rel="noopener noreferrer">Stack</a> Resources from existing resources on your machine.</p> 30 + <h5 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=common-stack-configuration>Common Stack Configuration<a href=#common-stack-configuration class=hash-link aria-label="Direct link to Common Stack Configuration" title="Direct link to Common Stack Configuration">​</a></h5> 31 + <p>These environmental variables are applicable to all Stack types below.</p> 32 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Environmental Variables</summary><div><div class=collapsibleContent_i85q><table><thead><tr><th style=text-align:left>ENV<th style=text-align:left>Required<th>Default<th style=text-align:left>Description<tbody><tr><td style=text-align:left><code>SERVER_NAME</code><td style=text-align:left>☑️<td><td style=text-align:left>The name of the Komodo <a href=https://komo.do/docs/resources#server target=_blank rel="noopener noreferrer">Server</a> where a Stack is located<tr><td style=text-align:left><code>HOST_PARENT_PATH</code><td style=text-align:left>☑️<td><td style=text-align:left>The parent directory on the <strong>host</strong> where stack folders are located.<tr><td style=text-align:left><code>WRITE_ENV</code><td style=text-align:left>-<td><code>false</code><td style=text-align:left>Write the contents of found .env files to Komodo <strong>Environment</strong>. Likely want this as <code>true</code>.<tr><td style=text-align:left><code>FOLDER_GLOB</code><td style=text-align:left>-<td><code>*</code><td style=text-align:left>The <a href="https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer" target=_blank rel="noopener noreferrer">glob</a> pattern to use for finding folders in the top-level folder given to Komodo Import<tr><td style=text-align:left><code>FOLDER_IGNORE_GLOB</code><td style=text-align:left>-<td><td style=text-align:left>The <a href="https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer" target=_blank rel="noopener noreferrer">glob</a> pattern to use to ignore folders in the top-level folder given to Komodo Import<tr><td style=text-align:left><code>COMPOSE_FILE_GLOB</code><td style=text-align:left>-<td><code>**/{compose,docker-compose}*.y?(a)ml</code><td style=text-align:left>The <a href="https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer" target=_blank rel="noopener noreferrer">glob</a> pattern to use for finding files for <strong>Files Paths</strong> in Stack config<tr><td style=text-align:left><code>ENV_FILE_GLOB</code><td style=text-align:left>-<td><code>**/.env</code><td style=text-align:left>The <a href="https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer" target=_blank rel="noopener noreferrer">glob</a> pattern to use for finding files for <strong>Additional Env Files</strong> in Stack config<tr><td style=text-align:left><code>KOMODO_ENV_NAME</code><td style=text-align:left>-<td><code>.komodoenv</code><td style=text-align:left>If existing .env files are found, and <code>WRITE_ENV=false</code>, then this name will be used for the .env that Komodo writes using its own Environment section<tr><td style=text-align:left><code>IMAGE_REGISTRY_PROVIDER</code><td style=text-align:left>-<td><td style=text-align:left>Name of Image Registry to use<tr><td style=text-align:left><code>IMAGE_REGISTRY_ACCOUNT</code><td style=text-align:left>-<td><td style=text-align:left>Image Registry account to use<tr><td style=text-align:left><code>POLL_FOR_UPDATE</code><td style=text-align:left>-<td><td style=text-align:left>Poll for newer images?<tr><td style=text-align:left><code>AUTO_UPDATE</code><td style=text-align:left>-<td><td style=text-align:left>Auto Update stack?</table></div></div></details> 30 33 <h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=files-on-server>Files On Server<a href=#files-on-server class=hash-link aria-label="Direct link to Files On Server" title="Direct link to Files On Server">​</a></h4> 31 - <p>Use existing <a href=https://docs.docker.com/compose/how-tos/project-name/ target=_blank rel="noopener noreferrer">Docker Compose projects</a> (<code>compose.yaml</code>) as <a href=#files-on-server><strong>Files On Server</strong></a> mode Komodo Stacks.</p> 34 + <p>Use existing, non git-based <a href=https://docs.docker.com/compose/how-tos/project-name/ target=_blank rel="noopener noreferrer">Docker Compose projects</a> (<code>compose.yaml</code>) as <strong>Files On Server</strong> mode Komodo Stacks.</p> 32 35 <p>KI will generate multiple Stacks from all folders within the given folder. This is similar to how <a href=https://github.com/louislam/dockge target=_blank rel="noopener noreferrer">dockge</a> works.</p> 33 36 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Example</summary><div><div class=collapsibleContent_i85q><p>If your folder structure looks like this<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">.</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">└── /home/myUser/homelab/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ├── immich/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> │ └── compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ├── plex/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> │ └── docker-compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> └── uptime-kuma/</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> └── compose.yaml</span><br></span></code></pre></div></div><p>and you use <code>/home/myUser/homelab/</code> with KI then it will output stacks for<ul> 34 - <li>immich</li> 35 - <li>plex</li> 36 - <li>uptime-kuma</li> 37 + <li><strong>immich</strong> with Run Directory <code>/home/myUser/homelab/immich</code></li> 38 + <li><strong>plex</strong> with Run Directory <code>/home/myUser/homelab/plex</code></li> 39 + <li><strong>uptime-kuma</strong> with Run Directory <code>/home/myUser/homelab/uptime-kuma</code></li> 37 40 </ul></div></div></details> 38 - <div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg></span>note</div><div class=admonitionContent_BuS1><p>This method does not yet support <strong>git-based</strong> Stacks. Any git-based projects will only be detected as Files On Server.</div></div> 39 41 <h6 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=project-file-detection>Project Files Detection<a href=#project-file-detection class=hash-link aria-label="Direct link to Project Files Detection" title="Direct link to Project Files Detection">​</a></h6> 40 42 <p>Komodo Import makes some reasonable assumptions about which <code>compose.yaml</code> and <code>.env</code> files you want to use within each project's folder. These can be overriden using the <code>*_GLOB</code> environmental varibales from the <a href=#fos-config>Configuration</a> below.</p> 41 43 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>File Detection and Behavior Details</summary><div><div class=collapsibleContent_i85q><ul> ··· 73 75 </li> 74 76 </ul><p>Komodo Import will <strong>log</strong> which files it detects and indicate which ones it will use for each project. These can be manually modified in the generated TOML, <a href=#api-sync>API Sync Resource</a>, or after creating the Stack in Komodo.</div></div></details> 75 77 <h5 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=fos-config>Configuration<a href=#fos-config class=hash-link aria-label="Direct link to Configuration" title="Direct link to Configuration">​</a></h5> 76 - <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Environmental Variables</summary><div><div class=collapsibleContent_i85q><table><thead><tr><th style=text-align:left>ENV<th style=text-align:left>Required<th>Default<th style=text-align:left>Description<tbody><tr><td style=text-align:left><code>SERVER_NAME</code><td style=text-align:left>☑️<td><td style=text-align:left>The name of the Komodo <a href=https://komo.do/docs/resources#server target=_blank rel="noopener noreferrer">Server</a> where a Stack is located<tr><td style=text-align:left><code>HOST_PARENT_PATH</code><td style=text-align:left>☑️<td><td style=text-align:left>The parent directory on the <strong>host</strong> where stack folders are located. Used for generating Stack Run Directory<tr><td style=text-align:left><code>COMPOSE_FILE_GLOB</code><td style=text-align:left>-<td><td style=text-align:left>A <a href="https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer" target=_blank rel="noopener noreferrer">glob</a> pattern to use for finding files for <strong>Files Paths</strong> in Stack config<tr><td style=text-align:left><code>ENV_FILE_GLOB</code><td style=text-align:left>-<td><td style=text-align:left>A <a href="https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer" target=_blank rel="noopener noreferrer">glob</a> pattern to use for finding files for <strong>Additional Env Files</strong> in Stack config<tr><td style=text-align:left><code>KOMODO_ENV_NAME</code><td style=text-align:left>-<td><code>.komodoenv</code><td style=text-align:left>If existing .env files are found then this name will be used for the .env that Komodo writes using its own Environment section<tr><td style=text-align:left><code>IMAGE_REGISTRY_PROVIDER</code><td style=text-align:left>-<td><td style=text-align:left>Name of Image Registry to use<tr><td style=text-align:left><code>IMAGE_REGISTRY_ACCOUNT</code><td style=text-align:left>-<td><td style=text-align:left>Image Registry account to use<tr><td style=text-align:left><code>POLL_FOR_UPDATE</code><td style=text-align:left>-<td>false<td style=text-align:left>Poll for newer images?<tr><td style=text-align:left><code>AUTO_UPDATE</code><td style=text-align:left>-<td>false<td style=text-align:left>Auto Update stack?</table></div></div></details> 78 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Environmental Variables</summary><div><div class=collapsibleContent_i85q><p>Use the <a href=#common-stack-configuration><strong>Common Stack Configuration environmental variables</strong></a></div></div></details> 77 79 <p>For <a href=/komodo-import/docs/installation/#docker>docker</a> usage the folder with your projects should be mounted to <code>/filesOnServer</code> in the container.</p> 78 - <h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=git-based>Git-Based<a href=#git-based class=hash-link aria-label="Direct link to Git-Based" title="Direct link to Git-Based">​</a></h4> 79 - <p>Coming soon!</p> 80 + <h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=git-repo>Git Repo<a href=#git-repo class=hash-link aria-label="Direct link to Git Repo" title="Direct link to Git Repo">​</a></h4> 81 + <p>Use existing, <strong>git repository</strong> folders containing <a href=https://docs.docker.com/compose/how-tos/project-name/ target=_blank rel="noopener noreferrer">Docker Compose projects</a> (<code>compose.yaml</code>) as <strong>Git Repo</strong> mode Komodo Stacks.</p> 82 + <p>KI will generate multiple Stacks from all folders within the given folder. Each folder detected as a git repository will have all required fields in a Git Repo Komodo Stack configured based on information from the local repository.</p> 83 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>How Repository Parsing Works</summary><div><div class=collapsibleContent_i85q><ul> 84 + <li>A folder is only built as a Git Repo stack if...<!-- --> 85 + <ul> 86 + <li>It contains a valid <code>.git</code> folder</li> 87 + <li>The git repo has a valid remote</li> 88 + <li>The current checked out local branch is tracking a remote branch</li> 89 + <li>If any of the above are not true then the folder is instead parsed as a <a href=#files-on-server>Files On Server</a> Stack</li> 90 + </ul> 91 + </li> 92 + <li>Additionally, if <a href=#komodo-api><strong>Komodo API is configured</strong></a> then...<!-- --> 93 + <ul> 94 + <li>If Komodo has a <a href=https://komo.do/docs/resources#repo target=_blank rel="noopener noreferrer">Repo</a> Resource that matches the remote, then the Git Repo Stack uses a Linked Repo</li> 95 + <li>If Komodo has a Git Provider matching the remote URL domain then that is used, along with the Git Provider user (private git is automatically detected)</li> 96 + </ul> 97 + </li> 98 + </ul></div></div></details> 99 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Example</summary><div><div class=collapsibleContent_i85q><p>You have two repositories at<ul> 100 + <li><code>https://git.mydomain.com/myUser/immich</code></li> 101 + <li><code>https://github.com/anotherUser/plex</code></li> 102 + </ul><p>Your folder structure looks like this<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">/home/myUser/homelab</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">├── immich</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ ├── .git</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ └── compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">├── plex</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ ├── .git</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ └── docker-compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">└── uptime-kuma</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> └── compose.yaml</span><br></span></code></pre></div></div><p>You run Komodo Import with the <code>homelab</code> directory:<p><code>docker run ... -e "HOST_PARENT_PATH=/home/myUser/homelab" -v /home/myUser/homelab:/filesOnServer foxxmd/komodo-import</code><ul> 103 + <li><strong>immich</strong> is created as a Git Repo Stack with<!-- --> 104 + <ul> 105 + <li>Git Provider: <code>git.mydomain.com</code></li> 106 + <li>Repo: <code>myUser/immich</code></li> 107 + </ul> 108 + </li> 109 + <li><strong>plex</strong> is created as a Git Repo Stack with<!-- --> 110 + <ul> 111 + <li>Git Provider: <code>github.com</code></li> 112 + <li>Repo: <code>anotherUser/immich</code></li> 113 + </ul> 114 + </li> 115 + <li><strong>uptime-kuma</strong> is created as a Files On Server Stack<!-- --> 116 + <ul> 117 + <li>Run Directory: <code>/home/myUser/homelab/uptime-kuma</code></li> 118 + </ul> 119 + </li> 120 + </ul></div></div></details> 121 + <h6 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=monorepos>Monorepos<a href=#monorepos class=hash-link aria-label="Direct link to Monorepos" title="Direct link to Monorepos">​</a></h6> 122 + <p>Komodo Import can also handle <strong>monorepos.</strong> Mount the top-level repository folder to the usual <code>/filesOnServer</code> location and it will automatically treat sub-folders as Git Repo Stacks using the top-level repository.</p> 123 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Example</summary><div><div class=collapsibleContent_i85q><p>You have a repository at <code>https://git.mydomain.com/myUser/homelab</code> and each folder in the repo is a different stack.<p>Your folder structure (on the host machine) looks like this:<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">/home/myUser/homelab</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">├── .git</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">├── immich</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ └── compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">├── plex</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ └── docker-compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">└── uptime-kuma</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> └── compose.yaml</span><br></span></code></pre></div></div><p>You run Komodo Import with the <code>homelab</code> directory:<p><code>docker run ... -v /home/myUser/homelab:/filesOnServer foxxmd/komodo-import</code><ul> 124 + <li><strong>immich</strong> is created as a Git Repo Stack with<!-- --> 125 + <ul> 126 + <li>Git Provider: <code>git.mydomain.com</code></li> 127 + <li>Repo: <code>myUser/homelab</code></li> 128 + <li>Run Directory: <code>immich</code></li> 129 + </ul> 130 + </li> 131 + <li><strong>plex</strong> is created as a Git Repo Stack with<!-- --> 132 + <ul> 133 + <li>Git Provider: <code>git.mydomain.com</code></li> 134 + <li>Repo: <code>myUser/homelab</code></li> 135 + <li>Run Directory: <code>plex</code></li> 136 + </ul> 137 + </li> 138 + <li><strong>uptime-kuma</strong> is created as a Files On Server Stack<!-- --> 139 + <ul> 140 + <li>Git Provider: <code>git.mydomain.com</code></li> 141 + <li>Repo: <code>myUser/homelab</code></li> 142 + <li>Run Directory: <code>uptime-kuma</code></li> 143 + </ul> 144 + </li> 145 + </ul></div></div></details> 146 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Nested Monorepo</summary><div><div class=collapsibleContent_i85q><p>If your stack folders are not the immediate sub-folders in your repository then specify the <em>relative directory from git root</em> as <code>GIT_STACKS_DIR</code> to specify what parent folder to use:<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">/home/myUser/homelab</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">├── .git</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">├── myStacks</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ ├── immich</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ │ └── compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ ├── plex</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ │ └── docker-compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ └── uptime-kuma</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">│ └── compose.yaml</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain">└── somethingElse</span><br></span></code></pre></div></div><p>Use <code>GIT_STACKS_DIR=myStacks</code> with the above example.</div></div></details> 147 + <h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=configuration-1>Configuration<a href=#configuration-1 class=hash-link aria-label="Direct link to Configuration" title="Direct link to Configuration">​</a></h4> 148 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Environmental Variables</summary><div><div class=collapsibleContent_i85q><p>Combine with <a href=#common-stack-configuration><strong>Common Stack Configuration environmental variables</strong></a><table><thead><tr><th style=text-align:left>ENV<th style=text-align:left>Required<th>Default<th style=text-align:left>Description<tbody><tr><td style=text-align:left><code>GIT_STACKS_DIR</code><td style=text-align:left>-<td><td style=text-align:left>Set sub-folder to use for stacks when generating from a <a href=#monorepo>monorepo</a></table></div></div></details> 80 149 <h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=outputs-1>Outputs<a href=#outputs-1 class=hash-link aria-label="Direct link to Outputs" title="Direct link to Outputs">​</a></h2> 81 150 <h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=console>Console<a href=#console class=hash-link aria-label="Direct link to Console" title="Direct link to Console">​</a></h3> 82 151 <p>KI will always output the raw TOML form of a <a href=https://komo.do/docs/sync-resources target=_blank rel="noopener noreferrer">Sync Resource</a> to console unless the env <code>LOG_TOML=false</code>.</p> ··· 86 155 <div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 12 16"><path fill-rule=evenodd d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"/></svg></span>tip</div><div class=admonitionContent_BuS1><p>Use <code>--no-log-prefix</code> to get output without the service name prefix, makes getting clear TOML output easier.<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">docker compose up --no-log-prefix</span><br></span></code></pre></div></div></div></div> 87 156 <h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=api-sync>API Sync<a href=#api-sync class=hash-link aria-label="Direct link to API Sync" title="Direct link to API Sync">​</a></h3> 88 157 <p>Komodo Import can <strong>directly create Sync Resources in Komodo</strong> using Komodo's API. <strong>This output will only create the Sync, it will not execute it.</strong> After creating the Sync you should <a href=/komodo-import/docs/usage/resourceSync/#verify-sync-changes>verify its content before executing.</a></p> 158 + <p>First, follow the instructions and configuration in the <a href=#komodo-api>Komodo API</a> section.</p> 159 + <div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg></span>note</div><div class=admonitionContent_BuS1><p>Currently, the user creating the Api Key must be an <strong>Admin</strong> to create Sync Resources (but this will hopefully be more granular in the future).</div></div> 160 + <p>Then, add these environmental variables to Komodo Import:</p> 161 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Environmental Variables</summary><div><div class=collapsibleContent_i85q><table><thead><tr><th style=text-align:left>ENV<th style=text-align:left>Required<th style=text-align:left>Default<th style=text-align:left>Description<tbody><tr><td style=text-align:left><code>OUTPUT_API_SYNC</code><td style=text-align:left>☑️<td style=text-align:left><code>false</code><td style=text-align:left>Must be <code>true</code> to activate API Sync<tr><td style=text-align:left><code>EXISTING_SYNC</code><td style=text-align:left>-<td style=text-align:left>append<td style=text-align:left>Behavior if Resource Sync already exists. Either <code>append</code> or <code>overwrite</code><tr><td style=text-align:left><code>SYNC_NAME</code><td style=text-align:left>-<td style=text-align:left>komodo-import<td style=text-align:left>Name of Sync to create/modify</table></div></div></details> 162 + <h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=file>File<a href=#file class=hash-link aria-label="Direct link to File" title="Direct link to File">​</a></h3> 163 + <p>Komodo Import will attempt to write the generated output to a <code>.toml</code> file if the ENV <code>OUTPUT_DIR</code> is present. This should be the <em>directory</em> (not file) that the generated file should be written to.</p> 164 + <p>Bind mount a folder into the container and set <code>OUTPUT_DIR</code> like in the example below:</p> 165 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>File Output Example</summary><div><div class=collapsibleContent_i85q><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">komodo-import</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ...</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">environment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ...</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> OUTPUT_DIR=/output</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">volumes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ...</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> /my/host/folder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">/output</span><br></span></code></pre></div></div></div></div></details> 166 + <p>Use this with <a href=/komodo-import/docs/usage/resourceSync/#create-sync-resource>manually creating Sync Resources</a></p> 167 + <h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=komodo-api>Komodo API<a href=#komodo-api class=hash-link aria-label="Direct link to Komodo API" title="Direct link to Komodo API">​</a></h2> 168 + <p>Komodo Import can take advantage of your existing Komodo instance to configure Stacks with linked repos, write Resource Syncs directly, etc...</p> 89 169 <p>You will need to create an API Key and Secret to use the API.</p> 90 170 <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>API Key Creation Instructions</summary><div><div class=collapsibleContent_i85q><p>Navigate to your Komodo Web UI:<ul> 91 171 <li>Open <strong>Settings</strong> -> <strong>Profile</strong></li> ··· 95 175 <li>Create the key and Copy the show <strong>Key</strong> and <strong>Secret</strong></li> 96 176 </ul> 97 177 </li> 98 - </ul><p>Currently, the user creating the Api Key must be an <strong>Admin</strong> to create Sync Resources (but this will hopefully be more granular in the future).</div></div></details> 99 - <p>Add these environmental variables to Komodo Import:</p> 100 - <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Environmental Variables</summary><div><div class=collapsibleContent_i85q><table><thead><tr><th style=text-align:left>ENV<th style=text-align:left>Required<th>Default<th style=text-align:left>Description<tbody><tr><td style=text-align:left><code>KOMODO_URL</code><td style=text-align:left>☑️<td><td style=text-align:left>Komodo Server URL for use with creating/modifying Resource Sync directly<tr><td style=text-align:left><code>API_KEY</code><td style=text-align:left>☑️<td><td style=text-align:left>Komodo API Key<tr><td style=text-align:left><code>API_SECRET</code><td style=text-align:left>☑️<td><td style=text-align:left>Komodo API Secret<tr><td style=text-align:left><code>EXISTING_SYNC</code><td style=text-align:left>-<td>append<td style=text-align:left>Behavior if Resource Sync already exists. Either <code>append</code> or <code>overwrite</code><tr><td style=text-align:left><code>SYNC_NAME</code><td style=text-align:left>-<td>komodo-import<td style=text-align:left>Name of Sync to create/modify</table></div></div></details> 101 - <h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=file>File<a href=#file class=hash-link aria-label="Direct link to File" title="Direct link to File">​</a></h3> 102 - <p>Komodo Import will attempt to write the generated output to a <code>.toml</code> file if the ENV <code>OUTPUT_DIR</code> is present. This should be the <em>directory</em> (not file) that the generated file should be written to.</p> 103 - <p>Bind mount a folder into the container and set <code>OUTPUT_DIR</code> like in the example below:</p> 104 - <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>File Output Example</summary><div><div class=collapsibleContent_i85q><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">komodo-import</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ...</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">environment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ...</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> OUTPUT_DIR=/output</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token key atrule">volumes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ...</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> /my/host/folder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">/output</span><br></span></code></pre></div></div></div></div></details> 105 - <p>Use this with <a href=/komodo-import/docs/usage/resourceSync/#create-sync-resource>manually creating Sync Resources</a></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class=col><a href=https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/usage/overview.mdx target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/komodo-import/docs/category/usage/><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Usage</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/komodo-import/docs/usage/resourceSync/><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Using Sync Resources</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#key-concepts class="table-of-contents__link toc-highlight">Key Concepts</a><ul><li><a href=#inputs class="table-of-contents__link toc-highlight">Inputs</a><li><a href=#configuration class="table-of-contents__link toc-highlight">Configuration</a><li><a href=#outputs class="table-of-contents__link toc-highlight">Outputs</a></ul><li><a href=#inputs-1 class="table-of-contents__link toc-highlight">Inputs</a><ul><li><a href=#stacks class="table-of-contents__link toc-highlight">Stacks</a><ul><li><a href=#files-on-server class="table-of-contents__link toc-highlight">Files On Server</a><li><a href=#git-based class="table-of-contents__link toc-highlight">Git-Based</a></ul></ul><li><a href=#outputs-1 class="table-of-contents__link toc-highlight">Outputs</a><ul><li><a href=#console class="table-of-contents__link toc-highlight">Console</a><li><a href=#api-sync class="table-of-contents__link toc-highlight">API Sync</a><li><a href=#file class="table-of-contents__link toc-highlight">File</a></ul></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/komodo-import/>Overview</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/installation/>Installation</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/usage/>Usage</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 Komodo Import. Built with Docusaurus.</div></div></div></footer></div> 178 + </ul></div></div></details> 179 + <h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=api-configuration>API Configuration<a href=#api-configuration class=hash-link aria-label="Direct link to API Configuration" title="Direct link to API Configuration">​</a></h4> 180 + <p>Add these environmental variables to Komodo Import to use the Komodo API.</p> 181 + <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Environmental Variables</summary><div><div class=collapsibleContent_i85q><table><thead><tr><th style=text-align:left>ENV<th style=text-align:left>Required<th>Default<th style=text-align:left>Description<tbody><tr><td style=text-align:left><code>KOMODO_URL</code><td style=text-align:left>☑️<td><td style=text-align:left>Komodo Server URL<tr><td style=text-align:left><code>API_KEY</code><td style=text-align:left>☑️<td><td style=text-align:left>Komodo API Key<tr><td style=text-align:left><code>API_SECRET</code><td style=text-align:left>☑️<td><td style=text-align:left>Komodo API Secret</table></div></div></details> 182 + <p>Your Komodo URL should be as specific as possible, including port if required. Some examples of valid urls:</p> 183 + <ul> 184 + <li><code>http://192.168.0.100:9120</code></li> 185 + <li><code>https://komodo.mydomain.com</code></li> 186 + <li><code>https://myKomodo.com</code></li> 187 + <li><code>http://komodo</code> (in docker network, for example)</li> 188 + </ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class=col><a href=https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/usage/overview.mdx target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/komodo-import/docs/category/usage/><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Usage</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/komodo-import/docs/usage/resourceSync/><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Using Sync Resources</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#key-concepts class="table-of-contents__link toc-highlight">Key Concepts</a><ul><li><a href=#inputs class="table-of-contents__link toc-highlight">Inputs</a><li><a href=#configuration class="table-of-contents__link toc-highlight">Configuration</a><li><a href=#outputs class="table-of-contents__link toc-highlight">Outputs</a></ul><li><a href=#inputs-1 class="table-of-contents__link toc-highlight">Inputs</a><ul><li><a href=#stacks class="table-of-contents__link toc-highlight">Stacks</a><ul><li><a href=#files-on-server class="table-of-contents__link toc-highlight">Files On Server</a><li><a href=#git-repo class="table-of-contents__link toc-highlight">Git Repo</a><li><a href=#configuration-1 class="table-of-contents__link toc-highlight">Configuration</a></ul></ul><li><a href=#outputs-1 class="table-of-contents__link toc-highlight">Outputs</a><ul><li><a href=#console class="table-of-contents__link toc-highlight">Console</a><li><a href=#api-sync class="table-of-contents__link toc-highlight">API Sync</a><li><a href=#file class="table-of-contents__link toc-highlight">File</a></ul><li><a href=#komodo-api class="table-of-contents__link toc-highlight">Komodo API</a><ul><li><a href=#api-configuration class="table-of-contents__link toc-highlight">API Configuration</a></ul></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/komodo-import/>Overview</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/installation/>Installation</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/usage/>Usage</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 Komodo Import. Built with Docusaurus.</div></div></div></footer></div>
+1 -1
docs/usage/resourceSync/index.html
··· 1 - <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-usage/resourceSync" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Using Sync Resources | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/usage/resourceSync/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Using Sync Resources | Komodo Import"><meta data-rh=true name=description content="What is a Sync Resource?"><meta data-rh=true property=og:description content="What is a Sync Resource?"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/usage/resourceSync/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/usage/resourceSync/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/usage/resourceSync/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/usage","name":"Usage","position":1},{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/usage/resourceSync","name":"Using Sync Resources","position":2}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.0d2cf591.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 1 + <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-usage/resourceSync" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Using Sync Resources | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/docs/usage/resourceSync/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Using Sync Resources | Komodo Import"><meta data-rh=true name=description content="What is a Sync Resource?"><meta data-rh=true property=og:description content="What is a Sync Resource?"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/usage/resourceSync/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/usage/resourceSync/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/usage/resourceSync/ hreflang=x-default><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/category/usage","name":"Usage","position":1},{"@type":"ListItem","item":"https://foxxmd.github.io/komodo-import/docs/usage/resourceSync","name":"Using Sync Resources","position":2}]}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.3c5778fb.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 2 2 <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 3 3 </defs></svg> 4 4 <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/komodo-import/><b class="navbar__title text--truncate">Komodo Import</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/komodo-import/docs/quickstart/>Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex=-1 class=sidebarLogo_isFc href=/komodo-import/><b>Komodo Import</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/komodo-import/docs/quickstart/>Quickstart</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/komodo-import/docs/category/installation/>Installation</a><button aria-label="Expand sidebar category 'Installation'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/komodo-import/docs/category/usage/>Usage</a><button aria-label="Collapse sidebar category 'Usage'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/komodo-import/docs/usage/overview/>Overview</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/komodo-import/docs/usage/resourceSync/>Using Sync Resources</a></ul></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/komodo-import/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/komodo-import/docs/category/usage/><span>Usage</span></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Using Sync Resources</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Using Sync Resources</h1></header><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=what-is-a-sync-resource>What is a Sync Resource?<a href=#what-is-a-sync-resource class=hash-link aria-label="Direct link to What is a Sync Resource?" title="Direct link to What is a Sync Resource?">​</a></h2>
+15 -11
index.html
··· 1 - <!doctype html><html lang=en dir=ltr class="mdx-wrapper mdx-page plugin-pages plugin-id-default" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Overview | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docusaurus_tag content=default><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docsearch:docusaurus_tag content=default><meta data-rh=true property=og:title content="Overview | Komodo Import"><meta data-rh=true name=description content="Latest Release"><meta data-rh=true property=og:description content="Latest Release"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/ hreflang=x-default><script data-rh=true>document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()});function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container",n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/komodo-import/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),o=window.location.pathname;e.innerHTML="/"===o.substr(-1)?o:o+"/"}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.0d2cf591.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 1 + <!doctype html><html lang=en dir=ltr class="mdx-wrapper mdx-page plugin-pages plugin-id-default" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Overview | Komodo Import</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docusaurus_tag content=default><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docsearch:docusaurus_tag content=default><meta data-rh=true property=og:title content="Overview | Komodo Import"><meta data-rh=true name=description content="Latest Release"><meta data-rh=true property=og:description content="Latest Release"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/ hreflang=x-default><script data-rh=true>document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()});function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container",n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/komodo-import/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),o=window.location.pathname;e.innerHTML="/"===o.substr(-1)?o:o+"/"}</script><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.3c5778fb.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 2 2 <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 3 3 </defs></svg> 4 4 <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/komodo-import/><b class="navbar__title text--truncate">Komodo Import</b></a><a class="navbar__item navbar__link" href=/komodo-import/docs/quickstart/>Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><main class="container container--fluid margin-vert--lg"><div class="row mdxPageWrapper_j9I6"><div class="col col--8"><article><header><h1>Overview</h1></header> ··· 10 10 <h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=overview-1>Overview<a href=#overview-1 class=hash-link aria-label="Direct link to Overview" title="Direct link to Overview">​</a></h2> 11 11 <p>Komodo Import is a small docker container that takes some user-provided configuration, reads <strong>existing</strong> folder structures on your machine, and generates <a href=https://komo.do/docs/sync-resources target=_blank rel="noopener noreferrer">Sync Resources</a> to use with Komodo.</p> 12 12 <p>Current functionality:</p> 13 + <ul> 14 + <li>Generate Resources from...<!-- --> 13 15 <ul class="contains-task-list containsTaskList_mC6p"> 14 - <li class=task-list-item><input type=checkbox disabled checked> <!-- -->Generate TOML<!-- --> 16 + <li class=task-list-item><input type=checkbox disabled checked> <!-- -->Stack<!-- --> 15 17 <ul class="contains-task-list containsTaskList_mC6p"> 16 - <li class=task-list-item><input type=checkbox disabled checked> <a href=/komodo-import/docs/usage/overview/#console>To Docker Logs</a></li> 17 - <li class=task-list-item><input type=checkbox disabled checked> <a href=/komodo-import/docs/usage/overview/#file>To File</a></li> 18 + <li class=task-list-item><input type=checkbox disabled checked> <a href=/komodo-import/docs/usage/overview/#files-on-server>Files On Server</a> Stacks from plain folders</li> 19 + <li class=task-list-item><input type=checkbox disabled checked> <a href=/komodo-import/docs/usage/overview/#git-repo>Git-based</a> Stacks from folders containing git repository</li> 18 20 </ul> 19 21 </li> 20 - <li class=task-list-item><input type=checkbox disabled checked> <!-- -->Generate Toml For...<!-- --> 21 - <ul class="contains-task-list containsTaskList_mC6p"> 22 - <li class=task-list-item><input type=checkbox disabled checked> <!-- -->Stack<!-- --> 23 - <ul class="contains-task-list containsTaskList_mC6p"> 24 - <li class=task-list-item><input type=checkbox disabled checked> <a href=/komodo-import/docs/usage/overview/#files-on-server>"Files On Server"</a> Stack types</li> 25 - <li class=task-list-item><input type=checkbox disabled> <!-- -->Git Repo</li> 26 22 </ul> 27 23 </li> 24 + <li>Generate To...<!-- --> 25 + <ul class="contains-task-list containsTaskList_mC6p"> 26 + <li class=task-list-item><input type=checkbox disabled checked> <!-- -->TOML<!-- --> 27 + <ul class="contains-task-list containsTaskList_mC6p"> 28 + <li class=task-list-item><input type=checkbox disabled checked> <!-- -->in <a href=/komodo-import/docs/usage/overview/#console>Docker Logs</a></li> 29 + <li class=task-list-item><input type=checkbox disabled checked> <!-- -->in <a href=/komodo-import/docs/usage/overview/#file>File</a></li> 28 30 </ul> 29 31 </li> 30 - <li class=task-list-item><input type=checkbox disabled checked> <!-- --> Import directly with Komodo API<!-- --> 32 + <li class=task-list-item><input type=checkbox disabled checked> <!-- -->Import directly with Komodo API<!-- --> 31 33 <ul class="contains-task-list containsTaskList_mC6p"> 32 34 <li class=task-list-item><input type=checkbox disabled checked> <a href=/komodo-import/docs/usage/overview/#api-sync>Create/modify Resource Sync</a></li> 33 35 <li class=task-list-item><input type=checkbox disabled> <!-- -->Create/modify Stacks</li> 34 36 <li class=task-list-item><input type=checkbox disabled> <!-- -->Create/modify Deployments</li> 37 + </ul> 38 + </li> 35 39 </ul> 36 40 </li> 37 41 </ul>
+1 -1
search-index.json
··· 1 - [{"documents":[{"i":1,"t":"Quickstart","u":"/komodo-import/docs/quickstart/","b":["Docs"]},{"i":6,"t":"Overview","u":"/komodo-import/docs/installation/","b":["Docs","Installation"]},{"i":14,"t":"Overview","u":"/komodo-import/docs/usage/overview/","b":["Docs","Usage"]},{"i":33,"t":"Using Sync Resources","u":"/komodo-import/docs/usage/resourceSync/","b":["Docs","Usage"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,1.394]],["t/6",[1,0.803]],["t/14",[1,0.803]],["t/33",[2,0.854,3,0.854,4,0.854]]],"invertedIndex":[["overview",{"_index":1,"t":{"6":{"position":[[0,8]]},"14":{"position":[[0,8]]}}}],["quickstart",{"_index":0,"t":{"1":{"position":[[0,10]]}}}],["resourc",{"_index":4,"t":{"33":{"position":[[11,9]]}}}],["sync",{"_index":3,"t":{"33":{"position":[[6,4]]}}}],["us",{"_index":2,"t":{"33":{"position":[[0,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Scenario","u":"/komodo-import/docs/quickstart/","h":"#scenario","p":1},{"i":4,"t":"Create Docker Compose File","u":"/komodo-import/docs/quickstart/","h":"#create-docker-compose-file","p":1},{"i":7,"t":"Docker","u":"/komodo-import/docs/installation/","h":"#docker","p":6},{"i":9,"t":"Docker Usage Example","u":"/komodo-import/docs/installation/","h":"#docker-usage-example","p":6},{"i":11,"t":"Local Installation","u":"/komodo-import/docs/installation/","h":"#local-installation","p":6},{"i":12,"t":"Nodejs","u":"/komodo-import/docs/installation/","h":"#nodejs","p":6},{"i":15,"t":"Key Concepts","u":"/komodo-import/docs/usage/overview/","h":"#key-concepts","p":14},{"i":17,"t":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs","p":14},{"i":19,"t":"Configuration","u":"/komodo-import/docs/usage/overview/","h":"#configuration","p":14},{"i":21,"t":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs","p":14},{"i":23,"t":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs-1","p":14},{"i":24,"t":"Stacks","u":"/komodo-import/docs/usage/overview/","h":"#stacks","p":14},{"i":26,"t":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs-1","p":14},{"i":27,"t":"Console","u":"/komodo-import/docs/usage/overview/","h":"#console","p":14},{"i":29,"t":"API Sync","u":"/komodo-import/docs/usage/overview/","h":"#api-sync","p":14},{"i":31,"t":"File","u":"/komodo-import/docs/usage/overview/","h":"#file","p":14},{"i":34,"t":"What is a Sync Resource?","u":"/komodo-import/docs/usage/resourceSync/","h":"#what-is-a-sync-resource","p":33},{"i":36,"t":"How To Use with Komodo Import?","u":"/komodo-import/docs/usage/resourceSync/","h":"#how-to-use-with-komodo-import","p":33},{"i":38,"t":"Create Sync Resource","u":"/komodo-import/docs/usage/resourceSync/","h":"#create-sync-resource","p":33},{"i":40,"t":"Verify Sync Changes","u":"/komodo-import/docs/usage/resourceSync/","h":"#verify-sync-changes","p":33},{"i":42,"t":"Execute Sync","u":"/komodo-import/docs/usage/resourceSync/","h":"#execute-sync","p":33},{"i":44,"t":"Remove Sync (Optional)","u":"/komodo-import/docs/usage/resourceSync/","h":"#remove-sync-optional","p":33}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,3.346]],["t/4",[1,1.488,2,1.263,3,1.831,4,1.488]],["t/7",[2,2.308]],["t/9",[2,1.487,5,2.157,6,2.157]],["t/11",[7,2.623,8,2.623]],["t/12",[9,3.346]],["t/15",[10,2.623,11,2.623]],["t/17",[12,2.72]],["t/19",[13,3.346]],["t/21",[14,2.72]],["t/23",[12,2.72]],["t/24",[15,3.346]],["t/26",[14,2.72]],["t/27",[16,3.346]],["t/29",[17,2.623,18,1.214]],["t/31",[4,2.72]],["t/34",[18,1.214,19,2.132]],["t/36",[20,2.157,21,2.157,22,2.157]],["t/38",[1,1.753,18,0.998,19,1.753]],["t/40",[18,0.998,23,2.157,24,2.157]],["t/42",[18,1.214,25,2.623]],["t/44",[18,0.998,26,2.157,27,2.157]]],"invertedIndex":[["api",{"_index":17,"t":{"29":{"position":[[0,3]]}}}],["chang",{"_index":24,"t":{"40":{"position":[[12,7]]}}}],["compos",{"_index":3,"t":{"4":{"position":[[14,7]]}}}],["concept",{"_index":11,"t":{"15":{"position":[[4,8]]}}}],["configur",{"_index":13,"t":{"19":{"position":[[0,13]]}}}],["consol",{"_index":16,"t":{"27":{"position":[[0,7]]}}}],["creat",{"_index":1,"t":{"4":{"position":[[0,6]]},"38":{"position":[[0,6]]}}}],["docker",{"_index":2,"t":{"4":{"position":[[7,6]]},"7":{"position":[[0,6]]},"9":{"position":[[0,6]]}}}],["exampl",{"_index":6,"t":{"9":{"position":[[13,7]]}}}],["execut",{"_index":25,"t":{"42":{"position":[[0,7]]}}}],["file",{"_index":4,"t":{"4":{"position":[[22,4]]},"31":{"position":[[0,4]]}}}],["import",{"_index":22,"t":{"36":{"position":[[23,7]]}}}],["input",{"_index":12,"t":{"17":{"position":[[0,6]]},"23":{"position":[[0,6]]}}}],["instal",{"_index":8,"t":{"11":{"position":[[6,12]]}}}],["key",{"_index":10,"t":{"15":{"position":[[0,3]]}}}],["komodo",{"_index":21,"t":{"36":{"position":[[16,6]]}}}],["local",{"_index":7,"t":{"11":{"position":[[0,5]]}}}],["nodej",{"_index":9,"t":{"12":{"position":[[0,6]]}}}],["option",{"_index":27,"t":{"44":{"position":[[12,10]]}}}],["output",{"_index":14,"t":{"21":{"position":[[0,7]]},"26":{"position":[[0,7]]}}}],["remov",{"_index":26,"t":{"44":{"position":[[0,6]]}}}],["resourc",{"_index":19,"t":{"34":{"position":[[15,9]]},"38":{"position":[[12,8]]}}}],["scenario",{"_index":0,"t":{"2":{"position":[[0,8]]}}}],["stack",{"_index":15,"t":{"24":{"position":[[0,6]]}}}],["sync",{"_index":18,"t":{"29":{"position":[[4,4]]},"34":{"position":[[10,4]]},"38":{"position":[[7,4]]},"40":{"position":[[7,4]]},"42":{"position":[[8,4]]},"44":{"position":[[7,4]]}}}],["us",{"_index":20,"t":{"36":{"position":[[7,3]]}}}],["usag",{"_index":5,"t":{"9":{"position":[[7,5]]}}}],["verifi",{"_index":23,"t":{"40":{"position":[[0,6]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":1,"t":"Scenario","s":"Quickstart","u":"/komodo-import/docs/quickstart/","p":1},{"i":6,"t":"Docker","s":"Overview","u":"/komodo-import/docs/installation/","p":6},{"i":14,"t":"Key Concepts","s":"Overview","u":"/komodo-import/docs/usage/overview/","p":14},{"i":33,"t":"What is a Sync Resource?","s":"Using Sync Resources","u":"/komodo-import/docs/usage/resourceSync/","p":33}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,1.394]],["t/6",[1,1.394]],["t/14",[2,1.059,3,1.059]],["t/33",[4,1.059,5,1.059]]],"invertedIndex":[["concept",{"_index":3,"t":{"14":{"position":[[4,8]]}}}],["docker",{"_index":1,"t":{"6":{"position":[[0,6]]}}}],["key",{"_index":2,"t":{"14":{"position":[[0,3]]}}}],["resourc",{"_index":5,"t":{"33":{"position":[[15,9]]}}}],["scenario",{"_index":0,"t":{"1":{"position":[[0,8]]}}}],["sync",{"_index":4,"t":{"33":{"position":[[10,4]]}}}]],"pipeline":["stemmer"]}},{"documents":[],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[],"invertedIndex":[],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"You have Komodo already setup You have installed Periphery on a machine The Komodo Server name is my-cool-server The machine is currently using dockge and has all of its compose projects located in one folder like this: . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ └── docker-compose.yaml └── uptime-kuma/ └── compose.yaml You want to import all of the existing compose projects into Komodo as Files On Server Stacks attached to my-cool-server.","s":"Scenario","u":"/komodo-import/docs/quickstart/","h":"#scenario","p":1},{"i":5,"t":"Use the example compose.yaml file from the repository as a starting point. Bind /home/myUser/homelab/ into the container at /filesOnServer so Komodo Import can scan the parent folder Define HOST_PARENT_PATH=/home/myUser/homelab so Komodo Import knows how to create Run Directory in a Komodo Stack correctly services: komodo-import: image: foxxmd/komodo-import:latest volumes: ## ParentDirectory:FILES_ON_SERVER_DIR - /home/myUser/homelab:/filesOnServer ## optional, TOML is saved to file here when OUTPUT_DIR env is present #- ./output:/output environment: - TZ=America/New_York ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## ParentDirectory on the host use as Stack Run Directory prefix - HOST_PARENT_PATH=/home/myUser/homelab restart: no Console Sync API This Output write renders the Sync Resource TOML to docker logs. Run komodo-import with --no-log-prefix to get the generated TOML output for a Sync Resource. docker compose up --no-log-prefix [2025-08-11 14:06:19.080 -0400] INFO : [Init] Debug Mode: NO [2025-08-11 14:06:19.094 -0400] INFO : [App] Version: 0.1.0 [2025-08-11 14:06:19.095 -0400] INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer [2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Processing Stacks for 2 folders: /filesOnServer/immich /filesOnServer/plex /filesOnServer/uptime-kuma [2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml [2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] Env Glob: **/.env [2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml [2025-08-11 14:06:19.103 -0400] WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob [2025-08-11 14:06:19.103 -0400] INFO : [App] [Files On Server] [compose] Stack config complete ... [2025-08-11 14:06:19.118 -0400] INFO : [App] [Files On Server] Built Stack configs for 3 folders [2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [[stack]] name = \"immich\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/immich\" files_on_host = true auto_update = false poll_for_updates = false file_paths = [ \"docker/docker-compose.yaml\" ] [[stack]] name = \"plex\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/plex\" files_on_host = true auto_update = false poll_for_updates = false [[stack]] name = \"uptime-kuma\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/uptime-kuma\" files_on_host = true auto_update = false poll_for_updates = false env_file_path = \".komodoEnv\" additional_env_files = [ \".env\" ] ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [2025-08-11 14:06:19.119 -0400] INFO : [App] Done! Now manually create a Sync Resource and Execute to import your projects. This Output writes the Sync Resource directly to your Komodo instance (but does not execute it!) Create an API Key and Secret in Komodo, then add it to your Komodo Import compose.yaml: services: komodo-import: image: foxxmd/komodo-import:latest volumes: ## ParentDirectory:FILES_ON_SERVER_DIR - /home/myUser/homelab:/filesOnServer ## optional, TOML is saved to file here when OUTPUT_DIR env is present #- ./output:/output environment: - TZ=America/New_York ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## ParentDirectory on the host use as Stack Run Directory prefix - HOST_PARENT_PATH=/home/myUser/homelab - KOMODO_URL=http://192.168.0.101:9120 - API_KEY=K-3A6btIPZYeBuD5ebSa9uD5ebuD5ebHIjYxT5sc - API_SECRET=S-qnaXD1frutYlfC2ZYlfCSzqiYlfC1WYlfCVR34Yj4 restart: no Run komodo-import to create the Sync Resource $ docker compose up --no-log-prefix ... [2025-08-11 17:46:54.030 -0400] INFO : [App] [Sync API] Using 'komodo-import' as Sync Name [2025-08-11 17:46:54.032 -0400] VERBOSE: [App] [Sync API] KOMODO_URL: http://192.168.0.101:9120 | Normalized: http://192.168.0.101:9120/ [2025-08-11 17:46:54.411 -0400] INFO : [App] [Sync API] Resource Sync created. [2025-08-11 17:46:54.411 -0400] INFO : [App] [Sync API] Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57 Then continue to verifying the Sync Resource in Komodo and Executing it to import your projects.","s":"Create Docker Compose File","u":"/komodo-import/docs/quickstart/","h":"#create-docker-compose-file","p":1},{"i":8,"t":"Cross-platform images are built for x86 (Intel/AMD) and ARM64 (IE Raspberry Pi) Available Images Dockerhub Github Packages Repository Page docker.io/foxxmd/komodo-import:latest Repository Page ghcr.io/foxxmd/komodo-import:latest Or use the example compose.yml, found in the repo, after modifying it to fit your configuration: compose.yml services: komodo-import: image: foxxmd/komodo-import:latest volumes: ## ParentDirectory:FILES_ON_SERVER_DIR - ./myprojects:/filesOnServer ## optional, TOML is saved to file here when OUTPUT_DIR env is present #- ./output:/output environment: - TZ=America/New_York ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## ParentDirectory on the host use as Stack Run Directory prefix - HOST_PARENT_PATH=/my/cool/path ## optional #- FILES_ON_SERVER_DIR=/filesOnServer #- IMAGE_REGISTRY_PROVIDER= #- IMAGE_REGISTRY_ACCOUNT= #- AUTO_UPDATE=false #- POLL_FOR_UPDATE=false #- KOMODO_ENV_NAME= #- COMPOSE_FILE_GLOB= #- ENV_FILE_GLOB= ## only saves to file if this ENV is present #- OUTPUT_DIR=/output restart: no","s":"Docker","u":"/komodo-import/docs/installation/","h":"#docker","p":6},{"i":10,"t":"tip See the Quick Start Guide for another guided docker-compose example The example scenario: You have Komodo already setup You have installed Periphery on a machine The Komodo Server name for this machine is my-cool-server The machine is currently using dockge and has all of its compose projects located at /home/myUser/homelab like... /home/myUser/homelab/immich /home/myUser/homelab/plex etc... Docker Docker Compose docker run --name komodo-import -e \"SERVER_NAME=my-cool-server\" -e \"HOST_PARENT_PATH=/home/myUser/homelab\" -v /home/myUser/homelab:/filesOnServer foxxmd/komodo-import See docker-compose.yml sample above for more options and annotations. docker-compose.yml services: komodo-import: image: foxxmd/komodo-import:latest volumes: ## ParentDirectory:FILES_ON_SERVER_DIR - /home/myUser/homelab:/filesOnServer:ro environment: - TZ=America/New_York ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## ParentDirectory on the host use as Stack Run Directory prefix - HOST_PARENT_PATH=/home/myUser/homelab restart: no docker compose up --no-log-prefix Output [2025-08-11 14:06:19.080 -0400] INFO : [Init] Debug Mode: NO [2025-08-11 14:06:19.094 -0400] INFO : [App] Version: 0.1.0 [2025-08-11 14:06:19.095 -0400] INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer [2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Processing Stacks for 6 folders: /filesOnServer/compose.yaml /filesOnServer/immich /filesOnServer/jellyfin /filesOnServer/octoprint /filesOnServer/plex /filesOnServer/uptime-kuma [2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml [2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] Env Glob: **/.env [2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml [2025-08-11 14:06:19.103 -0400] WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob [2025-08-11 14:06:19.103 -0400] INFO : [App] [Files On Server] [compose] Stack config complete [2025-08-11 14:06:19.104 -0400] INFO : [App] [Files On Server] [immich] Found Stack 'immich' at dir /filesOnServer/immich [2025-08-11 14:06:19.107 -0400] INFO : [App] [Files On Server] [immich] Found 1 files matching compose glob: docker/docker-compose.yaml [2025-08-11 14:06:19.107 -0400] INFO : [App] [Files On Server] [immich] Using file(s): docker/docker-compose.yaml [2025-08-11 14:06:19.108 -0400] INFO : [App] [Files On Server] [immich] Stack config complete [2025-08-11 14:06:19.108 -0400] INFO : [App] [Files On Server] [jellyfin] Found Stack 'jellyfin' at dir /filesOnServer/jellyfin [2025-08-11 14:06:19.109 -0400] INFO : [App] [Files On Server] [jellyfin] Found 3 files matching compose glob: compose.yaml docker-compose.yaml docker/docker-compose.yaml [2025-08-11 14:06:19.110 -0400] INFO : [App] [Files On Server] [jellyfin] Using file: compose.yaml but not writing to file_paths since this is the Komodo default [2025-08-11 14:06:19.111 -0400] INFO : [App] [Files On Server] [jellyfin] Found 1 env files matching pattern **/.env: .env [2025-08-11 14:06:19.111 -0400] INFO : [App] [Files On Server] [jellyfin] Using .komodoEnv for Komodo-written env file [2025-08-11 14:06:19.111 -0400] INFO : [App] [Files On Server] [jellyfin] Stack config complete [2025-08-11 14:06:19.111 -0400] INFO : [App] [Files On Server] [octoprint] Found Stack 'octoprint' at dir /filesOnServer/octoprint [2025-08-11 14:06:19.112 -0400] WARN : [App] [Files On Server] [octoprint] Did not find any files patterns matching compose glob [2025-08-11 14:06:19.112 -0400] INFO : [App] [Files On Server] [octoprint] Stack config complete [2025-08-11 14:06:19.113 -0400] INFO : [App] [Files On Server] [plex] Found Stack 'plex' at dir /filesOnServer/plex [2025-08-11 14:06:19.114 -0400] INFO : [App] [Files On Server] [plex] Found 1 files matching compose glob: compose.yaml [2025-08-11 14:06:19.114 -0400] INFO : [App] [Files On Server] [plex] Using file: compose.yaml but not writing to file_paths since this is the Komodo default [2025-08-11 14:06:19.115 -0400] INFO : [App] [Files On Server] [plex] Stack config complete [2025-08-11 14:06:19.115 -0400] INFO : [App] [Files On Server] [uptime-kuma] Found Stack 'uptime-kuma' at dir /filesOnServer/uptime-kuma [2025-08-11 14:06:19.116 -0400] INFO : [App] [Files On Server] [uptime-kuma] Found 1 files matching compose glob: compose.yaml [2025-08-11 14:06:19.116 -0400] INFO : [App] [Files On Server] [uptime-kuma] Using file: compose.yaml but not writing to file_paths since this is the Komodo default [2025-08-11 14:06:19.117 -0400] INFO : [App] [Files On Server] [uptime-kuma] Found 1 env files matching pattern **/.env: .env [2025-08-11 14:06:19.117 -0400] INFO : [App] [Files On Server] [uptime-kuma] Using .komodoEnv for Komodo-written env file [2025-08-11 14:06:19.117 -0400] INFO : [App] [Files On Server] [uptime-kuma] Stack config complete [2025-08-11 14:06:19.118 -0400] INFO : [App] [Files On Server] Built Stack configs for 6 folders [2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [[stack]] name = \"compose\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/compose\" files_on_host = true auto_update = false poll_for_updates = false [[stack]] name = \"immich\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/immich\" files_on_host = true auto_update = false poll_for_updates = false file_paths = [ \"docker/docker-compose.yaml\" ] [[stack]] name = \"jellyfin\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/jellyfin\" files_on_host = true auto_update = false poll_for_updates = false env_file_path = \".komodoEnv\" additional_env_files = [ \".env\" ] [[stack]] name = \"octoprint\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/octoprint\" files_on_host = true auto_update = false poll_for_updates = false [[stack]] name = \"plex\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/plex\" files_on_host = true auto_update = false poll_for_updates = false [[stack]] name = \"uptime-kuma\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/uptime-kuma\" files_on_host = true auto_update = false poll_for_updates = false env_file_path = \".komodoEnv\" additional_env_files = [ \".env\" ] ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [2025-08-11 14:06:19.119 -0400] INFO : [App] Done!","s":"Docker Usage Example","u":"/komodo-import/docs/installation/","h":"#docker-usage-example","p":6},{"i":13,"t":"Clone this repository somewhere and then install from the working directory git clone https://github.com/FoxxMD/komodo-import.git . cd komodo-import nvm use # optional, to set correct Node version npm install npm run docs:install && npm run build npm run start Usage Examples​ SERVER_NAME=my-server HOST_PARENT_PATH=/my/parent/folder node src/index.js","s":"Nodejs","u":"/komodo-import/docs/installation/","h":"#nodejs","p":6},{"i":16,"t":"There are three parts to using Komodo Import (KI). Which Inputs, Configuration, and Outputs are used are all defined using environmental variables.","s":"Key Concepts","u":"/komodo-import/docs/usage/overview/","h":"#key-concepts","p":14},{"i":18,"t":"This is what KI reads to generate Komodo Resources. These are existing, docker-related resources on an individual machine such as Docker Compose projects (compose.yaml) Docker containers","s":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs","p":14},{"i":20,"t":"These are environmental variables supplied to KI to: set defaults for Komodo Resources (image registry, auto update, etc.) define required fields for Komodo Resources (Server Name, Run Directory, etc.) define settings for how KI to interacts with Komodo (API Key, existing Resource behavior, etc.) define what Outputs KI uses (log to file, export to Komodo, etc.)","s":"Configuration","u":"/komodo-import/docs/usage/overview/","h":"#configuration","p":14},{"i":22,"t":"These are where and how KI puts the Resources created from Inputs: Log to output (docker logs, node console) Log to file Export to Komodo API (create Resource Sync, etc.)","s":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs","p":14},{"i":25,"t":"KI can create Komodo Stack Resources from existing resources on your machine. Files On Server​ Use existing Docker Compose projects (compose.yaml) as Files On Server mode Komodo Stacks. KI will generate multiple Stacks from all folders within the given folder. This is similar to how dockge works. Example If your folder structure looks like this . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ └── docker-compose.yaml └── uptime-kuma/ └── compose.yaml and you use /home/myUser/homelab/ with KI then it will output stacks for immich plex uptime-kuma note This method does not yet support git-based Stacks. Any git-based projects will only be detected as Files On Server. Project Files Detection​ Komodo Import makes some reasonable assumptions about which compose.yaml and .env files you want to use within each project's folder. These can be overriden using the *_GLOB environmental varibales from the Configuration below. File Detection and Behavior Details Compose Files Default pattern Looks for compose.y(a)ml and docker-compose.y(a)ml Files may have interim names like compose.dev.yaml Can be overridden with COMPOSE_FILE_GLOB env Will prioritize compose.yaml over docker-compose.yaml Will choose the file with the shortest path EX Prioritizes ./compose.yaml over ./aFolder/compose.yaml .env Files Default pattern Adds all .env files found at top-level or sub-folders Can be overridden with ENV_FILE_GLOB env If a .env file is found then configures Komodo to write it's own Environment section to .komodoenv instead of .env Komodo env name can be overridden with KOMODO_ENV_NAME Komodo Import will log which files it detects and indicate which ones it will use for each project. These can be manually modified in the generated TOML, API Sync Resource, or after creating the Stack in Komodo. Configuration​ Environmental Variables ENV Required Default Description SERVER_NAME ☑️ The name of the Komodo Server where a Stack is located HOST_PARENT_PATH ☑️ The parent directory on the host where stack folders are located. Used for generating Stack Run Directory COMPOSE_FILE_GLOB - A glob pattern to use for finding files for Files Paths in Stack config ENV_FILE_GLOB - A glob pattern to use for finding files for Additional Env Files in Stack config KOMODO_ENV_NAME - .komodoenv If existing .env files are found then this name will be used for the .env that Komodo writes using its own Environment section IMAGE_REGISTRY_PROVIDER - Name of Image Registry to use IMAGE_REGISTRY_ACCOUNT - Image Registry account to use POLL_FOR_UPDATE - false Poll for newer images? AUTO_UPDATE - false Auto Update stack? For docker usage the folder with your projects should be mounted to /filesOnServer in the container. Git-Based​ Coming soon!","s":"Stacks","u":"/komodo-import/docs/usage/overview/","h":"#stacks","p":14},{"i":28,"t":"KI will always output the raw TOML form of a Sync Resource to console unless the env LOG_TOML=false. You'll see this in docker logs or node's console like this: [2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [[stack]] name = \"compose\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/compose\" ... ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [2025-08-11 14:06:19.119 -0400] INFO : [App] Done! Use this with manually creating Sync Resources tip Use --no-log-prefix to get output without the service name prefix, makes getting clear TOML output easier. docker compose up --no-log-prefix","s":"Console","u":"/komodo-import/docs/usage/overview/","h":"#console","p":14},{"i":30,"t":"Komodo Import can directly create Sync Resources in Komodo using Komodo's API. This output will only create the Sync, it will not execute it. After creating the Sync you should verify its content before executing. You will need to create an API Key and Secret to use the API. API Key Creation Instructions Navigate to your Komodo Web UI: Open Settings -> Profile Click New Api Key Give it a name and optional Expiry Create the key and Copy the show Key and Secret Currently, the user creating the Api Key must be an Admin to create Sync Resources (but this will hopefully be more granular in the future). Add these environmental variables to Komodo Import: Environmental Variables ENV Required Default Description KOMODO_URL ☑️ Komodo Server URL for use with creating/modifying Resource Sync directly API_KEY ☑️ Komodo API Key API_SECRET ☑️ Komodo API Secret EXISTING_SYNC - append Behavior if Resource Sync already exists. Either append or overwrite SYNC_NAME - komodo-import Name of Sync to create/modify","s":"API Sync","u":"/komodo-import/docs/usage/overview/","h":"#api-sync","p":14},{"i":32,"t":"Komodo Import will attempt to write the generated output to a .toml file if the ENV OUTPUT_DIR is present. This should be the directory (not file) that the generated file should be written to. Bind mount a folder into the container and set OUTPUT_DIR like in the example below: File Output Example services: komodo-import: # ... environment: # ... - OUTPUT_DIR=/output volumes: # ... - /my/host/folder:/output Use this with manually creating Sync Resources","s":"File","u":"/komodo-import/docs/usage/overview/","h":"#file","p":14},{"i":35,"t":"A Sync Resource is a text/file containing TOML that represents one or more Komodo Resources. Komodo can use a Sync Resource to Execute from the Sync, creating/modifying/deleting Resources in Komodo so that it matches what is declared in the Sync TOML Commit to the Sync, generating a representation of what is currently in Komodo and writing out to the Sync TOML contents","s":"What is a Sync Resource?","u":"/komodo-import/docs/usage/resourceSync/","h":"#what-is-a-sync-resource","p":33},{"i":37,"t":"Komodo Import gives you the TOML representation of Resources not yet in Komodo. You can use this to bulk \"create\" Resources that connect to your existing compose projects, container, etc, by Executing a Sync Resource created with Komodo Import. tip If you are copy-pasting console Output or file Output then proceed to Create Sync Resource to manually create a Sync Resource from the TOML Komodo Import generated for you. tip If you used API Output then find the Sync Resource KI made for you and skip to Verify Sync Changes.","s":"How To Use with Komodo Import?","u":"/komodo-import/docs/usage/resourceSync/","h":"#how-to-use-with-komodo-import","p":33},{"i":39,"t":"In your Komodo dashboard navigiate to Syncs -> New Resource Sync Create a Sync with whatever name you want In the Sync details page Choose Mode -> UI Defined ⚠️ Disable Delete Unmatched Resources ⚠️ If this is not disabled you may delete all other Resources in Komodo! Double check this! Add the Komodo Import TOML to Resoure Files section Save","s":"Create Sync Resource","u":"/komodo-import/docs/usage/resourceSync/","h":"#create-sync-resource","p":33},{"i":41,"t":"Your Sync should now be in a Pending state (check the top header). If it's not click the Refresh button to update. Switching to the Pending tab now shows all of the actions Komodo will take to make it match what is in the generated TOML. This should generally only be \"Update Stack\" or \"Create Stack\" actions. Verify that all of the actions are what you desire. If something is missing it can be updated by modifying the contents in Resoure Files in the Config tab.","s":"Verify Sync Changes","u":"/komodo-import/docs/usage/resourceSync/","h":"#verify-sync-changes","p":33},{"i":43,"t":"Click the Execute Sync button to perform all the actions under Pending. Alternatively, use the Execute Change button next to each individual Action.","s":"Execute Sync","u":"/komodo-import/docs/usage/resourceSync/","h":"#execute-sync","p":33},{"i":45,"t":"After Syncing is done you can safely Delete the Sync you created for use with Komodo Import. You may now want to create a proper bi-directional, git-backed Sync so your entire Komodo configuration is backed up and restorable.","s":"Remove Sync (Optional)","u":"/komodo-import/docs/usage/resourceSync/","h":"#remove-sync-optional","p":33}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,0.241,1,2.307,2,2.753,3,2.307,4,2.753,5,2.466,6,1.405,7,0.985,8,2.134,9,1.974,10,0.337,11,2.307,12,1.621,13,1.858,14,2.307,15,2.307,16,1.709,17,1.33,18,1.974,19,1.974,20,2.327,21,1.974,22,1.298,23,1.974,24,1.974,25,1.974,26,0.622,27,1.488,28,0.622,29,1.298,30,3.429]],["t/5",[0,0.228,6,1.339,7,0.981,8,1.576,10,0.356,12,1.437,13,0.823,16,1.215,17,1.349,18,0.655,19,0.655,20,1.215,21,0.655,22,0.923,23,0.655,24,1.404,26,0.738,28,0.804,29,1.617,31,0.493,32,0.765,33,0.765,34,1.137,35,0.913,36,0.493,37,1.64,38,1.137,39,0.913,40,0.655,41,1.957,42,1.137,43,0.786,44,1.372,45,0.923,46,1.137,47,0.945,48,0.945,49,1.276,50,1.276,51,1.092,52,1.276,53,1.522,54,0.945,55,0.818,56,1.276,57,1.522,58,1.276,59,1.293,60,1.276,61,1.522,62,0.945,63,1.276,64,0.701,65,1.092,66,1.276,67,1.092,68,1.821,69,1.276,70,0.655,71,0.682,72,1.482,73,0.606,74,0.945,75,1.137,76,0.738,77,1.234,78,1.092,79,3.066,80,3.066,81,3.066,82,0.913,83,3.066,84,2.98,85,0.913,86,0.913,87,0.655,88,0.913,89,3.025,90,0.765,91,0.913,92,0.913,93,1.522,94,0.913,95,1.522,96,0.913,97,1.137,98,0.913,99,0.913,100,0.913,101,1.64,102,0.913,103,0.913,104,1.522,105,0.655,106,0.913,107,1.522,108,0.913,109,0.655,110,0.765,111,0.655,112,1.092,113,0.913,114,0.913,115,0.765,116,0.913,117,1.276,118,0.567,119,0.765,120,0.765,121,0.765,122,0.493,123,0.655,124,1.64,125,1.64,126,0.913,127,1.957,128,1.957,129,1.64,130,2.298,131,1.64,132,0.913,133,0.913,134,0.913,135,0.913,136,0.913,137,0.765,138,0.913,139,0.655,140,0.765,141,0.567,142,1.215,143,0.913,144,1.137,145,0.765,146,0.913,147,0.655,148,1.137,149,1.137,150,1.137,151,1.137,152,1.137,153,1.137,154,1.137,155,1.137,156,0.913,157,1.896,158,1.137,159,1.896,160,0.913,161,1.137,162,1.137,163,1.137,164,0.655]],["t/8",[0,0.195,6,1.088,7,0.815,8,1.413,10,0.42,17,1.333,26,0.514,28,0.687,29,1.434,31,1.23,32,2.548,44,1.23,45,1.074,47,1.413,48,2.125,49,1.908,50,2.869,51,1.633,52,1.908,54,1.887,55,0.815,56,2.548,57,2.276,58,1.908,59,1.434,60,2.548,61,2.276,62,1.413,63,1.908,64,0.815,65,1.633,66,1.908,67,1.633,68,1.633,69,1.908,105,1.633,115,1.908,165,2.835,166,2.835,167,2.835,168,2.835,169,2.835,170,2.835,171,2.835,172,2.835,173,2.835,174,2.835,175,2.835,176,2.835,177,3.04,178,2.835,179,2.835,180,3.04,181,2.835,182,1.908,183,2.835,184,1.633,185,2.835,186,2.835,187,2.835,188,2.276,189,2.276,190,2.835,191,2.835,192,2.276,193,2.276,194,2.276,195,2.276]],["t/10",[0,0.18,1,0.526,2,0.628,3,0.526,4,0.628,5,1.06,6,1.448,7,0.964,8,1.672,9,0.451,10,0.344,11,0.526,12,1.549,13,0.339,14,0.526,16,0.686,17,1.341,18,0.451,19,1.603,20,1.808,21,1.603,22,1.209,23,1.838,24,2.089,26,0.334,28,0.91,29,1.678,31,0.597,33,0.526,37,0.926,41,1.104,44,0.597,45,0.296,47,0.39,48,0.39,49,0.926,50,0.526,51,0.451,52,0.526,53,0.628,54,0.39,59,1.455,62,0.39,63,0.526,64,0.225,65,0.792,66,0.526,67,0.451,68,0.792,69,0.526,71,0.119,73,0.195,74,0.918,76,0.25,77,0.339,78,0.451,79,3.251,80,3.251,81,3.251,82,0.628,83,3.251,84,3.221,85,0.628,86,0.628,87,0.451,88,0.628,89,3.236,90,0.526,91,0.628,92,0.628,93,2.411,94,0.628,95,1.104,96,0.628,98,1.104,99,1.104,100,1.104,101,2.148,102,0.628,103,0.628,104,1.104,105,2.154,106,1.104,107,1.104,108,1.104,109,0.792,110,1.491,111,1.838,112,1.729,113,2.235,114,0.628,115,0.526,116,0.628,117,0.926,118,0.39,119,0.526,120,0.526,121,0.526,122,0.339,123,0.451,124,1.873,125,1.873,126,1.104,127,2.235,128,2.235,129,1.873,130,2.517,131,1.873,132,1.779,133,1.779,134,1.104,135,0.628,136,1.104,137,1.491,138,1.104,139,0.451,180,1.104,196,0.526,197,1.104,198,0.782,199,1.376,200,0.782,201,0.782,202,0.451,203,1.376,204,0.782,205,0.782,206,0.782,207,0.526,208,0.782,209,0.782,210,1.376,211,1.376,212,1.376,213,0.782,214,1.376,215,2.525,216,0.782,217,1.376,218,3.192,219,0.782,220,0.782,221,1.06,222,2.217,223,1.104,224,2.525,225,1.376,226,0.782,227,1.376,228,1.376,229,1.376,230,1.841,231,0.628,232,0.782,233,0.782]],["t/13",[0,0.185,3,2.96,6,1.029,10,0.352,17,1.184,26,0.65,31,1.554,32,2.41,33,2.41,44,2.066,45,1.356,54,1.785,65,2.063,90,2.41,234,4.399,235,3.582,236,2.875,237,2.41,238,3.582,239,3.582,240,3.582,241,3.582,242,2.063,243,3.582,244,3.531,245,4.965,246,3.582,247,3.582,248,2.875,249,3.582,250,3.582]],["t/16",[0,0.21,10,0.495,26,0.739,40,2.345,73,1.013,184,2.345,251,4.072,252,4.072,253,1.542,254,3.269,255,2.345,256,2.345]],["t/18",[0,0.206,5,2.298,12,1.511,13,1.732,20,1.989,22,1.889,27,1.732,36,1.732,64,1.147,76,0.852,253,1.511,257,3.991,258,3.991,259,3.204,260,3.991]],["t/20",[0,0.255,6,1.02,7,1.02,10,0.349,27,1.54,28,0.644,40,2.731,44,1.54,45,1.344,48,1.769,72,1.54,73,0.883,76,0.86,77,1.54,145,2.389,202,2.85,221,2.044,242,2.519,253,1.796,255,2.044,256,2.044,261,3.55,262,2.85,263,2.85,264,2.389,265,2.389,266,3.55,267,3.55,268,2.389,269,2.85]],["t/22",[0,0.204,22,1.496,28,0.717,43,1.161,70,2.276,71,0.6,72,1.715,73,0.983,76,0.847,77,2.155,202,2.276,244,3.173,253,1.496,254,3.173,269,3.173,270,3.952]],["t/25",[0,0.235,5,1.003,6,1.044,7,1.126,10,0.471,11,1.171,12,1.01,13,1.7,14,1.795,15,1.171,16,2.144,17,1.192,18,1.536,19,1.536,20,2.212,21,1.536,22,1.483,23,1.536,24,1.536,25,1.003,26,0.484,27,1.407,28,0.918,29,1.814,31,0.755,36,0.755,37,1.171,39,1.398,43,0.663,44,0.755,45,1.01,48,1.616,55,0.5,59,1.814,62,1.329,64,0.932,67,1.003,71,0.264,72,0.755,73,0.433,74,1.329,76,0.588,77,0.755,87,1.003,101,1.795,105,1.867,109,1.536,110,2.445,112,1.536,123,1.536,129,1.171,130,1.795,131,1.171,137,1.795,141,0.868,147,1.003,182,1.171,184,1.867,188,1.398,189,1.398,192,2.141,193,2.141,194,2.141,221,1.867,236,1.398,237,2.181,248,1.398,253,1.228,255,1.536,256,1.003,262,2.141,263,1.398,264,1.171,265,1.171,268,1.171,271,1.741,272,1.741,273,1.741,274,1.741,275,2.667,276,1.741,277,1.741,278,1.741,279,3.242,280,3.634,281,1.171,282,1.741,283,1.741,284,2.141,285,1.741,286,1.741,287,1.741,288,1.741,289,1.398,290,1.398,291,2.667,292,1.741,293,1.741,294,3.242,295,2.667,296,2.667,297,1.398,298,1.741,299,2.667,300,1.741,301,1.741,302,1.398,303,1.741,304,1.741,305,1.398,306,2.141,307,1.741,308,1.741,309,1.398,310,1.741,311,1.741,312,1.741,313,1.741,314,1.741,315,1.741,316,1.398,317,1.741,318,1.741]],["t/28",[6,1.068,7,1.068,8,1.374,10,0.414,12,1.407,17,1.369,22,1.407,28,0.5,29,1.044,43,0.686,47,1.374,55,1.068,59,1.044,68,2.421,70,2.14,71,0.638,73,1.046,76,0.816,77,1.824,78,1.588,79,2.501,80,2.501,81,2.501,83,2.501,84,2.501,89,2.501,117,2.501,118,1.374,119,1.855,120,1.855,121,1.855,122,1.196,123,1.588,124,1.855,125,1.855,139,1.588,141,1.374,196,1.855,197,2.214,231,2.214,253,1.044,281,1.855,319,2.757,320,2.757,321,2.757,322,2.757,323,2.757,324,2.757,325,2.757,326,2.757,327,2.757,328,2.757,329,2.757]],["t/30",[0,0.258,1,1.83,6,0.782,7,1.058,9,1.566,10,0.411,17,1.113,26,0.758,27,1.18,43,1.226,54,1.356,59,1.03,71,0.748,72,2.175,73,0.677,76,0.812,118,1.356,122,1.18,142,1.835,143,2.956,145,3.316,146,3.351,147,1.566,156,2.184,160,2.184,164,1.566,207,1.83,221,1.566,242,1.566,255,2.121,256,2.121,265,1.83,268,1.83,309,2.184,330,2.72,331,2.72,332,2.72,333,2.72,334,2.72,335,2.72,336,2.72,337,2.184,338,2.72,339,2.72,340,1.83,341,2.184,342,2.184,343,2.72,344,2.184,345,2.72,346,2.72,347,2.72,348,2.72,349,2.72,350,2.72,351,2.72,352,2.72,353,2.72,354,3.682,355,2.72,356,2.72,357,2.72]],["t/32",[0,0.224,10,0.346,16,1.754,17,1.285,26,0.789,28,0.895,31,1.888,35,2.825,36,1.527,43,0.875,45,1.332,47,1.754,51,2.026,55,1.011,58,2.928,59,1.332,60,2.368,62,1.754,64,1.25,71,0.534,73,1.082,74,1.754,76,0.639,141,1.754,195,2.825,223,2.825,242,2.026,289,2.825,316,2.825,358,3.519,359,3.519]],["t/35",[0,0.259,9,2.129,10,0.364,15,2.488,36,1.604,55,1.387,64,1.063,71,0.793,74,1.843,76,0.911,111,2.129,122,1.604,142,1.843,207,2.488,360,3.697,361,3.697,362,3.697,363,3.697,364,3.697,365,2.968,366,3.697]],["t/37",[0,0.251,10,0.417,12,1.277,13,1.463,26,0.841,27,1.463,28,0.612,36,1.463,43,1.209,55,1.217,64,0.969,70,1.941,71,0.76,72,1.463,73,1.152,76,0.927,109,1.941,118,1.68,141,1.68,142,1.68,164,1.941,196,2.851,202,1.941,253,1.277,342,2.706,365,2.706,367,3.371,368,3.371,369,3.371,370,3.371,371,3.371,372,3.371,373,2.706]],["t/39",[0,0.245,7,1.029,17,1.235,25,2.063,26,0.65,28,0.65,40,2.063,43,0.891,55,1.029,56,2.41,71,0.753,76,0.864,87,2.063,147,2.063,177,2.875,290,2.875,297,2.875,306,2.875,337,2.875,341,2.875,374,3.582,375,3.582,376,3.582,377,4.399,378,3.531,379,3.582,380,3.582,381,2.875,382,2.875]],["t/41",[0,0.184,28,0.647,29,1.661,43,0.887,55,1.025,64,1.261,71,0.541,111,2.053,112,2.053,122,1.547,140,2.952,164,2.053,182,2.399,264,3.197,281,2.399,302,2.863,305,2.863,340,2.399,344,2.863,381,2.863,382,2.863,383,3.522,384,3.566,385,3.566,386,3.566,387,2.863,388,3.566,389,4.387,390,3.814,391,3.566,392,3.566,393,3.566,394,3.566]],["t/43",[10,0.395,71,0.609,142,2.347,259,3.22,284,3.22,340,2.699,373,3.22,383,3.22,387,3.78,390,3.78,395,4.011,396,4.011,397,4.011,398,4.011]],["t/45",[0,0.238,10,0.381,25,2.232,26,0.703,43,1.148,71,0.747,78,2.232,139,2.232,140,2.608,184,2.232,237,2.608,378,3.111,399,3.876,400,3.876,401,3.876,402,3.876,403,4.614,404,3.876,405,3.876]]],"invertedIndex":[["",{"_index":17,"t":{"3":{"position":[[220,1],[222,3],[248,3],[260,1],[262,3],[279,3],[289,1],[291,3],[315,3],[332,3]]},"5":{"position":[[376,2],[453,2],[524,1],[579,2],[658,2],[1021,1],[1082,1],[1142,1],[1191,1],[1255,1],[1420,1],[1539,1],[1620,1],[1750,1],[1877,1],[1935,3],[1976,1],[2073,1],[2181,2],[2184,2],[2187,2],[2190,2],[2193,2],[2196,2],[2199,2],[2202,2],[2205,2],[2208,2],[2211,2],[2214,2],[2232,1],[2265,1],[2298,1],[2344,1],[2363,1],[2388,1],[2407,1],[2409,1],[2440,1],[2457,1],[2488,1],[2521,1],[2565,1],[2584,1],[2609,1],[2632,1],[2670,1],[2703,1],[2754,1],[2773,1],[2798,1],[2820,1],[2856,1],[2858,1],[2867,1],[2869,2],[2872,2],[2875,2],[2878,2],[2881,2],[2884,2],[2887,2],[2890,2],[2893,2],[2896,2],[2899,2],[2902,2],[2942,1],[3283,2],[3360,2],[3431,1],[3486,2],[3565,2],[3875,1],[3911,3],[3952,1],[4102,1],[4180,1],[4259,1]]},"8":{"position":[[407,2],[476,2],[547,1],[602,2],[681,2],[779,2],[791,1],[829,1],[857,1],[884,1],[905,1],[930,1],[950,1],[972,1],[990,2],[1035,1]]},"10":{"position":[[746,2],[861,2],[940,2],[1135,1],[1196,1],[1256,1],[1305,1],[1369,1],[1611,1],[1730,1],[1811,1],[1941,1],[2068,1],[2163,1],[2285,1],[2421,1],[2535,1],[2629,1],[2757,1],[2928,1],[3090,1],[3213,1],[3332,1],[3428,1],[3559,1],[3688,1],[3785,1],[3901,1],[4021,1],[4179,1],[4271,1],[4408,1],[4535,1],[4700,1],[4826,1],[4948,1],[5047,1],[5144,1],[5252,2],[5255,2],[5258,2],[5261,2],[5264,2],[5267,2],[5270,2],[5273,2],[5276,2],[5279,2],[5282,2],[5285,2],[5303,1],[5337,1],[5370,1],[5417,1],[5436,1],[5461,1],[5484,1],[5517,1],[5550,1],[5596,1],[5615,1],[5640,1],[5659,1],[5661,1],[5692,1],[5709,1],[5744,1],[5777,1],[5825,1],[5844,1],[5869,1],[5891,1],[5927,1],[5929,1],[5938,1],[5955,1],[5991,1],[6024,1],[6073,1],[6092,1],[6117,1],[6140,1],[6171,1],[6204,1],[6248,1],[6267,1],[6292,1],[6315,1],[6353,1],[6386,1],[6437,1],[6456,1],[6481,1],[6503,1],[6539,1],[6541,1],[6550,1],[6552,2],[6555,2],[6558,2],[6561,2],[6564,2],[6567,2],[6570,2],[6573,2],[6576,2],[6579,2],[6582,2],[6585,2],[6625,1]]},"13":{"position":[[130,1],[157,1],[230,2]]},"25":{"position":[[347,1],[349,3],[375,3],[387,1],[389,3],[406,3],[416,1],[418,3],[442,3],[459,3],[1904,2],[1979,2]]},"28":{"position":[[198,1],[306,2],[309,2],[312,2],[315,2],[318,2],[321,2],[324,2],[327,2],[330,2],[333,2],[336,2],[339,2],[357,1],[391,1],[424,1],[457,3],[461,2],[464,2],[467,2],[470,2],[473,2],[476,2],[479,2],[482,2],[485,2],[488,2],[491,2],[494,2],[534,1]]},"30":{"position":[[353,1],[725,2],[809,2],[838,2]]},"32":{"position":[[323,1],[325,3],[342,1],[344,3],[378,1],[380,3]]},"39":{"position":[[45,1],[145,1],[158,2],[196,2]]}}}],["0.1.0",{"_index":91,"t":{"5":{"position":[[1099,5]]},"10":{"position":[[1213,5]]}}}],["0400",{"_index":83,"t":{"5":{"position":[[1010,5],[1071,5],[1131,5],[1244,5],[1409,5],[1528,5],[1609,5],[1739,5],[1866,5],[1965,5],[2062,5],[2931,5],[3941,5],[4032,5],[4169,5],[4248,5]]},"10":{"position":[[1124,5],[1185,5],[1245,5],[1358,5],[1600,5],[1719,5],[1800,5],[1930,5],[2057,5],[2152,5],[2274,5],[2410,5],[2524,5],[2618,5],[2746,5],[2917,5],[3079,5],[3202,5],[3321,5],[3417,5],[3548,5],[3677,5],[3774,5],[3890,5],[4010,5],[4168,5],[4260,5],[4397,5],[4524,5],[4689,5],[4815,5],[4937,5],[5036,5],[5133,5],[6614,5]]},"28":{"position":[[187,5],[523,5]]}}}],["08",{"_index":80,"t":{"5":{"position":[[990,2],[1051,2],[1111,2],[1224,2],[1389,2],[1508,2],[1589,2],[1719,2],[1846,2],[1945,2],[2042,2],[2911,2],[3921,2],[4012,2],[4149,2],[4228,2]]},"10":{"position":[[1104,2],[1165,2],[1225,2],[1338,2],[1580,2],[1699,2],[1780,2],[1910,2],[2037,2],[2132,2],[2254,2],[2390,2],[2504,2],[2598,2],[2726,2],[2897,2],[3059,2],[3182,2],[3301,2],[3397,2],[3528,2],[3657,2],[3754,2],[3870,2],[3990,2],[4148,2],[4240,2],[4377,2],[4504,2],[4669,2],[4795,2],[4917,2],[5016,2],[5113,2],[6594,2]]},"28":{"position":[[167,2],[503,2]]}}}],["1",{"_index":215,"t":{"10":{"position":[[2326,1],[3133,1],[3940,1],[4454,1],[4746,1]]}}}],["11",{"_index":81,"t":{"5":{"position":[[993,2],[1054,2],[1114,2],[1227,2],[1392,2],[1511,2],[1592,2],[1722,2],[1849,2],[1948,2],[2045,2],[2914,2],[3924,2],[4015,2],[4152,2],[4231,2]]},"10":{"position":[[1107,2],[1168,2],[1228,2],[1341,2],[1583,2],[1702,2],[1783,2],[1913,2],[2040,2],[2135,2],[2257,2],[2393,2],[2507,2],[2601,2],[2729,2],[2900,2],[3062,2],[3185,2],[3304,2],[3400,2],[3531,2],[3660,2],[3757,2],[3873,2],[3993,2],[4151,2],[4243,2],[4380,2],[4507,2],[4672,2],[4798,2],[4920,2],[5019,2],[5116,2],[6597,2]]},"28":{"position":[[170,2],[506,2]]}}}],["14:06:19.080",{"_index":82,"t":{"5":{"position":[[996,12]]},"10":{"position":[[1110,12]]}}}],["14:06:19.094",{"_index":88,"t":{"5":{"position":[[1057,12]]},"10":{"position":[[1171,12]]}}}],["14:06:19.095",{"_index":92,"t":{"5":{"position":[[1117,12]]},"10":{"position":[[1231,12]]}}}],["14:06:19.096",{"_index":95,"t":{"5":{"position":[[1230,12],[1395,12]]},"10":{"position":[[1344,12],[1586,12]]}}}],["14:06:19.097",{"_index":104,"t":{"5":{"position":[[1514,12],[1595,12]]},"10":{"position":[[1705,12],[1786,12]]}}}],["14:06:19.103",{"_index":107,"t":{"5":{"position":[[1725,12],[1852,12]]},"10":{"position":[[1916,12],[2043,12]]}}}],["14:06:19.104",{"_index":213,"t":{"10":{"position":[[2138,12]]}}}],["14:06:19.107",{"_index":214,"t":{"10":{"position":[[2260,12],[2396,12]]}}}],["14:06:19.108",{"_index":217,"t":{"10":{"position":[[2510,12],[2604,12]]}}}],["14:06:19.109",{"_index":219,"t":{"10":{"position":[[2732,12]]}}}],["14:06:19.110",{"_index":220,"t":{"10":{"position":[[2903,12]]}}}],["14:06:19.111",{"_index":222,"t":{"10":{"position":[[3065,12],[3188,12],[3307,12],[3403,12]]}}}],["14:06:19.112",{"_index":225,"t":{"10":{"position":[[3534,12],[3663,12]]}}}],["14:06:19.113",{"_index":226,"t":{"10":{"position":[[3760,12]]}}}],["14:06:19.114",{"_index":227,"t":{"10":{"position":[[3876,12],[3996,12]]}}}],["14:06:19.115",{"_index":228,"t":{"10":{"position":[[4154,12],[4246,12]]}}}],["14:06:19.116",{"_index":229,"t":{"10":{"position":[[4383,12],[4510,12]]}}}],["14:06:19.117",{"_index":230,"t":{"10":{"position":[[4675,12],[4801,12],[4923,12]]}}}],["14:06:19.118",{"_index":114,"t":{"5":{"position":[[1951,12]]},"10":{"position":[[5022,12]]}}}],["14:06:19.119",{"_index":117,"t":{"5":{"position":[[2048,12],[2917,12]]},"10":{"position":[[5119,12],[6600,12]]},"28":{"position":[[173,12],[509,12]]}}}],["17:46:54.030",{"_index":153,"t":{"5":{"position":[[3927,12]]}}}],["17:46:54.032",{"_index":154,"t":{"5":{"position":[[4018,12]]}}}],["17:46:54.411",{"_index":159,"t":{"5":{"position":[[4155,12],[4234,12]]}}}],["2",{"_index":97,"t":{"5":{"position":[[1303,1]]}}}],["2025",{"_index":79,"t":{"5":{"position":[[984,5],[1045,5],[1105,5],[1218,5],[1383,5],[1502,5],[1583,5],[1713,5],[1840,5],[1939,5],[2036,5],[2905,5],[3915,5],[4006,5],[4143,5],[4222,5]]},"10":{"position":[[1098,5],[1159,5],[1219,5],[1332,5],[1574,5],[1693,5],[1774,5],[1904,5],[2031,5],[2126,5],[2248,5],[2384,5],[2498,5],[2592,5],[2720,5],[2891,5],[3053,5],[3176,5],[3295,5],[3391,5],[3522,5],[3651,5],[3748,5],[3864,5],[3984,5],[4142,5],[4234,5],[4371,5],[4498,5],[4663,5],[4789,5],[4911,5],[5010,5],[5107,5],[6588,5]]},"28":{"position":[[161,5],[497,5]]}}}],["3",{"_index":116,"t":{"5":{"position":[[2026,1]]},"10":{"position":[[2800,1]]}}}],["3a6btipzyebud5ebsa9ud5ebud5ebhijyxt5sc",{"_index":150,"t":{"5":{"position":[[3721,38]]}}}],["6",{"_index":210,"t":{"10":{"position":[[1417,1],[5097,1]]}}}],["_glob",{"_index":287,"t":{"25":{"position":[[886,6]]}}}],["abov",{"_index":206,"t":{"10":{"position":[[618,5]]}}}],["account",{"_index":313,"t":{"25":{"position":[[2529,7]]}}}],["action",{"_index":390,"t":{"41":{"position":[[165,7],[301,8],[333,7]]},"43":{"position":[[49,7],[141,7]]}}}],["add",{"_index":147,"t":{"5":{"position":[[3171,3]]},"25":{"position":[[1343,4]]},"30":{"position":[[605,3]]},"39":{"position":[[288,3]]}}}],["addit",{"_index":312,"t":{"25":{"position":[[2240,10]]}}}],["additional_env_fil",{"_index":138,"t":{"5":{"position":[[2835,20]]},"10":{"position":[[5906,20],[6518,20]]}}}],["admin",{"_index":346,"t":{"30":{"position":[[516,5]]}}}],["afolder/compose.yaml",{"_index":301,"t":{"25":{"position":[[1293,22]]}}}],["alreadi",{"_index":1,"t":{"3":{"position":[[16,7]]},"10":{"position":[[110,7]]},"30":{"position":[[908,7]]}}}],["altern",{"_index":397,"t":{"43":{"position":[[72,14]]}}}],["alway",{"_index":319,"t":{"28":{"position":[[8,6]]}}}],["annot",{"_index":208,"t":{"10":{"position":[[645,12]]}}}],["anoth",{"_index":200,"t":{"10":{"position":[[34,7]]}}}],["api",{"_index":72,"t":{"5":{"position":[[788,3],[3136,3],[3966,4],[4059,4],[4194,4],[4273,4]]},"20":{"position":[[254,4]]},"22":{"position":[[138,3]]},"25":{"position":[[1762,3]]},"30":{"position":[[74,4],[241,3],[271,4],[276,3],[373,3],[497,3],[819,3],[848,3]]},"37":{"position":[[438,3]]}}}],["api_key",{"_index":351,"t":{"30":{"position":[[801,7]]}}}],["api_key=k",{"_index":149,"t":{"5":{"position":[[3711,9]]}}}],["api_secret",{"_index":352,"t":{"30":{"position":[[827,10]]}}}],["api_secret=",{"_index":151,"t":{"5":{"position":[[3762,12]]}}}],["app",{"_index":89,"t":{"5":{"position":[[1084,5],[1144,5],[1257,5],[1422,5],[1541,5],[1622,5],[1752,5],[1879,5],[1978,5],[2075,5],[2944,5],[3954,5],[4047,5],[4182,5],[4261,5]]},"10":{"position":[[1198,5],[1258,5],[1371,5],[1613,5],[1732,5],[1813,5],[1943,5],[2070,5],[2165,5],[2287,5],[2423,5],[2537,5],[2631,5],[2759,5],[2930,5],[3092,5],[3215,5],[3334,5],[3430,5],[3561,5],[3690,5],[3787,5],[3903,5],[4023,5],[4181,5],[4273,5],[4410,5],[4537,5],[4702,5],[4828,5],[4950,5],[5049,5],[5146,5],[6627,5]]},"28":{"position":[[200,5],[536,5]]}}}],["append",{"_index":354,"t":{"30":{"position":[[875,6],[931,6]]}}}],["arm64",{"_index":169,"t":{"8":{"position":[[56,5]]}}}],["assumpt",{"_index":283,"t":{"25":{"position":[[755,11]]}}}],["attach",{"_index":30,"t":{"3":{"position":[[443,8]]}}}],["attempt",{"_index":358,"t":{"32":{"position":[[19,7]]}}}],["auto",{"_index":263,"t":{"20":{"position":[[104,4]]},"25":{"position":[[2611,4]]}}}],["auto_upd",{"_index":129,"t":{"5":{"position":[[2351,11],[2572,11],[2761,11]]},"10":{"position":[[5424,11],[5603,11],[5832,11],[6080,11],[6255,11],[6444,11]]},"25":{"position":[[2591,11]]}}}],["auto_update=fals",{"_index":190,"t":{"8":{"position":[[887,17]]}}}],["avail",{"_index":173,"t":{"8":{"position":[[80,9]]}}}],["back",{"_index":403,"t":{"45":{"position":[[149,6],[200,6]]}}}],["base",{"_index":279,"t":{"25":{"position":[[615,5],[637,5],[2735,6]]}}}],["befor",{"_index":331,"t":{"30":{"position":[[196,6]]}}}],["behavior",{"_index":268,"t":{"20":{"position":[[282,9]]},"25":{"position":[[966,8]]},"30":{"position":[[882,8]]}}}],["below",{"_index":289,"t":{"25":{"position":[[940,6]]},"32":{"position":[[271,6]]}}}],["between",{"_index":120,"t":{"5":{"position":[[2095,7]]},"10":{"position":[[5166,7]]},"28":{"position":[[220,7]]}}}],["bi",{"_index":401,"t":{"45":{"position":[[129,2]]}}}],["bind",{"_index":35,"t":{"5":{"position":[[75,4]]},"32":{"position":[[193,4]]}}}],["build",{"_index":247,"t":{"13":{"position":[[241,5]]}}}],["built",{"_index":115,"t":{"5":{"position":[[2002,5]]},"8":{"position":[[26,5]]},"10":{"position":[[5073,5]]}}}],["bulk",{"_index":367,"t":{"37":{"position":[[100,4]]}}}],["button",{"_index":387,"t":{"41":{"position":[[97,6]]},"43":{"position":[[23,6],[110,6]]}}}],["cd",{"_index":240,"t":{"13":{"position":[[132,2]]}}}],["chang",{"_index":373,"t":{"37":{"position":[[517,8]]},"43":{"position":[[103,6]]}}}],["check",{"_index":381,"t":{"39":{"position":[[276,5]]},"41":{"position":[[43,6]]}}}],["choos",{"_index":297,"t":{"25":{"position":[[1219,6]]},"39":{"position":[[132,6]]}}}],["clear",{"_index":328,"t":{"28":{"position":[[680,5]]}}}],["click",{"_index":340,"t":{"30":{"position":[[363,5]]},"41":{"position":[[79,5]]},"43":{"position":[[0,5]]}}}],["clone",{"_index":234,"t":{"13":{"position":[[0,5],[80,5]]}}}],["come",{"_index":317,"t":{"25":{"position":[[2742,6]]}}}],["commit",{"_index":364,"t":{"35":{"position":[[251,6]]}}}],["complet",{"_index":113,"t":{"5":{"position":[[1926,8]]},"10":{"position":[[2117,8],[2583,8],[3382,8],[3739,8],[4225,8],[5001,8]]}}}],["compos",{"_index":12,"t":{"3":{"position":[[170,7],[388,7]]},"5":{"position":[[957,7],[1446,7],[1646,9],[1668,9],[1776,9],[1827,7],[1903,9],[3884,7]]},"10":{"position":[[56,7],[281,7],[413,7],[1064,7],[1637,7],[1837,9],[1859,9],[1967,9],[2018,7],[2094,9],[2343,7],[2817,7],[3638,7],[3957,7],[4471,7],[5305,9]]},"18":{"position":[[137,7]]},"25":{"position":[[115,7],[983,7]]},"28":{"position":[[359,9],[713,7]]},"37":{"position":[[154,7]]}}}],["compose,dock",{"_index":102,"t":{"5":{"position":[[1465,18]]},"10":{"position":[[1656,18]]}}}],["compose.dev.yaml",{"_index":293,"t":{"25":{"position":[[1098,16]]}}}],["compose.y(a)ml",{"_index":291,"t":{"25":{"position":[[1023,14],[1049,14]]}}}],["compose.yaml",{"_index":20,"t":{"3":{"position":[[266,12],[302,12],[336,12]]},"5":{"position":[[16,12],[2426,13],[3200,13]]},"10":{"position":[[2371,12],[2485,12],[2831,12],[2851,12],[2878,12],[2977,12],[3971,12],[4066,12],[4485,12],[4587,12],[5678,13]]},"18":{"position":[[154,14]]},"25":{"position":[[132,14],[393,12],[429,12],[463,12],[779,12],[1176,12],[1201,12],[1273,14]]}}}],["compose.yml",{"_index":180,"t":{"8":{"position":[[248,12],[326,11]]},"10":{"position":[[599,11],[665,11]]}}}],["compose_file_glob",{"_index":193,"t":{"8":{"position":[[953,18]]},"25":{"position":[[1138,17],[2088,17]]}}}],["compose}*.y?(a)ml",{"_index":103,"t":{"5":{"position":[[1484,17]]},"10":{"position":[[1675,17]]}}}],["config",{"_index":112,"t":{"5":{"position":[[1919,6],[2014,7]]},"10":{"position":[[2110,6],[2576,6],[3375,6],[3732,6],[4218,6],[4994,6],[5085,7]]},"25":{"position":[[2173,6],[2270,6]]},"41":{"position":[[454,6]]}}}],["configur",{"_index":184,"t":{"8":{"position":[[311,14]]},"16":{"position":[[65,14]]},"25":{"position":[[926,13],[1467,10],[1820,14]]},"45":{"position":[[183,13]]}}}],["connect",{"_index":368,"t":{"37":{"position":[[129,7]]}}}],["consol",{"_index":70,"t":{"5":{"position":[[775,7]]},"22":{"position":[[100,8]]},"28":{"position":[[62,7],[142,7]]},"37":{"position":[[273,7]]}}}],["contain",{"_index":36,"t":{"5":{"position":[[111,9]]},"18":{"position":[[176,10]]},"25":{"position":[[2720,10]]},"32":{"position":[[222,9]]},"35":{"position":[[31,10]]},"37":{"position":[[172,10]]}}}],["content",{"_index":122,"t":{"5":{"position":[[2146,8]]},"10":{"position":[[5217,8]]},"28":{"position":[[271,8]]},"30":{"position":[[188,7]]},"35":{"position":[[363,8]]},"41":{"position":[[421,8]]}}}],["continu",{"_index":163,"t":{"5":{"position":[[4368,8]]}}}],["cool",{"_index":8,"t":{"3":{"position":[[101,4],[458,4]]},"5":{"position":[[646,4],[2271,4],[2494,4],[2676,4],[3553,4]]},"8":{"position":[[669,4]]},"10":{"position":[[212,4],[472,4],[928,4],[5343,4],[5523,4],[5750,4],[5997,4],[6177,4],[6359,4]]},"28":{"position":[[397,4]]}}}],["copi",{"_index":118,"t":{"5":{"position":[[2081,4]]},"10":{"position":[[5152,4]]},"28":{"position":[[206,4]]},"30":{"position":[[435,4]]},"37":{"position":[[260,4]]}}}],["correct",{"_index":243,"t":{"13":{"position":[[176,7]]}}}],["correctli",{"_index":46,"t":{"5":{"position":[[297,9]]}}}],["creat",{"_index":43,"t":{"5":{"position":[[258,6],[2969,6],[3126,6],[3850,6],[4213,8]]},"22":{"position":[[46,7],[142,7]]},"25":{"position":[[7,6],[1790,8]]},"28":{"position":[[571,8]]},"30":{"position":[[27,6],[101,6],[148,8],[231,6],[416,6],[484,8],[525,6]]},"32":{"position":[[433,8]]},"37":{"position":[[105,8],[217,7],[319,6],[352,6]]},"39":{"position":[[65,6]]},"41":{"position":[[286,7]]},"45":{"position":[[57,7],[113,6]]}}}],["create/modifi",{"_index":357,"t":{"30":{"position":[[993,13]]}}}],["creating/modifi",{"_index":350,"t":{"30":{"position":[[759,18]]}}}],["creating/modifying/delet",{"_index":362,"t":{"35":{"position":[[150,27]]}}}],["creation",{"_index":333,"t":{"30":{"position":[[284,8]]}}}],["cross",{"_index":165,"t":{"8":{"position":[[0,5]]}}}],["current",{"_index":9,"t":{"3":{"position":[[128,9]]},"10":{"position":[[239,9]]},"30":{"position":[[464,10]]},"35":{"position":[[310,9]]}}}],["dashboard",{"_index":374,"t":{"39":{"position":[[15,9]]}}}],["debug",{"_index":86,"t":{"5":{"position":[[1030,5]]},"10":{"position":[[1144,5]]}}}],["declar",{"_index":363,"t":{"35":{"position":[[225,8]]}}}],["default",{"_index":221,"t":{"10":{"position":[[3045,7],[4134,7],[4655,7]]},"20":{"position":[[57,8]]},"25":{"position":[[997,7],[1327,7],[1872,7]]},"30":{"position":[[694,7]]}}}],["defin",{"_index":40,"t":{"5":{"position":[[183,6]]},"16":{"position":[[109,7]]},"20":{"position":[[123,6],[202,6],[298,6]]},"39":{"position":[[150,7]]}}}],["delet",{"_index":378,"t":{"39":{"position":[[169,6],[231,6]]},"45":{"position":[[37,6]]}}}],["descript",{"_index":309,"t":{"25":{"position":[[1880,11]]},"30":{"position":[[702,11]]}}}],["desir",{"_index":392,"t":{"41":{"position":[[354,7]]}}}],["detail",{"_index":290,"t":{"25":{"position":[[975,7]]},"39":{"position":[[119,7]]}}}],["detect",{"_index":280,"t":{"25":{"position":[[665,8],[708,10],[952,9],[1646,7]]}}}],["dir",{"_index":93,"t":{"5":{"position":[[1166,3],[1681,3]]},"10":{"position":[[1280,3],[1872,3],[2222,3],[2692,3],[3493,3],[3840,3],[4340,3]]}}}],["direct",{"_index":402,"t":{"45":{"position":[[132,12]]}}}],["directli",{"_index":143,"t":{"5":{"position":[[3066,8]]},"30":{"position":[[18,8],[792,8]]}}}],["directori",{"_index":45,"t":{"5":{"position":[[269,9],[706,9],[3613,9]]},"8":{"position":[[729,9]]},"10":{"position":[[988,9]]},"13":{"position":[[66,9]]},"20":{"position":[[185,10]]},"25":{"position":[[1993,9],[2078,9]]},"32":{"position":[[126,9]]}}}],["disabl",{"_index":377,"t":{"39":{"position":[[161,7],[214,8]]}}}],["docker",{"_index":22,"t":{"3":{"position":[[295,6]]},"5":{"position":[[844,6],[950,6],[3877,6]]},"10":{"position":[[49,6],[399,6],[406,6],[421,6],[592,6],[658,6],[1057,6],[2844,6]]},"18":{"position":[[72,6],[130,6],[169,6]]},"22":{"position":[[81,7]]},"25":{"position":[[108,6],[422,6],[1042,6],[1194,6],[2634,6]]},"28":{"position":[[120,6],[706,6]]}}}],["docker.io/foxxmd/komodo",{"_index":178,"t":{"8":{"position":[[139,23]]}}}],["docker/dock",{"_index":133,"t":{"5":{"position":[[2411,14]]},"10":{"position":[[2357,13],[2471,13],[2864,13],[5663,14]]}}}],["dockerhub",{"_index":174,"t":{"8":{"position":[[97,9]]}}}],["dockg",{"_index":11,"t":{"3":{"position":[[144,6]]},"10":{"position":[[255,6]]},"25":{"position":[[284,6]]}}}],["docs:instal",{"_index":246,"t":{"13":{"position":[[217,12]]}}}],["done",{"_index":139,"t":{"5":{"position":[[2950,5]]},"10":{"position":[[6633,5]]},"28":{"position":[[542,5]]},"45":{"position":[[17,4]]}}}],["doubl",{"_index":380,"t":{"39":{"position":[[269,6]]}}}],["e",{"_index":203,"t":{"10":{"position":[[454,1],[486,1]]}}}],["each",{"_index":284,"t":{"25":{"position":[[830,4],[1694,4]]},"43":{"position":[[125,4]]}}}],["easier",{"_index":329,"t":{"28":{"position":[[698,7]]}}}],["entir",{"_index":404,"t":{"45":{"position":[[169,6]]}}}],["env",{"_index":59,"t":{"5":{"position":[[509,3],[1170,4],[1565,3],[1575,7],[2860,6],[3416,3]]},"8":{"position":[[532,3],[1020,3]]},"10":{"position":[[1284,4],[1756,3],[1766,7],[3135,3],[3162,8],[3171,4],[3286,3],[4748,3],[4775,8],[4784,4],[4902,3],[5931,6],[6543,6]]},"25":{"position":[[796,4],[1156,3],[1316,4],[1352,4],[1434,3],[1443,4],[1548,4],[1560,3],[1859,3],[2251,3],[2318,4],[2375,4]]},"28":{"position":[[81,3]]},"30":{"position":[[681,3]]},"32":{"position":[[80,3]]}}}],["env_file_glob",{"_index":194,"t":{"8":{"position":[[975,14]]},"25":{"position":[[1420,13],[2180,13]]}}}],["env_file_path",{"_index":136,"t":{"5":{"position":[[2806,13]]},"10":{"position":[[5877,13],[6489,13]]}}}],["environ",{"_index":62,"t":{"5":{"position":[[544,12],[3451,12]]},"8":{"position":[[567,12]]},"10":{"position":[[826,12]]},"25":{"position":[[1503,11],[2413,11]]},"32":{"position":[[329,12]]}}}],["environment",{"_index":255,"t":{"16":{"position":[[123,13]]},"20":{"position":[[10,13]]},"25":{"position":[[893,13],[1835,13]]},"30":{"position":[[615,13],[657,13]]}}}],["etc",{"_index":202,"t":{"10":{"position":[[392,6]]},"20":{"position":[[117,5],[196,5],[292,5],[358,5]]},"22":{"position":[[165,5]]},"37":{"position":[[183,4]]}}}],["ex",{"_index":300,"t":{"25":{"position":[[1258,2]]}}}],["exampl",{"_index":31,"t":{"5":{"position":[[8,7]]},"8":{"position":[[240,7]]},"10":{"position":[[64,7],[76,7]]},"13":{"position":[[267,9]]},"25":{"position":[[298,7]]},"32":{"position":[[263,7],[290,7]]}}}],["execut",{"_index":142,"t":{"5":{"position":[[2996,7],[3113,7],[4422,9]]},"30":{"position":[[130,7],[203,10]]},"35":{"position":[[127,7]]},"37":{"position":[[191,9]]},"43":{"position":[[10,7],[95,7]]}}}],["exist",{"_index":27,"t":{"3":{"position":[[379,8]]},"18":{"position":[[62,9]]},"20":{"position":[[264,8]]},"25":{"position":[[42,8],[99,8],[2309,8]]},"30":{"position":[[916,7]]},"37":{"position":[[145,8]]}}}],["existing_sync",{"_index":353,"t":{"30":{"position":[[859,13]]}}}],["expiri",{"_index":343,"t":{"30":{"position":[[409,6]]}}}],["export",{"_index":269,"t":{"20":{"position":[[340,6]]},"22":{"position":[[121,6]]}}}],["fals",{"_index":130,"t":{"5":{"position":[[2365,5],[2390,5],[2586,5],[2611,5],[2775,5],[2800,5]]},"10":{"position":[[5438,5],[5463,5],[5617,5],[5642,5],[5846,5],[5871,5],[6094,5],[6119,5],[6269,5],[6294,5],[6458,5],[6483,5]]},"25":{"position":[[2562,5],[2605,5]]}}}],["field",{"_index":266,"t":{"20":{"position":[[139,6]]}}}],["file",{"_index":28,"t":{"3":{"position":[[420,5]]},"5":{"position":[[29,4],[483,4],[1150,5],[1263,6],[1428,6],[1454,4],[1547,6],[1628,6],[1758,6],[1803,5],[1885,6],[1984,6],[2140,5],[3390,4]]},"8":{"position":[[506,4],[1007,4]]},"10":{"position":[[1264,5],[1377,6],[1619,6],[1645,4],[1738,6],[1819,6],[1949,6],[1994,5],[2076,6],[2171,6],[2293,6],[2328,5],[2429,6],[2543,6],[2637,6],[2765,6],[2802,5],[2936,6],[2971,5],[3098,6],[3139,5],[3221,6],[3290,4],[3340,6],[3436,6],[3567,6],[3614,5],[3696,6],[3793,6],[3909,6],[3942,5],[4029,6],[4060,5],[4187,6],[4279,6],[4416,6],[4456,5],[4543,6],[4581,5],[4708,6],[4752,5],[4834,6],[4906,4],[4956,6],[5055,6],[5211,5]]},"20":{"position":[[334,5]]},"22":{"position":[[116,4]]},"25":{"position":[[78,5],[150,5],[677,5],[702,5],[801,5],[947,4],[991,5],[1064,5],[1230,4],[1321,5],[1357,5],[1448,4],[1637,5],[2142,5],[2152,5],[2230,5],[2255,5],[2323,5]]},"28":{"position":[[265,5]]},"32":{"position":[[68,4],[141,5],[166,4],[278,4]]},"37":{"position":[[291,4]]},"39":{"position":[[326,5]]},"41":{"position":[[441,5]]}}}],["file(",{"_index":216,"t":{"10":{"position":[[2462,8]]}}}],["file_path",{"_index":132,"t":{"5":{"position":[[2396,10]]},"10":{"position":[[3009,10],[4098,10],[4619,10],[5648,10]]}}}],["files_on_host",{"_index":127,"t":{"5":{"position":[[2330,13],[2551,13],[2740,13]]},"10":{"position":[[5403,13],[5582,13],[5811,13],[6059,13],[6234,13],[6423,13]]}}}],["files_on_server_dir=/filesonserv",{"_index":187,"t":{"8":{"position":[[794,34]]}}}],["filesonserv",{"_index":37,"t":{"5":{"position":[[124,14],[1175,14],[1203,14]]},"10":{"position":[[1289,14],[1317,14]]},"25":{"position":[[2698,14]]}}}],["filesonserver/compose.yaml",{"_index":106,"t":{"5":{"position":[[1685,27]]},"10":{"position":[[1428,27],[1876,27]]}}}],["filesonserver/immich",{"_index":98,"t":{"5":{"position":[[1314,21]]},"10":{"position":[[1456,21],[2226,21]]}}}],["filesonserver/jellyfin",{"_index":211,"t":{"10":{"position":[[1478,23],[2696,23]]}}}],["filesonserver/octoprint",{"_index":212,"t":{"10":{"position":[[1502,24],[3497,24]]}}}],["filesonserver/plex",{"_index":99,"t":{"5":{"position":[[1336,19]]},"10":{"position":[[1527,19],[3844,19]]}}}],["filesonserver/uptim",{"_index":100,"t":{"5":{"position":[[1356,21]]},"10":{"position":[[1547,21],[4344,21]]}}}],["find",{"_index":109,"t":{"5":{"position":[[1794,4]]},"10":{"position":[[1985,4],[3605,4]]},"25":{"position":[[2134,7],[2222,7]]},"37":{"position":[[454,4]]}}}],["fit",{"_index":183,"t":{"8":{"position":[[302,3]]}}}],["folder",{"_index":16,"t":{"3":{"position":[[202,6]]},"5":{"position":[[176,6],[1305,8],[2028,7]]},"10":{"position":[[1419,8],[5099,7]]},"25":{"position":[[228,7],[253,7],[314,6],[845,7],[1389,7],[2027,7],[2651,6]]},"32":{"position":[[206,6]]}}}],["form",{"_index":321,"t":{"28":{"position":[[35,4]]}}}],["found",{"_index":105,"t":{"5":{"position":[[1656,5]]},"8":{"position":[[261,5]]},"10":{"position":[[1847,5],[2198,5],[2320,5],[2666,5],[2794,5],[3127,5],[3466,5],[3818,5],[3934,5],[4311,5],[4448,5],[4740,5]]},"25":{"position":[[1363,5],[1456,5],[2333,5]]}}}],["foxxmd/komodo",{"_index":49,"t":{"5":{"position":[[339,13],[3246,13]]},"8":{"position":[[370,13]]},"10":{"position":[[567,13],[709,13]]}}}],["futur",{"_index":349,"t":{"30":{"position":[[596,8]]}}}],["gener",{"_index":64,"t":{"5":{"position":[[612,9],[907,9],[3519,9]]},"8":{"position":[[635,9]]},"10":{"position":[[894,9]]},"18":{"position":[[25,8]]},"25":{"position":[[194,8],[1746,9],[2057,10]]},"32":{"position":[[40,9],[156,9]]},"35":{"position":[[271,10]]},"37":{"position":[[403,9]]},"41":{"position":[[222,9],[250,9]]}}}],["get",{"_index":327,"t":{"28":{"position":[[672,7]]}}}],["ghcr.io/foxxmd/komodo",{"_index":179,"t":{"8":{"position":[[193,21]]}}}],["git",{"_index":237,"t":{"13":{"position":[[76,3]]},"25":{"position":[[611,3],[633,3],[2731,3]]},"45":{"position":[[145,3]]}}}],["github",{"_index":175,"t":{"8":{"position":[[107,6]]}}}],["give",{"_index":342,"t":{"30":{"position":[[381,4]]},"37":{"position":[[14,5]]}}}],["given",{"_index":272,"t":{"25":{"position":[[247,5]]}}}],["glob",{"_index":101,"t":{"5":{"position":[[1459,5],[1569,5],[1835,4]]},"10":{"position":[[1650,5],[1760,5],[2026,4],[2351,5],[2825,5],[3646,4],[3965,5],[4479,5]]},"25":{"position":[[2110,4],[2198,4]]}}}],["granular",{"_index":348,"t":{"30":{"position":[[580,8]]}}}],["guid",{"_index":199,"t":{"10":{"position":[[24,5],[42,6]]}}}],["header",{"_index":385,"t":{"41":{"position":[[58,8]]}}}],["here",{"_index":57,"t":{"5":{"position":[[488,4],[3395,4]]},"8":{"position":[[511,4]]}}}],["home/myuser/homelab",{"_index":18,"t":{"3":{"position":[[226,21]]},"5":{"position":[[80,21]]},"10":{"position":[[309,20]]},"25":{"position":[[353,21],[488,21]]}}}],["home/myuser/homelab/compos",{"_index":231,"t":{"10":{"position":[[5372,30]]},"28":{"position":[[426,30]]}}}],["home/myuser/homelab/immich",{"_index":126,"t":{"5":{"position":[[2300,29]]},"10":{"position":[[338,27],[5552,29]]}}}],["home/myuser/homelab/jellyfin",{"_index":232,"t":{"10":{"position":[[5779,31]]}}}],["home/myuser/homelab/octoprint",{"_index":233,"t":{"10":{"position":[[6026,32]]}}}],["home/myuser/homelab/plex",{"_index":134,"t":{"5":{"position":[[2523,27]]},"10":{"position":[[366,25],[6206,27]]}}}],["home/myuser/homelab/uptim",{"_index":135,"t":{"5":{"position":[[2705,28]]},"10":{"position":[[6388,28]]}}}],["home/myuser/homelab:/filesonserv",{"_index":53,"t":{"5":{"position":[[417,35],[3324,35]]},"10":{"position":[[531,35]]}}}],["home/myuser/homelab:/filesonserver:ro",{"_index":209,"t":{"10":{"position":[[787,38]]}}}],["hopefulli",{"_index":347,"t":{"30":{"position":[[562,9]]}}}],["host",{"_index":67,"t":{"5":{"position":[[684,4],[3591,4]]},"8":{"position":[[707,4]]},"10":{"position":[[966,4]]},"25":{"position":[[2010,4]]}}}],["host_parent_path",{"_index":311,"t":{"25":{"position":[[1962,16]]}}}],["host_parent_path=/home/myuser/homelab",{"_index":41,"t":{"5":{"position":[[190,37],[725,37],[3632,37]]},"10":{"position":[[488,39],[1007,37]]}}}],["host_parent_path=/my/cool/path",{"_index":186,"t":{"8":{"position":[[748,30]]}}}],["host_parent_path=/my/parent/fold",{"_index":249,"t":{"13":{"position":[[299,34]]}}}],["http://192.168.0.101:9120",{"_index":157,"t":{"5":{"position":[[4076,25],[4116,26]]}}}],["http://192.168.0.101:9120/resourc",{"_index":161,"t":{"5":{"position":[[4297,34]]}}}],["https://github.com/foxxmd/komodo",{"_index":238,"t":{"13":{"position":[[86,32]]}}}],["ie",{"_index":170,"t":{"8":{"position":[[62,3]]}}}],["imag",{"_index":48,"t":{"5":{"position":[[332,6],[3239,6]]},"8":{"position":[[15,6],[90,6],[363,6]]},"10":{"position":[[702,6]]},"20":{"position":[[87,6]]},"25":{"position":[[2467,5],[2514,5],[2583,7]]}}}],["image_registry_account",{"_index":189,"t":{"8":{"position":[[860,23]]},"25":{"position":[[2489,22]]}}}],["image_registry_provid",{"_index":188,"t":{"8":{"position":[[832,24]]},"25":{"position":[[2433,23]]}}}],["immich",{"_index":19,"t":{"3":{"position":[[252,7]]},"5":{"position":[[2234,8]]},"10":{"position":[[2189,8],[2210,8],[2311,8],[2447,8],[2561,8],[5486,8]]},"25":{"position":[[379,7],[549,6]]}}}],["import",{"_index":26,"t":{"3":{"position":[[361,6]]},"5":{"position":[[149,6],[238,6],[324,7],[868,6],[3007,6],[3193,6],[3231,7],[3840,6],[3985,7],[4438,6]]},"8":{"position":[[355,7]]},"10":{"position":[[446,6],[581,6],[694,7]]},"13":{"position":[[142,6]]},"16":{"position":[[38,6]]},"25":{"position":[[726,6],[1615,6]]},"30":{"position":[[7,6],[649,7],[970,6]]},"32":{"position":[[7,6],[315,7]]},"37":{"position":[[7,6],[237,7],[396,6]]},"39":{"position":[[303,6]]},"45":{"position":[[85,7]]}}}],["import.git",{"_index":239,"t":{"13":{"position":[[119,10]]}}}],["import:latest",{"_index":50,"t":{"5":{"position":[[353,13],[3260,13]]},"8":{"position":[[163,13],[215,13],[384,13]]},"10":{"position":[[723,13]]}}}],["indic",{"_index":308,"t":{"25":{"position":[[1658,8]]}}}],["individu",{"_index":259,"t":{"18":{"position":[[103,10]]},"43":{"position":[[130,10]]}}}],["info",{"_index":84,"t":{"5":{"position":[[1016,4],[1077,4],[1137,4],[1250,4],[1415,4],[1534,4],[1615,4],[1872,4],[1971,4],[2068,4],[2937,4],[3947,4],[4175,4],[4254,4]]},"10":{"position":[[1130,4],[1191,4],[1251,4],[1364,4],[1606,4],[1725,4],[1806,4],[2063,4],[2158,4],[2280,4],[2416,4],[2530,4],[2624,4],[2752,4],[2923,4],[3085,4],[3208,4],[3327,4],[3423,4],[3683,4],[3780,4],[3896,4],[4016,4],[4174,4],[4266,4],[4403,4],[4530,4],[4695,4],[4821,4],[4943,4],[5042,4],[5139,4],[6620,4]]},"28":{"position":[[193,4],[529,4]]}}}],["init",{"_index":85,"t":{"5":{"position":[[1023,6]]},"10":{"position":[[1137,6]]}}}],["input",{"_index":254,"t":{"16":{"position":[[57,7]]},"22":{"position":[[59,7]]}}}],["instal",{"_index":3,"t":{"3":{"position":[[39,9]]},"10":{"position":[[133,9]]},"13":{"position":[[41,7],[201,7]]}}}],["instanc",{"_index":144,"t":{"5":{"position":[[3090,8]]}}}],["instead",{"_index":307,"t":{"25":{"position":[[1537,7]]}}}],["instruct",{"_index":334,"t":{"30":{"position":[[293,12]]}}}],["intel/amd",{"_index":168,"t":{"8":{"position":[[40,11]]}}}],["interact",{"_index":267,"t":{"20":{"position":[[232,9]]}}}],["interim",{"_index":292,"t":{"25":{"position":[[1079,7]]}}}],["it'",{"_index":305,"t":{"25":{"position":[[1494,4]]},"41":{"position":[[70,4]]}}}],["jellyfin",{"_index":218,"t":{"10":{"position":[[2655,10],[2678,10],[2783,10],[2954,10],[3116,10],[3239,10],[3358,10],[5711,10]]}}}],["key",{"_index":145,"t":{"5":{"position":[[3140,3]]},"20":{"position":[[259,4]]},"30":{"position":[[245,3],[280,3],[377,3],[427,3],[449,3],[501,3],[823,3]]}}}],["ki",{"_index":253,"t":{"16":{"position":[[45,5]]},"18":{"position":[[13,2]]},"20":{"position":[[46,2],[226,2],[318,2]]},"22":{"position":[[24,2]]},"25":{"position":[[0,2],[186,2],[515,2]]},"28":{"position":[[0,2]]},"37":{"position":[[477,2]]}}}],["know",{"_index":42,"t":{"5":{"position":[[245,5]]}}}],["komodo",{"_index":0,"t":{"3":{"position":[[9,6],[76,6],[410,6]]},"5":{"position":[[142,6],[231,6],[284,6],[317,6],[582,6],[861,6],[3083,6],[3158,7],[3186,6],[3224,6],[3489,6],[3833,6],[3977,7],[4411,6]]},"8":{"position":[[348,6],[605,6]]},"10":{"position":[[103,6],[170,6],[439,6],[687,6],[864,6],[3038,6],[3271,6],[4127,6],[4648,6],[4887,6]]},"13":{"position":[[135,6]]},"16":{"position":[[31,6]]},"18":{"position":[[34,6]]},"20":{"position":[[70,6],[150,6],[247,6],[350,7]]},"22":{"position":[[131,6]]},"25":{"position":[[14,6],[171,6],[719,6],[1478,6],[1553,6],[1608,6],[1812,7],[1923,6],[2385,6]]},"30":{"position":[[0,6],[52,6],[323,6],[642,6],[728,6],[812,6],[841,6],[963,6]]},"32":{"position":[[0,6],[308,6]]},"35":{"position":[[75,6],[93,6],[191,6],[323,6]]},"37":{"position":[[0,6],[72,7],[230,6],[389,6]]},"39":{"position":[[8,6],[261,7],[296,6]]},"41":{"position":[[173,6]]},"45":{"position":[[78,6],[176,6]]}}}],["komodo'",{"_index":330,"t":{"30":{"position":[[65,8]]}}}],["komodo_env_nam",{"_index":192,"t":{"8":{"position":[[933,16]]},"25":{"position":[[1592,15],[2277,15]]}}}],["komodo_url",{"_index":156,"t":{"5":{"position":[[4064,11]]},"30":{"position":[[714,10]]}}}],["komodo_url=http://192.168.0.101:9120",{"_index":148,"t":{"5":{"position":[[3672,36]]}}}],["komodoenv",{"_index":137,"t":{"5":{"position":[[2822,12]]},"10":{"position":[[3256,10],[4872,10],[5893,12],[6505,12]]},"25":{"position":[[1526,10],[2295,10]]}}}],["kuma",{"_index":24,"t":{"3":{"position":[[326,5]]},"5":{"position":[[1378,4],[2642,5],[2734,5]]},"10":{"position":[[1569,4],[4305,5],[4331,5],[4366,4],[4442,5],[4569,5],[4734,5],[4860,5],[4982,5],[6325,5],[6417,5]]},"25":{"position":[[453,5],[568,4]]}}}],["level",{"_index":303,"t":{"25":{"position":[[1376,5]]}}}],["locat",{"_index":14,"t":{"3":{"position":[[187,7]]},"10":{"position":[[298,7]]},"25":{"position":[[1954,7],[2039,8]]}}}],["log",{"_index":77,"t":{"5":{"position":[[851,5],[885,3],[973,3],[3900,3]]},"10":{"position":[[1080,3]]},"20":{"position":[[326,4]]},"22":{"position":[[67,3],[89,5],[109,3]]},"25":{"position":[[1627,3]]},"28":{"position":[[127,4],[608,3],[729,3]]}}}],["log_toml=fals",{"_index":323,"t":{"28":{"position":[[85,15]]}}}],["look",{"_index":275,"t":{"25":{"position":[[331,5],[1013,5]]}}}],["machin",{"_index":5,"t":{"3":{"position":[[64,7],[117,7]]},"10":{"position":[[158,7],[198,7],[228,7]]},"18":{"position":[[114,7]]},"25":{"position":[[69,8]]}}}],["made",{"_index":371,"t":{"37":{"position":[[480,4]]}}}],["make",{"_index":281,"t":{"25":{"position":[[733,5]]},"28":{"position":[[666,5]]},"41":{"position":[[193,4]]}}}],["manual",{"_index":141,"t":{"5":{"position":[[2960,8]]},"25":{"position":[[1721,8]]},"28":{"position":[[562,8]]},"32":{"position":[[424,8]]},"37":{"position":[[343,8]]}}}],["match",{"_index":111,"t":{"5":{"position":[[1818,8]]},"10":{"position":[[2009,8],[2334,8],[2808,8],[3145,8],[3629,8],[3948,8],[4462,8],[4758,8]]},"35":{"position":[[209,7]]},"41":{"position":[[201,5]]}}}],["method",{"_index":277,"t":{"25":{"position":[[583,6]]}}}],["miss",{"_index":394,"t":{"41":{"position":[[378,7]]}}}],["mode",{"_index":87,"t":{"5":{"position":[[1036,5]]},"10":{"position":[[1150,5]]},"25":{"position":[[166,4]]},"39":{"position":[[139,4]]}}}],["modifi",{"_index":182,"t":{"8":{"position":[[286,9]]},"25":{"position":[[1730,8]]},"41":{"position":[[407,9]]}}}],["more",{"_index":207,"t":{"10":{"position":[[628,4]]},"30":{"position":[[575,4]]},"35":{"position":[[70,4]]}}}],["mount",{"_index":316,"t":{"25":{"position":[[2687,7]]},"32":{"position":[[198,5]]}}}],["multipl",{"_index":271,"t":{"25":{"position":[[203,8]]}}}],["my/host/folder:/output",{"_index":359,"t":{"32":{"position":[[386,23]]}}}],["myprojects:/filesonserv",{"_index":185,"t":{"8":{"position":[[448,27]]}}}],["name",{"_index":7,"t":{"3":{"position":[[90,4]]},"5":{"position":[[596,4],[2227,4],[2452,4],[2627,4],[3503,4],[4001,4]]},"8":{"position":[[619,4]]},"10":{"position":[[184,4],[434,4],[878,4],[5298,4],[5479,4],[5704,4],[5950,4],[6135,4],[6310,4]]},"20":{"position":[[175,5]]},"25":{"position":[[1087,5],[1564,4],[1911,4],[2349,4],[2459,4]]},"28":{"position":[[352,4],[653,4]]},"30":{"position":[[391,4],[977,4]]},"39":{"position":[[93,4]]}}}],["navig",{"_index":335,"t":{"30":{"position":[[306,8]]}}}],["navigi",{"_index":375,"t":{"39":{"position":[[25,9]]}}}],["need",{"_index":332,"t":{"30":{"position":[[223,4]]}}}],["new",{"_index":341,"t":{"30":{"position":[[369,3]]},"39":{"position":[[47,3]]}}}],["newer",{"_index":315,"t":{"25":{"position":[[2577,5]]}}}],["next",{"_index":398,"t":{"43":{"position":[[117,4]]}}}],["node",{"_index":244,"t":{"13":{"position":[[184,4],[334,4]]},"22":{"position":[[95,4]]}}}],["node'",{"_index":325,"t":{"28":{"position":[[135,6]]}}}],["normal",{"_index":158,"t":{"5":{"position":[[4104,11]]}}}],["note",{"_index":276,"t":{"25":{"position":[[573,4]]}}}],["now",{"_index":140,"t":{"5":{"position":[[2956,3]]},"41":{"position":[[17,3],[144,3]]},"45":{"position":[[101,3]]}}}],["npm",{"_index":245,"t":{"13":{"position":[[197,3],[209,3],[233,3],[247,3]]}}}],["nvm",{"_index":241,"t":{"13":{"position":[[149,3]]}}}],["octoprint",{"_index":224,"t":{"10":{"position":[[3454,11],[3478,11],[3585,11],[3714,11],[5957,11]]}}}],["on",{"_index":15,"t":{"3":{"position":[[198,3]]},"25":{"position":[[1673,4]]},"35":{"position":[[63,3]]}}}],["open",{"_index":338,"t":{"30":{"position":[[338,4]]}}}],["option",{"_index":54,"t":{"5":{"position":[[456,9],[3363,9]]},"8":{"position":[[479,9],[782,8]]},"10":{"position":[[633,7]]},"13":{"position":[[159,9]]},"30":{"position":[[400,8]]}}}],["out",{"_index":366,"t":{"35":{"position":[[342,3]]}}}],["output",{"_index":73,"t":{"5":{"position":[[797,6],[922,6],[3034,6]]},"10":{"position":[[1091,6]]},"16":{"position":[[84,7]]},"20":{"position":[[310,7]]},"22":{"position":[[74,6]]},"25":{"position":[[531,6]]},"28":{"position":[[15,6],[626,6],[691,6]]},"30":{"position":[[84,6]]},"32":{"position":[[50,6],[283,6]]},"37":{"position":[[281,6],[296,6],[442,6]]}}}],["output:/output",{"_index":61,"t":{"5":{"position":[[527,16],[3434,16]]},"8":{"position":[[550,16]]}}}],["output_dir",{"_index":58,"t":{"5":{"position":[[498,10],[3405,10]]},"8":{"position":[[521,10]]},"32":{"position":[[84,10],[240,10]]}}}],["output_dir=/output",{"_index":195,"t":{"8":{"position":[[1038,18]]},"32":{"position":[[350,18]]}}}],["over",{"_index":296,"t":{"25":{"position":[[1189,4],[1288,4]]}}}],["overridden",{"_index":294,"t":{"25":{"position":[[1122,10],[1404,10],[1576,10]]}}}],["overriden",{"_index":286,"t":{"25":{"position":[[866,9]]}}}],["overwrit",{"_index":355,"t":{"30":{"position":[[941,9]]}}}],["packag",{"_index":176,"t":{"8":{"position":[[114,8]]}}}],["page",{"_index":177,"t":{"8":{"position":[[134,4],[188,4]]},"39":{"position":[[127,4]]}}}],["parent",{"_index":39,"t":{"5":{"position":[[169,6]]},"25":{"position":[[1986,6]]}}}],["parentdirectori",{"_index":66,"t":{"5":{"position":[[661,15],[3568,15]]},"8":{"position":[[684,15]]},"10":{"position":[[943,15]]}}}],["parentdirectory:files_on_server_dir",{"_index":52,"t":{"5":{"position":[[379,35],[3286,35]]},"8":{"position":[[410,35]]},"10":{"position":[[749,35]]}}}],["part",{"_index":252,"t":{"16":{"position":[[16,5]]}}}],["past",{"_index":369,"t":{"37":{"position":[[265,7]]}}}],["path",{"_index":299,"t":{"25":{"position":[[1253,4],[2158,5]]}}}],["pattern",{"_index":110,"t":{"5":{"position":[[1809,8]]},"10":{"position":[[2000,8],[3154,7],[3620,8],[4767,7]]},"25":{"position":[[1005,7],[1335,7],[2115,7],[2203,7]]}}}],["pend",{"_index":383,"t":{"41":{"position":[[29,7],[132,7]]},"43":{"position":[[63,8]]}}}],["perform",{"_index":395,"t":{"43":{"position":[[33,7]]}}}],["peripheri",{"_index":4,"t":{"3":{"position":[[49,9]]},"10":{"position":[[143,9]]}}}],["pi",{"_index":172,"t":{"8":{"position":[[76,3]]}}}],["platform",{"_index":166,"t":{"8":{"position":[[6,8]]}}}],["plex",{"_index":21,"t":{"3":{"position":[[283,5]]},"5":{"position":[[2459,6]]},"10":{"position":[[3811,6],[3830,6],[3927,6],[4047,6],[4205,6],[6142,6]]},"25":{"position":[[410,5],[556,4]]}}}],["point",{"_index":34,"t":{"5":{"position":[[68,6]]}}}],["poll",{"_index":314,"t":{"25":{"position":[[2568,4]]}}}],["poll_for_upd",{"_index":131,"t":{"5":{"position":[[2371,16],[2592,16],[2781,16]]},"10":{"position":[[5444,16],[5623,16],[5852,16],[6100,16],[6275,16],[6464,16]]},"25":{"position":[[2544,15]]}}}],["poll_for_update=fals",{"_index":191,"t":{"8":{"position":[[908,21]]}}}],["prefix",{"_index":68,"t":{"5":{"position":[[716,6],[889,6],[977,6],[3623,6],[3904,6]]},"8":{"position":[[739,6]]},"10":{"position":[[998,6],[1084,6]]},"28":{"position":[[612,6],[658,7],[733,6]]}}}],["present",{"_index":60,"t":{"5":{"position":[[516,7],[3423,7]]},"8":{"position":[[539,7],[1027,7]]},"32":{"position":[[98,8]]}}}],["priorit",{"_index":295,"t":{"25":{"position":[[1165,10],[1261,11]]}}}],["proce",{"_index":370,"t":{"37":{"position":[[308,7]]}}}],["process",{"_index":96,"t":{"5":{"position":[[1281,10]]},"10":{"position":[[1395,10]]}}}],["profil",{"_index":339,"t":{"30":{"position":[[355,7]]}}}],["project",{"_index":13,"t":{"3":{"position":[[178,8],[396,8]]},"5":{"position":[[3019,9],[4450,9]]},"10":{"position":[[289,8]]},"18":{"position":[[145,8]]},"25":{"position":[[123,8],[643,8],[694,7],[1699,8],[2668,8]]},"37":{"position":[[162,9]]}}}],["project'",{"_index":285,"t":{"25":{"position":[[835,9]]}}}],["proper",{"_index":400,"t":{"45":{"position":[[122,6]]}}}],["put",{"_index":270,"t":{"22":{"position":[[27,4]]}}}],["qnaxd1frutylfc2zylfcszqiylfc1wylfcvr34yj4",{"_index":152,"t":{"5":{"position":[[3775,41]]}}}],["quick",{"_index":198,"t":{"10":{"position":[[12,5]]}}}],["raspberri",{"_index":171,"t":{"8":{"position":[[66,9]]}}}],["raw",{"_index":320,"t":{"28":{"position":[[26,3]]}}}],["read",{"_index":257,"t":{"18":{"position":[[16,5]]}}}],["reason",{"_index":282,"t":{"25":{"position":[[744,10]]}}}],["refresh",{"_index":386,"t":{"41":{"position":[[89,7]]}}}],["registri",{"_index":262,"t":{"20":{"position":[[94,9]]},"25":{"position":[[2473,8],[2520,8]]}}}],["relat",{"_index":258,"t":{"18":{"position":[[79,7]]}}}],["render",{"_index":75,"t":{"5":{"position":[[810,7]]}}}],["repo",{"_index":181,"t":{"8":{"position":[[274,5]]}}}],["repositori",{"_index":32,"t":{"5":{"position":[[43,10]]},"8":{"position":[[123,10],[177,10]]},"13":{"position":[[11,10]]}}}],["repres",{"_index":361,"t":{"35":{"position":[[52,10]]}}}],["represent",{"_index":365,"t":{"35":{"position":[[284,14]]},"37":{"position":[[33,14]]}}}],["requir",{"_index":265,"t":{"20":{"position":[[130,8]]},"25":{"position":[[1863,8]]},"30":{"position":[[685,8]]}}}],["resolv",{"_index":94,"t":{"5":{"position":[[1193,9]]},"10":{"position":[[1307,9]]}}}],["resour",{"_index":382,"t":{"39":{"position":[[318,7]]},"41":{"position":[[433,7]]}}}],["resourc",{"_index":76,"t":{"5":{"position":[[827,8],[940,9],[2130,9],[2167,8],[2983,8],[3057,8],[3866,8],[4199,8],[4278,8],[4399,8]]},"10":{"position":[[5201,9],[5238,8]]},"18":{"position":[[41,10],[87,9]]},"20":{"position":[[77,9],[157,9],[273,8]]},"22":{"position":[[36,9],[150,8]]},"25":{"position":[[27,9],[51,9],[1771,9]]},"28":{"position":[[50,8],[255,9],[292,8],[585,9]]},"30":{"position":[[39,9],[537,9],[778,8],[894,8]]},"32":{"position":[[447,9]]},"35":{"position":[[7,8],[82,10],[115,8],[178,9]]},"37":{"position":[[51,9],[114,9],[208,8],[331,8],[366,8],[468,8]]},"39":{"position":[[51,8],[186,9],[248,9]]}}}],["restart",{"_index":69,"t":{"5":{"position":[[763,8],[3817,8]]},"8":{"position":[[1057,8]]},"10":{"position":[[1045,8]]}}}],["restor",{"_index":405,"t":{"45":{"position":[[214,11]]}}}],["run",{"_index":44,"t":{"5":{"position":[[265,3],[702,3],[857,3],[3609,3],[3829,3]]},"8":{"position":[[725,3]]},"10":{"position":[[428,3],[984,3]]},"13":{"position":[[213,3],[237,3],[251,3]]},"20":{"position":[[181,3]]},"25":{"position":[[2074,3]]}}}],["run_directori",{"_index":125,"t":{"5":{"position":[[2284,13],[2507,13],[2689,13]]},"10":{"position":[[5356,13],[5536,13],[5763,13],[6010,13],[6190,13],[6372,13]]},"28":{"position":[[410,13]]}}}],["safe",{"_index":399,"t":{"45":{"position":[[30,6]]}}}],["sampl",{"_index":205,"t":{"10":{"position":[[611,6]]}}}],["save",{"_index":56,"t":{"5":{"position":[[474,5],[3381,5]]},"8":{"position":[[497,5],[998,5]]},"39":{"position":[[340,4]]}}}],["scan",{"_index":38,"t":{"5":{"position":[[160,4]]}}}],["scenario",{"_index":201,"t":{"10":{"position":[[84,9]]}}}],["scissor",{"_index":121,"t":{"5":{"position":[[2107,8]]},"10":{"position":[[5178,8]]},"28":{"position":[[232,8]]}}}],["secret",{"_index":146,"t":{"5":{"position":[[3148,6]]},"30":{"position":[[253,6],[457,6],[852,6]]}}}],["section",{"_index":306,"t":{"25":{"position":[[1515,7],[2425,7]]},"39":{"position":[[332,7]]}}}],["see",{"_index":197,"t":{"10":{"position":[[4,3],[588,3]]},"28":{"position":[[108,3]]}}}],["server",{"_index":6,"t":{"3":{"position":[[83,6],[106,6],[429,6],[463,7]]},"5":{"position":[[589,6],[651,6],[1159,6],[1273,7],[1438,7],[1557,7],[1638,7],[1768,7],[1895,7],[1994,7],[2258,6],[2276,7],[2481,6],[2499,7],[2663,6],[2681,7],[3496,6],[3558,6]]},"8":{"position":[[612,6],[674,6]]},"10":{"position":[[177,6],[217,6],[477,7],[871,6],[933,6],[1273,6],[1387,7],[1629,7],[1748,7],[1829,7],[1959,7],[2086,7],[2181,7],[2303,7],[2439,7],[2553,7],[2647,7],[2775,7],[2946,7],[3108,7],[3231,7],[3350,7],[3446,7],[3577,7],[3706,7],[3803,7],[3919,7],[4039,7],[4197,7],[4289,7],[4426,7],[4553,7],[4718,7],[4844,7],[4966,7],[5065,7],[5330,6],[5348,7],[5510,6],[5528,7],[5737,6],[5755,7],[5984,6],[6002,7],[6164,6],[6182,7],[6346,6],[6364,7]]},"13":{"position":[[292,6]]},"20":{"position":[[167,7]]},"25":{"position":[[87,7],[159,6],[686,7],[1930,6]]},"28":{"position":[[384,6],[402,7]]},"30":{"position":[[735,6]]}}}],["server_nam",{"_index":310,"t":{"25":{"position":[[1892,11]]}}}],["server_name=mi",{"_index":65,"t":{"5":{"position":[[631,14],[3538,14]]},"8":{"position":[[654,14]]},"10":{"position":[[456,15],[913,14]]},"13":{"position":[[277,14]]}}}],["servic",{"_index":47,"t":{"5":{"position":[[307,9],[3214,9]]},"8":{"position":[[338,9]]},"10":{"position":[[677,9]]},"28":{"position":[[645,7]]},"32":{"position":[[298,9]]}}}],["set",{"_index":242,"t":{"13":{"position":[[172,3]]},"20":{"position":[[53,3],[209,8]]},"30":{"position":[[343,8]]},"32":{"position":[[236,3]]}}}],["setup",{"_index":2,"t":{"3":{"position":[[24,5]]},"10":{"position":[[118,5]]}}}],["shortest",{"_index":298,"t":{"25":{"position":[[1244,8]]}}}],["show",{"_index":344,"t":{"30":{"position":[[444,4]]},"41":{"position":[[148,5]]}}}],["similar",{"_index":273,"t":{"25":{"position":[[269,7]]}}}],["skip",{"_index":372,"t":{"37":{"position":[[497,4]]}}}],["someth",{"_index":393,"t":{"41":{"position":[[365,9]]}}}],["somewher",{"_index":235,"t":{"13":{"position":[[22,9]]}}}],["soon",{"_index":318,"t":{"25":{"position":[[2749,5]]}}}],["src/index.j",{"_index":250,"t":{"13":{"position":[[339,12]]}}}],["stack",{"_index":29,"t":{"3":{"position":[[436,6]]},"5":{"position":[[291,5],[622,6],[696,5],[1292,6],[1662,5],[1913,5],[2008,5],[2217,9],[2442,9],[2617,9],[3529,6],[3603,5]]},"8":{"position":[[645,6],[719,5]]},"10":{"position":[[904,6],[978,5],[1406,6],[1853,5],[2104,5],[2204,5],[2570,5],[2672,5],[3369,5],[3472,5],[3726,5],[3824,5],[4212,5],[4317,5],[4988,5],[5079,5],[5288,9],[5469,9],[5694,9],[5940,9],[6125,9],[6300,9]]},"25":{"position":[[21,5],[178,7],[212,6],[538,6],[621,7],[1803,5],[1945,5],[2021,5],[2068,5],[2167,5],[2264,5],[2623,6]]},"28":{"position":[[342,9]]},"41":{"position":[[276,6],[294,6]]}}}],["stack.config",{"_index":124,"t":{"5":{"position":[[2243,14],[2466,14],[2648,14]]},"10":{"position":[[5315,14],[5495,14],[5722,14],[5969,14],[6149,14],[6331,14]]},"28":{"position":[[369,14]]}}}],["start",{"_index":33,"t":{"5":{"position":[[59,8]]},"10":{"position":[[18,5]]},"13":{"position":[[255,5]]}}}],["state",{"_index":384,"t":{"41":{"position":[[37,5]]}}}],["structur",{"_index":274,"t":{"25":{"position":[[321,9]]}}}],["sub",{"_index":304,"t":{"25":{"position":[[1385,3]]}}}],["such",{"_index":260,"t":{"18":{"position":[[122,4]]}}}],["suppli",{"_index":261,"t":{"20":{"position":[[34,8]]}}}],["support",{"_index":278,"t":{"25":{"position":[[603,7]]}}}],["switch",{"_index":388,"t":{"41":{"position":[[115,9]]}}}],["sync",{"_index":71,"t":{"5":{"position":[[783,4],[822,4],[935,4],[2176,4],[2978,4],[3052,4],[3861,4],[3960,5],[3996,4],[4053,5],[4188,5],[4208,4],[4267,5],[4287,4],[4394,4]]},"10":{"position":[[5247,4]]},"22":{"position":[[159,5]]},"25":{"position":[[1766,4]]},"28":{"position":[[45,4],[301,4],[580,4]]},"30":{"position":[[34,4],[112,5],[161,4],[532,4],[787,4],[903,4],[985,4]]},"32":{"position":[[442,4]]},"35":{"position":[[2,4],[110,4],[144,5],[241,4],[265,5],[353,4]]},"37":{"position":[[203,4],[326,4],[361,4],[463,4],[512,4]]},"39":{"position":[[38,5],[60,4],[74,4],[114,4]]},"41":{"position":[[5,4]]},"43":{"position":[[18,4]]},"45":{"position":[[6,7],[48,4],[156,4]]}}}],["sync_nam",{"_index":356,"t":{"30":{"position":[[951,9]]}}}],["syncs/689a41a04ed1b642f3053f57",{"_index":162,"t":{"5":{"position":[[4332,30]]}}}],["tab",{"_index":389,"t":{"41":{"position":[[140,3],[461,4]]}}}],["take",{"_index":391,"t":{"41":{"position":[[185,4]]}}}],["text",{"_index":119,"t":{"5":{"position":[[2090,4]]},"10":{"position":[[5161,4]]},"28":{"position":[[215,4]]}}}],["text/fil",{"_index":360,"t":{"35":{"position":[[21,9]]}}}],["three",{"_index":251,"t":{"16":{"position":[[10,5]]}}}],["tip",{"_index":196,"t":{"10":{"position":[[0,3]]},"28":{"position":[[595,3]]},"37":{"position":[[245,3],[422,3]]}}}],["toml",{"_index":55,"t":{"5":{"position":[[466,4],[836,4],[917,4],[3373,4]]},"8":{"position":[[489,4]]},"25":{"position":[[1756,5]]},"28":{"position":[[30,4],[686,4]]},"32":{"position":[[62,5]]},"35":{"position":[[42,4],[246,4],[358,4]]},"37":{"position":[[28,4],[384,4]]},"39":{"position":[[310,4]]},"41":{"position":[[232,5]]}}}],["top",{"_index":302,"t":{"25":{"position":[[1372,3]]},"41":{"position":[[54,3]]}}}],["true",{"_index":128,"t":{"5":{"position":[[2346,4],[2567,4],[2756,4]]},"10":{"position":[[5419,4],[5598,4],[5827,4],[6075,4],[6250,4],[6439,4]]}}}],["tz=america/new_york",{"_index":63,"t":{"5":{"position":[[559,19],[3466,19]]},"8":{"position":[[582,19]]},"10":{"position":[[841,19]]}}}],["ui",{"_index":337,"t":{"30":{"position":[[334,3]]},"39":{"position":[[147,2]]}}}],["under",{"_index":396,"t":{"43":{"position":[[57,5]]}}}],["unless",{"_index":322,"t":{"28":{"position":[[70,6]]}}}],["unmatch",{"_index":379,"t":{"39":{"position":[[176,9]]}}}],["up",{"_index":78,"t":{"5":{"position":[[965,2],[3892,2]]},"10":{"position":[[1072,2]]},"28":{"position":[[721,2]]},"45":{"position":[[207,2]]}}}],["updat",{"_index":264,"t":{"20":{"position":[[109,7]]},"25":{"position":[[2616,6]]},"41":{"position":[[107,7],[268,7],[396,7]]}}}],["uptim",{"_index":23,"t":{"3":{"position":[[319,6]]},"5":{"position":[[2634,7]]},"10":{"position":[[4297,7],[4323,7],[4434,7],[4561,7],[4726,7],[4852,7],[4974,7],[6317,7]]},"25":{"position":[[446,6],[561,6]]}}}],["url",{"_index":160,"t":{"5":{"position":[[4292,4]]},"30":{"position":[[742,3]]}}}],["us",{"_index":10,"t":{"3":{"position":[[138,5]]},"5":{"position":[[0,3],[604,3],[689,3],[2119,3],[3511,3],[3596,3],[3971,5]]},"8":{"position":[[232,3],[627,3],[712,3]]},"10":{"position":[[249,5],[886,3],[971,3],[2456,5],[2965,5],[3250,5],[4054,5],[4575,5],[4866,5],[5190,3]]},"13":{"position":[[153,3]]},"16":{"position":[[25,5],[96,4],[117,5]]},"20":{"position":[[321,4]]},"25":{"position":[[95,3],[484,3],[819,3],[876,5],[1686,3],[2048,4],[2126,3],[2214,3],[2362,4],[2399,5],[2485,3],[2540,3]]},"28":{"position":[[244,3],[548,3],[599,3]]},"30":{"position":[[59,5],[263,3],[750,3]]},"32":{"position":[[410,3]]},"35":{"position":[[104,3]]},"37":{"position":[[88,3],[433,4]]},"43":{"position":[[87,3]]},"45":{"position":[[69,3]]}}}],["usag",{"_index":248,"t":{"13":{"position":[[261,5]]},"25":{"position":[[2641,5]]}}}],["user",{"_index":345,"t":{"30":{"position":[[479,4]]}}}],["v",{"_index":204,"t":{"10":{"position":[[529,1]]}}}],["variabl",{"_index":256,"t":{"16":{"position":[[137,10]]},"20":{"position":[[24,9]]},"25":{"position":[[1849,9]]},"30":{"position":[[629,9],[671,9]]}}}],["varibal",{"_index":288,"t":{"25":{"position":[[907,9]]}}}],["verbos",{"_index":155,"t":{"5":{"position":[[4038,8]]}}}],["verifi",{"_index":164,"t":{"5":{"position":[[4380,9]]},"30":{"position":[[177,6]]},"37":{"position":[[505,6]]},"41":{"position":[[310,6]]}}}],["version",{"_index":90,"t":{"5":{"position":[[1090,8]]},"10":{"position":[[1204,8]]},"13":{"position":[[189,7]]}}}],["volum",{"_index":51,"t":{"5":{"position":[[367,8],[3274,8]]},"8":{"position":[[398,8]]},"10":{"position":[[737,8]]},"32":{"position":[[369,8]]}}}],["want",{"_index":25,"t":{"3":{"position":[[353,4]]},"25":{"position":[[811,4]]},"39":{"position":[[102,4]]},"45":{"position":[[105,4]]}}}],["warn",{"_index":108,"t":{"5":{"position":[[1745,4]]},"10":{"position":[[1936,4],[3554,4]]}}}],["web",{"_index":336,"t":{"30":{"position":[[330,3]]}}}],["whatev",{"_index":376,"t":{"39":{"position":[[84,8]]}}}],["within",{"_index":123,"t":{"5":{"position":[[2155,6]]},"10":{"position":[[5226,6]]},"25":{"position":[[236,6],[823,6]]},"28":{"position":[[280,6]]}}}],["without",{"_index":326,"t":{"28":{"position":[[633,7]]}}}],["work",{"_index":236,"t":{"13":{"position":[[58,7]]},"25":{"position":[[291,6]]}}}],["write",{"_index":74,"t":{"5":{"position":[[804,5],[3041,6]]},"10":{"position":[[2998,7],[4087,7],[4608,7]]},"25":{"position":[[1488,5],[2392,6]]},"32":{"position":[[30,5]]},"35":{"position":[[334,7]]}}}],["written",{"_index":223,"t":{"10":{"position":[[3278,7],[4894,7]]},"32":{"position":[[181,7]]}}}],["x86",{"_index":167,"t":{"8":{"position":[[36,3]]}}}],["you'll",{"_index":324,"t":{"28":{"position":[[101,6]]}}}]],"pipeline":["stemmer"]}}] 1 + [{"documents":[{"i":1,"t":"Overview","u":"/komodo-import/docs/installation/","b":["Docs","Installation"]},{"i":9,"t":"Quickstart","u":"/komodo-import/docs/quickstart/","b":["Docs"]},{"i":16,"t":"Overview","u":"/komodo-import/docs/usage/overview/","b":["Docs","Usage"]},{"i":37,"t":"Using Sync Resources","u":"/komodo-import/docs/usage/resourceSync/","b":["Docs","Usage"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,0.803]],["t/9",[1,1.394]],["t/16",[0,0.803]],["t/37",[2,0.854,3,0.854,4,0.854]]],"invertedIndex":[["overview",{"_index":0,"t":{"1":{"position":[[0,8]]},"16":{"position":[[0,8]]}}}],["quickstart",{"_index":1,"t":{"9":{"position":[[0,10]]}}}],["resourc",{"_index":4,"t":{"37":{"position":[[11,9]]}}}],["sync",{"_index":3,"t":{"37":{"position":[[6,4]]}}}],["us",{"_index":2,"t":{"37":{"position":[[0,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Docker","u":"/komodo-import/docs/installation/","h":"#docker","p":1},{"i":4,"t":"Docker Usage Example","u":"/komodo-import/docs/installation/","h":"#docker-usage-example","p":1},{"i":6,"t":"Local Installation","u":"/komodo-import/docs/installation/","h":"#local-installation","p":1},{"i":7,"t":"Nodejs","u":"/komodo-import/docs/installation/","h":"#nodejs","p":1},{"i":10,"t":"Scenario","u":"/komodo-import/docs/quickstart/","h":"#scenario","p":9},{"i":12,"t":"Create Docker Compose File","u":"/komodo-import/docs/quickstart/","h":"#create-docker-compose-file","p":9},{"i":14,"t":"Choose Desired Output","u":"/komodo-import/docs/quickstart/","h":"#choose-desired-output","p":9},{"i":17,"t":"Key Concepts","u":"/komodo-import/docs/usage/overview/","h":"#key-concepts","p":16},{"i":19,"t":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs","p":16},{"i":21,"t":"Configuration","u":"/komodo-import/docs/usage/overview/","h":"#configuration","p":16},{"i":23,"t":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs","p":16},{"i":25,"t":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs-1","p":16},{"i":26,"t":"Stacks","u":"/komodo-import/docs/usage/overview/","h":"#stacks","p":16},{"i":28,"t":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs-1","p":16},{"i":29,"t":"Console","u":"/komodo-import/docs/usage/overview/","h":"#console","p":16},{"i":31,"t":"API Sync","u":"/komodo-import/docs/usage/overview/","h":"#api-sync","p":16},{"i":33,"t":"File","u":"/komodo-import/docs/usage/overview/","h":"#file","p":16},{"i":35,"t":"Komodo API","u":"/komodo-import/docs/usage/overview/","h":"#komodo-api","p":16},{"i":38,"t":"What is a Sync Resource?","u":"/komodo-import/docs/usage/resourceSync/","h":"#what-is-a-sync-resource","p":37},{"i":40,"t":"How To Use with Komodo Import?","u":"/komodo-import/docs/usage/resourceSync/","h":"#how-to-use-with-komodo-import","p":37},{"i":42,"t":"Create Sync Resource","u":"/komodo-import/docs/usage/resourceSync/","h":"#create-sync-resource","p":37},{"i":44,"t":"Verify Sync Changes","u":"/komodo-import/docs/usage/resourceSync/","h":"#verify-sync-changes","p":37},{"i":46,"t":"Execute Sync","u":"/komodo-import/docs/usage/resourceSync/","h":"#execute-sync","p":37},{"i":48,"t":"Remove Sync (Optional)","u":"/komodo-import/docs/usage/resourceSync/","h":"#remove-sync-optional","p":37}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,2.43]],["t/4",[0,1.579,1,2.259,2,2.259]],["t/6",[3,2.739,4,2.739]],["t/7",[5,3.477]],["t/10",[6,3.477]],["t/12",[0,1.343,7,1.573,8,1.922,9,1.573]],["t/14",[10,2.259,11,2.259,12,1.579]],["t/17",[13,2.739,14,2.739]],["t/19",[15,2.846]],["t/21",[16,3.477]],["t/23",[12,2.43]],["t/25",[15,2.846]],["t/26",[17,3.477]],["t/28",[12,2.43]],["t/29",[18,3.477]],["t/31",[19,2.241,20,1.311]],["t/33",[9,2.846]],["t/35",[19,2.241,21,2.241]],["t/38",[20,1.311,22,2.241]],["t/40",[21,1.849,23,2.259,24,2.259]],["t/42",[7,1.849,20,1.082,22,1.849]],["t/44",[20,1.082,25,2.259,26,2.259]],["t/46",[20,1.311,27,2.739]],["t/48",[20,1.082,28,2.259,29,2.259]]],"invertedIndex":[["api",{"_index":19,"t":{"31":{"position":[[0,3]]},"35":{"position":[[7,3]]}}}],["chang",{"_index":26,"t":{"44":{"position":[[12,7]]}}}],["choos",{"_index":10,"t":{"14":{"position":[[0,6]]}}}],["compos",{"_index":8,"t":{"12":{"position":[[14,7]]}}}],["concept",{"_index":14,"t":{"17":{"position":[[4,8]]}}}],["configur",{"_index":16,"t":{"21":{"position":[[0,13]]}}}],["consol",{"_index":18,"t":{"29":{"position":[[0,7]]}}}],["creat",{"_index":7,"t":{"12":{"position":[[0,6]]},"42":{"position":[[0,6]]}}}],["desir",{"_index":11,"t":{"14":{"position":[[7,7]]}}}],["docker",{"_index":0,"t":{"2":{"position":[[0,6]]},"4":{"position":[[0,6]]},"12":{"position":[[7,6]]}}}],["exampl",{"_index":2,"t":{"4":{"position":[[13,7]]}}}],["execut",{"_index":27,"t":{"46":{"position":[[0,7]]}}}],["file",{"_index":9,"t":{"12":{"position":[[22,4]]},"33":{"position":[[0,4]]}}}],["import",{"_index":24,"t":{"40":{"position":[[23,7]]}}}],["input",{"_index":15,"t":{"19":{"position":[[0,6]]},"25":{"position":[[0,6]]}}}],["instal",{"_index":4,"t":{"6":{"position":[[6,12]]}}}],["key",{"_index":13,"t":{"17":{"position":[[0,3]]}}}],["komodo",{"_index":21,"t":{"35":{"position":[[0,6]]},"40":{"position":[[16,6]]}}}],["local",{"_index":3,"t":{"6":{"position":[[0,5]]}}}],["nodej",{"_index":5,"t":{"7":{"position":[[0,6]]}}}],["option",{"_index":29,"t":{"48":{"position":[[12,10]]}}}],["output",{"_index":12,"t":{"14":{"position":[[15,6]]},"23":{"position":[[0,7]]},"28":{"position":[[0,7]]}}}],["remov",{"_index":28,"t":{"48":{"position":[[0,6]]}}}],["resourc",{"_index":22,"t":{"38":{"position":[[15,9]]},"42":{"position":[[12,8]]}}}],["scenario",{"_index":6,"t":{"10":{"position":[[0,8]]}}}],["stack",{"_index":17,"t":{"26":{"position":[[0,6]]}}}],["sync",{"_index":20,"t":{"31":{"position":[[4,4]]},"38":{"position":[[10,4]]},"42":{"position":[[7,4]]},"44":{"position":[[7,4]]},"46":{"position":[[8,4]]},"48":{"position":[[7,4]]}}}],["us",{"_index":23,"t":{"40":{"position":[[7,3]]}}}],["usag",{"_index":1,"t":{"4":{"position":[[7,5]]}}}],["verifi",{"_index":25,"t":{"44":{"position":[[0,6]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":1,"t":"Docker","s":"Overview","u":"/komodo-import/docs/installation/","p":1},{"i":9,"t":"Scenario","s":"Quickstart","u":"/komodo-import/docs/quickstart/","p":9},{"i":16,"t":"Key Concepts","s":"Overview","u":"/komodo-import/docs/usage/overview/","p":16},{"i":37,"t":"What is a Sync Resource?","s":"Using Sync Resources","u":"/komodo-import/docs/usage/resourceSync/","p":37}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,1.394]],["t/9",[1,1.394]],["t/16",[2,1.059,3,1.059]],["t/37",[4,1.059,5,1.059]]],"invertedIndex":[["concept",{"_index":3,"t":{"16":{"position":[[4,8]]}}}],["docker",{"_index":0,"t":{"1":{"position":[[0,6]]}}}],["key",{"_index":2,"t":{"16":{"position":[[0,3]]}}}],["resourc",{"_index":5,"t":{"37":{"position":[[15,9]]}}}],["scenario",{"_index":1,"t":{"9":{"position":[[0,8]]}}}],["sync",{"_index":4,"t":{"37":{"position":[[10,4]]}}}]],"pipeline":["stemmer"]}},{"documents":[],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[],"invertedIndex":[],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Cross-platform images are built for x86 (Intel/AMD) and ARM64 (IE Raspberry Pi) Available Images Dockerhub Github Packages Repository Page docker.io/foxxmd/komodo-import:latest Repository Page ghcr.io/foxxmd/komodo-import:latest Or use the example compose.yml, found in the repo, after modifying it to fit your configuration: compose.yml services: komodo-import: image: foxxmd/komodo-import:latest volumes: ## ParentDirectory:FILES_ON_SERVER_DIR - ./myprojects:/filesOnServer ## optional, TOML is saved to file here when OUTPUT_DIR env is present #- ./output:/output environment: - TZ=America/New_York ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## ParentDirectory on the host use as Stack Run Directory prefix - HOST_PARENT_PATH=/my/cool/path ## optional #- FILES_ON_SERVER_DIR=/filesOnServer #- IMAGE_REGISTRY_PROVIDER= #- IMAGE_REGISTRY_ACCOUNT= #- AUTO_UPDATE=false #- POLL_FOR_UPDATE=false #- KOMODO_ENV_NAME= #- COMPOSE_FILE_GLOB= #- ENV_FILE_GLOB= ## only saves to file if this ENV is present #- OUTPUT_DIR=/output restart: no","s":"Docker","u":"/komodo-import/docs/installation/","h":"#docker","p":1},{"i":5,"t":"tip See the Quick Start Guide for another guided docker-compose example The example scenario: You have Komodo already setup You have installed Periphery on a machine The Komodo Server name for this machine is my-cool-server The machine is currently using dockge and has all of its compose projects located at /home/myUser/homelab like... /home/myUser/homelab/immich /home/myUser/homelab/plex etc... Docker Docker Compose docker run --name komodo-import -e \"SERVER_NAME=my-cool-server\" -e \"HOST_PARENT_PATH=/home/myUser/homelab\" -v /home/myUser/homelab:/filesOnServer foxxmd/komodo-import See docker-compose.yml sample above for more options and annotations. docker-compose.yml services: komodo-import: image: foxxmd/komodo-import:latest volumes: ## ParentDirectory:FILES_ON_SERVER_DIR - /home/myUser/homelab:/filesOnServer:ro environment: - TZ=America/New_York ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## ParentDirectory on the host use as Stack Run Directory prefix - HOST_PARENT_PATH=/home/myUser/homelab restart: no docker compose up --no-log-prefix Output [2025-08-11 14:06:19.080 -0400] INFO : [Init] Debug Mode: NO [2025-08-11 14:06:19.094 -0400] INFO : [App] Version: 0.1.0 [2025-08-11 14:06:19.095 -0400] INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer [2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Processing Stacks for 6 folders: /filesOnServer/compose.yaml /filesOnServer/immich /filesOnServer/jellyfin /filesOnServer/octoprint /filesOnServer/plex /filesOnServer/uptime-kuma [2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml [2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] Env Glob: **/.env [2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml [2025-08-11 14:06:19.103 -0400] WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob [2025-08-11 14:06:19.103 -0400] INFO : [App] [Files On Server] [compose] Stack config complete [2025-08-11 14:06:19.104 -0400] INFO : [App] [Files On Server] [immich] Found Stack 'immich' at dir /filesOnServer/immich [2025-08-11 14:06:19.107 -0400] INFO : [App] [Files On Server] [immich] Found 1 files matching compose glob: docker/docker-compose.yaml [2025-08-11 14:06:19.107 -0400] INFO : [App] [Files On Server] [immich] Using file(s): docker/docker-compose.yaml [2025-08-11 14:06:19.108 -0400] INFO : [App] [Files On Server] [immich] Stack config complete [2025-08-11 14:06:19.108 -0400] INFO : [App] [Files On Server] [jellyfin] Found Stack 'jellyfin' at dir /filesOnServer/jellyfin [2025-08-11 14:06:19.109 -0400] INFO : [App] [Files On Server] [jellyfin] Found 3 files matching compose glob: compose.yaml docker-compose.yaml docker/docker-compose.yaml [2025-08-11 14:06:19.110 -0400] INFO : [App] [Files On Server] [jellyfin] Using file: compose.yaml but not writing to file_paths since this is the Komodo default [2025-08-11 14:06:19.111 -0400] INFO : [App] [Files On Server] [jellyfin] Found 1 env files matching pattern **/.env: .env [2025-08-11 14:06:19.111 -0400] INFO : [App] [Files On Server] [jellyfin] Using .komodoEnv for Komodo-written env file [2025-08-11 14:06:19.111 -0400] INFO : [App] [Files On Server] [jellyfin] Stack config complete [2025-08-11 14:06:19.111 -0400] INFO : [App] [Files On Server] [octoprint] Found Stack 'octoprint' at dir /filesOnServer/octoprint [2025-08-11 14:06:19.112 -0400] WARN : [App] [Files On Server] [octoprint] Did not find any files patterns matching compose glob [2025-08-11 14:06:19.112 -0400] INFO : [App] [Files On Server] [octoprint] Stack config complete [2025-08-11 14:06:19.113 -0400] INFO : [App] [Files On Server] [plex] Found Stack 'plex' at dir /filesOnServer/plex [2025-08-11 14:06:19.114 -0400] INFO : [App] [Files On Server] [plex] Found 1 files matching compose glob: compose.yaml [2025-08-11 14:06:19.114 -0400] INFO : [App] [Files On Server] [plex] Using file: compose.yaml but not writing to file_paths since this is the Komodo default [2025-08-11 14:06:19.115 -0400] INFO : [App] [Files On Server] [plex] Stack config complete [2025-08-11 14:06:19.115 -0400] INFO : [App] [Files On Server] [uptime-kuma] Found Stack 'uptime-kuma' at dir /filesOnServer/uptime-kuma [2025-08-11 14:06:19.116 -0400] INFO : [App] [Files On Server] [uptime-kuma] Found 1 files matching compose glob: compose.yaml [2025-08-11 14:06:19.116 -0400] INFO : [App] [Files On Server] [uptime-kuma] Using file: compose.yaml but not writing to file_paths since this is the Komodo default [2025-08-11 14:06:19.117 -0400] INFO : [App] [Files On Server] [uptime-kuma] Found 1 env files matching pattern **/.env: .env [2025-08-11 14:06:19.117 -0400] INFO : [App] [Files On Server] [uptime-kuma] Using .komodoEnv for Komodo-written env file [2025-08-11 14:06:19.117 -0400] INFO : [App] [Files On Server] [uptime-kuma] Stack config complete [2025-08-11 14:06:19.118 -0400] INFO : [App] [Files On Server] Built Stack configs for 6 folders [2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [[stack]] name = \"compose\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/compose\" files_on_host = true auto_update = false poll_for_updates = false [[stack]] name = \"immich\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/immich\" files_on_host = true auto_update = false poll_for_updates = false file_paths = [ \"docker/docker-compose.yaml\" ] [[stack]] name = \"jellyfin\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/jellyfin\" files_on_host = true auto_update = false poll_for_updates = false env_file_path = \".komodoEnv\" additional_env_files = [ \".env\" ] [[stack]] name = \"octoprint\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/octoprint\" files_on_host = true auto_update = false poll_for_updates = false [[stack]] name = \"plex\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/plex\" files_on_host = true auto_update = false poll_for_updates = false [[stack]] name = \"uptime-kuma\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/uptime-kuma\" files_on_host = true auto_update = false poll_for_updates = false env_file_path = \".komodoEnv\" additional_env_files = [ \".env\" ] ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [2025-08-11 14:06:19.119 -0400] INFO : [App] Done!","s":"Docker Usage Example","u":"/komodo-import/docs/installation/","h":"#docker-usage-example","p":1},{"i":8,"t":"Clone this repository somewhere and then install from the working directory git clone https://github.com/FoxxMD/komodo-import.git . cd komodo-import nvm use # optional, to set correct Node version npm install npm run docs:install && npm run build npm run start Usage Examples​ SERVER_NAME=my-server HOST_PARENT_PATH=/my/parent/folder node src/index.js","s":"Nodejs","u":"/komodo-import/docs/installation/","h":"#nodejs","p":1},{"i":11,"t":"You have Komodo already setup You have installed Periphery on a machine The Komodo Server name is my-cool-server The machine is currently using dockge and has all of its compose projects located in one folder like this: . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ └── docker-compose.yaml └── uptime-kuma/ └── compose.yaml You want to import all of the existing compose projects into Komodo as Files On Server Stacks attached to my-cool-server. tip Using git repositories instead of plain folders? Check out the Git Repo Stack docs","s":"Scenario","u":"/komodo-import/docs/quickstart/","h":"#scenario","p":9},{"i":13,"t":"Use the example compose.yaml file from the repository as a starting point. Bind /home/myUser/homelab/ into the container at /filesOnServer so Komodo Import can scan the parent folder (this is the same for plain folder and git repo stack methods) Define HOST_PARENT_PATH=/home/myUser/homelab so Komodo Import knows how to create Run Directory in a Komodo Stack correctly services: komodo-import: image: foxxmd/komodo-import:latest volumes: ## ParentDirectory:FILES_ON_SERVER_DIR - /home/myUser/homelab:/filesOnServer ## optional, TOML is saved to file here when OUTPUT_DIR env is present #- ./output:/output environment: - TZ=America/New_York ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## ParentDirectory on the host use as Stack Run Directory prefix - HOST_PARENT_PATH=/home/myUser/homelab restart: no","s":"Create Docker Compose File","u":"/komodo-import/docs/quickstart/","h":"#create-docker-compose-file","p":9},{"i":15,"t":"Console Sync API This Output renders the Sync Resource TOML to docker logs. Run komodo-import with --no-log-prefix to get the generated TOML output for a Sync Resource. docker compose up --no-log-prefix [2025-08-11 14:06:19.080 -0400] INFO : [Init] Debug Mode: NO [2025-08-11 14:06:19.094 -0400] INFO : [App] Version: 0.1.0 [2025-08-11 14:06:19.095 -0400] INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer [2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Processing Stacks for 2 folders: /filesOnServer/immich /filesOnServer/plex /filesOnServer/uptime-kuma [2025-08-11 14:06:19.096 -0400] INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml [2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] Env Glob: **/.env [2025-08-11 14:06:19.097 -0400] INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml [2025-08-11 14:06:19.103 -0400] WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob [2025-08-11 14:06:19.103 -0400] INFO : [App] [Files On Server] [compose] Stack config complete ... [2025-08-11 14:06:19.118 -0400] INFO : [App] [Files On Server] Built Stack configs for 3 folders [2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [[stack]] name = \"immich\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/immich\" files_on_host = true auto_update = false poll_for_updates = false file_paths = [ \"docker/docker-compose.yaml\" ] [[stack]] name = \"plex\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/plex\" files_on_host = true auto_update = false poll_for_updates = false [[stack]] name = \"uptime-kuma\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/uptime-kuma\" files_on_host = true auto_update = false poll_for_updates = false env_file_path = \".komodoEnv\" additional_env_files = [ \".env\" ] ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [2025-08-11 14:06:19.119 -0400] INFO : [App] Done! Now, manually create a Sync Resource and Execute to import your projects. Or, use Sync Api output instead to directly write the Sync Resource to Komodo. This Output writes the Sync Resource directly to your Komodo instance (but does not execute it!) Create an API Key and Secret in Komodo, then add it to your Komodo Import compose.yaml: services: komodo-import: image: foxxmd/komodo-import:latest volumes: ## ParentDirectory:FILES_ON_SERVER_DIR - /home/myUser/homelab:/filesOnServer ## optional, TOML is saved to file here when OUTPUT_DIR env is present #- ./output:/output environment: - TZ=America/New_York ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## ParentDirectory on the host use as Stack Run Directory prefix - HOST_PARENT_PATH=/home/myUser/homelab - KOMODO_URL=http://192.168.0.101:9120 - API_KEY=K-3A6btIPZYeBuD5ebSa9uD5ebuD5ebHIjYxT5sc - API_SECRET=S-qnaXD1frutYlfC2ZYlfCSzqiYlfC1WYlfCVR34Yj4 restart: no Run komodo-import to create the Sync Resource $ docker compose up --no-log-prefix ... [2025-08-11 17:46:54.030 -0400] INFO : [App] [Sync API] Using 'komodo-import' as Sync Name [2025-08-11 17:46:54.032 -0400] VERBOSE: [App] [Sync API] KOMODO_URL: http://192.168.0.101:9120 | Normalized: http://192.168.0.101:9120/ [2025-08-11 17:46:54.411 -0400] INFO : [App] [Sync API] Resource Sync created. [2025-08-11 17:46:54.411 -0400] INFO : [App] [Sync API] Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57 Then continue to verifying the Sync Resource in Komodo and Executing it to import your projects.","s":"Choose Desired Output","u":"/komodo-import/docs/quickstart/","h":"#choose-desired-output","p":9},{"i":18,"t":"There are three parts to using Komodo Import (KI). Which Inputs, Configuration, and Outputs are used are all defined using environmental variables.","s":"Key Concepts","u":"/komodo-import/docs/usage/overview/","h":"#key-concepts","p":16},{"i":20,"t":"This is what KI reads to generate Komodo Resources. These are existing, docker-related resources on an individual machine such as Docker Compose projects (compose.yaml) Docker containers","s":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs","p":16},{"i":22,"t":"These are environmental variables supplied to KI to: set defaults for Komodo Resources (image registry, auto update, etc.) define required fields for Komodo Resources (Server Name, Run Directory, etc.) define settings for how KI to interacts with Komodo (API Key, existing Resource behavior, etc.) define what Outputs KI uses (log to file, export to Komodo, etc.)","s":"Configuration","u":"/komodo-import/docs/usage/overview/","h":"#configuration","p":16},{"i":24,"t":"These are where and how KI puts the Resources created from Inputs: Log to output (docker logs, node console) Log to file Export to Komodo API (create Resource Sync, etc.)","s":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs","p":16},{"i":27,"t":"KI can create Komodo Stack Resources from existing resources on your machine. Common Stack Configuration​ These environmental variables are applicable to all Stack types below. Environmental Variables ENV Required Default Description SERVER_NAME ☑️ The name of the Komodo Server where a Stack is located HOST_PARENT_PATH ☑️ The parent directory on the host where stack folders are located. WRITE_ENV - false Write the contents of found .env files to Komodo Environment. Likely want this as true. FOLDER_GLOB - * The glob pattern to use for finding folders in the top-level folder given to Komodo Import FOLDER_IGNORE_GLOB - The glob pattern to use to ignore folders in the top-level folder given to Komodo Import COMPOSE_FILE_GLOB - **/{compose,docker-compose}*.y?(a)ml The glob pattern to use for finding files for Files Paths in Stack config ENV_FILE_GLOB - **/.env The glob pattern to use for finding files for Additional Env Files in Stack config KOMODO_ENV_NAME - .komodoenv If existing .env files are found, and WRITE_ENV=false, then this name will be used for the .env that Komodo writes using its own Environment section IMAGE_REGISTRY_PROVIDER - Name of Image Registry to use IMAGE_REGISTRY_ACCOUNT - Image Registry account to use POLL_FOR_UPDATE - Poll for newer images? AUTO_UPDATE - Auto Update stack? Files On Server​ Use existing, non git-based Docker Compose projects (compose.yaml) as Files On Server mode Komodo Stacks. KI will generate multiple Stacks from all folders within the given folder. This is similar to how dockge works. Example If your folder structure looks like this . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ └── docker-compose.yaml └── uptime-kuma/ └── compose.yaml and you use /home/myUser/homelab/ with KI then it will output stacks for immich with Run Directory /home/myUser/homelab/immich plex with Run Directory /home/myUser/homelab/plex uptime-kuma with Run Directory /home/myUser/homelab/uptime-kuma Project Files Detection​ Komodo Import makes some reasonable assumptions about which compose.yaml and .env files you want to use within each project's folder. These can be overriden using the *_GLOB environmental varibales from the Configuration below. File Detection and Behavior Details Compose Files Default pattern Looks for compose.y(a)ml and docker-compose.y(a)ml Files may have interim names like compose.dev.yaml Can be overridden with COMPOSE_FILE_GLOB env Will prioritize compose.yaml over docker-compose.yaml Will choose the file with the shortest path EX Prioritizes ./compose.yaml over ./aFolder/compose.yaml .env Files Default pattern Adds all .env files found at top-level or sub-folders Can be overridden with ENV_FILE_GLOB env If a .env file is found then configures Komodo to write it's own Environment section to .komodoenv instead of .env Komodo env name can be overridden with KOMODO_ENV_NAME Komodo Import will log which files it detects and indicate which ones it will use for each project. These can be manually modified in the generated TOML, API Sync Resource, or after creating the Stack in Komodo. Configuration​ Environmental Variables Use the Common Stack Configuration environmental variables For docker usage the folder with your projects should be mounted to /filesOnServer in the container. Git Repo​ Use existing, git repository folders containing Docker Compose projects (compose.yaml) as Git Repo mode Komodo Stacks. KI will generate multiple Stacks from all folders within the given folder. Each folder detected as a git repository will have all required fields in a Git Repo Komodo Stack configured based on information from the local repository. How Repository Parsing Works A folder is only built as a Git Repo stack if... It contains a valid .git folder The git repo has a valid remote The current checked out local branch is tracking a remote branch If any of the above are not true then the folder is instead parsed as a Files On Server Stack Additionally, if Komodo API is configured then... If Komodo has a Repo Resource that matches the remote, then the Git Repo Stack uses a Linked Repo If Komodo has a Git Provider matching the remote URL domain then that is used, along with the Git Provider user (private git is automatically detected) Example You have two repositories at https://git.mydomain.com/myUser/immich https://github.com/anotherUser/plex Your folder structure looks like this /home/myUser/homelab ├── immich │ ├── .git │ └── compose.yaml ├── plex │ ├── .git │ └── docker-compose.yaml └── uptime-kuma └── compose.yaml You run Komodo Import with the homelab directory: docker run ... -e \"HOST_PARENT_PATH=/home/myUser/homelab\" -v /home/myUser/homelab:/filesOnServer foxxmd/komodo-import immich is created as a Git Repo Stack with Git Provider: git.mydomain.com Repo: myUser/immich plex is created as a Git Repo Stack with Git Provider: github.com Repo: anotherUser/immich uptime-kuma is created as a Files On Server Stack Run Directory: /home/myUser/homelab/uptime-kuma Monorepos​ Komodo Import can also handle monorepos. Mount the top-level repository folder to the usual /filesOnServer location and it will automatically treat sub-folders as Git Repo Stacks using the top-level repository. Example You have a repository at https://git.mydomain.com/myUser/homelab and each folder in the repo is a different stack. Your folder structure (on the host machine) looks like this: /home/myUser/homelab ├── .git ├── immich │ └── compose.yaml ├── plex │ └── docker-compose.yaml └── uptime-kuma └── compose.yaml You run Komodo Import with the homelab directory: docker run ... -v /home/myUser/homelab:/filesOnServer foxxmd/komodo-import immich is created as a Git Repo Stack with Git Provider: git.mydomain.com Repo: myUser/homelab Run Directory: immich plex is created as a Git Repo Stack with Git Provider: git.mydomain.com Repo: myUser/homelab Run Directory: plex uptime-kuma is created as a Files On Server Stack Git Provider: git.mydomain.com Repo: myUser/homelab Run Directory: uptime-kuma Nested Monorepo If your stack folders are not the immediate sub-folders in your repository then specify the relative directory from git root as GIT_STACKS_DIR to specify what parent folder to use: /home/myUser/homelab ├── .git ├── myStacks │ ├── immich │ │ └── compose.yaml │ ├── plex │ │ └── docker-compose.yaml │ └── uptime-kuma │ └── compose.yaml └── somethingElse Use GIT_STACKS_DIR=myStacks with the above example. Configuration​ Environmental Variables Combine with Common Stack Configuration environmental variables ENV Required Default Description GIT_STACKS_DIR - Set sub-folder to use for stacks when generating from a monorepo","s":"Stacks","u":"/komodo-import/docs/usage/overview/","h":"#stacks","p":16},{"i":30,"t":"KI will always output the raw TOML form of a Sync Resource to console unless the env LOG_TOML=false. You'll see this in docker logs or node's console like this: [2025-08-11 14:06:19.119 -0400] INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [[stack]] name = \"compose\" [stack.config] server = \"my-cool-server\" run_directory = \"/home/myUser/homelab/compose\" ... ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ [2025-08-11 14:06:19.119 -0400] INFO : [App] Done! Use this with manually creating Sync Resources tip Use --no-log-prefix to get output without the service name prefix, makes getting clear TOML output easier. docker compose up --no-log-prefix","s":"Console","u":"/komodo-import/docs/usage/overview/","h":"#console","p":16},{"i":32,"t":"Komodo Import can directly create Sync Resources in Komodo using Komodo's API. This output will only create the Sync, it will not execute it. After creating the Sync you should verify its content before executing. First, follow the instructions and configuration in the Komodo API section. note Currently, the user creating the Api Key must be an Admin to create Sync Resources (but this will hopefully be more granular in the future). Then, add these environmental variables to Komodo Import: Environmental Variables ENV Required Default Description OUTPUT_API_SYNC ☑️ false Must be true to activate API Sync EXISTING_SYNC - append Behavior if Resource Sync already exists. Either append or overwrite SYNC_NAME - komodo-import Name of Sync to create/modify","s":"API Sync","u":"/komodo-import/docs/usage/overview/","h":"#api-sync","p":16},{"i":34,"t":"Komodo Import will attempt to write the generated output to a .toml file if the ENV OUTPUT_DIR is present. This should be the directory (not file) that the generated file should be written to. Bind mount a folder into the container and set OUTPUT_DIR like in the example below: File Output Example services: komodo-import: # ... environment: # ... - OUTPUT_DIR=/output volumes: # ... - /my/host/folder:/output Use this with manually creating Sync Resources","s":"File","u":"/komodo-import/docs/usage/overview/","h":"#file","p":16},{"i":36,"t":"Komodo Import can take advantage of your existing Komodo instance to configure Stacks with linked repos, write Resource Syncs directly, etc... You will need to create an API Key and Secret to use the API. API Key Creation Instructions Navigate to your Komodo Web UI: Open Settings -> Profile Click New Api Key Give it a name and optional Expiry Create the key and Copy the show Key and Secret API Configuration​ Add these environmental variables to Komodo Import to use the Komodo API. Environmental Variables ENV Required Default Description KOMODO_URL ☑️ Komodo Server URL API_KEY ☑️ Komodo API Key API_SECRET ☑️ Komodo API Secret Your Komodo URL should be as specific as possible, including port if required. Some examples of valid urls: http://192.168.0.100:9120 https://komodo.mydomain.com https://myKomodo.com http://komodo (in docker network, for example)","s":"Komodo API","u":"/komodo-import/docs/usage/overview/","h":"#komodo-api","p":16},{"i":39,"t":"A Sync Resource is a text/file containing TOML that represents one or more Komodo Resources. Komodo can use a Sync Resource to Execute from the Sync, creating/modifying/deleting Resources in Komodo so that it matches what is declared in the Sync TOML Commit to the Sync, generating a representation of what is currently in Komodo and writing out to the Sync TOML contents","s":"What is a Sync Resource?","u":"/komodo-import/docs/usage/resourceSync/","h":"#what-is-a-sync-resource","p":37},{"i":41,"t":"Komodo Import gives you the TOML representation of Resources not yet in Komodo. You can use this to bulk \"create\" Resources that connect to your existing compose projects, container, etc, by Executing a Sync Resource created with Komodo Import. tip If you are copy-pasting console Output or file Output then proceed to Create Sync Resource to manually create a Sync Resource from the TOML Komodo Import generated for you. tip If you used API Output then find the Sync Resource KI made for you and skip to Verify Sync Changes.","s":"How To Use with Komodo Import?","u":"/komodo-import/docs/usage/resourceSync/","h":"#how-to-use-with-komodo-import","p":37},{"i":43,"t":"In your Komodo dashboard navigiate to Syncs -> New Resource Sync Create a Sync with whatever name you want In the Sync details page Choose Mode -> UI Defined ⚠️ Disable Delete Unmatched Resources ⚠️ If this is not disabled you may delete all other Resources in Komodo! Double check this! Add the Komodo Import TOML to Resoure Files section Save","s":"Create Sync Resource","u":"/komodo-import/docs/usage/resourceSync/","h":"#create-sync-resource","p":37},{"i":45,"t":"Your Sync should now be in a Pending state (check the top header). If it's not click the Refresh button to update. Switching to the Pending tab now shows all of the actions Komodo will take to make it match what is in the generated TOML. This should generally only be \"Update Stack\" or \"Create Stack\" actions. Verify that all of the actions are what you desire. If something is missing it can be updated by modifying the contents in Resoure Files in the Config tab.","s":"Verify Sync Changes","u":"/komodo-import/docs/usage/resourceSync/","h":"#verify-sync-changes","p":37},{"i":47,"t":"Click the Execute Sync button to perform all the actions under Pending. Alternatively, use the Execute Change button next to each individual Action.","s":"Execute Sync","u":"/komodo-import/docs/usage/resourceSync/","h":"#execute-sync","p":37},{"i":49,"t":"After Syncing is done you can safely Delete the Sync you created for use with Komodo Import. You may now want to create a proper bi-directional, git-backed Sync so your entire Komodo configuration is backed up and restorable.","s":"Remove Sync (Optional)","u":"/komodo-import/docs/usage/resourceSync/","h":"#remove-sync-optional","p":37}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,3.029,1,3.029,2,2.037,3,1.79,4,3.029,5,3.029,6,3.029,7,3.029,8,3.029,9,3.029,10,3.029,11,3.029,12,3.029,13,3.029,14,2.067,15,3.243,16,3.029,17,2.651,18,3.029,19,0.382,20,1.214,21,3.243,22,1.79,23,1.563,24,2.073,25,3.029,26,1.375,27,1.375,28,0.18,29,0.47,30,1.563,31,1.563,32,1.174,33,1.79,34,3.029,35,1.818,36,0.834,37,2.366,38,0.728,39,2.073,40,1.79,41,1.252,42,2.366,43,2.073,44,1.375,45,1.79,46,1.103,47,0.732,48,0.834,49,1.252,50,1.563,51,1.375,52,1.79,53,1.563,54,1.214,55,1.072,56,1.563,57,3.029,58,3.029,59,2.453,60,2.453,61,3.029,62,3.029,63,2.453,64,2.453,65,2.453,66,2.453,67,1.79]],["t/5",[2,0.395,3,0.514,17,0.514,19,0.319,20,0.608,21,1.229,22,2.355,27,0.395,28,0.168,29,0.313,30,0.783,31,0.449,32,1.182,33,0.514,35,0.395,38,0.954,41,1.278,44,0.395,45,0.514,46,1.452,47,0.869,48,0.24,49,1.463,50,0.783,51,1.633,52,0.514,53,0.449,54,0.608,55,0.308,56,0.783,67,0.514,68,0.514,69,1.229,70,0.871,71,0.596,72,1.518,73,0.871,74,1.214,75,1.739,76,0.871,77,0.596,78,0.705,79,0.596,80,0.705,81,1.192,82,0.449,83,0.596,84,0.395,85,0.596,86,0.514,87,1.039,88,1.039,89,0.449,90,1.229,91,0.897,92,0.705,93,0.514,94,0.871,95,0.705,96,0.596,97,0.871,98,0.871,99,0.514,100,0.395,101,0.24,102,3.47,103,3.47,104,3.47,105,0.705,106,3.47,107,3.441,108,0.705,109,0.705,110,0.514,111,0.705,112,3.456,113,0.596,114,0.705,115,0.705,116,2.619,117,0.897,118,0.705,119,1.229,120,0.705,121,1.518,122,0.689,123,1.229,124,1.229,125,1.518,126,1.518,127,1.229,128,1.229,129,2.288,130,2.347,131,0.596,132,0.596,133,1.229,134,1.229,135,1.229,136,0.897,137,1.653,138,1.77,139,1.911,140,2.436,141,0.871,142,1.777,143,1.518,144,2.739,145,1.956,146,1.758,147,0.871,148,1.518,149,3.428,150,0.871,151,0.705,152,0.871,153,0.916,154,1.956,155,1.041,156,2.415,157,1.653,158,1.229,159,2.739,160,1.518,161,0.871,162,1.777,163,1.518,164,1.518,165,2.026,166,1.518,167,2.017,168,0.705,169,1.039,170,0.449,171,0.596,172,0.596,173,0.596,174,0.276,175,0.349,176,0.514,177,0.135,178,2.059,179,2.059,180,0.705,181,2.436,182,1.777,183,2.059,184,2.355,185,2.059,186,0.871,187,1.229,188,1.229,189,0.871,190,0.596,191,0.514]],["t/8",[14,1.946,19,0.321,20,1.511,28,0.169,29,0.585,32,1.046,35,1.712,46,1.039,50,1.946,54,1.991,55,1.335,71,2.581,79,3.151,113,2.581,192,4.604,193,3.771,194,3.054,195,1.946,196,3.771,197,3.771,198,3.771,199,3.771,200,1.946,201,3.771,202,3.728,203,5.175,204,3.771,205,3.771,206,3.054,207,3.771,208,3.771]],["t/11",[14,1.777,19,0.371,23,1.777,28,0.214,29,0.534,32,1.161,38,0.626,46,1.38,47,0.831,49,1.36,51,1.975,68,2.034,74,1.219,75,1.743,77,2.356,78,2.787,79,2.356,80,2.787,81,2.57,82,1.777,83,2.356,84,1.975,85,2.356,86,2.034,122,1.975,129,2.034,142,2.034,146,2.165,162,2.034,165,2.034,195,2.245,209,2.356,210,2.034,211,1.379,212,3.442,213,2.356,214,2.787,215,2.034,216,2.356,217,3.442]],["t/13",[2,1.489,14,1.693,17,1.938,19,0.397,20,1.314,23,1.693,27,1.489,28,0.229,29,0.724,30,1.693,31,1.693,32,1.072,33,1.938,35,1.489,36,0.903,37,1.938,38,0.767,39,2.245,40,1.938,41,1.026,42,1.938,43,2.245,44,1.489,45,1.938,46,1.162,47,0.792,48,0.903,49,1.539,50,1.693,51,1.489,52,1.938,53,1.693,54,1.69,55,1.494,56,1.693,67,1.938,71,2.245,86,1.938,91,2.493,93,1.938,117,1.938,122,1.915,146,1.489,195,1.693,214,2.656,218,3.28,219,2.656,220,1.489,221,3.28,222,2.656,223,3.28,224,3.28,225,1.938,226,3.28,227,0.691,228,3.28]],["t/15",[2,0.623,3,0.811,17,0.811,19,0.303,22,0.811,27,0.623,28,0.199,29,0.623,30,0.708,31,0.708,32,1.19,33,0.811,35,0.623,36,0.774,37,0.811,38,0.842,39,0.939,40,0.811,41,1.112,42,0.811,43,0.939,44,0.623,45,0.811,46,1.349,47,0.859,48,0.613,49,1.351,50,0.708,51,1.468,52,0.811,53,0.708,54,1.126,55,0.486,56,1.67,67,0.811,74,0.995,75,1.675,84,1.011,87,0.939,88,0.939,91,0.811,93,0.811,99,1.316,100,1.468,101,0.891,102,3.352,103,3.352,104,3.352,105,1.111,106,3.352,107,3.271,108,1.111,109,1.111,110,0.811,111,1.111,112,3.314,113,0.939,114,1.111,115,1.111,116,1.803,117,1.316,118,1.111,119,1.803,120,1.111,122,1.011,123,1.111,124,1.111,127,1.111,128,1.111,129,1.661,130,1.924,131,0.939,132,0.939,133,1.803,134,1.803,135,1.111,136,0.811,137,0.939,138,0.708,139,1.316,140,1.111,142,0.811,145,1.111,146,1.011,151,1.111,153,1.011,154,1.111,157,0.939,162,0.811,165,0.811,168,1.111,169,1.524,170,0.708,171,0.939,172,0.939,173,0.939,174,0.826,175,0.55,176,0.811,177,0.768,178,1.924,179,1.924,181,2.276,182,1.661,183,1.924,184,2.251,185,1.924,187,1.111,188,1.111,190,0.939,191,0.811,213,0.939,227,0.681,229,0.811,230,1.608,231,1.372,232,1.372,233,0.939,234,0.708,235,1.451,236,1.524,237,1.111,238,0.811,239,1.111,240,0.708,241,1.372,242,1.372,243,1.372,244,1.372,245,1.372,246,1.372,247,1.372,248,1.372,249,1.111,250,2.227,251,1.372,252,2.227,253,0.939,254,1.372,255,1.372,256,1.372,257,0.811]],["t/18",[19,0.445,26,1.928,28,0.191,29,0.659,101,1.17,225,2.51,258,4.247,259,4.247,260,1.702,261,3.439,262,2.192,263,2.192]],["t/20",[28,0.187,48,1.148,74,1.837,75,1.671,81,2.464,84,1.893,146,1.893,174,0.889,211,1.671,220,1.893,260,1.671,264,4.169,265,4.169,266,3.376,267,4.169]],["t/22",[2,1.698,19,0.319,28,0.232,38,0.68,46,1.03,47,0.903,54,1.499,55,1.324,89,2.664,100,1.698,101,1.03,155,1.93,174,0.9,200,2.364,211,1.499,225,2.926,230,1.499,238,2.21,260,1.984,262,1.93,263,1.93,268,3.74,269,3.028,270,3.028,271,2.56,272,2.21,273,3.028,274,3.74,275,2.56,276,3.028]],["t/24",[28,0.186,38,0.751,74,1.463,89,2.133,100,2.346,101,1.138,174,0.884,177,0.641,202,3.345,227,1.024,229,2.441,230,1.655,260,1.655,261,3.345,276,3.345,277,4.131]],["t/27",[2,1.037,3,0.606,14,1.995,19,0.41,20,1.081,22,1.595,23,2.439,24,0.702,26,1.755,28,0.214,29,0.6,30,0.903,32,1.141,36,0.283,38,0.876,41,1.403,44,1.037,46,0.908,47,0.731,48,0.743,49,1.595,53,0.903,54,1.653,55,1.46,59,0.831,60,0.831,63,1.416,64,1.416,65,1.416,74,1.46,75,0.915,81,1.033,82,0.53,83,0.702,84,1.374,85,1.564,86,1.789,87,0.702,88,0.702,90,0.831,91,0.606,92,1.416,93,1.033,95,1.416,100,0.466,101,0.283,110,1.033,117,1.033,122,2.28,129,2.366,130,1.847,131,0.702,132,0.702,136,1.35,137,2.256,138,0.903,139,1.033,142,2.189,146,2.122,153,1.037,155,1.393,157,1.197,162,2.189,165,2.189,174,0.491,175,0.411,176,1.35,177,0.159,182,1.033,183,0.702,184,0.606,185,0.702,190,1.197,194,1.416,195,2.607,200,0.53,206,0.831,209,0.702,210,1.033,211,1.081,213,1.197,215,0.606,216,0.702,220,1.037,222,1.416,227,0.78,230,0.701,234,0.53,240,0.53,253,0.702,260,1.081,262,1.816,263,1.701,269,1.416,270,0.831,271,0.702,272,1.35,273,0.831,275,0.702,278,2.285,279,1.026,280,1.026,281,1.416,282,1.197,283,1.026,284,1.026,285,1.026,286,1.026,287,2.452,288,3.027,289,2.698,290,1.026,291,1.026,292,1.748,293,1.026,294,1.026,295,1.197,296,1.026,297,1.026,298,1.026,299,1.026,300,1.748,301,1.748,302,1.026,303,2.285,304,2.698,305,3.027,306,0.702,307,1.026,308,1.026,309,2.185,310,1.026,311,1.026,312,1.026,313,1.026,314,0.831,315,1.748,316,1.026,317,1.026,318,2.285,319,1.748,320,1.748,321,0.831,322,1.026,323,1.026,324,1.026,325,2.698,326,0.831,327,1.026,328,1.416,329,1.026,330,1.748,331,1.748,332,1.416,333,2.698,334,1.748,335,1.026,336,1.026,337,0.831,338,3.517,339,1.026,340,1.026,341,0.831,342,1.026,343,1.748,344,1.026,345,1.026,346,1.026,347,1.748,348,2.698,349,1.026,350,1.026,351,1.026,352,2.698,353,1.026,354,1.026,355,1.026,356,1.026,357,1.026,358,2.285,359,1.026,360,1.026,361,1.748,362,1.026,363,1.026,364,1.748,365,1.026,366,1.026,367,1.026,368,1.026]],["t/30",[19,0.377,27,1.339,32,1.203,36,1.084,38,0.536,41,0.922,46,1.084,47,0.951,49,0.922,51,1.339,56,2.286,68,1.743,69,2.389,74,1.393,75,1.577,99,1.743,100,2.01,101,1.22,102,2.694,103,2.694,104,2.694,106,2.694,107,2.694,112,2.694,169,2.694,170,1.523,171,2.019,172,2.019,173,2.019,174,0.859,175,1.182,176,1.743,177,0.687,178,2.019,179,2.019,180,2.389,191,1.743,227,0.621,229,2.325,234,1.523,260,1.182,306,2.019,369,2.95,370,2.95,371,2.95,372,2.95,373,2.95,374,2.95,375,2.95,376,2.95,377,2.95,378,2.95,379,2.95]],["t/32",[19,0.283,26,1.506,28,0.23,29,0.728,32,0.698,41,1.037,47,0.801,77,2.27,82,1.712,96,2.27,101,0.913,155,1.712,174,0.852,175,1.329,177,0.825,182,1.96,184,1.96,211,1.329,227,1.076,230,1.981,235,2.193,236,2.27,238,1.96,240,1.712,257,1.96,262,2.193,263,2.193,272,1.96,275,2.27,282,2.27,295,2.27,341,2.685,380,3.316,381,3.316,382,3.316,383,3.316,384,2.685,385,3.316,386,3.316,387,3.316,388,3.316,389,3.316,390,3.316,391,3.316,392,3.316,393,4.248,394,3.316,395,3.316,396,3.316]],["t/34",[19,0.316,20,1.826,27,1.684,28,0.205,29,0.707,31,1.915,32,1.132,36,1.022,38,0.936,40,2.693,41,1.16,42,2.192,44,1.684,48,1.255,55,1.313,66,3.004,101,1.255,122,1.684,153,1.684,158,3.004,174,0.674,177,0.576,200,1.915,219,3.004,220,1.684,227,0.781,234,1.915,281,3.004,328,3.004,397,3.709,398,3.709]],["t/36",[19,0.344,20,1.615,23,1.579,26,1.83,28,0.24,29,0.626,32,1.009,35,1.389,41,0.957,46,0.843,47,0.739,49,0.957,74,1.083,89,1.579,153,1.389,155,1.579,170,1.579,174,0.556,177,0.475,200,1.579,211,1.226,227,0.849,230,2.121,236,2.094,237,2.477,238,3.022,239,3.651,240,1.579,249,2.477,253,3.086,262,2.081,263,2.081,272,2.382,282,2.094,332,2.477,337,2.477,384,2.477,399,2.477,400,3.059,401,3.059,402,3.059,403,3.059,404,3.059,405,2.477,406,3.059,407,3.059,408,2.094,409,2.477,410,2.477,411,3.059,412,2.477,413,3.059,414,3.059,415,3.059,416,3.059,417,3.059,418,3.059,419,3.059,420,3.059,421,3.059,422,3.059,423,3.059]],["t/39",[19,0.331,28,0.235,36,1.386,48,1.07,82,2.005,96,2.658,138,2.005,153,1.763,174,0.951,175,1.556,177,0.844,209,2.658,216,2.658,220,1.763,235,2.005,424,3.884,425,3.884,426,3.884,427,3.884,428,3.884,429,3.145]],["t/41",[19,0.379,28,0.228,29,0.752,36,1.224,38,0.648,48,0.981,68,2.627,75,1.428,84,1.618,89,1.84,101,1.335,136,2.106,170,1.84,174,0.968,177,0.811,211,1.428,220,1.618,227,1.068,229,2.106,230,1.428,234,1.84,235,1.84,257,2.106,260,1.428,410,2.886,429,2.886,430,3.564,431,3.564,432,3.564,433,3.564,434,3.564,435,3.564,436,2.886]],["t/43",[15,3.054,28,0.223,29,0.585,32,1.089,36,1.039,37,2.228,38,0.686,47,0.911,110,2.228,174,0.904,177,0.803,210,2.228,215,2.228,225,2.228,227,0.794,240,1.946,295,2.581,314,3.054,321,3.054,405,3.054,409,3.054,437,3.771,438,3.771,439,3.771,440,4.604,441,3.728,442,3.771,443,3.771,444,3.054]],["t/45",[24,2.57,28,0.169,36,1.034,38,0.683,48,1.265,49,1.436,138,1.938,139,2.219,175,1.505,177,0.583,215,2.219,227,0.79,233,3.143,257,2.219,271,3.395,287,3.041,306,2.57,326,3.041,399,3.041,408,2.57,412,3.041,444,3.041,445,3.718,446,3.755,447,3.755,448,3.755,449,3.041,450,3.755,451,4.592,452,4.017,453,3.755,454,3.755,455,3.755]],["t/47",[19,0.357,177,0.65,235,2.53,266,3.392,309,3.392,408,2.867,436,3.392,445,3.392,449,3.969,452,3.969,456,4.188,457,4.188,458,4.188,459,4.188]],["t/49",[19,0.346,26,1.842,28,0.216,29,0.63,99,2.398,177,0.796,191,2.398,195,2.094,210,2.398,227,1.013,233,2.777,441,3.286,460,4.057,461,4.057,462,4.057,463,4.057,464,4.811,465,4.057,466,4.057]]],"invertedIndex":[["",{"_index":32,"t":{"3":{"position":[[407,2],[476,2],[547,1],[602,2],[681,2],[779,2],[791,1],[829,1],[857,1],[884,1],[905,1],[930,1],[950,1],[972,1],[990,2],[1035,1]]},"5":{"position":[[746,2],[861,2],[940,2],[1135,1],[1196,1],[1256,1],[1305,1],[1369,1],[1611,1],[1730,1],[1811,1],[1941,1],[2068,1],[2163,1],[2285,1],[2421,1],[2535,1],[2629,1],[2757,1],[2928,1],[3090,1],[3213,1],[3332,1],[3428,1],[3559,1],[3688,1],[3785,1],[3901,1],[4021,1],[4179,1],[4271,1],[4408,1],[4535,1],[4700,1],[4826,1],[4948,1],[5047,1],[5144,1],[5252,2],[5255,2],[5258,2],[5261,2],[5264,2],[5267,2],[5270,2],[5273,2],[5276,2],[5279,2],[5282,2],[5285,2],[5303,1],[5337,1],[5370,1],[5417,1],[5436,1],[5461,1],[5484,1],[5517,1],[5550,1],[5596,1],[5615,1],[5640,1],[5659,1],[5661,1],[5692,1],[5709,1],[5744,1],[5777,1],[5825,1],[5844,1],[5869,1],[5891,1],[5927,1],[5929,1],[5938,1],[5955,1],[5991,1],[6024,1],[6073,1],[6092,1],[6117,1],[6140,1],[6171,1],[6204,1],[6248,1],[6267,1],[6292,1],[6315,1],[6353,1],[6386,1],[6437,1],[6456,1],[6481,1],[6503,1],[6539,1],[6541,1],[6550,1],[6552,2],[6555,2],[6558,2],[6561,2],[6564,2],[6567,2],[6570,2],[6573,2],[6576,2],[6579,2],[6582,2],[6585,2],[6625,1]]},"8":{"position":[[130,1],[157,1],[230,2]]},"11":{"position":[[220,1],[222,3],[248,3],[260,1],[262,3],[279,3],[289,1],[291,3],[315,3],[332,3]]},"13":{"position":[[439,2],[516,2],[587,1],[642,2],[721,2]]},"15":{"position":[[240,1],[301,1],[361,1],[410,1],[474,1],[639,1],[758,1],[839,1],[969,1],[1096,1],[1154,3],[1195,1],[1292,1],[1400,2],[1403,2],[1406,2],[1409,2],[1412,2],[1415,2],[1418,2],[1421,2],[1424,2],[1427,2],[1430,2],[1433,2],[1451,1],[1484,1],[1517,1],[1563,1],[1582,1],[1607,1],[1626,1],[1628,1],[1659,1],[1676,1],[1707,1],[1740,1],[1784,1],[1803,1],[1828,1],[1851,1],[1889,1],[1922,1],[1973,1],[1992,1],[2017,1],[2039,1],[2075,1],[2077,1],[2086,1],[2088,2],[2091,2],[2094,2],[2097,2],[2100,2],[2103,2],[2106,2],[2109,2],[2112,2],[2115,2],[2118,2],[2121,2],[2161,1],[2582,2],[2659,2],[2730,1],[2785,2],[2864,2],[3174,1],[3210,3],[3251,1],[3401,1],[3479,1],[3558,1]]},"27":{"position":[[246,2],[321,2],[510,1],[1598,1],[1600,3],[1626,3],[1638,1],[1640,3],[1657,3],[1667,1],[1669,3],[1693,3],[1710,3],[4426,3],[4437,1],[4439,3],[4448,1],[4450,3],[4467,3],[4476,1],[4478,3],[4487,1],[4489,3],[4513,3],[4529,3],[4607,3],[5424,3],[5433,3],[5444,1],[5446,3],[5463,3],[5472,1],[5474,3],[5498,3],[5514,3],[5592,3],[6233,3],[6242,3],[6255,1],[6257,3],[6268,1],[6270,1],[6272,3],[6289,1],[6291,3],[6300,1],[6302,1],[6304,3],[6328,1],[6330,3],[6346,1],[6348,3],[6365,3]]},"30":{"position":[[198,1],[306,2],[309,2],[312,2],[315,2],[318,2],[321,2],[324,2],[327,2],[330,2],[333,2],[336,2],[339,2],[357,1],[391,1],[424,1],[457,3],[461,2],[464,2],[467,2],[470,2],[473,2],[476,2],[479,2],[482,2],[485,2],[488,2],[491,2],[494,2],[534,1]]},"32":{"position":[[567,2]]},"34":{"position":[[323,1],[325,3],[342,1],[344,3],[378,1],[380,3]]},"36":{"position":[[282,1],[554,2],[583,2],[612,2]]},"43":{"position":[[45,1],[145,1],[158,2],[196,2]]}}}],["0.1.0",{"_index":114,"t":{"5":{"position":[[1213,5]]},"15":{"position":[[318,5]]}}}],["0400",{"_index":106,"t":{"5":{"position":[[1124,5],[1185,5],[1245,5],[1358,5],[1600,5],[1719,5],[1800,5],[1930,5],[2057,5],[2152,5],[2274,5],[2410,5],[2524,5],[2618,5],[2746,5],[2917,5],[3079,5],[3202,5],[3321,5],[3417,5],[3548,5],[3677,5],[3774,5],[3890,5],[4010,5],[4168,5],[4260,5],[4397,5],[4524,5],[4689,5],[4815,5],[4937,5],[5036,5],[5133,5],[6614,5]]},"15":{"position":[[229,5],[290,5],[350,5],[463,5],[628,5],[747,5],[828,5],[958,5],[1085,5],[1184,5],[1281,5],[2150,5],[3240,5],[3331,5],[3468,5],[3547,5]]},"30":{"position":[[187,5],[523,5]]}}}],["08",{"_index":103,"t":{"5":{"position":[[1104,2],[1165,2],[1225,2],[1338,2],[1580,2],[1699,2],[1780,2],[1910,2],[2037,2],[2132,2],[2254,2],[2390,2],[2504,2],[2598,2],[2726,2],[2897,2],[3059,2],[3182,2],[3301,2],[3397,2],[3528,2],[3657,2],[3754,2],[3870,2],[3990,2],[4148,2],[4240,2],[4377,2],[4504,2],[4669,2],[4795,2],[4917,2],[5016,2],[5113,2],[6594,2]]},"15":{"position":[[209,2],[270,2],[330,2],[443,2],[608,2],[727,2],[808,2],[938,2],[1065,2],[1164,2],[1261,2],[2130,2],[3220,2],[3311,2],[3448,2],[3527,2]]},"30":{"position":[[167,2],[503,2]]}}}],["1",{"_index":144,"t":{"5":{"position":[[2326,1],[3133,1],[3940,1],[4454,1],[4746,1]]}}}],["11",{"_index":104,"t":{"5":{"position":[[1107,2],[1168,2],[1228,2],[1341,2],[1583,2],[1702,2],[1783,2],[1913,2],[2040,2],[2135,2],[2257,2],[2393,2],[2507,2],[2601,2],[2729,2],[2900,2],[3062,2],[3185,2],[3304,2],[3400,2],[3531,2],[3660,2],[3757,2],[3873,2],[3993,2],[4151,2],[4243,2],[4380,2],[4507,2],[4672,2],[4798,2],[4920,2],[5019,2],[5116,2],[6597,2]]},"15":{"position":[[212,2],[273,2],[333,2],[446,2],[611,2],[730,2],[811,2],[941,2],[1068,2],[1167,2],[1264,2],[2133,2],[3223,2],[3314,2],[3451,2],[3530,2]]},"30":{"position":[[170,2],[506,2]]}}}],["14:06:19.080",{"_index":105,"t":{"5":{"position":[[1110,12]]},"15":{"position":[[215,12]]}}}],["14:06:19.094",{"_index":111,"t":{"5":{"position":[[1171,12]]},"15":{"position":[[276,12]]}}}],["14:06:19.095",{"_index":115,"t":{"5":{"position":[[1231,12]]},"15":{"position":[[336,12]]}}}],["14:06:19.096",{"_index":119,"t":{"5":{"position":[[1344,12],[1586,12]]},"15":{"position":[[449,12],[614,12]]}}}],["14:06:19.097",{"_index":133,"t":{"5":{"position":[[1705,12],[1786,12]]},"15":{"position":[[733,12],[814,12]]}}}],["14:06:19.103",{"_index":134,"t":{"5":{"position":[[1916,12],[2043,12]]},"15":{"position":[[944,12],[1071,12]]}}}],["14:06:19.104",{"_index":141,"t":{"5":{"position":[[2138,12]]}}}],["14:06:19.107",{"_index":143,"t":{"5":{"position":[[2260,12],[2396,12]]}}}],["14:06:19.108",{"_index":148,"t":{"5":{"position":[[2510,12],[2604,12]]}}}],["14:06:19.109",{"_index":150,"t":{"5":{"position":[[2732,12]]}}}],["14:06:19.110",{"_index":152,"t":{"5":{"position":[[2903,12]]}}}],["14:06:19.111",{"_index":156,"t":{"5":{"position":[[3065,12],[3188,12],[3307,12],[3403,12]]}}}],["14:06:19.112",{"_index":160,"t":{"5":{"position":[[3534,12],[3663,12]]}}}],["14:06:19.113",{"_index":161,"t":{"5":{"position":[[3760,12]]}}}],["14:06:19.114",{"_index":163,"t":{"5":{"position":[[3876,12],[3996,12]]}}}],["14:06:19.115",{"_index":164,"t":{"5":{"position":[[4154,12],[4246,12]]}}}],["14:06:19.116",{"_index":166,"t":{"5":{"position":[[4383,12],[4510,12]]}}}],["14:06:19.117",{"_index":167,"t":{"5":{"position":[[4675,12],[4801,12],[4923,12]]}}}],["14:06:19.118",{"_index":168,"t":{"5":{"position":[[5022,12]]},"15":{"position":[[1170,12]]}}}],["14:06:19.119",{"_index":169,"t":{"5":{"position":[[5119,12],[6600,12]]},"15":{"position":[[1267,12],[2136,12]]},"30":{"position":[[173,12],[509,12]]}}}],["17:46:54.030",{"_index":246,"t":{"15":{"position":[[3226,12]]}}}],["17:46:54.032",{"_index":247,"t":{"15":{"position":[[3317,12]]}}}],["17:46:54.411",{"_index":252,"t":{"15":{"position":[[3454,12],[3533,12]]}}}],["2",{"_index":232,"t":{"15":{"position":[[522,1]]}}}],["2025",{"_index":102,"t":{"5":{"position":[[1098,5],[1159,5],[1219,5],[1332,5],[1574,5],[1693,5],[1774,5],[1904,5],[2031,5],[2126,5],[2248,5],[2384,5],[2498,5],[2592,5],[2720,5],[2891,5],[3053,5],[3176,5],[3295,5],[3391,5],[3522,5],[3651,5],[3748,5],[3864,5],[3984,5],[4142,5],[4234,5],[4371,5],[4498,5],[4663,5],[4789,5],[4911,5],[5010,5],[5107,5],[6588,5]]},"15":{"position":[[203,5],[264,5],[324,5],[437,5],[602,5],[721,5],[802,5],[932,5],[1059,5],[1158,5],[1255,5],[2124,5],[3214,5],[3305,5],[3442,5],[3521,5]]},"30":{"position":[[161,5],[497,5]]}}}],["3",{"_index":151,"t":{"5":{"position":[[2800,1]]},"15":{"position":[[1245,1]]}}}],["3a6btipzyebud5ebsa9ud5ebud5ebhijyxt5sc",{"_index":243,"t":{"15":{"position":[[3020,38]]}}}],["6",{"_index":121,"t":{"5":{"position":[[1417,1],[5097,1]]}}}],["_glob",{"_index":312,"t":{"27":{"position":[[2160,6]]}}}],["abov",{"_index":95,"t":{"5":{"position":[[618,5]]},"27":{"position":[[3875,5],[6420,5]]}}}],["account",{"_index":296,"t":{"27":{"position":[[1225,7]]}}}],["action",{"_index":452,"t":{"45":{"position":[[165,7],[301,8],[333,7]]},"47":{"position":[[49,7],[141,7]]}}}],["activ",{"_index":391,"t":{"32":{"position":[[592,8]]}}}],["add",{"_index":240,"t":{"15":{"position":[[2470,3]]},"27":{"position":[[2617,4]]},"32":{"position":[[442,3]]},"36":{"position":[[412,3]]},"43":{"position":[[288,3]]}}}],["addit",{"_index":293,"t":{"27":{"position":[[914,10]]}}}],["addition",{"_index":336,"t":{"27":{"position":[[3955,13]]}}}],["additional_env_fil",{"_index":188,"t":{"5":{"position":[[5906,20],[6518,20]]},"15":{"position":[[2054,20]]}}}],["admin",{"_index":386,"t":{"32":{"position":[[347,5]]}}}],["advantag",{"_index":400,"t":{"36":{"position":[[23,9]]}}}],["afolder/compose.yaml",{"_index":324,"t":{"27":{"position":[[2567,22]]}}}],["along",{"_index":340,"t":{"27":{"position":[[4182,5]]}}}],["alreadi",{"_index":77,"t":{"5":{"position":[[110,7]]},"11":{"position":[[16,7]]},"32":{"position":[[659,7]]}}}],["altern",{"_index":458,"t":{"47":{"position":[[72,14]]}}}],["alway",{"_index":369,"t":{"30":{"position":[[8,6]]}}}],["annot",{"_index":97,"t":{"5":{"position":[[645,12]]}}}],["anoth",{"_index":73,"t":{"5":{"position":[[34,7]]}}}],["anotheruser/immich",{"_index":351,"t":{"27":{"position":[[4880,18]]}}}],["api",{"_index":230,"t":{"15":{"position":[[13,3],[2262,3],[2435,3],[3265,4],[3358,4],[3493,4],[3572,4]]},"22":{"position":[[254,4]]},"24":{"position":[[138,3]]},"27":{"position":[[3036,3],[3979,3]]},"32":{"position":[[74,4],[277,3],[328,3],[601,3]]},"36":{"position":[[170,3],[200,4],[205,3],[302,3],[393,3],[481,4],[593,3],[622,3]]},"41":{"position":[[438,3]]}}}],["api_key",{"_index":413,"t":{"36":{"position":[[575,7]]}}}],["api_key=k",{"_index":242,"t":{"15":{"position":[[3010,9]]}}}],["api_secret",{"_index":414,"t":{"36":{"position":[[601,10]]}}}],["api_secret=",{"_index":244,"t":{"15":{"position":[[3061,12]]}}}],["app",{"_index":112,"t":{"5":{"position":[[1198,5],[1258,5],[1371,5],[1613,5],[1732,5],[1813,5],[1943,5],[2070,5],[2165,5],[2287,5],[2423,5],[2537,5],[2631,5],[2759,5],[2930,5],[3092,5],[3215,5],[3334,5],[3430,5],[3561,5],[3690,5],[3787,5],[3903,5],[4023,5],[4181,5],[4273,5],[4410,5],[4537,5],[4702,5],[4828,5],[4950,5],[5049,5],[5146,5],[6627,5]]},"15":{"position":[[303,5],[363,5],[476,5],[641,5],[760,5],[841,5],[971,5],[1098,5],[1197,5],[1294,5],[2163,5],[3253,5],[3346,5],[3481,5],[3560,5]]},"30":{"position":[[200,5],[536,5]]}}}],["append",{"_index":393,"t":{"32":{"position":[[626,6],[682,6]]}}}],["applic",{"_index":279,"t":{"27":{"position":[[140,10]]}}}],["arm64",{"_index":6,"t":{"3":{"position":[[56,5]]}}}],["assumpt",{"_index":308,"t":{"27":{"position":[[2029,11]]}}}],["attach",{"_index":212,"t":{"11":{"position":[[443,8]]}}}],["attempt",{"_index":397,"t":{"34":{"position":[[19,7]]}}}],["auto",{"_index":270,"t":{"22":{"position":[[104,4]]},"27":{"position":[[1295,4]]}}}],["auto_upd",{"_index":183,"t":{"5":{"position":[[5424,11],[5603,11],[5832,11],[6080,11],[6255,11],[6444,11]]},"15":{"position":[[1570,11],[1791,11],[1980,11]]},"27":{"position":[[1281,11]]}}}],["auto_update=fals",{"_index":61,"t":{"3":{"position":[[887,17]]}}}],["automat",{"_index":343,"t":{"27":{"position":[[4231,13],[5136,13]]}}}],["avail",{"_index":10,"t":{"3":{"position":[[80,9]]}}}],["back",{"_index":464,"t":{"49":{"position":[[149,6],[200,6]]}}}],["base",{"_index":300,"t":{"27":{"position":[[1353,5],[3606,5]]}}}],["befor",{"_index":381,"t":{"32":{"position":[[196,6]]}}}],["behavior",{"_index":275,"t":{"22":{"position":[[282,9]]},"27":{"position":[[2240,8]]},"32":{"position":[[633,8]]}}}],["below",{"_index":281,"t":{"27":{"position":[[170,6],[2214,6]]},"34":{"position":[[271,6]]}}}],["between",{"_index":172,"t":{"5":{"position":[[5166,7]]},"15":{"position":[[1314,7]]},"30":{"position":[[220,7]]}}}],["bi",{"_index":462,"t":{"49":{"position":[[129,2]]}}}],["bind",{"_index":219,"t":{"13":{"position":[[75,4]]},"34":{"position":[[193,4]]}}}],["branch",{"_index":334,"t":{"27":{"position":[[3826,6],[3854,6]]}}}],["build",{"_index":205,"t":{"8":{"position":[[241,5]]}}}],["built",{"_index":3,"t":{"3":{"position":[[26,5]]},"5":{"position":[[5073,5]]},"15":{"position":[[1221,5]]},"27":{"position":[[3700,5]]}}}],["bulk",{"_index":430,"t":{"41":{"position":[[100,4]]}}}],["button",{"_index":449,"t":{"45":{"position":[[97,6]]},"47":{"position":[[23,6],[110,6]]}}}],["cd",{"_index":198,"t":{"8":{"position":[[132,2]]}}}],["chang",{"_index":436,"t":{"41":{"position":[[517,8]]},"47":{"position":[[103,6]]}}}],["check",{"_index":215,"t":{"11":{"position":[[524,5]]},"27":{"position":[[3808,7]]},"43":{"position":[[276,5]]},"45":{"position":[[43,6]]}}}],["choos",{"_index":321,"t":{"27":{"position":[[2493,6]]},"43":{"position":[[132,6]]}}}],["clear",{"_index":378,"t":{"30":{"position":[[680,5]]}}}],["click",{"_index":408,"t":{"36":{"position":[[292,5]]},"45":{"position":[[79,5]]},"47":{"position":[[0,5]]}}}],["clone",{"_index":192,"t":{"8":{"position":[[0,5],[80,5]]}}}],["combin",{"_index":368,"t":{"27":{"position":[[6474,7]]}}}],["commit",{"_index":428,"t":{"39":{"position":[[251,6]]}}}],["common",{"_index":278,"t":{"27":{"position":[[78,6],[3141,6],[6487,6]]}}}],["complet",{"_index":140,"t":{"5":{"position":[[2117,8],[2583,8],[3382,8],[3739,8],[4225,8],[5001,8]]},"15":{"position":[[1145,8]]}}}],["compos",{"_index":75,"t":{"5":{"position":[[56,7],[281,7],[413,7],[1064,7],[1637,7],[1837,9],[1859,9],[1967,9],[2018,7],[2094,9],[2343,7],[2817,7],[3638,7],[3957,7],[4471,7],[5305,9]]},"11":{"position":[[170,7],[388,7]]},"15":{"position":[[176,7],[665,7],[865,9],[887,9],[995,9],[1046,7],[1122,9],[3183,7]]},"20":{"position":[[137,7]]},"27":{"position":[[1366,7],[2257,7],[3358,7]]},"30":{"position":[[359,9],[713,7]]},"41":{"position":[[154,7]]}}}],["compose,dock",{"_index":131,"t":{"5":{"position":[[1656,18]]},"15":{"position":[[684,18]]},"27":{"position":[[733,18]]}}}],["compose.dev.yaml",{"_index":317,"t":{"27":{"position":[[2372,16]]}}}],["compose.y(a)ml",{"_index":315,"t":{"27":{"position":[[2297,14],[2323,14]]}}}],["compose.yaml",{"_index":146,"t":{"5":{"position":[[2371,12],[2485,12],[2831,12],[2851,12],[2878,12],[2977,12],[3971,12],[4066,12],[4485,12],[4587,12],[5678,13]]},"11":{"position":[[266,12],[302,12],[336,12]]},"13":{"position":[[16,12]]},"15":{"position":[[1645,13],[2499,13]]},"20":{"position":[[154,14]]},"27":{"position":[[1383,14],[1644,12],[1680,12],[1714,12],[2053,12],[2450,12],[2475,12],[2547,14],[3375,14],[4454,12],[4500,12],[4533,12],[5450,12],[5485,12],[5518,12],[6276,12],[6315,12],[6352,12]]}}}],["compose.yml",{"_index":21,"t":{"3":{"position":[[248,12],[326,11]]},"5":{"position":[[599,11],[665,11]]}}}],["compose_file_glob",{"_index":64,"t":{"3":{"position":[[953,18]]},"27":{"position":[[713,17],[2412,17]]}}}],["compose}*.y?(a)ml",{"_index":132,"t":{"5":{"position":[[1675,17]]},"15":{"position":[[703,17]]},"27":{"position":[[752,17]]}}}],["config",{"_index":139,"t":{"5":{"position":[[2110,6],[2576,6],[3375,6],[3732,6],[4218,6],[4994,6],[5085,7]]},"15":{"position":[[1138,6],[1233,7]]},"27":{"position":[[837,6],[944,6]]},"45":{"position":[[454,6]]}}}],["configur",{"_index":26,"t":{"3":{"position":[[311,14]]},"18":{"position":[[65,14]]},"27":{"position":[[91,14],[2200,13],[2741,10],[3094,14],[3154,13],[3595,10],[3986,10],[6435,14],[6500,13]]},"32":{"position":[[249,13]]},"36":{"position":[[69,9],[397,14]]},"49":{"position":[[183,13]]}}}],["connect",{"_index":431,"t":{"41":{"position":[[129,7]]}}}],["consol",{"_index":229,"t":{"15":{"position":[[0,7]]},"24":{"position":[[100,8]]},"30":{"position":[[62,7],[142,7]]},"41":{"position":[[273,7]]}}}],["contain",{"_index":220,"t":{"13":{"position":[[111,9]]},"20":{"position":[[176,10]]},"27":{"position":[[3282,10],[3340,10],[3735,8]]},"34":{"position":[[222,9]]},"39":{"position":[[31,10]]},"41":{"position":[[172,10]]}}}],["content",{"_index":175,"t":{"5":{"position":[[5217,8]]},"15":{"position":[[1365,8]]},"27":{"position":[[418,8]]},"30":{"position":[[271,8]]},"32":{"position":[[188,7]]},"39":{"position":[[363,8]]},"45":{"position":[[421,8]]}}}],["continu",{"_index":256,"t":{"15":{"position":[[3667,8]]}}}],["cool",{"_index":51,"t":{"3":{"position":[[669,4]]},"5":{"position":[[212,4],[472,4],[928,4],[5343,4],[5523,4],[5750,4],[5997,4],[6177,4],[6359,4]]},"11":{"position":[[101,4],[458,4]]},"13":{"position":[[709,4]]},"15":{"position":[[1490,4],[1713,4],[1895,4],[2852,4]]},"30":{"position":[[397,4]]}}}],["copi",{"_index":170,"t":{"5":{"position":[[5152,4]]},"15":{"position":[[1300,4]]},"30":{"position":[[206,4]]},"36":{"position":[[364,4]]},"41":{"position":[[260,4]]}}}],["correct",{"_index":201,"t":{"8":{"position":[[176,7]]}}}],["correctli",{"_index":228,"t":{"13":{"position":[[360,9]]}}}],["creat",{"_index":227,"t":{"13":{"position":[[321,6]]},"15":{"position":[[2189,6],[2425,6],[3149,6],[3512,8]]},"24":{"position":[[46,7],[142,7]]},"27":{"position":[[7,6],[3064,8],[4724,7],[4816,7],[4914,7],[5666,7],[5781,7],[5901,7]]},"30":{"position":[[571,8]]},"32":{"position":[[27,6],[101,6],[148,8],[315,8],[356,6]]},"34":{"position":[[433,8]]},"36":{"position":[[160,6],[345,6]]},"41":{"position":[[105,8],[217,7],[319,6],[352,6]]},"43":{"position":[[65,6]]},"45":{"position":[[286,7]]},"49":{"position":[[57,7],[113,6]]}}}],["create/modifi",{"_index":396,"t":{"32":{"position":[[744,13]]}}}],["creating/modifying/delet",{"_index":426,"t":{"39":{"position":[[150,27]]}}}],["creation",{"_index":402,"t":{"36":{"position":[[213,8]]}}}],["cross",{"_index":0,"t":{"3":{"position":[[0,5]]}}}],["current",{"_index":82,"t":{"5":{"position":[[239,9]]},"11":{"position":[[128,9]]},"27":{"position":[[3800,7]]},"32":{"position":[[295,10]]},"39":{"position":[[310,9]]}}}],["dashboard",{"_index":437,"t":{"43":{"position":[[15,9]]}}}],["debug",{"_index":109,"t":{"5":{"position":[[1144,5]]},"15":{"position":[[249,5]]}}}],["declar",{"_index":427,"t":{"39":{"position":[[225,8]]}}}],["default",{"_index":155,"t":{"5":{"position":[[3045,7],[4134,7],[4655,7]]},"22":{"position":[[57,8]]},"27":{"position":[[214,7],[2271,7],[2601,7],[6551,7]]},"32":{"position":[[531,7]]},"36":{"position":[[523,7]]}}}],["defin",{"_index":225,"t":{"13":{"position":[[246,6]]},"18":{"position":[[109,7]]},"22":{"position":[[123,6],[202,6],[298,6]]},"43":{"position":[[150,7]]}}}],["delet",{"_index":441,"t":{"43":{"position":[[169,6],[231,6]]},"49":{"position":[[37,6]]}}}],["descript",{"_index":282,"t":{"27":{"position":[[222,11],[6559,11]]},"32":{"position":[[539,11]]},"36":{"position":[[531,11]]}}}],["desir",{"_index":453,"t":{"45":{"position":[[354,7]]}}}],["detail",{"_index":314,"t":{"27":{"position":[[2249,7]]},"43":{"position":[[119,7]]}}}],["detect",{"_index":305,"t":{"27":{"position":[[1982,10],[2226,9],[2920,7],[3509,8],[4245,9]]}}}],["differ",{"_index":357,"t":{"27":{"position":[[5325,9]]}}}],["dir",{"_index":116,"t":{"5":{"position":[[1280,3],[1872,3],[2222,3],[2692,3],[3493,3],[3840,3],[4340,3]]},"15":{"position":[[385,3],[900,3]]}}}],["direct",{"_index":463,"t":{"49":{"position":[[132,12]]}}}],["directli",{"_index":236,"t":{"15":{"position":[[2284,8],[2365,8]]},"32":{"position":[[18,8]]},"36":{"position":[[126,9]]}}}],["directori",{"_index":55,"t":{"3":{"position":[[729,9]]},"5":{"position":[[988,9]]},"8":{"position":[[66,9]]},"13":{"position":[[332,9],[769,9]]},"15":{"position":[[2912,9]]},"22":{"position":[[185,10]]},"27":{"position":[[335,9],[1816,9],[1868,9],[1925,9],[4585,10],[4953,10],[5570,10],[5755,10],[5870,10],[5992,10],[6132,9]]},"34":{"position":[[126,9]]}}}],["disabl",{"_index":440,"t":{"43":{"position":[[161,7],[214,8]]}}}],["doc",{"_index":217,"t":{"11":{"position":[[553,4]]}}}],["docker",{"_index":74,"t":{"5":{"position":[[49,6],[399,6],[406,6],[421,6],[592,6],[658,6],[1057,6],[2844,6]]},"11":{"position":[[295,6]]},"15":{"position":[[63,6],[169,6],[3176,6]]},"20":{"position":[[72,6],[130,6],[169,6]]},"24":{"position":[[81,7]]},"27":{"position":[[1359,6],[1673,6],[2316,6],[2468,6],[3196,6],[3351,6],[4493,6],[4596,6],[5478,6],[5581,6],[6308,6]]},"30":{"position":[[120,6],[706,6]]},"36":{"position":[[834,6]]}}}],["docker.io/foxxmd/komodo",{"_index":16,"t":{"3":{"position":[[139,23]]}}}],["docker/dock",{"_index":145,"t":{"5":{"position":[[2357,13],[2471,13],[2864,13],[5663,14]]},"15":{"position":[[1630,14]]}}}],["dockerhub",{"_index":11,"t":{"3":{"position":[[97,9]]}}}],["dockg",{"_index":83,"t":{"5":{"position":[[255,6]]},"11":{"position":[[144,6]]},"27":{"position":[[1535,6]]}}}],["docs:instal",{"_index":204,"t":{"8":{"position":[[217,12]]}}}],["domain",{"_index":339,"t":{"27":{"position":[[4156,6]]}}}],["done",{"_index":191,"t":{"5":{"position":[[6633,5]]},"15":{"position":[[2169,5]]},"30":{"position":[[542,5]]},"49":{"position":[[17,4]]}}}],["doubl",{"_index":443,"t":{"43":{"position":[[269,6]]}}}],["e",{"_index":90,"t":{"5":{"position":[[454,1],[486,1]]},"27":{"position":[[4612,1]]}}}],["each",{"_index":309,"t":{"27":{"position":[[2104,4],[2968,4],[3497,4],[5296,4]]},"47":{"position":[[125,4]]}}}],["easier",{"_index":379,"t":{"30":{"position":[[698,7]]}}}],["entir",{"_index":465,"t":{"49":{"position":[[169,6]]}}}],["env",{"_index":41,"t":{"3":{"position":[[532,3],[1020,3]]},"5":{"position":[[1284,4],[1756,3],[1766,7],[3135,3],[3162,8],[3171,4],[3286,3],[4748,3],[4775,8],[4784,4],[4902,3],[5931,6],[6543,6]]},"13":{"position":[[572,3]]},"15":{"position":[[389,4],[784,3],[794,7],[2079,6],[2715,3]]},"27":{"position":[[201,3],[436,4],[860,7],[925,3],[992,4],[1071,4],[2070,4],[2430,3],[2590,4],[2626,4],[2708,3],[2717,4],[2822,4],[2834,3],[6538,3]]},"30":{"position":[[81,3]]},"32":{"position":[[518,3]]},"34":{"position":[[80,3]]},"36":{"position":[[510,3]]}}}],["env_file_glob",{"_index":65,"t":{"3":{"position":[[975,14]]},"27":{"position":[[844,13],[2694,13]]}}}],["env_file_path",{"_index":187,"t":{"5":{"position":[[5877,13],[6489,13]]},"15":{"position":[[2025,13]]}}}],["environ",{"_index":44,"t":{"3":{"position":[[567,12]]},"5":{"position":[[826,12]]},"13":{"position":[[607,12]]},"15":{"position":[[2750,12]]},"27":{"position":[[457,12],[1109,11],[2777,11]]},"34":{"position":[[329,12]]}}}],["environment",{"_index":262,"t":{"18":{"position":[[123,13]]},"22":{"position":[[10,13]]},"27":{"position":[[112,13],[177,13],[2167,13],[3109,13],[3168,13],[6450,13],[6514,13]]},"32":{"position":[[452,13],[494,13]]},"36":{"position":[[422,13],[486,13]]}}}],["etc",{"_index":89,"t":{"5":{"position":[[392,6]]},"22":{"position":[[117,5],[196,5],[292,5],[358,5]]},"24":{"position":[[165,5]]},"36":{"position":[[136,6]]},"41":{"position":[[183,4]]}}}],["ex",{"_index":323,"t":{"27":{"position":[[2532,2]]}}}],["exampl",{"_index":20,"t":{"3":{"position":[[240,7]]},"5":{"position":[[64,7],[76,7]]},"8":{"position":[[267,9]]},"13":{"position":[[8,7]]},"27":{"position":[[1549,7],[4255,7],[5219,7],[6426,8]]},"34":{"position":[[263,7],[290,7]]},"36":{"position":[[717,8],[854,8]]}}}],["execut",{"_index":235,"t":{"15":{"position":[[2216,7],[2412,7],[3721,9]]},"32":{"position":[[130,7],[203,10]]},"39":{"position":[[127,7]]},"41":{"position":[[191,9]]},"47":{"position":[[10,7],[95,7]]}}}],["exist",{"_index":211,"t":{"11":{"position":[[379,8]]},"20":{"position":[[62,9]]},"22":{"position":[[264,8]]},"27":{"position":[[42,8],[983,8],[1335,9],[3307,9]]},"32":{"position":[[667,7]]},"36":{"position":[[41,8]]},"41":{"position":[[145,8]]}}}],["existing_sync",{"_index":392,"t":{"32":{"position":[[610,13]]}}}],["expiri",{"_index":411,"t":{"36":{"position":[[338,6]]}}}],["export",{"_index":276,"t":{"22":{"position":[[340,6]]},"24":{"position":[[121,6]]}}}],["fals",{"_index":184,"t":{"5":{"position":[[5438,5],[5463,5],[5617,5],[5642,5],[5846,5],[5871,5],[6094,5],[6119,5],[6269,5],[6294,5],[6458,5],[6483,5]]},"15":{"position":[[1584,5],[1609,5],[1805,5],[1830,5],[1994,5],[2019,5]]},"27":{"position":[[402,5]]},"32":{"position":[[570,5]]}}}],["field",{"_index":273,"t":{"22":{"position":[[139,6]]},"27":{"position":[[3561,6]]}}}],["file",{"_index":38,"t":{"3":{"position":[[506,4],[1007,4]]},"5":{"position":[[1264,5],[1377,6],[1619,6],[1645,4],[1738,6],[1819,6],[1949,6],[1994,5],[2076,6],[2171,6],[2293,6],[2328,5],[2429,6],[2543,6],[2637,6],[2765,6],[2802,5],[2936,6],[2971,5],[3098,6],[3139,5],[3221,6],[3290,4],[3340,6],[3436,6],[3567,6],[3614,5],[3696,6],[3793,6],[3909,6],[3942,5],[4029,6],[4060,5],[4187,6],[4279,6],[4416,6],[4456,5],[4543,6],[4581,5],[4708,6],[4752,5],[4834,6],[4906,4],[4956,6],[5055,6],[5211,5]]},"11":{"position":[[420,5]]},"13":{"position":[[29,4],[546,4]]},"15":{"position":[[369,5],[482,6],[647,6],[673,4],[766,6],[847,6],[977,6],[1022,5],[1104,6],[1203,6],[1359,5],[2689,4]]},"22":{"position":[[334,5]]},"24":{"position":[[116,4]]},"27":{"position":[[441,5],[806,5],[816,5],[904,5],[929,5],[997,5],[1314,5],[1401,5],[1976,5],[2075,5],[2221,4],[2265,5],[2338,5],[2504,4],[2595,5],[2631,5],[2722,4],[2911,5],[3933,5],[4927,5],[5914,5]]},"30":{"position":[[265,5]]},"34":{"position":[[68,4],[141,5],[166,4],[278,4]]},"41":{"position":[[291,4]]},"43":{"position":[[326,5]]},"45":{"position":[[441,5]]}}}],["file(",{"_index":147,"t":{"5":{"position":[[2462,8]]}}}],["file_path",{"_index":154,"t":{"5":{"position":[[3009,10],[4098,10],[4619,10],[5648,10]]},"15":{"position":[[1615,10]]}}}],["files_on_host",{"_index":181,"t":{"5":{"position":[[5403,13],[5582,13],[5811,13],[6059,13],[6234,13],[6423,13]]},"15":{"position":[[1549,13],[1770,13],[1959,13]]}}}],["files_on_server_dir=/filesonserv",{"_index":58,"t":{"3":{"position":[[794,34]]}}}],["filesonserv",{"_index":117,"t":{"5":{"position":[[1289,14],[1317,14]]},"13":{"position":[[124,14]]},"15":{"position":[[394,14],[422,14]]},"27":{"position":[[3260,14],[5100,14]]}}}],["filesonserver/compose.yaml",{"_index":123,"t":{"5":{"position":[[1428,27],[1876,27]]},"15":{"position":[[904,27]]}}}],["filesonserver/immich",{"_index":124,"t":{"5":{"position":[[1456,21],[2226,21]]},"15":{"position":[[533,21]]}}}],["filesonserver/jellyfin",{"_index":125,"t":{"5":{"position":[[1478,23],[2696,23]]}}}],["filesonserver/octoprint",{"_index":126,"t":{"5":{"position":[[1502,24],[3497,24]]}}}],["filesonserver/plex",{"_index":127,"t":{"5":{"position":[[1527,19],[3844,19]]},"15":{"position":[[555,19]]}}}],["filesonserver/uptim",{"_index":128,"t":{"5":{"position":[[1547,21],[4344,21]]},"15":{"position":[[575,21]]}}}],["find",{"_index":136,"t":{"5":{"position":[[1985,4],[3605,4]]},"15":{"position":[[1013,4]]},"27":{"position":[[540,7],[798,7],[896,7]]},"41":{"position":[[454,4]]}}}],["first",{"_index":382,"t":{"32":{"position":[[214,6]]}}}],["fit",{"_index":25,"t":{"3":{"position":[[302,3]]}}}],["folder",{"_index":122,"t":{"5":{"position":[[1419,8],[5099,7]]},"11":{"position":[[202,6],[515,8]]},"13":{"position":[[176,6],[211,6]]},"15":{"position":[[524,8],[1247,7]]},"27":{"position":[[369,7],[548,7],[573,6],[658,7],[683,6],[1479,7],[1504,7],[1565,6],[2119,7],[2663,7],[3213,6],[3332,7],[3464,7],[3489,7],[3502,6],[3685,6],[3757,6],[3903,6],[4372,6],[5080,6],[5160,7],[5301,6],[5347,6],[6045,7],[6079,7],[6197,6],[6596,6]]},"34":{"position":[[206,6]]}}}],["folder_glob",{"_index":286,"t":{"27":{"position":[[496,11]]}}}],["folder_ignore_glob",{"_index":290,"t":{"27":{"position":[[603,18]]}}}],["follow",{"_index":383,"t":{"32":{"position":[[221,6]]}}}],["form",{"_index":371,"t":{"30":{"position":[[35,4]]}}}],["found",{"_index":22,"t":{"3":{"position":[[261,5]]},"5":{"position":[[1847,5],[2198,5],[2320,5],[2666,5],[2794,5],[3127,5],[3466,5],[3818,5],[3934,5],[4311,5],[4448,5],[4740,5]]},"15":{"position":[[875,5]]},"27":{"position":[[430,5],[1007,6],[2637,5],[2730,5]]}}}],["foxxmd/komodo",{"_index":30,"t":{"3":{"position":[[370,13]]},"5":{"position":[[567,13],[709,13]]},"13":{"position":[[402,13]]},"15":{"position":[[2545,13]]},"27":{"position":[[4693,13],[5635,13]]}}}],["futur",{"_index":389,"t":{"32":{"position":[[427,8]]}}}],["gener",{"_index":48,"t":{"3":{"position":[[635,9]]},"5":{"position":[[894,9]]},"13":{"position":[[675,9]]},"15":{"position":[[126,9],[2818,9]]},"20":{"position":[[25,8]]},"27":{"position":[[1445,8],[3020,9],[3430,8],[6626,10]]},"34":{"position":[[40,9],[156,9]]},"39":{"position":[[271,10]]},"41":{"position":[[403,9]]},"45":{"position":[[222,9],[250,9]]}}}],["get",{"_index":377,"t":{"30":{"position":[[672,7]]}}}],["ghcr.io/foxxmd/komodo",{"_index":18,"t":{"3":{"position":[[193,21]]}}}],["git",{"_index":195,"t":{"8":{"position":[[76,3]]},"11":{"position":[[481,3],[538,3]]},"13":{"position":[[222,3]]},"27":{"position":[[1349,3],[3293,3],[3317,3],[3393,3],[3523,3],[3573,3],[3711,3],[3752,4],[3768,3],[4069,3],[4119,3],[4197,3],[4224,3],[4443,4],[4482,4],[4737,3],[4757,3],[4829,3],[4849,3],[5171,3],[5428,4],[5679,3],[5699,3],[5794,3],[5814,3],[5936,3],[6147,3],[6237,4]]},"49":{"position":[[145,3]]}}}],["git.mydomain.com",{"_index":348,"t":{"27":{"position":[[4771,16],[5713,16],[5828,16],[5950,16]]}}}],["git_stacks_dir",{"_index":364,"t":{"27":{"position":[[6159,14],[6571,14]]}}}],["git_stacks_dir=mystack",{"_index":367,"t":{"27":{"position":[[6387,23]]}}}],["github",{"_index":12,"t":{"3":{"position":[[107,6]]}}}],["github.com",{"_index":350,"t":{"27":{"position":[[4863,10]]}}}],["give",{"_index":410,"t":{"36":{"position":[[310,4]]},"41":{"position":[[14,5]]}}}],["given",{"_index":289,"t":{"27":{"position":[[580,5],[690,5],[1498,5],[3483,5]]}}}],["glob",{"_index":130,"t":{"5":{"position":[[1650,5],[1760,5],[2026,4],[2351,5],[2825,5],[3646,4],[3965,5],[4479,5]]},"15":{"position":[[678,5],[788,5],[1054,4]]},"27":{"position":[[516,4],[628,4],[774,4],[872,4]]}}}],["granular",{"_index":388,"t":{"32":{"position":[[411,8]]}}}],["guid",{"_index":72,"t":{"5":{"position":[[24,5],[42,6]]}}}],["handl",{"_index":353,"t":{"27":{"position":[[5031,6]]}}}],["header",{"_index":447,"t":{"45":{"position":[[58,8]]}}}],["here",{"_index":39,"t":{"3":{"position":[[511,4]]},"13":{"position":[[551,4]]},"15":{"position":[[2694,4]]}}}],["home/myuser/homelab",{"_index":86,"t":{"5":{"position":[[309,20]]},"11":{"position":[[226,21]]},"13":{"position":[[80,21]]},"27":{"position":[[1604,21],[1739,21],[4405,20],[5403,20],[6212,20]]}}}],["home/myuser/homelab/compos",{"_index":180,"t":{"5":{"position":[[5372,30]]},"30":{"position":[[426,30]]}}}],["home/myuser/homelab/immich",{"_index":87,"t":{"5":{"position":[[338,27],[5552,29]]},"15":{"position":[[1519,29]]},"27":{"position":[[1826,27]]}}}],["home/myuser/homelab/jellyfin",{"_index":186,"t":{"5":{"position":[[5779,31]]}}}],["home/myuser/homelab/octoprint",{"_index":189,"t":{"5":{"position":[[6026,32]]}}}],["home/myuser/homelab/plex",{"_index":88,"t":{"5":{"position":[[366,25],[6206,27]]},"15":{"position":[[1742,27]]},"27":{"position":[[1878,25]]}}}],["home/myuser/homelab/uptim",{"_index":190,"t":{"5":{"position":[[6388,28]]},"15":{"position":[[1924,28]]},"27":{"position":[[1935,27],[4964,27]]}}}],["home/myuser/homelab:/filesonserv",{"_index":93,"t":{"5":{"position":[[531,35]]},"13":{"position":[[480,35]]},"15":{"position":[[2623,35]]},"27":{"position":[[4657,35],[5599,35]]}}}],["home/myuser/homelab:/filesonserver:ro",{"_index":98,"t":{"5":{"position":[[787,38]]}}}],["homelab",{"_index":347,"t":{"27":{"position":[[4577,7],[5562,7]]}}}],["hopefulli",{"_index":387,"t":{"32":{"position":[[393,9]]}}}],["host",{"_index":53,"t":{"3":{"position":[[707,4]]},"5":{"position":[[966,4]]},"13":{"position":[[747,4]]},"15":{"position":[[2890,4]]},"27":{"position":[[352,4],[5372,4]]}}}],["host_parent_path",{"_index":284,"t":{"27":{"position":[[304,16]]}}}],["host_parent_path=/home/myuser/homelab",{"_index":91,"t":{"5":{"position":[[488,39],[1007,37]]},"13":{"position":[[253,37],[788,37]]},"15":{"position":[[2931,37]]},"27":{"position":[[4614,39]]}}}],["host_parent_path=/my/cool/path",{"_index":57,"t":{"3":{"position":[[748,30]]}}}],["host_parent_path=/my/parent/fold",{"_index":207,"t":{"8":{"position":[[299,34]]}}}],["http://192.168.0.100:9120",{"_index":419,"t":{"36":{"position":[[741,25]]}}}],["http://192.168.0.101:9120",{"_index":250,"t":{"15":{"position":[[3375,25],[3415,26]]}}}],["http://192.168.0.101:9120/resourc",{"_index":254,"t":{"15":{"position":[[3596,34]]}}}],["http://komodo",{"_index":422,"t":{"36":{"position":[[816,13]]}}}],["https://git.mydomain.com/myuser/homelab",{"_index":356,"t":{"27":{"position":[[5252,39]]}}}],["https://git.mydomain.com/myuser/immich",{"_index":345,"t":{"27":{"position":[[4292,38]]}}}],["https://github.com/anotheruser/plex",{"_index":346,"t":{"27":{"position":[[4331,35]]}}}],["https://github.com/foxxmd/komodo",{"_index":196,"t":{"8":{"position":[[86,32]]}}}],["https://komodo.mydomain.com",{"_index":420,"t":{"36":{"position":[[767,27]]}}}],["https://mykomodo.com",{"_index":421,"t":{"36":{"position":[[795,20]]}}}],["ie",{"_index":7,"t":{"3":{"position":[[62,3]]}}}],["ignor",{"_index":291,"t":{"27":{"position":[[651,6]]}}}],["imag",{"_index":2,"t":{"3":{"position":[[15,6],[90,6],[363,6]]},"5":{"position":[[702,6]]},"13":{"position":[[395,6]]},"15":{"position":[[2538,6]]},"22":{"position":[[87,6]]},"27":{"position":[[1163,5],[1210,5],[1273,7]]}}}],["image_registry_account",{"_index":60,"t":{"3":{"position":[[860,23]]},"27":{"position":[[1185,22]]}}}],["image_registry_provid",{"_index":59,"t":{"3":{"position":[[832,24]]},"27":{"position":[[1129,23]]}}}],["immedi",{"_index":360,"t":{"27":{"position":[[6065,9]]}}}],["immich",{"_index":142,"t":{"5":{"position":[[2189,8],[2210,8],[2311,8],[2447,8],[2561,8],[5486,8]]},"11":{"position":[[252,7]]},"15":{"position":[[1453,8]]},"27":{"position":[[1630,7],[1800,6],[4430,6],[4714,6],[5437,6],[5656,6],[5766,6],[6261,6]]}}}],["import",{"_index":29,"t":{"3":{"position":[[355,7]]},"5":{"position":[[446,6],[581,6],[694,7]]},"8":{"position":[[142,6]]},"11":{"position":[[361,6]]},"13":{"position":[[149,6],[301,6],[387,7]]},"15":{"position":[[87,6],[2227,6],[2492,6],[2530,7],[3139,6],[3284,7],[3737,6]]},"18":{"position":[[38,6]]},"27":{"position":[[596,6],[706,6],[2000,6],[2889,6],[4561,6],[4707,6],[5015,6],[5546,6],[5649,6]]},"32":{"position":[[7,6],[486,7],[721,6]]},"34":{"position":[[7,6],[315,7]]},"36":{"position":[[7,6],[456,6]]},"41":{"position":[[7,6],[237,7],[396,6]]},"43":{"position":[[303,6]]},"49":{"position":[[85,7]]}}}],["import.git",{"_index":197,"t":{"8":{"position":[[119,10]]}}}],["import:latest",{"_index":17,"t":{"3":{"position":[[163,13],[215,13],[384,13]]},"5":{"position":[[723,13]]},"13":{"position":[[416,13]]},"15":{"position":[[2559,13]]}}}],["includ",{"_index":417,"t":{"36":{"position":[[684,9]]}}}],["indic",{"_index":327,"t":{"27":{"position":[[2932,8]]}}}],["individu",{"_index":266,"t":{"20":{"position":[[103,10]]},"47":{"position":[[130,10]]}}}],["info",{"_index":107,"t":{"5":{"position":[[1130,4],[1191,4],[1251,4],[1364,4],[1606,4],[1725,4],[1806,4],[2063,4],[2158,4],[2280,4],[2416,4],[2530,4],[2624,4],[2752,4],[2923,4],[3085,4],[3208,4],[3327,4],[3423,4],[3683,4],[3780,4],[3896,4],[4016,4],[4174,4],[4266,4],[4403,4],[4530,4],[4695,4],[4821,4],[4943,4],[5042,4],[5139,4],[6620,4]]},"15":{"position":[[235,4],[296,4],[356,4],[469,4],[634,4],[753,4],[834,4],[1091,4],[1190,4],[1287,4],[2156,4],[3246,4],[3474,4],[3553,4]]},"30":{"position":[[193,4],[529,4]]}}}],["inform",{"_index":329,"t":{"27":{"position":[[3615,11]]}}}],["init",{"_index":108,"t":{"5":{"position":[[1137,6]]},"15":{"position":[[242,6]]}}}],["input",{"_index":261,"t":{"18":{"position":[[57,7]]},"24":{"position":[[59,7]]}}}],["instal",{"_index":79,"t":{"5":{"position":[[133,9]]},"8":{"position":[[41,7],[201,7]]},"11":{"position":[[39,9]]}}}],["instanc",{"_index":237,"t":{"15":{"position":[[2389,8]]},"36":{"position":[[57,8]]}}}],["instead",{"_index":213,"t":{"11":{"position":[[498,7]]},"15":{"position":[[2273,7]]},"27":{"position":[[2811,7],[3913,7]]}}}],["instruct",{"_index":384,"t":{"32":{"position":[[232,12]]},"36":{"position":[[222,12]]}}}],["intel/amd",{"_index":5,"t":{"3":{"position":[[40,11]]}}}],["interact",{"_index":274,"t":{"22":{"position":[[232,9]]}}}],["interim",{"_index":316,"t":{"27":{"position":[[2353,7]]}}}],["it'",{"_index":326,"t":{"27":{"position":[[2768,4]]},"45":{"position":[[70,4]]}}}],["jellyfin",{"_index":149,"t":{"5":{"position":[[2655,10],[2678,10],[2783,10],[2954,10],[3116,10],[3239,10],[3358,10],[5711,10]]}}}],["key",{"_index":238,"t":{"15":{"position":[[2439,3]]},"22":{"position":[[259,4]]},"32":{"position":[[332,3]]},"36":{"position":[[174,3],[209,3],[306,3],[356,3],[378,3],[597,3]]}}}],["ki",{"_index":260,"t":{"18":{"position":[[45,5]]},"20":{"position":[[13,2]]},"22":{"position":[[46,2],[226,2],[318,2]]},"24":{"position":[[24,2]]},"27":{"position":[[0,2],[1437,2],[1766,2],[3422,2]]},"30":{"position":[[0,2]]},"41":{"position":[[477,2]]}}}],["know",{"_index":226,"t":{"13":{"position":[[308,5]]}}}],["komodo",{"_index":28,"t":{"3":{"position":[[348,6],[605,6]]},"5":{"position":[[103,6],[170,6],[439,6],[687,6],[864,6],[3038,6],[3271,6],[4127,6],[4648,6],[4887,6]]},"8":{"position":[[135,6]]},"11":{"position":[[9,6],[76,6],[410,6]]},"13":{"position":[[142,6],[294,6],[347,6],[380,6],[645,6]]},"15":{"position":[[80,6],[2320,7],[2382,6],[2457,7],[2485,6],[2523,6],[2788,6],[3132,6],[3276,7],[3710,6]]},"18":{"position":[[31,6]]},"20":{"position":[[34,6]]},"22":{"position":[[70,6],[150,6],[247,6],[350,7]]},"24":{"position":[[131,6]]},"27":{"position":[[14,6],[265,6],[450,6],[589,6],[699,6],[1081,6],[1422,6],[1993,6],[2752,6],[2827,6],[2882,6],[3086,7],[3407,6],[3582,6],[3972,6],[4008,6],[4106,6],[4554,6],[5008,6],[5539,6]]},"32":{"position":[[0,6],[52,6],[270,6],[479,6],[714,6]]},"34":{"position":[[0,6],[308,6]]},"36":{"position":[[0,6],[50,6],[252,6],[449,6],[474,6],[557,6],[586,6],[615,6],[638,6]]},"39":{"position":[[75,6],[93,6],[191,6],[323,6]]},"41":{"position":[[0,6],[72,7],[230,6],[389,6]]},"43":{"position":[[8,6],[261,7],[296,6]]},"45":{"position":[[173,6]]},"49":{"position":[[78,6],[176,6]]}}}],["komodo'",{"_index":380,"t":{"32":{"position":[[65,8]]}}}],["komodo_env_nam",{"_index":63,"t":{"3":{"position":[[933,16]]},"27":{"position":[[951,15],[2866,15]]}}}],["komodo_url",{"_index":249,"t":{"15":{"position":[[3363,11]]},"36":{"position":[[543,10]]}}}],["komodo_url=http://192.168.0.101:9120",{"_index":241,"t":{"15":{"position":[[2971,36]]}}}],["komodoenv",{"_index":157,"t":{"5":{"position":[[3256,10],[4872,10],[5893,12],[6505,12]]},"15":{"position":[[2041,12]]},"27":{"position":[[969,10],[2800,10]]}}}],["kuma",{"_index":129,"t":{"5":{"position":[[1569,4],[4305,5],[4331,5],[4366,4],[4442,5],[4569,5],[4734,5],[4860,5],[4982,5],[6325,5],[6417,5]]},"11":{"position":[[326,5]]},"15":{"position":[[597,4],[1861,5],[1953,5]]},"27":{"position":[[1704,5],[1911,4],[1963,4],[4524,4],[4906,4],[4992,4],[5509,4],[5893,4],[6010,4],[6341,4]]}}}],["level",{"_index":288,"t":{"27":{"position":[[567,5],[677,5],[2650,5],[5063,5],[5201,5]]}}}],["link",{"_index":337,"t":{"27":{"position":[[4091,6]]},"36":{"position":[[91,6]]}}}],["local",{"_index":330,"t":{"27":{"position":[[3636,5],[3820,5]]}}}],["locat",{"_index":85,"t":{"5":{"position":[[298,7]]},"11":{"position":[[187,7]]},"27":{"position":[[296,7],[381,8],[5115,8]]}}}],["log",{"_index":100,"t":{"5":{"position":[[1080,3]]},"15":{"position":[[70,5],[104,3],[192,3],[3199,3]]},"22":{"position":[[326,4]]},"24":{"position":[[67,3],[89,5],[109,3]]},"27":{"position":[[2901,3]]},"30":{"position":[[127,4],[608,3],[729,3]]}}}],["log_toml=fals",{"_index":373,"t":{"30":{"position":[[85,15]]}}}],["look",{"_index":304,"t":{"27":{"position":[[1582,5],[2287,5],[4389,5],[5386,5]]}}}],["machin",{"_index":81,"t":{"5":{"position":[[158,7],[198,7],[228,7]]},"11":{"position":[[64,7],[117,7]]},"20":{"position":[[114,7]]},"27":{"position":[[69,8],[5377,8]]}}}],["made",{"_index":434,"t":{"41":{"position":[[480,4]]}}}],["make",{"_index":306,"t":{"27":{"position":[[2007,5]]},"30":{"position":[[666,5]]},"45":{"position":[[193,4]]}}}],["manual",{"_index":234,"t":{"15":{"position":[[2180,8]]},"27":{"position":[[2995,8]]},"30":{"position":[[562,8]]},"34":{"position":[[424,8]]},"41":{"position":[[343,8]]}}}],["match",{"_index":138,"t":{"5":{"position":[[2009,8],[2334,8],[2808,8],[3145,8],[3629,8],[3948,8],[4462,8],[4758,8]]},"15":{"position":[[1037,8]]},"27":{"position":[[4040,7],[4132,8]]},"39":{"position":[[209,7]]},"45":{"position":[[201,5]]}}}],["method",{"_index":224,"t":{"13":{"position":[[237,8]]}}}],["miss",{"_index":455,"t":{"45":{"position":[[378,7]]}}}],["mode",{"_index":110,"t":{"5":{"position":[[1150,5]]},"15":{"position":[[255,5]]},"27":{"position":[[1417,4],[3402,4]]},"43":{"position":[[139,4]]}}}],["modifi",{"_index":24,"t":{"3":{"position":[[286,9]]},"27":{"position":[[3004,8]]},"45":{"position":[[407,9]]}}}],["monorepo",{"_index":352,"t":{"27":{"position":[[4997,10],[5038,10],[6022,8],[6644,8]]}}}],["more",{"_index":96,"t":{"5":{"position":[[628,4]]},"32":{"position":[[406,4]]},"39":{"position":[[70,4]]}}}],["mount",{"_index":328,"t":{"27":{"position":[[3249,7],[5049,5]]},"34":{"position":[[198,5]]}}}],["multipl",{"_index":301,"t":{"27":{"position":[[1454,8],[3439,8]]}}}],["my/host/folder:/output",{"_index":398,"t":{"34":{"position":[[386,23]]}}}],["myprojects:/filesonserv",{"_index":34,"t":{"3":{"position":[[448,27]]}}}],["mystack",{"_index":365,"t":{"27":{"position":[[6246,8]]}}}],["myuser/homelab",{"_index":358,"t":{"27":{"position":[[5736,14],[5851,14],[5973,14]]}}}],["myuser/immich",{"_index":349,"t":{"27":{"position":[[4794,13]]}}}],["name",{"_index":47,"t":{"3":{"position":[[619,4]]},"5":{"position":[[184,4],[434,4],[878,4],[5298,4],[5479,4],[5704,4],[5950,4],[6135,4],[6310,4]]},"11":{"position":[[90,4]]},"13":{"position":[[659,4]]},"15":{"position":[[1446,4],[1671,4],[1846,4],[2802,4],[3300,4]]},"22":{"position":[[175,5]]},"27":{"position":[[253,4],[1045,4],[1155,4],[2361,5],[2838,4]]},"30":{"position":[[352,4],[653,4]]},"32":{"position":[[728,4]]},"36":{"position":[[320,4]]},"43":{"position":[[93,4]]}}}],["navig",{"_index":403,"t":{"36":{"position":[[235,8]]}}}],["navigi",{"_index":438,"t":{"43":{"position":[[25,9]]}}}],["need",{"_index":401,"t":{"36":{"position":[[152,4]]}}}],["nest",{"_index":359,"t":{"27":{"position":[[6015,6]]}}}],["network",{"_index":423,"t":{"36":{"position":[[841,8]]}}}],["new",{"_index":409,"t":{"36":{"position":[[298,3]]},"43":{"position":[[47,3]]}}}],["newer",{"_index":298,"t":{"27":{"position":[[1267,5]]}}}],["next",{"_index":459,"t":{"47":{"position":[[117,4]]}}}],["node",{"_index":202,"t":{"8":{"position":[[184,4],[334,4]]},"24":{"position":[[95,4]]}}}],["node'",{"_index":375,"t":{"30":{"position":[[135,6]]}}}],["non",{"_index":299,"t":{"27":{"position":[[1345,3]]}}}],["normal",{"_index":251,"t":{"15":{"position":[[3403,11]]}}}],["note",{"_index":385,"t":{"32":{"position":[[290,4]]}}}],["now",{"_index":233,"t":{"15":{"position":[[2175,4]]},"45":{"position":[[17,3],[144,3]]},"49":{"position":[[101,3]]}}}],["npm",{"_index":203,"t":{"8":{"position":[[197,3],[209,3],[233,3],[247,3]]}}}],["nvm",{"_index":199,"t":{"8":{"position":[[149,3]]}}}],["octoprint",{"_index":159,"t":{"5":{"position":[[3454,11],[3478,11],[3585,11],[3714,11],[5957,11]]}}}],["on",{"_index":209,"t":{"11":{"position":[[198,3]]},"27":{"position":[[2947,4]]},"39":{"position":[[63,3]]}}}],["open",{"_index":406,"t":{"36":{"position":[[267,4]]}}}],["option",{"_index":35,"t":{"3":{"position":[[479,9],[782,8]]},"5":{"position":[[633,7]]},"8":{"position":[[159,9]]},"13":{"position":[[519,9]]},"15":{"position":[[2662,9]]},"36":{"position":[[329,8]]}}}],["out",{"_index":216,"t":{"11":{"position":[[530,3]]},"27":{"position":[[3816,3]]},"39":{"position":[[342,3]]}}}],["output",{"_index":101,"t":{"5":{"position":[[1091,6]]},"15":{"position":[[22,6],[141,6],[2266,6],[2333,6]]},"18":{"position":[[84,7]]},"22":{"position":[[310,7]]},"24":{"position":[[74,6]]},"27":{"position":[[1782,6]]},"30":{"position":[[15,6],[626,6],[691,6]]},"32":{"position":[[84,6]]},"34":{"position":[[50,6],[283,6]]},"41":{"position":[[281,6],[296,6],[442,6]]}}}],["output:/output",{"_index":43,"t":{"3":{"position":[[550,16]]},"13":{"position":[[590,16]]},"15":{"position":[[2733,16]]}}}],["output_api_sync",{"_index":390,"t":{"32":{"position":[[551,15]]}}}],["output_dir",{"_index":40,"t":{"3":{"position":[[521,10]]},"13":{"position":[[561,10]]},"15":{"position":[[2704,10]]},"34":{"position":[[84,10],[240,10]]}}}],["output_dir=/output",{"_index":66,"t":{"3":{"position":[[1038,18]]},"34":{"position":[[350,18]]}}}],["over",{"_index":320,"t":{"27":{"position":[[2463,4],[2562,4]]}}}],["overridden",{"_index":318,"t":{"27":{"position":[[2396,10],[2678,10],[2850,10]]}}}],["overriden",{"_index":311,"t":{"27":{"position":[[2140,9]]}}}],["overwrit",{"_index":394,"t":{"32":{"position":[[692,9]]}}}],["packag",{"_index":13,"t":{"3":{"position":[[114,8]]}}}],["page",{"_index":15,"t":{"3":{"position":[[134,4],[188,4]]},"43":{"position":[[127,4]]}}}],["parent",{"_index":222,"t":{"13":{"position":[[169,6]]},"27":{"position":[[328,6],[6190,6]]}}}],["parentdirectori",{"_index":52,"t":{"3":{"position":[[684,15]]},"5":{"position":[[943,15]]},"13":{"position":[[724,15]]},"15":{"position":[[2867,15]]}}}],["parentdirectory:files_on_server_dir",{"_index":33,"t":{"3":{"position":[[410,35]]},"5":{"position":[[749,35]]},"13":{"position":[[442,35]]},"15":{"position":[[2585,35]]}}}],["pars",{"_index":331,"t":{"27":{"position":[[3669,7],[3921,6]]}}}],["part",{"_index":259,"t":{"18":{"position":[[16,5]]}}}],["past",{"_index":432,"t":{"41":{"position":[[265,7]]}}}],["path",{"_index":292,"t":{"27":{"position":[[822,5],[2527,4]]}}}],["pattern",{"_index":137,"t":{"5":{"position":[[2000,8],[3154,7],[3620,8],[4767,7]]},"15":{"position":[[1028,8]]},"27":{"position":[[521,7],[633,7],[779,7],[877,7],[2279,7],[2609,7]]}}}],["pend",{"_index":445,"t":{"45":{"position":[[29,7],[132,7]]},"47":{"position":[[63,8]]}}}],["perform",{"_index":456,"t":{"47":{"position":[[33,7]]}}}],["peripheri",{"_index":80,"t":{"5":{"position":[[143,9]]},"11":{"position":[[49,9]]}}}],["pi",{"_index":9,"t":{"3":{"position":[[76,3]]}}}],["plain",{"_index":214,"t":{"11":{"position":[[509,5]]},"13":{"position":[[205,5]]}}}],["platform",{"_index":1,"t":{"3":{"position":[[6,8]]}}}],["plex",{"_index":162,"t":{"5":{"position":[[3811,6],[3830,6],[3927,6],[4047,6],[4205,6],[6142,6]]},"11":{"position":[[283,5]]},"15":{"position":[[1678,6]]},"27":{"position":[[1661,5],[1854,4],[4471,4],[4808,4],[5467,4],[5773,4],[5881,4],[6295,4]]}}}],["point",{"_index":218,"t":{"13":{"position":[[68,6]]}}}],["poll",{"_index":297,"t":{"27":{"position":[[1258,4]]}}}],["poll_for_upd",{"_index":185,"t":{"5":{"position":[[5444,16],[5623,16],[5852,16],[6100,16],[6275,16],[6464,16]]},"15":{"position":[[1590,16],[1811,16],[2000,16]]},"27":{"position":[[1240,15]]}}}],["poll_for_update=fals",{"_index":62,"t":{"3":{"position":[[908,21]]}}}],["port",{"_index":418,"t":{"36":{"position":[[694,4]]}}}],["possibl",{"_index":416,"t":{"36":{"position":[[674,9]]}}}],["prefix",{"_index":56,"t":{"3":{"position":[[739,6]]},"5":{"position":[[998,6],[1084,6]]},"13":{"position":[[779,6]]},"15":{"position":[[108,6],[196,6],[2922,6],[3203,6]]},"30":{"position":[[612,6],[658,7],[733,6]]}}}],["present",{"_index":42,"t":{"3":{"position":[[539,7],[1027,7]]},"13":{"position":[[579,7]]},"15":{"position":[[2722,7]]},"34":{"position":[[98,8]]}}}],["priorit",{"_index":319,"t":{"27":{"position":[[2439,10],[2535,11]]}}}],["privat",{"_index":342,"t":{"27":{"position":[[4215,8]]}}}],["proce",{"_index":433,"t":{"41":{"position":[[308,7]]}}}],["process",{"_index":120,"t":{"5":{"position":[[1395,10]]},"15":{"position":[[500,10]]}}}],["profil",{"_index":407,"t":{"36":{"position":[[284,7]]}}}],["project",{"_index":84,"t":{"5":{"position":[[289,8]]},"11":{"position":[[178,8],[396,8]]},"15":{"position":[[2239,9],[3749,9]]},"20":{"position":[[145,8]]},"27":{"position":[[1374,8],[1968,7],[2973,8],[3230,8],[3366,8]]},"41":{"position":[[162,9]]}}}],["project'",{"_index":310,"t":{"27":{"position":[[2109,9]]}}}],["proper",{"_index":461,"t":{"49":{"position":[[122,6]]}}}],["provid",{"_index":338,"t":{"27":{"position":[[4123,8],[4201,8],[4761,9],[4853,9],[5703,9],[5818,9],[5940,9]]}}}],["put",{"_index":277,"t":{"24":{"position":[[27,4]]}}}],["qnaxd1frutylfc2zylfcszqiylfc1wylfcvr34yj4",{"_index":245,"t":{"15":{"position":[[3074,41]]}}}],["quick",{"_index":70,"t":{"5":{"position":[[12,5]]}}}],["raspberri",{"_index":8,"t":{"3":{"position":[[66,9]]}}}],["raw",{"_index":370,"t":{"30":{"position":[[26,3]]}}}],["read",{"_index":264,"t":{"20":{"position":[[16,5]]}}}],["reason",{"_index":307,"t":{"27":{"position":[[2018,10]]}}}],["refresh",{"_index":448,"t":{"45":{"position":[[89,7]]}}}],["registri",{"_index":269,"t":{"22":{"position":[[94,9]]},"27":{"position":[[1169,8],[1216,8]]}}}],["rel",{"_index":362,"t":{"27":{"position":[[6123,8]]}}}],["relat",{"_index":265,"t":{"20":{"position":[[79,7]]}}}],["remot",{"_index":333,"t":{"27":{"position":[[3789,6],[3847,6],[4052,7],[4145,6]]}}}],["render",{"_index":231,"t":{"15":{"position":[[29,7]]}}}],["repo",{"_index":23,"t":{"3":{"position":[[274,5]]},"11":{"position":[[542,4]]},"13":{"position":[[226,4]]},"27":{"position":[[3297,5],[3397,4],[3577,4],[3715,4],[3772,4],[4021,4],[4073,4],[4098,4],[4741,4],[4788,5],[4833,4],[4874,5],[5175,4],[5315,4],[5683,4],[5730,5],[5798,4],[5845,5],[5967,5]]},"36":{"position":[[98,6]]}}}],["repositori",{"_index":14,"t":{"3":{"position":[[123,10],[177,10]]},"8":{"position":[[11,10]]},"11":{"position":[[485,12]]},"13":{"position":[[43,10]]},"27":{"position":[[3321,10],[3527,10],[3642,11],[3658,10],[4276,12],[5069,10],[5207,11],[5238,10],[6095,10]]}}}],["repres",{"_index":425,"t":{"39":{"position":[[52,10]]}}}],["represent",{"_index":429,"t":{"39":{"position":[[284,14]]},"41":{"position":[[33,14]]}}}],["requir",{"_index":272,"t":{"22":{"position":[[130,8]]},"27":{"position":[[205,8],[3552,8],[6542,8]]},"32":{"position":[[522,8]]},"36":{"position":[[514,8],[702,9]]}}}],["resolv",{"_index":118,"t":{"5":{"position":[[1307,9]]},"15":{"position":[[412,9]]}}}],["resour",{"_index":444,"t":{"43":{"position":[[318,7]]},"45":{"position":[[433,7]]}}}],["resourc",{"_index":174,"t":{"5":{"position":[[5201,9],[5238,8]]},"15":{"position":[[46,8],[159,9],[1349,9],[1386,8],[2203,8],[2308,8],[2356,8],[3165,8],[3498,8],[3577,8],[3698,8]]},"20":{"position":[[41,10],[87,9]]},"22":{"position":[[77,9],[157,9],[273,8]]},"24":{"position":[[36,9],[150,8]]},"27":{"position":[[27,9],[51,9],[3045,9],[4026,8]]},"30":{"position":[[50,8],[255,9],[292,8],[585,9]]},"32":{"position":[[39,9],[368,9],[645,8]]},"34":{"position":[[447,9]]},"36":{"position":[[111,8]]},"39":{"position":[[7,8],[82,10],[115,8],[178,9]]},"41":{"position":[[51,9],[114,9],[208,8],[331,8],[366,8],[468,8]]},"43":{"position":[[51,8],[186,9],[248,9]]}}}],["restart",{"_index":67,"t":{"3":{"position":[[1057,8]]},"5":{"position":[[1045,8]]},"13":{"position":[[826,8]]},"15":{"position":[[3116,8]]}}}],["restor",{"_index":466,"t":{"49":{"position":[[214,11]]}}}],["root",{"_index":363,"t":{"27":{"position":[[6151,4]]}}}],["run",{"_index":54,"t":{"3":{"position":[[725,3]]},"5":{"position":[[428,3],[984,3]]},"8":{"position":[[213,3],[237,3],[251,3]]},"13":{"position":[[328,3],[765,3]]},"15":{"position":[[76,3],[2908,3],[3128,3]]},"22":{"position":[[181,3]]},"27":{"position":[[1812,3],[1864,3],[1921,3],[4550,3],[4603,3],[4949,3],[5535,3],[5588,3],[5751,3],[5866,3],[5988,3]]}}}],["run_directori",{"_index":179,"t":{"5":{"position":[[5356,13],[5536,13],[5763,13],[6010,13],[6190,13],[6372,13]]},"15":{"position":[[1503,13],[1726,13],[1908,13]]},"30":{"position":[[410,13]]}}}],["safe",{"_index":460,"t":{"49":{"position":[[30,6]]}}}],["same",{"_index":223,"t":{"13":{"position":[[196,4]]}}}],["sampl",{"_index":94,"t":{"5":{"position":[[611,6]]}}}],["save",{"_index":37,"t":{"3":{"position":[[497,5],[998,5]]},"13":{"position":[[537,5]]},"15":{"position":[[2680,5]]},"43":{"position":[[340,4]]}}}],["scan",{"_index":221,"t":{"13":{"position":[[160,4]]}}}],["scenario",{"_index":76,"t":{"5":{"position":[[84,9]]}}}],["scissor",{"_index":173,"t":{"5":{"position":[[5178,8]]},"15":{"position":[[1326,8]]},"30":{"position":[[232,8]]}}}],["secret",{"_index":239,"t":{"15":{"position":[[2447,6]]},"36":{"position":[[182,6],[386,6],[626,6]]}}}],["section",{"_index":295,"t":{"27":{"position":[[1121,7],[2789,7]]},"32":{"position":[[281,8]]},"43":{"position":[[332,7]]}}}],["see",{"_index":69,"t":{"5":{"position":[[4,3],[588,3]]},"30":{"position":[[108,3]]}}}],["server",{"_index":46,"t":{"3":{"position":[[612,6],[674,6]]},"5":{"position":[[177,6],[217,6],[477,7],[871,6],[933,6],[1273,6],[1387,7],[1629,7],[1748,7],[1829,7],[1959,7],[2086,7],[2181,7],[2303,7],[2439,7],[2553,7],[2647,7],[2775,7],[2946,7],[3108,7],[3231,7],[3350,7],[3446,7],[3577,7],[3706,7],[3803,7],[3919,7],[4039,7],[4197,7],[4289,7],[4426,7],[4553,7],[4718,7],[4844,7],[4966,7],[5065,7],[5330,6],[5348,7],[5510,6],[5528,7],[5737,6],[5755,7],[5984,6],[6002,7],[6164,6],[6182,7],[6346,6],[6364,7]]},"8":{"position":[[292,6]]},"11":{"position":[[83,6],[106,6],[429,6],[463,7]]},"13":{"position":[[652,6],[714,6]]},"15":{"position":[[378,6],[492,7],[657,7],[776,7],[857,7],[987,7],[1114,7],[1213,7],[1477,6],[1495,7],[1700,6],[1718,7],[1882,6],[1900,7],[2795,6],[2857,6]]},"22":{"position":[[167,7]]},"27":{"position":[[272,6],[1323,7],[1410,6],[3942,6],[4936,6],[5923,6]]},"30":{"position":[[384,6],[402,7]]},"36":{"position":[[564,6]]}}}],["server_nam",{"_index":283,"t":{"27":{"position":[[234,11]]}}}],["server_name=mi",{"_index":50,"t":{"3":{"position":[[654,14]]},"5":{"position":[[456,15],[913,14]]},"8":{"position":[[277,14]]},"13":{"position":[[694,14]]},"15":{"position":[[2837,14]]}}}],["servic",{"_index":27,"t":{"3":{"position":[[338,9]]},"5":{"position":[[677,9]]},"13":{"position":[[370,9]]},"15":{"position":[[2513,9]]},"30":{"position":[[645,7]]},"34":{"position":[[298,9]]}}}],["set",{"_index":200,"t":{"8":{"position":[[172,3]]},"22":{"position":[[53,3],[209,8]]},"27":{"position":[[6588,3]]},"34":{"position":[[236,3]]},"36":{"position":[[272,8]]}}}],["setup",{"_index":78,"t":{"5":{"position":[[118,5]]},"11":{"position":[[24,5]]}}}],["shortest",{"_index":322,"t":{"27":{"position":[[2518,8]]}}}],["show",{"_index":412,"t":{"36":{"position":[[373,4]]},"45":{"position":[[148,5]]}}}],["similar",{"_index":302,"t":{"27":{"position":[[1520,7]]}}}],["skip",{"_index":435,"t":{"41":{"position":[[497,4]]}}}],["someth",{"_index":454,"t":{"45":{"position":[[365,9]]}}}],["somethingels",{"_index":366,"t":{"27":{"position":[[6369,13]]}}}],["somewher",{"_index":193,"t":{"8":{"position":[[22,9]]}}}],["specif",{"_index":415,"t":{"36":{"position":[[662,8]]}}}],["specifi",{"_index":361,"t":{"27":{"position":[[6111,7],[6177,7]]}}}],["src/index.j",{"_index":208,"t":{"8":{"position":[[339,12]]}}}],["stack",{"_index":49,"t":{"3":{"position":[[645,6],[719,5]]},"5":{"position":[[904,6],[978,5],[1406,6],[1853,5],[2104,5],[2204,5],[2570,5],[2672,5],[3369,5],[3472,5],[3726,5],[3824,5],[4212,5],[4317,5],[4988,5],[5079,5],[5288,9],[5469,9],[5694,9],[5940,9],[6125,9],[6300,9]]},"11":{"position":[[436,6],[547,5]]},"13":{"position":[[231,5],[354,5],[685,6],[759,5]]},"15":{"position":[[511,6],[881,5],[1132,5],[1227,5],[1436,9],[1661,9],[1836,9],[2828,6],[2902,5]]},"27":{"position":[[21,5],[85,5],[158,5],[287,5],[363,5],[831,5],[938,5],[1307,6],[1429,7],[1463,6],[1789,6],[3077,5],[3148,5],[3414,7],[3448,6],[3589,5],[3720,5],[3949,5],[4078,5],[4746,5],[4838,5],[4943,5],[5180,6],[5335,6],[5688,5],[5803,5],[5930,5],[6039,5],[6494,5],[6614,6]]},"30":{"position":[[342,9]]},"36":{"position":[[79,6]]},"45":{"position":[[276,6],[294,6]]}}}],["stack.config",{"_index":178,"t":{"5":{"position":[[5315,14],[5495,14],[5722,14],[5969,14],[6149,14],[6331,14]]},"15":{"position":[[1462,14],[1685,14],[1867,14]]},"30":{"position":[[369,14]]}}}],["start",{"_index":71,"t":{"5":{"position":[[18,5]]},"8":{"position":[[255,5]]},"13":{"position":[[59,8]]}}}],["state",{"_index":446,"t":{"45":{"position":[[37,5]]}}}],["structur",{"_index":303,"t":{"27":{"position":[[1572,9],[4379,9],[5354,9]]}}}],["sub",{"_index":325,"t":{"27":{"position":[[2659,3],[5156,3],[6075,3],[6592,3]]}}}],["such",{"_index":267,"t":{"20":{"position":[[122,4]]}}}],["suppli",{"_index":268,"t":{"22":{"position":[[34,8]]}}}],["switch",{"_index":450,"t":{"45":{"position":[[115,9]]}}}],["sync",{"_index":177,"t":{"5":{"position":[[5247,4]]},"15":{"position":[[8,4],[41,4],[154,4],[1395,4],[2198,4],[2257,4],[2303,4],[2351,4],[3160,4],[3259,5],[3295,4],[3352,5],[3487,5],[3507,4],[3566,5],[3586,4],[3693,4]]},"24":{"position":[[159,5]]},"27":{"position":[[3040,4]]},"30":{"position":[[45,4],[301,4],[580,4]]},"32":{"position":[[34,4],[112,5],[161,4],[363,4],[605,4],[654,4],[736,4]]},"34":{"position":[[442,4]]},"36":{"position":[[120,5]]},"39":{"position":[[2,4],[110,4],[144,5],[241,4],[265,5],[353,4]]},"41":{"position":[[203,4],[326,4],[361,4],[463,4],[512,4]]},"43":{"position":[[38,5],[60,4],[74,4],[114,4]]},"45":{"position":[[5,4]]},"47":{"position":[[18,4]]},"49":{"position":[[6,7],[48,4],[156,4]]}}}],["sync_nam",{"_index":395,"t":{"32":{"position":[[702,9]]}}}],["syncs/689a41a04ed1b642f3053f57",{"_index":255,"t":{"15":{"position":[[3631,30]]}}}],["tab",{"_index":451,"t":{"45":{"position":[[140,3],[461,4]]}}}],["take",{"_index":399,"t":{"36":{"position":[[18,4]]},"45":{"position":[[185,4]]}}}],["text",{"_index":171,"t":{"5":{"position":[[5161,4]]},"15":{"position":[[1309,4]]},"30":{"position":[[215,4]]}}}],["text/fil",{"_index":424,"t":{"39":{"position":[[21,9]]}}}],["three",{"_index":258,"t":{"18":{"position":[[10,5]]}}}],["tip",{"_index":68,"t":{"5":{"position":[[0,3]]},"11":{"position":[[471,3]]},"30":{"position":[[595,3]]},"41":{"position":[[245,3],[422,3]]}}}],["toml",{"_index":36,"t":{"3":{"position":[[489,4]]},"13":{"position":[[529,4]]},"15":{"position":[[55,4],[136,4],[2672,4]]},"27":{"position":[[3030,5]]},"30":{"position":[[30,4],[686,4]]},"34":{"position":[[62,5]]},"39":{"position":[[42,4],[246,4],[358,4]]},"41":{"position":[[28,4],[384,4]]},"43":{"position":[[310,4]]},"45":{"position":[[232,5]]}}}],["top",{"_index":287,"t":{"27":{"position":[[563,3],[673,3],[2646,3],[5059,3],[5197,3]]},"45":{"position":[[54,3]]}}}],["track",{"_index":335,"t":{"27":{"position":[[3836,8]]}}}],["treat",{"_index":355,"t":{"27":{"position":[[5150,5]]}}}],["true",{"_index":182,"t":{"5":{"position":[[5419,4],[5598,4],[5827,4],[6075,4],[6250,4],[6439,4]]},"15":{"position":[[1565,4],[1786,4],[1975,4]]},"27":{"position":[[490,5],[3889,4]]},"32":{"position":[[584,4]]}}}],["two",{"_index":344,"t":{"27":{"position":[[4272,3]]}}}],["type",{"_index":280,"t":{"27":{"position":[[164,5]]}}}],["tz=america/new_york",{"_index":45,"t":{"3":{"position":[[582,19]]},"5":{"position":[[841,19]]},"13":{"position":[[622,19]]},"15":{"position":[[2765,19]]}}}],["ui",{"_index":405,"t":{"36":{"position":[[263,3]]},"43":{"position":[[147,2]]}}}],["under",{"_index":457,"t":{"47":{"position":[[57,5]]}}}],["unless",{"_index":372,"t":{"30":{"position":[[70,6]]}}}],["unmatch",{"_index":442,"t":{"43":{"position":[[176,9]]}}}],["up",{"_index":99,"t":{"5":{"position":[[1072,2]]},"15":{"position":[[184,2],[3191,2]]},"30":{"position":[[721,2]]},"49":{"position":[[207,2]]}}}],["updat",{"_index":271,"t":{"22":{"position":[[109,7]]},"27":{"position":[[1300,6]]},"45":{"position":[[107,7],[268,7],[396,7]]}}}],["uptim",{"_index":165,"t":{"5":{"position":[[4297,7],[4323,7],[4434,7],[4561,7],[4726,7],[4852,7],[4974,7],[6317,7]]},"11":{"position":[[319,6]]},"15":{"position":[[1853,7]]},"27":{"position":[[1697,6],[1904,6],[4517,6],[4899,6],[5502,6],[5886,6],[6003,6],[6334,6]]}}}],["url",{"_index":253,"t":{"15":{"position":[[3591,4]]},"27":{"position":[[4152,3]]},"36":{"position":[[571,3],[645,3],[735,5]]}}}],["us",{"_index":19,"t":{"3":{"position":[[232,3],[627,3],[712,3]]},"5":{"position":[[249,5],[886,3],[971,3],[2456,5],[2965,5],[3250,5],[4054,5],[4575,5],[4866,5],[5190,3]]},"8":{"position":[[153,3]]},"11":{"position":[[138,5],[475,5]]},"13":{"position":[[0,3],[667,3],[752,3]]},"15":{"position":[[1338,3],[2253,3],[2810,3],[2895,3],[3270,5]]},"18":{"position":[[25,5],[96,4],[117,5]]},"22":{"position":[[321,4]]},"27":{"position":[[532,3],[644,3],[790,3],[888,3],[1058,4],[1095,5],[1181,3],[1236,3],[1331,3],[1735,3],[2093,3],[2150,5],[2960,3],[3133,3],[3303,3],[4084,4],[4176,5],[5187,5],[6207,4],[6383,3],[6606,3]]},"30":{"position":[[244,3],[548,3],[599,3]]},"32":{"position":[[59,5]]},"34":{"position":[[410,3]]},"36":{"position":[[192,3],[466,3]]},"39":{"position":[[104,3]]},"41":{"position":[[88,3],[433,4]]},"47":{"position":[[87,3]]},"49":{"position":[[69,3]]}}}],["usag",{"_index":206,"t":{"8":{"position":[[261,5]]},"27":{"position":[[3203,5]]}}}],["user",{"_index":341,"t":{"27":{"position":[[4210,4]]},"32":{"position":[[310,4]]}}}],["usual",{"_index":354,"t":{"27":{"position":[[5094,5]]}}}],["v",{"_index":92,"t":{"5":{"position":[[529,1]]},"27":{"position":[[4655,1],[5597,1]]}}}],["valid",{"_index":332,"t":{"27":{"position":[[3746,5],[3783,5]]},"36":{"position":[[729,5]]}}}],["variabl",{"_index":263,"t":{"18":{"position":[[137,10]]},"22":{"position":[[24,9]]},"27":{"position":[[126,9],[191,9],[3123,9],[3182,9],[6464,9],[6528,9]]},"32":{"position":[[466,9],[508,9]]},"36":{"position":[[436,9],[500,9]]}}}],["varibal",{"_index":313,"t":{"27":{"position":[[2181,9]]}}}],["verbos",{"_index":248,"t":{"15":{"position":[[3337,8]]}}}],["verifi",{"_index":257,"t":{"15":{"position":[[3679,9]]},"32":{"position":[[177,6]]},"41":{"position":[[505,6]]},"45":{"position":[[310,6]]}}}],["version",{"_index":113,"t":{"5":{"position":[[1204,8]]},"8":{"position":[[189,7]]},"15":{"position":[[309,8]]}}}],["volum",{"_index":31,"t":{"3":{"position":[[398,8]]},"5":{"position":[[737,8]]},"13":{"position":[[430,8]]},"15":{"position":[[2573,8]]},"34":{"position":[[369,8]]}}}],["want",{"_index":210,"t":{"11":{"position":[[353,4]]},"27":{"position":[[477,4],[2085,4]]},"43":{"position":[[102,4]]},"49":{"position":[[105,4]]}}}],["warn",{"_index":135,"t":{"5":{"position":[[1936,4],[3554,4]]},"15":{"position":[[964,4]]}}}],["web",{"_index":404,"t":{"36":{"position":[[259,3]]}}}],["whatev",{"_index":439,"t":{"43":{"position":[[84,8]]}}}],["within",{"_index":176,"t":{"5":{"position":[[5226,6]]},"15":{"position":[[1374,6]]},"27":{"position":[[1487,6],[2097,6],[3472,6]]},"30":{"position":[[280,6]]}}}],["without",{"_index":376,"t":{"30":{"position":[[633,7]]}}}],["work",{"_index":194,"t":{"8":{"position":[[58,7]]},"27":{"position":[[1542,6],[3677,5]]}}}],["write",{"_index":153,"t":{"5":{"position":[[2998,7],[4087,7],[4608,7]]},"15":{"position":[[2293,5],[2340,6]]},"27":{"position":[[408,5],[1088,6],[2762,5]]},"34":{"position":[[30,5]]},"36":{"position":[[105,5]]},"39":{"position":[[334,7]]}}}],["write_env",{"_index":285,"t":{"27":{"position":[[390,9]]}}}],["write_env=fals",{"_index":294,"t":{"27":{"position":[[1018,16]]}}}],["written",{"_index":158,"t":{"5":{"position":[[3278,7],[4894,7]]},"34":{"position":[[181,7]]}}}],["x86",{"_index":4,"t":{"3":{"position":[[36,3]]}}}],["you'll",{"_index":374,"t":{"30":{"position":[[101,6]]}}}]],"pipeline":["stemmer"]}}]
+1 -1
search/index.html
··· 1 - <!doctype html><html lang=en dir=ltr class="plugin-@easyops-cn/docusaurus-search-local plugin-id-default" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Search the documentation</title><meta data-rh=true property=og:title content="Komodo Import"><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/search/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docusaurus_tag content=default><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docsearch:docusaurus_tag content=default><meta data-rh=true property=robots content="noindex, follow"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/search/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/search/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/search/ hreflang=x-default><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.0d2cf591.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 1 + <!doctype html><html lang=en dir=ltr class="plugin-@easyops-cn/docusaurus-search-local plugin-id-default" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Search the documentation</title><meta data-rh=true property=og:title content="Komodo Import"><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://foxxmd.github.io/komodo-import/search/><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docusaurus_tag content=default><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docsearch:docusaurus_tag content=default><meta data-rh=true property=robots content="noindex, follow"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/search/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/search/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/search/ hreflang=x-default><meta name=google-site-verification content=none><script src=https://ry.foxxmd.dev/api/script.js defer data-site-id=3 data-session-replay=true></script><link rel=stylesheet href=/komodo-import/assets/css/styles.b62c93d7.css><script src=/komodo-import/assets/js/runtime~main.3c5778fb.js defer></script><script src=/komodo-import/assets/js/main.aec7763d.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs> 2 2 <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> 3 3 </defs></svg> 4 4 <script>!function(){var t="dark",e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/komodo-import/><b class="navbar__title text--truncate">Komodo Import</b></a><a class="navbar__item navbar__link" href=/komodo-import/docs/quickstart/>Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><h1>Search the documentation</h1><div class=row><div class="col col--12"><input type=search class=searchQueryInput_CFBF aria-label=Search autocomplete=off autofocus name=q value=""></div></div><section></section></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/komodo-import/>Overview</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/installation/>Installation</a><li class=footer__item><a class=footer__link-item href=/komodo-import/docs/usage/>Usage</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/foxxmd/komodo-import target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://foxxmd.github.io/komodo-import/ target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-hidden=true class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 Komodo Import. Built with Docusaurus.</div></div></div></footer></div>