[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: c2adf4cf9fb00796f2aed7a409b6413ec4e7e6f3

github-actions[bot] (Aug 22, 2025, 8:28 PM UTC) 2176dc4c 4be5e240

+16 -16
+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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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.08282b3f.js
··· 1 + "use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["775"],{5106:function(e,s,t){t.d(s,{ZP:()=>l,d$:()=>o});var n=t(5893),r=t(65);let o=[];function i(e){let s={code:"code",pre:"pre",...(0,r.a)(),...e.components};return(0,n.jsx)(s.pre,{children:(0,n.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 \u251C\u2500\u2500 docker-compose.yaml\n \u2502 \u2514\u2500\u2500 .git\n \u2514\u2500\u2500 uptime-kuma/\n \u2514\u2500\u2500 compose.yaml\n"})})}function l(e={}){let{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(i,{...e})}):i(e)}},5386:function(e,s,t){t.r(s),t.d(s,{frontMatter:()=>p,default:()=>v,toc:()=>f,metadata:()=>n,assets:()=>g,contentTitle:()=>u});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"}}'),r=t(5893),o=t(65),i=t(7057),l=t(4250);t(2292),t(7294),t(2575),t(5756),t(1142);var c=t(5106);let d=[];function h(e){let s={code:"code",pre:"pre",...(0,o.a)(),...e.components};return(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:".\n\u2514\u2500\u2500 /home/myUser\n \u251C\u2500\u2500 homeLab\n \u2502 \u251C\u2500\u2500 immich\n \u2502 \u2502 \u2514\u2500\u2500 compose.yaml\n \u2502 \u251C\u2500\u2500 plex\n \u2502 \u2502 \u251C\u2500\u2500 docker-compose.yaml\n \u2502 \u2502 \u2514\u2500\u2500 .git\n \u2502 \u2514\u2500\u2500 owncloud\n \u2502 \u2514\u2500\u2500 compose.yaml\n \u2514\u2500\u2500 localDev\n \u2514\u2500\u2500 myProjects\n \u2514\u2500\u2500 project1\n \u2514\u2500\u2500 compose.yaml\n"})})}function a(e={}){let{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}let x=[...d];function j(e){let s={code:"code",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"docker compose ls"})," reveals these projects:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"NAME STATUS CONFIG FILES\nimmich running /home/myUser/homelab/immich/compose.yaml\nplex running /home/myUser/homelab/plex/docker-compose.yaml\nproject1 running /home/myUser/localDev/myProjects/project1/compose.yaml\n"})}),"\n",(0,r.jsx)(a,{})]})}function m(e={}){let{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(j,{...e})}):j(e)}let p={sidebar_position:2,title:"Overview",toc_max_heading_level:4},u=void 0,g={},f=[{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:"Stack Sources",id:"stack-sources",level:4},...c.d$,...x,{value:"Host Directory",id:"host-directory",level:4},...c.d$,...d,{value:"Stack Configuration",id:"stack-configuration",level:4},{value:"Git Repo Stacks",id:"git-repo-stacks",level:4},{value:"Monorepos",id:"monorepos",level:6},{value:"Outputs",id:"outputs-1",level:2},{value:"Console",id:"console",level:3},{value:"API Sync",id:"api-sync",level:3},{value:"Komodo API",id:"komodo-api",level:2},{value:"API Configuration",id:"api-configuration",level:4}];function y(e){let s={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",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,o.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,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h2,{id:"key-concepts",children:"Key Concepts"}),"\n",(0,r.jsxs)(s.p,{children:["There are three parts to using Komodo Import (KI). ",(0,r.jsx)(s.strong,{children:"Which Inputs, Configuration, and Outputs are used are all defined using environmental variables."})]}),"\n",(0,r.jsx)(s.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(s.p,{children:["This is what KI reads to generate ",(0,r.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,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://docs.docker.com/compose/how-tos/project-name/",children:"Docker Compose projects"})," (",(0,r.jsx)(s.code,{children:"compose.yaml"}),")"]}),"\n",(0,r.jsx)(s.li,{children:"Docker containers"}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"configuration",children:"Configuration"}),"\n",(0,r.jsxs)(s.p,{children:["These are ",(0,r.jsx)(s.strong,{children:"environmental variables"})," supplied to KI to:"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"set defaults for Komodo Resources (image registry, auto update, etc.)"}),"\n",(0,r.jsx)(s.li,{children:"define required fields for Komodo Resources (Server Name, Run Directory, etc.)"}),"\n",(0,r.jsx)(s.li,{children:"define settings for how KI to interacts with Komodo (API Key, existing Resource behavior, etc.)"}),"\n",(0,r.jsxs)(s.li,{children:["define what ",(0,r.jsx)(s.a,{href:"#outputs",children:"Outputs"})," KI uses (log to file, export to Komodo, etc.)"]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(s.p,{children:["These are where and how KI puts the Resources created from ",(0,r.jsx)(s.a,{href:"#inputs",children:"Inputs"}),":"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Log to output (docker logs, node console)"}),"\n",(0,r.jsx)(s.li,{children:"Export to Komodo API (create Resource Sync, etc.)"}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsx)(s.h3,{id:"stacks",children:"Stacks"}),"\n",(0,r.jsxs)(s.p,{children:["KI can create Komodo ",(0,r.jsx)(s.a,{href:"https://komo.do/docs/resources#stack",children:"Stack"})," Resources from existing resources on your machine."]}),"\n",(0,r.jsx)(s.p,{children:"It will automatically detect what type of Stack to create based on the presence of git folders/data:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Komodo ",(0,r.jsx)(s.strong,{children:"Files On Server"})," Stack => compose project/folder without a ",(0,r.jsx)(s.code,{children:".git"})," folder"]}),"\n",(0,r.jsxs)(s.li,{children:["Komodo ",(0,r.jsx)(s.strong,{children:"Git Repo"})," Stacks => compose project/folder with a ",(0,r.jsx)(s.code,{children:".git"})," folder or with a parent folder containing a ",(0,r.jsx)(s.code,{children:".git"})," folder"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"stack-sources",children:"Stack Sources"}),"\n",(0,r.jsx)(s.p,{children:"KI can generate Stacks from existing projects on your machine using one of two methods:"}),"\n",(0,r.jsxs)(i.Z,{groupId:"stacksFrom",queryString:!0,children:[(0,r.jsxs)(l.Z,{value:"dir",label:"Directory",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsx)(s.strong,{children:"Directory"})," (",(0,r.jsx)(s.code,{children:"STACKS_FROM=dir"}),"), Komodo Import will try to generate Stacks from each immediate ",(0,r.jsx)(s.strong,{children:"subfolder"})," inside the directory mounted into the container."]}),(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(c.ZP,{}),(0,r.jsxs)(s.p,{children:["Using ",(0,r.jsx)(s.code,{children:"STACKS_FROM=dir"})," with ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab"})," would produce Stacks for ",(0,r.jsx)(s.code,{children:"immich"})," ",(0,r.jsx)(s.code,{children:"plex"})," and ",(0,r.jsx)(s.code,{children:"uptime-kuma"}),"."]})]})]}),(0,r.jsxs)(l.Z,{value:"compose",label:"Compose Projects",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsx)(s.strong,{children:"Compose Projects"})," (",(0,r.jsx)(s.code,{children:"STACKS_FROM=compose"}),"), Komodo Import will try to generate Stacks from existing projects on your machine that were created with ",(0,r.jsx)(s.code,{children:"docker compose up"}),"."]}),(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(m,{}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Using ",(0,r.jsx)(s.code,{children:"STACKS_FROM=dir"})," with ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," ",(0,r.jsx)(s.code,{children:"/home/myUser"})," would produce Stacks for ",(0,r.jsx)(s.code,{children:"immich"})," ",(0,r.jsx)(s.code,{children:"plex"})," and ",(0,r.jsx)(s.code,{children:"project1"}),"."]}),"\n",(0,r.jsxs)(s.li,{children:["It ",(0,r.jsx)(s.strong,{children:"would not"})," generate a Stack for ",(0,r.jsx)(s.code,{children:"owncloud"})," since it was not created with ",(0,r.jsx)(s.code,{children:"docker compose up"})," yet."]}),"\n"]})]}),(0,r.jsxs)(s.p,{children:["To use ",(0,r.jsx)(s.strong,{children:"Compose Projects"})," you must give Komodo Import access to Docker. This can be done by mounting ",(0,r.jsx)(s.code,{children:"docker.sock"})," into the container or connecting it to a proxy service like ",(0,r.jsx)(s.a,{href:"https://github.com/Tecnativa/docker-socket-proxy",children:"docker-socket-proxy"}),"."]}),(0,r.jsxs)(t,{children:[(0,r.jsxs)("summary",{children:["Using ",(0,r.jsx)(s.code,{children:"socket-proxy"})," (recommended)"]}),(0,r.jsxs)(s.p,{children:["Add a socket-proxy service to your compose file and set the env ",(0,r.jsx)(s.code,{children:"DOCKER_HOST"})," so Komodo Import knows how to connect to Docker:"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-yaml",metastring:'title="compose.yaml"',children:"services:\n komodo-import:\n # ...\n environment:\n # ...\n # add to existing environment\n - DOCKER_HOST=tcp://socket-proxy:2375\n socket-proxy:\n image: lscr.io/linuxserver/socket-proxy:latest\n environment:\n - CONTAINERS=1\n - INFO=1\n - POST=0\n - PING=1\n - VERSION=1\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n read_only: true\n tmpfs:\n - /run\n"})})]}),(0,r.jsxs)(t,{children:[(0,r.jsxs)("summary",{children:["Mounting ",(0,r.jsx)(s.code,{children:"docker.sock"})]}),(0,r.jsxs)(s.p,{children:["Mount ",(0,r.jsx)(s.code,{children:"/var/run/docker.sock"})," as a volume into the container:"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-yaml",metastring:'title="compose.yaml"',children:"services:\n komodo-import:\n # ...\n volumes:\n # ...\n # add to existing volumes\n - /var/run/docker.sock:/var/run/docker.sock:ro\n"})})]})]})]}),"\n",(0,r.jsx)(s.h4,{id:"host-directory",children:"Host Directory"}),"\n",(0,r.jsxs)(s.p,{children:["The directory on the ",(0,r.jsx)(s.strong,{children:"Host"})," machine that should be mounted into the Komodo Import container depends on which ",(0,r.jsx)(s.a,{href:"#stack-sources",children:"Stack Source"})," you are using."]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The host directory should be mounted to ",(0,r.jsx)(s.code,{children:"/filesOnServer"})," in the container."]}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsxs)(s.strong,{children:["The host directory should also be set for ",(0,r.jsx)(s.code,{children:"HOST_DIR"})," env."]})}),"\n"]}),"\n",(0,r.jsxs)(i.Z,{groupId:"stacksFrom",queryString:!0,children:[(0,r.jsxs)(l.Z,{value:"dir",label:"Directory",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsx)(s.strong,{children:"Directory"})," (",(0,r.jsx)(s.code,{children:"STACKS_FROM=dir"}),") use the ",(0,r.jsx)(s.strong,{children:"parent folder"})," containing all of the immediate ",(0,r.jsx)(s.strong,{children:"subfolders"})," that should be generated as Stacks."]}),(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(c.ZP,{}),(0,r.jsxs)(s.p,{children:["Directory should be ",(0,r.jsx)(s.code,{children:"home/myUser/homelab"}),":"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-yaml",metastring:'title="compose.yaml"',children:"services:\n komodo-import:\n # ...\n volumes:\n - /home/myUser/homelab:/filesOnServer\n environment:\n - HOST_DIR=/home/myUser/homelab\n"})})]})]}),(0,r.jsxs)(l.Z,{value:"compose",label:"Compose Projects",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsx)(s.strong,{children:"Compose Projects"})," (",(0,r.jsx)(s.code,{children:"STACKS_FROM=compose"}),") use the closest ",(0,r.jsx)(s.strong,{children:"parent folder"})," that contains all discovered compose project Config Files (",(0,r.jsx)(s.code,{children:"docker compose ls"}),")."]}),(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(a,{}),(0,r.jsxs)(s.p,{children:["Directory should be ",(0,r.jsx)(s.code,{children:"/home/myUser"})," because projects are found under both ",(0,r.jsx)(s.code,{children:"localDev"})," and ",(0,r.jsx)(s.code,{children:"homeLab"}),":"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-yaml",metastring:'itle="compose.yaml"',children:"services:\n komodo-import:\n # ...\n volumes:\n - /home/myUser:/filesOnServer\n environment:\n - HOST_DIR=/home/myUser\n"})})]})]})]}),"\n",(0,r.jsx)(s.h4,{id:"stack-configuration",children:"Stack Configuration"}),"\n",(0,r.jsx)(s.p,{children:"The configuration and behaviors below are applicable to all Stacks:"}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Environmental Variables"}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"SERVER_NAME"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The name of the Komodo ",(0,r.jsx)(s.a,{href:"https://komo.do/docs/resources#server",children:"Server"})," where a Stack is located"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"STACKS_FROM"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"dir"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["What ",(0,r.jsx)(s.a,{href:"#stack-sources",children:(0,r.jsx)(s.strong,{children:"Stack Sources"})})," to generate Stacks from? ",(0,r.jsx)(s.code,{children:"dir"})," or ",(0,r.jsx)(s.code,{children:"compose"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"HOST_DIR"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The parent directory on the ",(0,r.jsx)(s.strong,{children:"host"})," that mounted into the Komodo Import container"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"WRITE_ENV"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"true"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["Write the contents of found .env files to Komodo ",(0,r.jsx)(s.strong,{children:"Environment"}),". Likely want this as ",(0,r.jsx)(s.code,{children:"true"}),"."]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"COMPOSE_FILE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"**/{compose,docker-compose}*.y?(a)ml"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.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,r.jsx)(s.strong,{children:"Files Paths"})," in Stack config"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"ENV_FILE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"**/.env"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.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,r.jsx)(s.strong,{children:"Additional Env Files"})," in Stack config"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"GLOB_DOT"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"false"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["Allow glob patterns, outside of ENV pattern, to find files/folders that start with ",(0,r.jsx)(s.code,{children:"."})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"KOMODO_ENV_NAME"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:".komodoenv"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["If existing .env files are found, and ",(0,r.jsx)(s.code,{children:"WRITE_ENV=false"}),", then this name will be used for the .env that Komodo writes using its own Environment section"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"IMAGE_REGISTRY_PROVIDER"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Name of Image Registry to use"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"IMAGE_REGISTRY_ACCOUNT"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Image Registry account to use"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"POLL_FOR_UPDATE"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Poll for newer images?"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"AUTO_UPDATE"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Auto Update stack?"})]})]})]})]}),"\n",(0,r.jsxs)(t,{markdown:"1",children:[(0,r.jsx)("summary",{children:"Compose File Detection"}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Default pattern","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Looks for ",(0,r.jsx)(s.code,{children:"compose.y(a)ml"})," and ",(0,r.jsx)(s.code,{children:"docker-compose.y(a)ml"})]}),"\n",(0,r.jsxs)(s.li,{children:["Files may have interim names like ",(0,r.jsx)(s.code,{children:"compose.dev.yaml"})]}),"\n",(0,r.jsxs)(s.li,{children:["Can be overridden with ",(0,r.jsx)(s.code,{children:"COMPOSE_FILE_GLOB"})," env for non-compose project stack sources"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["Will prioritize ",(0,r.jsx)(s.code,{children:"compose.yaml"})," over ",(0,r.jsx)(s.code,{children:"docker-compose.yaml"})]}),"\n",(0,r.jsxs)(s.li,{children:["Will choose the file with the shortest path EX","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Prioritizes ",(0,r.jsx)(s.code,{children:"./compose.yaml"})," over ",(0,r.jsx)(s.code,{children:"./aFolder/compose.yaml"})]}),"\n"]}),"\n"]}),"\n"]}),(0,r.jsxs)(s.p,{children:["Komodo Import will ",(0,r.jsx)(s.strong,{children:"log"})," which files it detects and indicate which ones it will use for each project."]}),(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["When using ",(0,r.jsx)(s.a,{href:"./?stacksFrom=compose#stack-sources",children:"Compose Projects Stack Source"})," compose files are automatically parsed from the running projects."]})})]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsxs)("summary",{children:[(0,r.jsx)(s.code,{children:".env"})," File Detection"]}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Default pattern","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Adds all ",(0,r.jsx)(s.code,{children:".env"})," files found at top-level or sub-folders"]}),"\n",(0,r.jsxs)(s.li,{children:["Can be overridden with ",(0,r.jsx)(s.code,{children:"ENV_FILE_GLOB"})," env"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["If a ",(0,r.jsx)(s.code,{children:".env"})," file is found and ",(0,r.jsx)(s.code,{children:"WRITE_ENV=false"})," then a Stack is configured to write it's own Environment section to ",(0,r.jsx)(s.code,{children:".komodoenv"})," instead of ",(0,r.jsx)(s.code,{children:".env"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Komodo env name can be overridden with ",(0,r.jsx)(s.code,{children:"KOMODO_ENV_NAME"})]}),"\n"]}),"\n"]}),"\n"]}),(0,r.jsxs)(s.p,{children:["Komodo Import will ",(0,r.jsx)(s.strong,{children:"log"})," which files it detects and indicate which ones it will use for each project."]})]}),"\n",(0,r.jsxs)(s.p,{children:["There is additional configuration available depending on the ",(0,r.jsx)(s.a,{href:"#stack-sources",children:"Stack Source"}),":"]}),"\n",(0,r.jsxs)(i.Z,{groupId:"stacksFrom",queryString:!0,children:[(0,r.jsxs)(l.Z,{value:"dir",label:"Directory",children:[(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The ",(0,r.jsx)(s.code,{children:"_GLOB"})," patterns are for matching folder names within the parent folder, not full directory paths","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The default pattern matches all folder names except those starting with a ",(0,r.jsx)(s.code,{children:"."})]}),"\n"]}),"\n"]}),"\n"]}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"FOLDER_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"*"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.jsx)(s.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,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"FOLDER_IGNORE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.jsx)(s.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,r.jsxs)(l.Z,{value:"compose",label:"Compose Projects",children:[(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The ",(0,r.jsx)(s.code,{children:"_GLOB"})," patterns are for matching ",(0,r.jsx)(s.strong,{children:"full directory paths"}),", not just a single folder name","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The default pattern matches all directories except those that have any folder starting with a ",(0,r.jsx)(s.code,{children:"."})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["Komodo Import will ",(0,r.jsx)(s.strong,{children:"always"})," ignore projects created by Komodo itself (projects found in ",(0,r.jsx)(s.code,{children:"/etc/komodo"})," or ",(0,r.jsx)(s.code,{children:"/home/USER/komodo"}),")"]}),"\n"]}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"COMPOSE_FILE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"**/**"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.jsx)(s.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use for matching a project's ",(0,r.jsx)(s.strong,{children:"full directory"})," on the host"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"COMPOSE_FILE_IGNORE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.jsx)(s.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use to ignore a project's ",(0,r.jsx)(s.strong,{children:"full directory"})," on the host"]})]})]})]})]})]}),"\n",(0,r.jsx)(s.h4,{id:"git-repo-stacks",children:"Git Repo Stacks"}),"\n",(0,r.jsxs)(s.p,{children:["If a parsed folder (or parent of it) contains a ",(0,r.jsx)(s.code,{children:".git"})," folder and it has a valid tracked branch + remote, then it will generate a ",(0,r.jsx)(s.strong,{children:"Git Repo Stack"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"How Git Repository Parsing Works"}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["A folder is only built as a Git Repo stack if...","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["It contains a valid ",(0,r.jsx)(s.code,{children:".git"})," folder or a parent folder contains a ",(0,r.jsx)(s.code,{children:".git"})," folder"]}),"\n",(0,r.jsx)(s.li,{children:"The git repo has a valid remote"}),"\n",(0,r.jsx)(s.li,{children:"The current checked out local branch is tracking a remote branch"}),"\n",(0,r.jsx)(s.li,{children:"If any of the above are not true then the folder is instead parsed as a Files On Server Stack"}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(s.p,{children:"You have two repositories at"}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"https://git.mydomain.com/myUser/immich"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"https://github.com/anotherUser/plex"})}),"\n"]}),(0,r.jsx)(s.p,{children:"Your folder structure looks like this"}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.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,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"immich"})," is created as a Git Repo Stack with","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Git Provider: ",(0,r.jsx)(s.code,{children:"git.mydomain.com"})]}),"\n",(0,r.jsxs)(s.li,{children:["Repo: ",(0,r.jsx)(s.code,{children:"myUser/immich"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"plex"})," is created as a Git Repo Stack with","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Git Provider: ",(0,r.jsx)(s.code,{children:"github.com"})]}),"\n",(0,r.jsxs)(s.li,{children:["Repo: ",(0,r.jsx)(s.code,{children:"anotherUser/immich"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"uptime-kuma"})," is created as a Files On Server Stack","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Run Directory: ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab/uptime-kuma"})]}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,r.jsxs)(s.p,{children:["Additionally, if ",(0,r.jsx)(s.a,{href:"#komodo-api",children:(0,r.jsx)(s.strong,{children:"Komodo API is configured"})})," then..."]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["If Komodo has a ",(0,r.jsx)(s.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,r.jsx)(s.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",(0,r.jsx)(s.h6,{id:"monorepos",children:"Monorepos"}),"\n",(0,r.jsxs)(s.p,{children:["Komodo Import also handles ",(0,r.jsx)(s.strong,{children:"monorepos"}),' IE one git repository with many folders containing projects. The only requirement to ensure this works is that the git repo "root" directory must be ',(0,r.jsx)(s.a,{href:"#host-directory",children:"mounted into Komodo Import."})]}),"\n",(0,r.jsxs)(i.Z,{groupId:"stacksFrom",queryString:!0,children:[(0,r.jsxs)(l.Z,{value:"dir",label:"Directory",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsxs)(s.a,{href:"./?stacksFrom=dir#stack-sources",children:[(0,r.jsx)(s.strong,{children:"Directory"})," Stack Source"]})," use the root git repository directory as the ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"}),"."]}),(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.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,r.jsxs)(s.p,{children:["Use ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab"})," as the ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," because it contains ",(0,r.jsx)(s.code,{children:".git"})," folder."]})]}),(0,r.jsxs)(s.p,{children:["If the directory containing your projects is not the root directory then use the ENV ",(0,r.jsx)(s.code,{children:"SCAN_DIR"})," to set the path to use for projects ",(0,r.jsx)(s.em,{children:"relative"})," to the ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"}),":"]}),(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"/home/myUser/homelab\n\u251C\u2500\u2500 .git\n\u251C\u2500\u2500 myStacks <---- parent folder containing projects\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,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Use ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab"})," as the ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," because it contains ",(0,r.jsx)(s.code,{children:".git"})," folder"]}),"\n",(0,r.jsxs)(s.li,{children:["Use ",(0,r.jsx)(s.code,{children:"SCAN_DIR=myStacks"})," -- the folder Komodo Import will parse projects from, ",(0,r.jsx)(s.em,{children:"relative"})," to the host directory ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab"})]}),"\n"]})]})]}),(0,r.jsx)(l.Z,{value:"compose",label:"Compose Projects",children:(0,r.jsxs)(s.p,{children:["Komodo Import will automatically determine if a project is in a monorepo by scanning all parent directories for ",(0,r.jsx)(s.code,{children:".git"})," folder. Just make sure the mounted ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," contains the monorepo folder at some level."]})})]}),"\n",(0,r.jsx)(s.h2,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsx)(s.h3,{id:"console",children:"Console"}),"\n",(0,r.jsxs)(s.p,{children:["KI will always output the raw TOML form of a ",(0,r.jsx)(s.a,{href:"https://komo.do/docs/sync-resources",children:"Sync Resource"})," to console unless the env ",(0,r.jsx)(s.code,{children:"LOG_TOML=false"}),"."]}),"\n",(0,r.jsx)(s.p,{children:"You'll see this in docker logs or node's console like this:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.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,r.jsxs)(s.p,{children:["Use this with ",(0,r.jsx)(s.a,{href:"../resourceSync#create-sync-resource",children:"manually creating Sync Resources"})]}),"\n",(0,r.jsxs)(s.admonition,{type:"tip",children:[(0,r.jsxs)(s.p,{children:["Use ",(0,r.jsx)(s.code,{children:"--no-log-prefix"})," to get output without the service name prefix, makes getting clear TOML output easier."]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"docker compose up --no-log-prefix\n"})})]}),"\n",(0,r.jsx)(s.h3,{id:"api-sync",children:"API Sync"}),"\n",(0,r.jsxs)(s.p,{children:["Komodo Import can ",(0,r.jsx)(s.strong,{children:"directly create Sync Resources in Komodo"})," using Komodo's API. ",(0,r.jsx)(s.strong,{children:"This output will only create the Sync, it will not execute it."})," After creating the Sync you should ",(0,r.jsx)(s.a,{href:"../resourceSync#verify-sync-changes",children:"verify its content before executing."})]}),"\n",(0,r.jsxs)(s.p,{children:["First, follow the instructions and configuration in the ",(0,r.jsx)(s.a,{href:"#komodo-api",children:"Komodo API"})," section."]}),"\n",(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["Currently, the user creating the Api Key must be an ",(0,r.jsx)(s.strong,{children:"Admin"})," to create Sync Resources (but this will hopefully be more granular in the future)."]})}),"\n",(0,r.jsx)(s.p,{children:"Then, add these environmental variables to Komodo Import:"}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Environmental Variables"}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"OUTPUT_API_SYNC"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"false"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["Must be ",(0,r.jsx)(s.code,{children:"true"})," to activate API Sync"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"EXISTING_SYNC"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"append"}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["Behavior if Resource Sync already exists. Either ",(0,r.jsx)(s.code,{children:"append"})," or ",(0,r.jsx)(s.code,{children:"overwrite"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"SYNC_NAME"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"komodo-import"}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Name of Sync to create/modify"})]})]})]})]}),"\n",(0,r.jsx)(s.h2,{id:"komodo-api",children:"Komodo API"}),"\n",(0,r.jsx)(s.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,r.jsx)(s.p,{children:"You will need to create an API Key and Secret to use the API."}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"API Key Creation Instructions"}),(0,r.jsx)(s.p,{children:"Navigate to your Komodo Web UI:"}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Open ",(0,r.jsx)(s.strong,{children:"Settings"})," -> ",(0,r.jsx)(s.strong,{children:"Profile"})]}),"\n",(0,r.jsxs)(s.li,{children:["Click ",(0,r.jsx)(s.strong,{children:"New Api Key"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Give it a name and optional Expiry"}),"\n",(0,r.jsxs)(s.li,{children:["Create the key and Copy the show ",(0,r.jsx)(s.strong,{children:"Key"})," and ",(0,r.jsx)(s.strong,{children:"Secret"})]}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,r.jsx)(s.h4,{id:"api-configuration",children:"API Configuration"}),"\n",(0,r.jsx)(s.p,{children:"Add these environmental variables to Komodo Import to use the Komodo API."}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Environmental Variables"}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"KOMODO_URL"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Komodo Server URL"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"API_KEY"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Komodo API Key"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"API_SECRET"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Komodo API Secret"})]})]})]})]}),"\n",(0,r.jsx)(s.p,{children:"Your Komodo URL should be as specific as possible, including port if required. Some examples of valid urls:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"http://192.168.0.100:9120"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"https://komodo.mydomain.com"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"https://myKomodo.com"})}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"http://komodo"})," (in docker network, for example)"]}),"\n"]})]})}function v(e={}){let{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(y,{...e})}):y(e)}}}]);
-1
assets/js/0c76d939.f9a8dbee.js
··· 1 - "use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["775"],{5106:function(e,s,n){n.d(s,{ZP:()=>l,d$:()=>o});var t=n(5893),r=n(65);let o=[];function i(e){let s={code:"code",pre:"pre",...(0,r.a)(),...e.components};return(0,t.jsx)(s.pre,{children:(0,t.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 \u251C\u2500\u2500 docker-compose.yaml\n \u2502 \u2514\u2500\u2500 .git\n \u2514\u2500\u2500 uptime-kuma/\n \u2514\u2500\u2500 compose.yaml\n"})})}function l(e={}){let{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(i,{...e})}):i(e)}},5386:function(e,s,n){n.r(s),n.d(s,{frontMatter:()=>p,default:()=>v,toc:()=>y,metadata:()=>t,assets:()=>g,contentTitle:()=>u});var t=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"}}'),r=n(5893),o=n(65),i=n(7057),l=n(4250);n(2292),n(7294),n(2575),n(5756),n(1142);var c=n(5106);let d=[];function h(e){let s={code:"code",pre:"pre",...(0,o.a)(),...e.components};return(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:".\n\u2514\u2500\u2500 /home/myUser\n \u251C\u2500\u2500 homeLab\n \u2502 \u251C\u2500\u2500 immich\n \u2502 \u2502 \u2514\u2500\u2500 compose.yaml\n \u2502 \u251C\u2500\u2500 plex\n \u2502 \u2502 \u251C\u2500\u2500 docker-compose.yaml\n \u2502 \u2502 \u2514\u2500\u2500 .git\n \u2502 \u2514\u2500\u2500 owncloud\n \u2502 \u2514\u2500\u2500 compose.yaml\n \u2514\u2500\u2500 localDev\n \u2514\u2500\u2500 myProjects\n \u2514\u2500\u2500 project1\n \u2514\u2500\u2500 compose.yaml\n"})})}function a(e={}){let{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}let x=[...d];function j(e){let s={code:"code",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"docker compose ls"})," reveals these projects:"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"NAME STATUS CONFIG FILES\nimmich running /home/myUser/homelab/immich/compose.yaml\nplex running /home/myUser/homelab/plex/docker-compose.yaml\nproject1 running /home/myUser/localDev/myProjects/project1/compose.yaml\n"})}),"\n",(0,r.jsx)(a,{})]})}function m(e={}){let{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(j,{...e})}):j(e)}let p={sidebar_position:2,title:"Overview",toc_max_heading_level:4},u=void 0,g={},y=[{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:"Stack Sources",id:"stack-sources",level:4},...c.d$,...x,{value:"Host Directory",id:"host-directory",level:4},...c.d$,...d,{value:"Stack Configuration",id:"stack-configuration",level:4},{value:"Git Repo Stacks",id:"git-repo-stacks",level:4},{value:"Monorepos",id:"monorepos",level:6},{value:"Outputs",id:"outputs-1",level:2},{value:"Console",id:"console",level:3},{value:"API Sync",id:"api-sync",level:3},{value:"Komodo API",id:"komodo-api",level:2},{value:"API Configuration",id:"api-configuration",level:4}];function f(e){let s={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",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,o.a)(),...e.components},{Details:n}=s;return n||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,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h2,{id:"key-concepts",children:"Key Concepts"}),"\n",(0,r.jsxs)(s.p,{children:["There are three parts to using Komodo Import (KI). ",(0,r.jsx)(s.strong,{children:"Which Inputs, Configuration, and Outputs are used are all defined using environmental variables."})]}),"\n",(0,r.jsx)(s.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(s.p,{children:["This is what KI reads to generate ",(0,r.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,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.a,{href:"https://docs.docker.com/compose/how-tos/project-name/",children:"Docker Compose projects"})," (",(0,r.jsx)(s.code,{children:"compose.yaml"}),")"]}),"\n",(0,r.jsx)(s.li,{children:"Docker containers"}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"configuration",children:"Configuration"}),"\n",(0,r.jsxs)(s.p,{children:["These are ",(0,r.jsx)(s.strong,{children:"environmental variables"})," supplied to KI to:"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"set defaults for Komodo Resources (image registry, auto update, etc.)"}),"\n",(0,r.jsx)(s.li,{children:"define required fields for Komodo Resources (Server Name, Run Directory, etc.)"}),"\n",(0,r.jsx)(s.li,{children:"define settings for how KI to interacts with Komodo (API Key, existing Resource behavior, etc.)"}),"\n",(0,r.jsxs)(s.li,{children:["define what ",(0,r.jsx)(s.a,{href:"#outputs",children:"Outputs"})," KI uses (log to file, export to Komodo, etc.)"]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(s.p,{children:["These are where and how KI puts the Resources created from ",(0,r.jsx)(s.a,{href:"#inputs",children:"Inputs"}),":"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Log to output (docker logs, node console)"}),"\n",(0,r.jsx)(s.li,{children:"Export to Komodo API (create Resource Sync, etc.)"}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsx)(s.h3,{id:"stacks",children:"Stacks"}),"\n",(0,r.jsxs)(s.p,{children:["KI can create Komodo ",(0,r.jsx)(s.a,{href:"https://komo.do/docs/resources#stack",children:"Stack"})," Resources from existing resources on your machine."]}),"\n",(0,r.jsx)(s.p,{children:"It will automatically detect what type of Stack to create based on the presence of git folders/data:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Komodo ",(0,r.jsx)(s.strong,{children:"Files On Server"})," Stack => compose project/folder without a ",(0,r.jsx)(s.code,{children:".git"})," folder"]}),"\n",(0,r.jsxs)(s.li,{children:["Komodo ",(0,r.jsx)(s.strong,{children:"Git Repo"})," Stacks => compose project/folder with a ",(0,r.jsx)(s.code,{children:".git"})," folder or with a parent folder containing a ",(0,r.jsx)(s.code,{children:".git"})," folder"]}),"\n"]}),"\n",(0,r.jsx)(s.h4,{id:"stack-sources",children:"Stack Sources"}),"\n",(0,r.jsx)(s.p,{children:"KI can generate Stacks from existing projects on your machine using one of two methods:"}),"\n",(0,r.jsxs)(i.Z,{groupId:"stacksFrom",queryString:!0,children:[(0,r.jsxs)(l.Z,{value:"dir",label:"Directory",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsx)(s.strong,{children:"Directory"})," (",(0,r.jsx)(s.code,{children:"STACKS_FROM=dir"}),"), Komodo Import will try to generate Stacks from each immediate ",(0,r.jsx)(s.strong,{children:"subfolder"})," inside the directory mounted into the container."]}),(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(c.ZP,{}),(0,r.jsxs)(s.p,{children:["Using ",(0,r.jsx)(s.code,{children:"STACKS_FROM=dir"})," with ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab"})," would produce Stacks for ",(0,r.jsx)(s.code,{children:"immich"})," ",(0,r.jsx)(s.code,{children:"plex"})," and ",(0,r.jsx)(s.code,{children:"uptime-kuma"}),"."]})]})]}),(0,r.jsxs)(l.Z,{value:"compose",label:"Compose Projects",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsx)(s.strong,{children:"Compose Projects"})," (",(0,r.jsx)(s.code,{children:"STACKS_FROM=compose"}),"), Komodo Import will try to generate Stacks from existing projects on your machine that were created with ",(0,r.jsx)(s.code,{children:"docker compose up"}),"."]}),(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(m,{}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Using ",(0,r.jsx)(s.code,{children:"STACKS_FROM=dir"})," with ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," ",(0,r.jsx)(s.code,{children:"/home/myUser"})," would produce Stacks for ",(0,r.jsx)(s.code,{children:"immich"})," ",(0,r.jsx)(s.code,{children:"plex"})," and ",(0,r.jsx)(s.code,{children:"project1"}),"."]}),"\n",(0,r.jsxs)(s.li,{children:["It ",(0,r.jsx)(s.strong,{children:"would not"})," generate a Stack for ",(0,r.jsx)(s.code,{children:"owncloud"})," since it was not created with ",(0,r.jsx)(s.code,{children:"docker compose up"})," yet."]}),"\n"]})]}),(0,r.jsxs)(s.p,{children:["To use ",(0,r.jsx)(s.strong,{children:"Compose Projects"})," you must give Komodo Import access to Docker. This can be done by mounting ",(0,r.jsx)(s.code,{children:"docker.sock"})," into the container or connecting it to a proxy service like ",(0,r.jsx)(s.a,{href:"https://github.com/Tecnativa/docker-socket-proxy",children:"docker-socket-proxy"}),"."]}),(0,r.jsxs)(n,{children:[(0,r.jsxs)("summary",{children:["Using ",(0,r.jsx)(s.code,{children:"socket-proxy"})," (recommended)"]}),(0,r.jsxs)(s.p,{children:["Add a socket-proxy service to your compose file and set the env ",(0,r.jsx)(s.code,{children:"DOCKER_HOST"})," so Komodo Import knows how to connect to Docker:"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-yaml",metastring:'title="compose.yaml"',children:"services:\n komodo-import:\n # ...\n environment:\n # ...\n # add to existing environment\n - DOCKER_HOST=tcp://socket-proxy:2375\n socket-proxy:\n image: lscr.io/linuxserver/socket-proxy:latest\n environment:\n - CONTAINERS=1\n - INFO=1\n - POST=0\n - PING=1\n - VERSION=1\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n read_only: true\n tmpfs:\n - /run\n"})})]}),(0,r.jsxs)(n,{children:[(0,r.jsxs)("summary",{children:["Mounting ",(0,r.jsx)(s.code,{children:"docker.sock"})]}),(0,r.jsxs)(s.p,{children:["Mount ",(0,r.jsx)(s.code,{children:"/var/run/docker.sock"})," as a volume into the container:"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-yaml",metastring:'title="compose.yaml"',children:"services:\n komodo-import:\n # ...\n volumes:\n # ...\n # add to existing volumes\n - /var/run/docker.sock:/var/run/docker.sock:ro\n"})})]})]})]}),"\n",(0,r.jsx)(s.h4,{id:"host-directory",children:"Host Directory"}),"\n",(0,r.jsxs)(s.p,{children:["The directory on the ",(0,r.jsx)(s.strong,{children:"Host"})," machine that should be mounted into the Komodo Import container depends on which ",(0,r.jsx)(s.a,{href:"#stack-sources",children:"Stack Source"})," you are using."]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The host directory should be mounted to ",(0,r.jsx)(s.code,{children:"/filesOnServer"})," in the container."]}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsxs)(s.strong,{children:["The host directory should also be set for ",(0,r.jsx)(s.code,{children:"HOST_DIR"})," env."]})}),"\n"]}),"\n",(0,r.jsxs)(i.Z,{groupId:"stacksFrom",queryString:!0,children:[(0,r.jsxs)(l.Z,{value:"dir",label:"Directory",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsx)(s.strong,{children:"Directory"})," (",(0,r.jsx)(s.code,{children:"STACKS_FROM=dir"}),") use the ",(0,r.jsx)(s.strong,{children:"parent folder"})," containing all of the immediate ",(0,r.jsx)(s.strong,{children:"subfolders"})," that should be generated as Stacks."]}),(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(c.ZP,{}),(0,r.jsxs)(s.p,{children:["Directory should be ",(0,r.jsx)(s.code,{children:"home/myUser/homelab"}),":"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-yaml",metastring:'title="compose.yaml"',children:"services:\n komodo-import:\n # ...\n volumes:\n - /home/myUser/homelab:/filesOnServer\n environment:\n - HOST_DIR=/home/myUser/homelab\n"})})]})]}),(0,r.jsxs)(l.Z,{value:"compose",label:"Compose Projects",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsx)(s.strong,{children:"Compose Projects"})," (",(0,r.jsx)(s.code,{children:"STACKS_FROM=compose"}),") use the closest ",(0,r.jsx)(s.strong,{children:"parent folder"})," that contains all discovered compose project Config Files (",(0,r.jsx)(s.code,{children:"docker compose ls"}),")."]}),(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(a,{}),(0,r.jsxs)(s.p,{children:["Directory should be ",(0,r.jsx)(s.code,{children:"/home/myUser"})," because projects are found under both ",(0,r.jsx)(s.code,{children:"localDev"})," and ",(0,r.jsx)(s.code,{children:"homeLab"}),":"]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-yaml",metastring:'itle="compose.yaml"',children:"services:\n komodo-import:\n # ...\n volumes:\n - /home/myUser:/filesOnServer\n environment:\n - HOST_DIR=/home/myUser\n"})})]})]})]}),"\n",(0,r.jsx)(s.h4,{id:"stack-configuration",children:"Stack Configuration"}),"\n",(0,r.jsx)(s.p,{children:"The configuration and behaviors below are applicable to all Stacks:"}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Environmental Variables"}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"SERVER_NAME"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The name of the Komodo ",(0,r.jsx)(s.a,{href:"https://komo.do/docs/resources#server",children:"Server"})," where a Stack is located"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"STACKS_FROM"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"dir"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["What ",(0,r.jsx)(s.a,{href:"#stack-sources",children:(0,r.jsx)(s.strong,{children:"Stack Sources"})})," to generate Stacks from? ",(0,r.jsx)(s.code,{children:"dir"})," or ",(0,r.jsx)(s.code,{children:"compose"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"HOST_DIR"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The parent directory on the ",(0,r.jsx)(s.strong,{children:"host"})," that mounted into the Komodo Import container"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"WRITE_ENV"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"true"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["Write the contents of found .env files to Komodo ",(0,r.jsx)(s.strong,{children:"Environment"}),". Likely want this as ",(0,r.jsx)(s.code,{children:"true"}),"."]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"COMPOSE_FILE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"**/{compose,docker-compose}*.y?(a)ml"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.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,r.jsx)(s.strong,{children:"Files Paths"})," in Stack config"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"ENV_FILE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"**/.env"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.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,r.jsx)(s.strong,{children:"Additional Env Files"})," in Stack config"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"KOMODO_ENV_NAME"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:".komodoenv"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["If existing .env files are found, and ",(0,r.jsx)(s.code,{children:"WRITE_ENV=false"}),", then this name will be used for the .env that Komodo writes using its own Environment section"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"IMAGE_REGISTRY_PROVIDER"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Name of Image Registry to use"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"IMAGE_REGISTRY_ACCOUNT"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Image Registry account to use"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"POLL_FOR_UPDATE"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Poll for newer images?"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"AUTO_UPDATE"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Auto Update stack?"})]})]})]})]}),"\n",(0,r.jsxs)(n,{markdown:"1",children:[(0,r.jsx)("summary",{children:"Compose File Detection"}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Default pattern","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Looks for ",(0,r.jsx)(s.code,{children:"compose.y(a)ml"})," and ",(0,r.jsx)(s.code,{children:"docker-compose.y(a)ml"})]}),"\n",(0,r.jsxs)(s.li,{children:["Files may have interim names like ",(0,r.jsx)(s.code,{children:"compose.dev.yaml"})]}),"\n",(0,r.jsxs)(s.li,{children:["Can be overridden with ",(0,r.jsx)(s.code,{children:"COMPOSE_FILE_GLOB"})," env for non-compose project stack sources"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["Will prioritize ",(0,r.jsx)(s.code,{children:"compose.yaml"})," over ",(0,r.jsx)(s.code,{children:"docker-compose.yaml"})]}),"\n",(0,r.jsxs)(s.li,{children:["Will choose the file with the shortest path EX","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Prioritizes ",(0,r.jsx)(s.code,{children:"./compose.yaml"})," over ",(0,r.jsx)(s.code,{children:"./aFolder/compose.yaml"})]}),"\n"]}),"\n"]}),"\n"]}),(0,r.jsxs)(s.p,{children:["Komodo Import will ",(0,r.jsx)(s.strong,{children:"log"})," which files it detects and indicate which ones it will use for each project."]}),(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["When using ",(0,r.jsx)(s.a,{href:"./?stacksFrom=compose#stack-sources",children:"Compose Projects Stack Source"})," compose files are automatically parsed from the running projects."]})})]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsxs)("summary",{children:[(0,r.jsx)(s.code,{children:".env"})," File Detection"]}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Default pattern","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Adds all ",(0,r.jsx)(s.code,{children:".env"})," files found at top-level or sub-folders"]}),"\n",(0,r.jsxs)(s.li,{children:["Can be overridden with ",(0,r.jsx)(s.code,{children:"ENV_FILE_GLOB"})," env"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["If a ",(0,r.jsx)(s.code,{children:".env"})," file is found and ",(0,r.jsx)(s.code,{children:"WRITE_ENV=false"})," then a Stack is configured to write it's own Environment section to ",(0,r.jsx)(s.code,{children:".komodoenv"})," instead of ",(0,r.jsx)(s.code,{children:".env"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Komodo env name can be overridden with ",(0,r.jsx)(s.code,{children:"KOMODO_ENV_NAME"})]}),"\n"]}),"\n"]}),"\n"]}),(0,r.jsxs)(s.p,{children:["Komodo Import will ",(0,r.jsx)(s.strong,{children:"log"})," which files it detects and indicate which ones it will use for each project."]})]}),"\n",(0,r.jsxs)(s.p,{children:["There is additional configuration available depending on the ",(0,r.jsx)(s.a,{href:"#stack-sources",children:"Stack Source"}),":"]}),"\n",(0,r.jsxs)(i.Z,{groupId:"stacksFrom",queryString:!0,children:[(0,r.jsxs)(l.Z,{value:"dir",label:"Directory",children:[(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The ",(0,r.jsx)(s.code,{children:"_GLOB"})," patterns are for matching folder names within the parent folder, not full directory paths","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The default pattern matches all folder names except those starting with a ",(0,r.jsx)(s.code,{children:"."})]}),"\n"]}),"\n"]}),"\n"]}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"FOLDER_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"*"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.jsx)(s.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,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"FOLDER_IGNORE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.jsx)(s.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,r.jsxs)(l.Z,{value:"compose",label:"Compose Projects",children:[(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The ",(0,r.jsx)(s.code,{children:"_GLOB"})," patterns are for matching ",(0,r.jsx)(s.strong,{children:"full directory paths"}),", not just a single folder name","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["The default pattern matches all directories except those that have any folder starting with a ",(0,r.jsx)(s.code,{children:"."})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["Komodo Import will ",(0,r.jsx)(s.strong,{children:"always"})," ignore projects created by Komodo itself (projects found in ",(0,r.jsx)(s.code,{children:"/etc/komodo"})," or ",(0,r.jsx)(s.code,{children:"/home/USER/komodo"}),")"]}),"\n"]}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"COMPOSE_FILE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.code,{children:"**/**"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.jsx)(s.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use for matching a project's ",(0,r.jsx)(s.strong,{children:"full directory"})," on the host"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"COMPOSE_FILE_IGNORE_GLOB"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["The ",(0,r.jsx)(s.a,{href:"https://github.com/isaacs/node-glob?tab=readme-ov-file#glob-primer",children:"glob"})," pattern to use to ignore a project's ",(0,r.jsx)(s.strong,{children:"full directory"})," on the host"]})]})]})]})]})]}),"\n",(0,r.jsx)(s.h4,{id:"git-repo-stacks",children:"Git Repo Stacks"}),"\n",(0,r.jsxs)(s.p,{children:["If a parsed folder (or parent of it) contains a ",(0,r.jsx)(s.code,{children:".git"})," folder and it has a valid tracked branch + remote, then it will generate a ",(0,r.jsx)(s.strong,{children:"Git Repo Stack"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"How Git Repository Parsing Works"}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["A folder is only built as a Git Repo stack if...","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["It contains a valid ",(0,r.jsx)(s.code,{children:".git"})," folder or a parent folder contains a ",(0,r.jsx)(s.code,{children:".git"})," folder"]}),"\n",(0,r.jsx)(s.li,{children:"The git repo has a valid remote"}),"\n",(0,r.jsx)(s.li,{children:"The current checked out local branch is tracking a remote branch"}),"\n",(0,r.jsx)(s.li,{children:"If any of the above are not true then the folder is instead parsed as a Files On Server Stack"}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(s.p,{children:"You have two repositories at"}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"https://git.mydomain.com/myUser/immich"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"https://github.com/anotherUser/plex"})}),"\n"]}),(0,r.jsx)(s.p,{children:"Your folder structure looks like this"}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.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,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"immich"})," is created as a Git Repo Stack with","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Git Provider: ",(0,r.jsx)(s.code,{children:"git.mydomain.com"})]}),"\n",(0,r.jsxs)(s.li,{children:["Repo: ",(0,r.jsx)(s.code,{children:"myUser/immich"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"plex"})," is created as a Git Repo Stack with","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Git Provider: ",(0,r.jsx)(s.code,{children:"github.com"})]}),"\n",(0,r.jsxs)(s.li,{children:["Repo: ",(0,r.jsx)(s.code,{children:"anotherUser/immich"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"uptime-kuma"})," is created as a Files On Server Stack","\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Run Directory: ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab/uptime-kuma"})]}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,r.jsxs)(s.p,{children:["Additionally, if ",(0,r.jsx)(s.a,{href:"#komodo-api",children:(0,r.jsx)(s.strong,{children:"Komodo API is configured"})})," then..."]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["If Komodo has a ",(0,r.jsx)(s.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,r.jsx)(s.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",(0,r.jsx)(s.h6,{id:"monorepos",children:"Monorepos"}),"\n",(0,r.jsxs)(s.p,{children:["Komodo Import also handles ",(0,r.jsx)(s.strong,{children:"monorepos"}),' IE one git repository with many folders containing projects. The only requirement to ensure this works is that the git repo "root" directory must be ',(0,r.jsx)(s.a,{href:"#host-directory",children:"mounted into Komodo Import."})]}),"\n",(0,r.jsxs)(i.Z,{groupId:"stacksFrom",queryString:!0,children:[(0,r.jsxs)(l.Z,{value:"dir",label:"Directory",children:[(0,r.jsxs)(s.p,{children:["For ",(0,r.jsxs)(s.a,{href:"./?stacksFrom=dir#stack-sources",children:[(0,r.jsx)(s.strong,{children:"Directory"})," Stack Source"]})," use the root git repository directory as the ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"}),"."]}),(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.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,r.jsxs)(s.p,{children:["Use ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab"})," as the ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," because it contains ",(0,r.jsx)(s.code,{children:".git"})," folder."]})]}),(0,r.jsxs)(s.p,{children:["If the directory containing your projects is not the root directory then use the ENV ",(0,r.jsx)(s.code,{children:"SCAN_DIR"})," to set the path to use for projects ",(0,r.jsx)(s.em,{children:"relative"})," to the ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"}),":"]}),(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Example"}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"/home/myUser/homelab\n\u251C\u2500\u2500 .git\n\u251C\u2500\u2500 myStacks <---- parent folder containing projects\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,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Use ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab"})," as the ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," because it contains ",(0,r.jsx)(s.code,{children:".git"})," folder"]}),"\n",(0,r.jsxs)(s.li,{children:["Use ",(0,r.jsx)(s.code,{children:"SCAN_DIR=myStacks"})," -- the folder Komodo Import will parse projects from, ",(0,r.jsx)(s.em,{children:"relative"})," to the host directory ",(0,r.jsx)(s.code,{children:"/home/myUser/homelab"})]}),"\n"]})]})]}),(0,r.jsx)(l.Z,{value:"compose",label:"Compose Projects",children:(0,r.jsxs)(s.p,{children:["Komodo Import will automatically determine if a project is in a monorepo by scanning all parent directories for ",(0,r.jsx)(s.code,{children:".git"})," folder. Just make sure the mounted ",(0,r.jsx)(s.a,{href:"#host-directory",children:"host directory"})," contains the monorepo folder at some level."]})})]}),"\n",(0,r.jsx)(s.h2,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsx)(s.h3,{id:"console",children:"Console"}),"\n",(0,r.jsxs)(s.p,{children:["KI will always output the raw TOML form of a ",(0,r.jsx)(s.a,{href:"https://komo.do/docs/sync-resources",children:"Sync Resource"})," to console unless the env ",(0,r.jsx)(s.code,{children:"LOG_TOML=false"}),"."]}),"\n",(0,r.jsx)(s.p,{children:"You'll see this in docker logs or node's console like this:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.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,r.jsxs)(s.p,{children:["Use this with ",(0,r.jsx)(s.a,{href:"../resourceSync#create-sync-resource",children:"manually creating Sync Resources"})]}),"\n",(0,r.jsxs)(s.admonition,{type:"tip",children:[(0,r.jsxs)(s.p,{children:["Use ",(0,r.jsx)(s.code,{children:"--no-log-prefix"})," to get output without the service name prefix, makes getting clear TOML output easier."]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"docker compose up --no-log-prefix\n"})})]}),"\n",(0,r.jsx)(s.h3,{id:"api-sync",children:"API Sync"}),"\n",(0,r.jsxs)(s.p,{children:["Komodo Import can ",(0,r.jsx)(s.strong,{children:"directly create Sync Resources in Komodo"})," using Komodo's API. ",(0,r.jsx)(s.strong,{children:"This output will only create the Sync, it will not execute it."})," After creating the Sync you should ",(0,r.jsx)(s.a,{href:"../resourceSync#verify-sync-changes",children:"verify its content before executing."})]}),"\n",(0,r.jsxs)(s.p,{children:["First, follow the instructions and configuration in the ",(0,r.jsx)(s.a,{href:"#komodo-api",children:"Komodo API"})," section."]}),"\n",(0,r.jsx)(s.admonition,{type:"note",children:(0,r.jsxs)(s.p,{children:["Currently, the user creating the Api Key must be an ",(0,r.jsx)(s.strong,{children:"Admin"})," to create Sync Resources (but this will hopefully be more granular in the future)."]})}),"\n",(0,r.jsx)(s.p,{children:"Then, add these environmental variables to Komodo Import:"}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Environmental Variables"}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"OUTPUT_API_SYNC"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"false"})}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["Must be ",(0,r.jsx)(s.code,{children:"true"})," to activate API Sync"]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"EXISTING_SYNC"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"append"}),(0,r.jsxs)(s.td,{style:{textAlign:"left"},children:["Behavior if Resource Sync already exists. Either ",(0,r.jsx)(s.code,{children:"append"})," or ",(0,r.jsx)(s.code,{children:"overwrite"})]})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"SYNC_NAME"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"komodo-import"}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Name of Sync to create/modify"})]})]})]})]}),"\n",(0,r.jsx)(s.h2,{id:"komodo-api",children:"Komodo API"}),"\n",(0,r.jsx)(s.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,r.jsx)(s.p,{children:"You will need to create an API Key and Secret to use the API."}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"API Key Creation Instructions"}),(0,r.jsx)(s.p,{children:"Navigate to your Komodo Web UI:"}),(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Open ",(0,r.jsx)(s.strong,{children:"Settings"})," -> ",(0,r.jsx)(s.strong,{children:"Profile"})]}),"\n",(0,r.jsxs)(s.li,{children:["Click ",(0,r.jsx)(s.strong,{children:"New Api Key"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:"Give it a name and optional Expiry"}),"\n",(0,r.jsxs)(s.li,{children:["Create the key and Copy the show ",(0,r.jsx)(s.strong,{children:"Key"})," and ",(0,r.jsx)(s.strong,{children:"Secret"})]}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,r.jsx)(s.h4,{id:"api-configuration",children:"API Configuration"}),"\n",(0,r.jsx)(s.p,{children:"Add these environmental variables to Komodo Import to use the Komodo API."}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Environmental Variables"}),(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"ENV"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(s.th,{children:"Default"}),(0,r.jsx)(s.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"KOMODO_URL"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Komodo Server URL"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"API_KEY"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Komodo API Key"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{style:{textAlign:"left"},children:(0,r.jsx)(s.code,{children:"API_SECRET"})}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"\u2611\uFE0F"}),(0,r.jsx)(s.td,{}),(0,r.jsx)(s.td,{style:{textAlign:"left"},children:"Komodo API Secret"})]})]})]})]}),"\n",(0,r.jsx)(s.p,{children:"Your Komodo URL should be as specific as possible, including port if required. Some examples of valid urls:"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"http://192.168.0.100:9120"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"https://komodo.mydomain.com"})}),"\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.code,{children:"https://myKomodo.com"})}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"http://komodo"})," (in docker network, for example)"]}),"\n"]})]})}function v(e={}){let{wrapper:s}={...(0,o.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(f,{...e})}):f(e)}}}]);
+1 -1
assets/js/376.9d02cf6e.js assets/js/376.6cc9785c.js
··· 1 - (()=>{"use strict";var e,r,t,n,o,s={9182:function(e,r,t){t.d(r,{J:()=>s,_k:()=>n,bJ:()=>i,dK:()=>o});let n=[],o=["en"],s="search-index{dir}.json?_=87f699ad",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,["770"],function(){return a(7721)});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+".4c430e02.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],f=!0,u=0;u<t.length;u++)(!1&o||i>=o)&&Object.keys(a.O).every(e=>a.O[e](t[u]))?t.splice(u--,1):(f=!1,o<i&&(i=o));if(f){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("770").then(r),a.gca=function(e){return e=({})[e]||e,a.p+a.u(e)},t={376: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 + (()=>{"use strict";var e,r,t,n,o,s={9182:function(e,r,t){t.d(r,{J:()=>s,_k:()=>n,bJ:()=>i,dK:()=>o});let n=[],o=["en"],s="search-index{dir}.json?_=9ca252d8",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,["770"],function(){return a(7721)});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+".4c430e02.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("770").then(r),a.gca=function(e){return e=({})[e]||e,a.p+a.u(e)},t={376: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/74876495.0d709b04.js
··· 1 + (self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["631"],{4849:function(e,r,o){e.exports={src:Object.assign(Object.create({toString(){return this.src}}),{srcSet:o.p+"assets/ideal-img/sync-resource-file.d733ef4.640.png 640w,"+o.p+"assets/ideal-img/sync-resource-file.cdf1733.739.png 739w",images:[{path:o.p+"assets/ideal-img/sync-resource-file.d733ef4.640.png",width:640,height:793},{path:o.p+"assets/ideal-img/sync-resource-file.cdf1733.739.png",width:739,height:916}],src:o.p+"assets/ideal-img/sync-resource-file.d733ef4.640.png",placeholder:void 0,width:640,height:793}),preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAMCAYAAABbayygAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABDElEQVR4nG2P226DMBBEeQ7XgC9gm0swEAKFpKRpq1Zqpf7/P01lFyFF6cNod7VHs7MOlxokPSAiCjSrQbIaEZHY+QncgGxy/H1qFzErEOwzeBGHF7I7yDVgGKcILKzgBvTPySePIE0LCFXbwTMK6aadn6w9gxMlAqkyOSvELN+U8MJGChOJIM7ghImAPi4o2wU078HU0YrKDlS2to95ZUCJafnE/PKN+ukDor5A1DN43oOKBkx1K0gkuvGGdrhC6RlpOYKXA5hqV8cVNN82pyvyZgEvR1DV2aWpd6A5fb59YXn/gbanz8gOE3hxenTs5zf00yuK9oKsGm02Az2Aul+g9DN4MYAIDfIP+AtBl50yVJl/EgAAAABJRU5ErkJggg=="}},1719:function(e,r,o){"use strict";o.d(r,{ZP:()=>c,d$:()=>t});var s=o(5893),n=o(65);let t=[];function i(e){let r={a:"a",code:"code",p:"p",pre:"pre",...(0,n.a)(),...e.components},{Details:o}=r;return o||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(o,{children:[(0,s.jsx)("summary",{children:"Console Output Example"}),(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-shell",children:"docker compose up --no-log-prefix\n"})}),(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{children:'INFO : [Init] Debug Mode: NO\nINFO : [App] Version: 0.1.0\nINFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer\nINFO : [App] [Files On Server] Processing Stacks for 2 folders:\n/filesOnServer/immich\n/filesOnServer/plex\n/filesOnServer/uptime-kuma\nINFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml\nINFO : [App] [Files On Server] Env Glob: **/.env\nINFO : [App] [Files On Server] [compose] Found Stack \'compose\' at dir /filesOnServer/compose.yaml\nWARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob\nINFO : [App] [Files On Server] [compose] Stack config complete\n\n...\n\nINFO : [App] [Files On Server] Built Stack configs for 3 folders\nINFO : [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\nINFO : [App] Done!\n'})}),(0,s.jsxs)(r.p,{children:["Copy the text between the scissors and ",(0,s.jsx)(r.a,{href:"../usage/resourceSync/#create-sync-resource",children:"create a new Sync Resource in Komodo"})]})]})}function c(e={}){let{wrapper:r}={...(0,n.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(i,{...e})}):i(e)}},58:function(e,r,o){"use strict";o.r(r),o.d(r,{frontMatter:()=>T,default:()=>L,toc:()=>G,metadata:()=>s,assets:()=>B,contentTitle:()=>U});var s=JSON.parse('{"id":"quickstart","title":"Quickstart","description":"Prerequisites","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"}}'),n=o(5893),t=o(65);o(7057),o(4250);var i=o(7294),c=o(2292),l=o.n(c),a=o(9999),d=o(2575),m=o(461),p=o(5756),h=o(7026),u=o(1183);function x({size:e=null,outline:r=!1,variant:o="primary",block:s=!1,disabled:t=!1,className:i,style:c={},link:l,label:a,onClick:d=()=>null}){let m=e?({sm:"sm",small:"sm",lg:"lg",large:"lg",medium:null})[e]:"",p=m?`button--${m}`:"",x=o?`button--${o}`:"";return(0,n.jsx)(u.Z,{to:t?null:l,children:(0,n.jsx)("button",{className:(0,h.Z)("button",p,r?"button--outline":"",x,s?"button--block":"",t?"disabled":"",i),style:c,role:"button","aria-disabled":t,onClick:e=>{e.preventDefault(),d()},children:a})})}let f={borderRadius:"var(--ifm-button-border-radius) 0 0 var(--ifm-button-border-radius)"},j={borderRadius:"0 var(--ifm-button-border-radius) var(--ifm-button-border-radius) 0"},g={borderRadius:"0"};function y({size:e=null,variant:r="primary",block:o=!1,disabled:s=!1,className:t,style:i,options:c,value:l,defaultValue:a,onChange:d=()=>null}){if(void 0===c||0===c.length)return null;let m=c.map((o,s)=>{let t={style:g,outline:!0,size:e,variant:r,label:o[1],link:"#",onClick:()=>d(o[0])};return 0===s?t.style=f:s===c.length-1&&(t.style=j),(l??a)===o[0]&&(t.outline=!1),(0,n.jsx)(x,{...t},s)});return(0,n.jsx)("span",{children:m})}var v=o(6370),S=o(4697);function k(e){let r={code:"code",p:"p",pre:"pre",strong:"strong",...(0,t.a)(),...e.components},{Details:o}=r;return o||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:["When using ",(0,n.jsx)(r.code,{children:"STACKS_FROM=compose"})," this should be the the most top-level directory that all projects are contained within, at some level."]}),"\n",(0,n.jsxs)(o,{children:[(0,n.jsx)("summary",{children:"Example"}),(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"docker compose ls"})," reveals these projects:"]}),(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"NAME STATUS CONFIG FILES\nimmich running /home/myUser/homelab/immich/compose.yaml\nplex running /home/myUser/homelab/plex/docker-compose.yaml\nproject1 running /home/myUser/localDev/myProjects/project1/compose.yaml\n"})}),(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:".\n\u2514\u2500\u2500 /home/myUser\n \u251C\u2500\u2500 homeLab\n \u2502 \u251C\u2500\u2500 immich\n \u2502 \u2502 \u2514\u2500\u2500 compose.yaml\n \u2502 \u2514\u2500\u2500 plex\n \u2502 \u251C\u2500\u2500 docker-compose.yaml\n \u2502 \u2514\u2500\u2500 .git\n \u2514\u2500\u2500 localDev\n \u2514\u2500\u2500 myProjects\n \u2514\u2500\u2500 project1\n \u2514\u2500\u2500 compose.yaml\n"})}),(0,n.jsxs)(r.p,{children:["Then ",(0,n.jsx)(r.strong,{children:"Host Directory"})," should be ",(0,n.jsx)(r.code,{children:"/home/myUser"})]})]})]})}function b(e={}){let{wrapper:r}={...(0,t.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(k,{...e})}):k(e)}function O(e){let r={code:"code",p:"p",pre:"pre",strong:"strong",...(0,t.a)(),...e.components},{Details:o}=r;return o||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:["For ",(0,n.jsx)(r.code,{children:"STACKS_FROM=dir"})," this should be the immediate parent directory containing all your project folders."]}),"\n",(0,n.jsxs)(o,{children:[(0,n.jsx)("summary",{children:"Example"}),(0,n.jsx)(r.pre,{children:(0,n.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 \u251C\u2500\u2500 docker-compose.yaml\n \u2502 \u2514\u2500\u2500 .git\n \u2514\u2500\u2500 uptime-kuma/\n \u2514\u2500\u2500 compose.yaml\n"})}),(0,n.jsxs)(r.p,{children:["Then ",(0,n.jsx)(r.strong,{children:"Host Directory"})," should be ",(0,n.jsx)(r.code,{children:"/home/myUser/homelab"})]})]})]})}function A(e={}){let{wrapper:r}={...(0,t.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(O,{...e})}):O(e)}var F=o(1719),w=o(8494),N=o(4849),I=o.n(N);function E(e){let r={a:"a",code:"code",p:"p",pre:"pre",...(0,t.a)(),...e.components},{Details:o}=r;return o||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,n.jsxs)(o,{children:[(0,n.jsx)("summary",{children:"Komodo Example"}),(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-shell",children:"docker compose up --no-log-prefix\n"})}),(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"INFO : [Init] Debug Mode: NO\nINFO : [App] Version: 0.1.0\nINFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer\nINFO : [App] [Files On Server] Processing Stacks for 2 folders:\n/filesOnServer/immich\n/filesOnServer/plex\n/filesOnServer/uptime-kuma\nINFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml\nINFO : [App] [Files On Server] Env Glob: **/.env\nINFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml\nWARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob\nINFO : [App] [Files On Server] [compose] Stack config complete\n\n...\n\nINFO : [App] [Files On Server] Built Stack configs for 3 folders\nINFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync\n\n...\n\nINFO : [App] [Sync API] Using 'komodo-import' as Sync Name\nVERBOSE: [App] [Sync API] KOMODO_URL: http://192.168.0.101:9120 | Normalized: http://192.168.0.101:9120/\nINFO : [App] [Sync API] Resource Sync created.\nINFO : [App] [Sync API] Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57\n"})}),(0,n.jsxs)(r.p,{children:["The ",(0,n.jsx)(r.a,{href:"../usage/resourceSync#verify-sync-changes",children:"Sync Resource"})," is automatically created for you (but not executed!)"]}),(0,n.jsx)(w.Z,{img:I()})]})}function R(e={}){let{wrapper:r}={...(0,t.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(E,{...e})}):E(e)}let _=(0,v.wL)("services:\n komodo-import:\n image: foxxmd/komodo-import:latest\n restart: no\n volumes:\n - ./home/myUser/homelab:/filesOnServer\n environment:\n"),C=(0,v.wL)("socket-proxy:\n image: lscr.io/linuxserver/socket-proxy:latest\n environment:\n - CONTAINERS=1\n - INFO=1\n - POST=0\n - PING=1\n - VERSION=1\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n read_only: true\n tmpfs:\n - /run"),K=new RegExp(/(?:^|[\/\\])\.\S/),P=e=>{let{data:r,name:o,client:s=!1}=e,[t,c]=(0,i.useState)({stacksFrom:"dir",api:!1}),[p,h]=(0,i.useState)(_),[u,f]=i.useState(""),[j]=(0,S.Nr)(u,500),[g,k]=i.useState(""),[O]=(0,S.Nr)(g,500),[w,N]=i.useState(""),[I]=(0,S.Nr)(w,500),[E,P]=i.useState(""),[D]=(0,S.Nr)(E,500),[T,U]=i.useState(""),[B]=(0,S.Nr)(T,500),G=(0,i.useCallback)(()=>{c({...t,api:!t.api})},[t,c]);return(0,i.useEffect)(()=>{let e=_.clone(),r=void 0!==j&&""!==j.trim()?j:"/home/myUser/homelab",o=new v.Ru(`${r}:/filesOnServer`);o.commentBefore=`# ${"dir"===t.stacksFrom?"Parent directory where all subfolders are compose projects":"Top-most directory that contains all folders (at any level) that compose projects are found in"}`,e.setIn(["services","komodo-import","volumes",0],o),e.setIn(["services","komodo-import","environment"],new v.wr);let s=e.getIn(["services","komodo-import","environment"]),n=new v.Ru(`HOST_PARENT_PATH=${r}`);if(n.commentBefore="# Same as mounted directory above",s.add(n),K.test(r)){let e=new v.Ru("GLOB_DOT=true");e.commentBefore="# Forces glob to not ignore dot folders",s.add(e)}let i=new v.Ru(`STACKS_FROM=${t.stacksFrom}`);i.commentBefore="# Determines what sources to generate Stacks from",i.comment=`# ${"dir"===t.stacksFrom?"Generate stacks from subfolders in directory":"Generate stacks from compose projects"}`,s.add(i);let c=new v.Ru(`SERVER_NAME=${void 0!==O&&""!==O.trim()?O:"my-cool-server"}`);if(c.commentBefore="# Name of Server for this machine, in Komodo",s.add(c),t.api){let e=new v.Ru(`KOMODO_URL=${""===I?"http://192.168.KOMOMDO.IP:8120":I}`);e.spaceBefore=!0,e.commentBefore="# Configuration for interacting with Komodo API",s.add(e),s.add(`API_KEY=${""===D?"K-3A6btIPZYeBu_EXAMPLE_KEY":D}`),s.add(`API_SECRET=${""===B?"S-qnaXD1frutYlfC2ZYl_EXAMPLE_SECRET":B}`);let r=new v.Ru("OUTPUT_API_SYNC=true");r.comment="Create Sync Resource in Komodo",s.add(r)}if("compose"===t.stacksFrom){let r=new v.Ru("DOCKER_HOST=tcp://socket-proxy:2375");r.spaceBefore=!0,r.commentBefore="Tells Komodo Import how to connect to Docker",s.add(r);let o=new v.wr;o.add("socket-proxy"),e.setIn(["services","komodo-import","depends_on"],o),e.setIn(["services","socket-proxy"],C.get("socket-proxy")),e.getIn(["services","socket-proxy"]).commentBefore="# used to communicate with docker daemon"}h(e)},[t,j,O,D,B,I,h]),(0,n.jsxs)(i.Fragment,{children:[(0,n.jsxs)("h3",{children:["1. What ",(0,n.jsx)("a",{href:"../usage/overview#stack-sources",children:"Stack Sources"})," to generate Stacks from?"]}),(0,n.jsx)("p",{children:(0,n.jsx)(y,{options:[["dir","Directory"],["compose","Compose Projects"]],defaultValue:"dir",value:t.stacksFrom,variant:"primary",size:"lg",onChange:e=>c({...t,stacksFrom:e})})}),(0,n.jsx)("span",{style:{display:"dir"===t.stacksFrom?"inherit":"none"},children:(0,n.jsxs)(d.Z,{type:"info",children:["For ",(0,n.jsx)("strong",{children:"Directory"})," (",(0,n.jsx)(a.Z,{children:"STACKS_FROM=dir"}),") Komodo Import will try to generate Stacks from each ",(0,n.jsx)("strong",{children:"subfolder"})," inside the directory mounted into the container."]})}),(0,n.jsx)("span",{style:{display:"compose"===t.stacksFrom?"inherit":"none"},children:(0,n.jsxs)(d.Z,{type:"info",children:["For ",(0,n.jsx)("strong",{children:"Compose Projects"})," (",(0,n.jsx)(a.Z,{children:"STACKS_FROM=compose"}),") Komodo Import will try to generate Stacks from existing projects on your machine that were created with ",(0,n.jsx)(a.Z,{children:"docker compose up"})]})}),(0,n.jsx)("h3",{children:"2. Where are your existing projects located on your machine?"}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"hostDir",children:(0,n.jsx)("strong",{children:(0,n.jsx)("a",{href:"../usage/overview#host-directory",children:"Host Directory:"})})}),(0,n.jsx)("input",{id:"hostDir",type:"text",placeholder:"/home/myUser/homelab",onChange:e=>{f(e.target.value)},value:u})]}),"compose"===t.stacksFrom?(0,n.jsx)(m.Z,{children:(0,n.jsx)(b,{})}):(0,n.jsx)(m.Z,{children:(0,n.jsx)(A,{})}),(0,n.jsx)("h3",{children:"3. What is the name of this Komodo Server?"}),(0,n.jsxs)("p",{children:["Once Komodo Periphery agent was added to this machine you connected it to Komodo as a ",(0,n.jsx)("a",{href:"https://komo.do/docs/resources#server",children:(0,n.jsx)("strong",{children:"Server"})}),". Specify the name you gave it."]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"serverName",children:(0,n.jsx)("strong",{children:"Server Name:"})}),(0,n.jsx)("input",{id:"serverName",type:"text",placeholder:"my-cool-server",onChange:e=>{k(e.target.value)},value:g})]}),(0,n.jsx)("h3",{children:"4. Where should generated Stacks be created?"}),(0,n.jsxs)("p",{children:["Choose one or more ",(0,n.jsx)("a",{href:"../usage/overview#outputs-1",children:"Outputs"}),":"]}),(0,n.jsxs)("p",{children:[(0,n.jsx)(x,{className:"margin-right--md",label:"Console",link:"#",variant:"primary",disabled:!0})," ",(0,n.jsx)(x,{label:"Komodo",link:"#",variant:"primary",outline:!t.api,onClick:G})]}),(0,n.jsxs)("p",{children:["Generated Stacks are ",(0,n.jsx)("strong",{children:"always"})," output to docker logs as a ",(0,n.jsx)("a",{href:"../usage/resourceSync#create-sync-resource",children:"Sync Resource"}),"."]}),(0,n.jsx)(m.Z,{children:(0,n.jsx)(F.ZP,{})}),(0,n.jsxs)("div",{style:{display:t.api?"inherit":"none"},children:[(0,n.jsxs)("p",{children:["Komodo Import can, additionally, create a ",(0,n.jsx)("a",{href:"../usage/resourceSync#create-sync-resource",children:"Sync Resource"})," with the generated Stacks in Komodo for you. This method ",(0,n.jsx)("strong",{children:"only"})," creates the Resource, it does not execute or change your existing Stacks."]}),(0,n.jsxs)("p",{children:["Create an ",(0,n.jsx)("a",{href:"../usage/overview#api-sync",children:"API Key and Secret"}),", then specify them below."]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"url",children:(0,n.jsx)("strong",{children:"Komodo URL:"})}),(0,n.jsx)("input",{id:"url",type:"text",placeholder:"http://192.168.0.101:8120",onChange:e=>{N(e.target.value)},value:w})]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"apiKey",children:(0,n.jsx)("strong",{children:"Komodo API Key:"})}),(0,n.jsx)("input",{id:"apiKey",type:"text",placeholder:"K-3A6btIPZYeBuD5ebSa9uD5ebuD5ebHIjYxT5sc",onChange:e=>{P(e.target.value)},value:E})]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"apiSecret",children:(0,n.jsx)("strong",{children:"Komodo API Secret:"})}),(0,n.jsx)("input",{id:"apiSecret",type:"text",placeholder:"S-qnaXD1frutYlfC2ZYlfCSzqiYlfC1WYlfCVR34Yj4",onChange:e=>{U(e.target.value)},value:T})]}),(0,n.jsx)(m.Z,{children:(0,n.jsx)(R,{})})]}),(0,n.jsx)("h3",{children:"5. Save your customized Compose file"}),(0,n.jsx)("p",{children:"The file below has been customized for your specific machine! Save this somewhere on the machine:"}),(0,n.jsx)(l(),{className:"rr-block .rr-block",title:"compose.yaml",language:"yaml",children:p.toString()})]})},D=e=>(0,n.jsx)(p.Z,{fallback:({error:e})=>(0,n.jsx)("div",{children:(0,n.jsxs)(d.Z,{type:"danger",children:[(0,n.jsx)("p",{children:"Interactive Quickstart crashed because of error! Sorry."}),(0,n.jsx)(l(),{children:e.stack})]})}),children:(0,n.jsx)(P,{...e})}),T={title:"Quickstart",sidebar_position:1},U=void 0,B={},G=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create Your Scenario",id:"create-your-scenario",level:2},{value:"Generate Stacks",id:"generate-stacks",level:2},{value:"Next Steps",id:"next-steps",level:2}];function M(e){let r={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:"You have Komodo already setup"}),"\n",(0,n.jsxs)(r.li,{children:["You have installed ",(0,n.jsx)(r.a,{href:"https://komo.do/docs/connect-servers",children:"Periphery"})," on a machine","\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:["The Komodo ",(0,n.jsx)(r.a,{href:"https://komo.do/docs/resources#server",children:"Server"})," name is ",(0,n.jsx)(r.code,{children:"my-cool-server"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"create-your-scenario",children:"Create Your Scenario"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.strong,{children:"Follow the directions below, select your options, and fill in all fields to generate a customized Docker Compose file for your specific scenario."})}),"\n",(0,n.jsx)(D,{}),"\n",(0,n.jsx)(r.h2,{id:"generate-stacks",children:"Generate Stacks"}),"\n",(0,n.jsxs)(r.p,{children:["Run the customized ",(0,n.jsx)(r.code,{children:"compose.yaml"})," from above with ",(0,n.jsx)(r.code,{children:"docker compose"})," to generate Komodo Stacks from existing projects on your machine!"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"# in the same directory as compose.yaml...\ndocker compose up --no-log-prefix\n"})}),"\n",(0,n.jsxs)(r.p,{children:["How the Stacks will be generated is determined by what you chose in ",(0,n.jsx)(r.strong,{children:"Step 4"}),". Refer to the expandable ",(0,n.jsx)(r.strong,{children:"Examples"})," in that step."]}),"\n",(0,n.jsx)(r.h2,{id:"next-steps",children:"Next Steps"}),"\n",(0,n.jsxs)(r.p,{children:["There are many more options (environmental variables) that can be used to customize how Stacks are generated, all found in ",(0,n.jsx)(r.a,{href:"../usage/overview#stacks",children:"Usage"})," docs. Some customizations that might interest you:"]}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.a,{href:"../usage/overview#stack-configuration",children:"Common Stack options"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:"Set image registry provider/account"}),"\n",(0,n.jsxs)(r.li,{children:["Set defaults for polling for new images (",(0,n.jsx)(r.code,{children:"POLL_FOR_UPDATE"}),") and auto updating (",(0,n.jsx)(r.code,{children:"AUTO_UPDATE"}),")"]}),"\n",(0,n.jsxs)(r.li,{children:["Set what compose files (",(0,n.jsx)(r.code,{children:"COMPOSE_FILE_GLOB"}),") and .env files (",(0,n.jsx)(r.code,{children:"ENV_FILE_GLOB"}),") to include, per Stack"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(r.li,{children:["For ",(0,n.jsx)(r.strong,{children:"Directory"})," generated stacks...","\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:["Include (",(0,n.jsx)(r.code,{children:"FOLDER_GLOB"}),") or exclude (",(0,n.jsx)(r.code,{children:"FOLDER_IGNORE_GLOB"}),") folders based on patterns"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(r.li,{children:["Configure Komodo Import to use the ",(0,n.jsx)(r.a,{href:"../usage/overview#komodo-api",children:"Komodo API"})," for better integration","\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:"Uses existing Linked Repos for Git Based Stacks"}),"\n",(0,n.jsx)(r.li,{children:"Automatically configures Git Based Stacks to use existing, private Git Provider if git URL domains match"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(r.p,{children:["Additionally, review the ",(0,n.jsx)(r.a,{href:"../usage/resourceSync",children:"Sync Resource"})," guide to learn how to use them for creating Stacks in Komodo."]})]})}function L(e={}){let{wrapper:r}={...(0,t.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(M,{...e})}):M(e)}}}]);
-1
assets/js/74876495.c85afe93.js
··· 1 - (self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["631"],{4849:function(e,r,o){e.exports={src:Object.assign(Object.create({toString(){return this.src}}),{srcSet:o.p+"assets/ideal-img/sync-resource-file.d733ef4.640.png 640w,"+o.p+"assets/ideal-img/sync-resource-file.cdf1733.739.png 739w",images:[{path:o.p+"assets/ideal-img/sync-resource-file.d733ef4.640.png",width:640,height:793},{path:o.p+"assets/ideal-img/sync-resource-file.cdf1733.739.png",width:739,height:916}],src:o.p+"assets/ideal-img/sync-resource-file.d733ef4.640.png",placeholder:void 0,width:640,height:793}),preSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAMCAYAAABbayygAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABDElEQVR4nG2P226DMBBEeQ7XgC9gm0swEAKFpKRpq1Zqpf7/P01lFyFF6cNod7VHs7MOlxokPSAiCjSrQbIaEZHY+QncgGxy/H1qFzErEOwzeBGHF7I7yDVgGKcILKzgBvTPySePIE0LCFXbwTMK6aadn6w9gxMlAqkyOSvELN+U8MJGChOJIM7ghImAPi4o2wU078HU0YrKDlS2to95ZUCJafnE/PKN+ukDor5A1DN43oOKBkx1K0gkuvGGdrhC6RlpOYKXA5hqV8cVNN82pyvyZgEvR1DV2aWpd6A5fb59YXn/gbanz8gOE3hxenTs5zf00yuK9oKsGm02Az2Aul+g9DN4MYAIDfIP+AtBl50yVJl/EgAAAABJRU5ErkJggg=="}},1719:function(e,r,o){"use strict";o.d(r,{ZP:()=>c,d$:()=>t});var s=o(5893),n=o(65);let t=[];function i(e){let r={a:"a",code:"code",p:"p",pre:"pre",...(0,n.a)(),...e.components},{Details:o}=r;return o||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(o,{children:[(0,s.jsx)("summary",{children:"Console Output Example"}),(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-shell",children:"docker compose up --no-log-prefix\n"})}),(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{children:'INFO : [Init] Debug Mode: NO\nINFO : [App] Version: 0.1.0\nINFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer\nINFO : [App] [Files On Server] Processing Stacks for 2 folders:\n/filesOnServer/immich\n/filesOnServer/plex\n/filesOnServer/uptime-kuma\nINFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml\nINFO : [App] [Files On Server] Env Glob: **/.env\nINFO : [App] [Files On Server] [compose] Found Stack \'compose\' at dir /filesOnServer/compose.yaml\nWARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob\nINFO : [App] [Files On Server] [compose] Stack config complete\n\n...\n\nINFO : [App] [Files On Server] Built Stack configs for 3 folders\nINFO : [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\nINFO : [App] Done!\n'})}),(0,s.jsxs)(r.p,{children:["Copy the text between the scissors and ",(0,s.jsx)(r.a,{href:"../usage/resourceSync/#create-sync-resource",children:"create a new Sync Resource in Komodo"})]})]})}function c(e={}){let{wrapper:r}={...(0,n.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(i,{...e})}):i(e)}},58:function(e,r,o){"use strict";o.r(r),o.d(r,{frontMatter:()=>D,default:()=>M,toc:()=>B,metadata:()=>s,assets:()=>T,contentTitle:()=>U});var s=JSON.parse('{"id":"quickstart","title":"Quickstart","description":"Prerequisites","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"}}'),n=o(5893),t=o(65);o(7057),o(4250);var i=o(7294),c=o(2292),l=o.n(c),a=o(9999),d=o(2575),m=o(461),p=o(5756),h=o(7026),u=o(1183);function x({size:e=null,outline:r=!1,variant:o="primary",block:s=!1,disabled:t=!1,className:i,style:c={},link:l,label:a,onClick:d=()=>null}){let m=e?({sm:"sm",small:"sm",lg:"lg",large:"lg",medium:null})[e]:"",p=m?`button--${m}`:"",x=o?`button--${o}`:"";return(0,n.jsx)(u.Z,{to:t?null:l,children:(0,n.jsx)("button",{className:(0,h.Z)("button",p,r?"button--outline":"",x,s?"button--block":"",t?"disabled":"",i),style:c,role:"button","aria-disabled":t,onClick:e=>{e.preventDefault(),d()},children:a})})}let j={borderRadius:"var(--ifm-button-border-radius) 0 0 var(--ifm-button-border-radius)"},f={borderRadius:"0 var(--ifm-button-border-radius) var(--ifm-button-border-radius) 0"},g={borderRadius:"0"};function y({size:e=null,variant:r="primary",block:o=!1,disabled:s=!1,className:t,style:i,options:c,value:l,defaultValue:a,onChange:d=()=>null}){if(void 0===c||0===c.length)return null;let m=c.map((o,s)=>{let t={style:g,outline:!0,size:e,variant:r,label:o[1],link:"#",onClick:()=>d(o[0])};return 0===s?t.style=j:s===c.length-1&&(t.style=f),(l??a)===o[0]&&(t.outline=!1),(0,n.jsx)(x,{...t},s)});return(0,n.jsx)("span",{children:m})}var v=o(6370),S=o(4697);function k(e){let r={code:"code",p:"p",pre:"pre",strong:"strong",...(0,t.a)(),...e.components},{Details:o}=r;return o||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:["When using ",(0,n.jsx)(r.code,{children:"STACKS_FROM=compose"})," this should be the the most top-level directory that all projects are contained within, at some level."]}),"\n",(0,n.jsxs)(o,{children:[(0,n.jsx)("summary",{children:"Example"}),(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"docker compose ls"})," reveals these projects:"]}),(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"NAME STATUS CONFIG FILES\nimmich running /home/myUser/homelab/immich/compose.yaml\nplex running /home/myUser/homelab/plex/docker-compose.yaml\nproject1 running /home/myUser/localDev/myProjects/project1/compose.yaml\n"})}),(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:".\n\u2514\u2500\u2500 /home/myUser\n \u251C\u2500\u2500 homeLab\n \u2502 \u251C\u2500\u2500 immich\n \u2502 \u2502 \u2514\u2500\u2500 compose.yaml\n \u2502 \u2514\u2500\u2500 plex\n \u2502 \u251C\u2500\u2500 docker-compose.yaml\n \u2502 \u2514\u2500\u2500 .git\n \u2514\u2500\u2500 localDev\n \u2514\u2500\u2500 myProjects\n \u2514\u2500\u2500 project1\n \u2514\u2500\u2500 compose.yaml\n"})}),(0,n.jsxs)(r.p,{children:["Then ",(0,n.jsx)(r.strong,{children:"Host Directory"})," should be ",(0,n.jsx)(r.code,{children:"/home/myUser"})]})]})]})}function b(e={}){let{wrapper:r}={...(0,t.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(k,{...e})}):k(e)}function O(e){let r={code:"code",p:"p",pre:"pre",strong:"strong",...(0,t.a)(),...e.components},{Details:o}=r;return o||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:["For ",(0,n.jsx)(r.code,{children:"STACKS_FROM=dir"})," this should be the immediate parent directory containing all your project folders."]}),"\n",(0,n.jsxs)(o,{children:[(0,n.jsx)("summary",{children:"Example"}),(0,n.jsx)(r.pre,{children:(0,n.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 \u251C\u2500\u2500 docker-compose.yaml\n \u2502 \u2514\u2500\u2500 .git\n \u2514\u2500\u2500 uptime-kuma/\n \u2514\u2500\u2500 compose.yaml\n"})}),(0,n.jsxs)(r.p,{children:["Then ",(0,n.jsx)(r.strong,{children:"Host Directory"})," should be ",(0,n.jsx)(r.code,{children:"/home/myUser/homelab"})]})]})]})}function A(e={}){let{wrapper:r}={...(0,t.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(O,{...e})}):O(e)}var F=o(1719),w=o(8494),N=o(4849),I=o.n(N);function E(e){let r={a:"a",code:"code",p:"p",pre:"pre",...(0,t.a)(),...e.components},{Details:o}=r;return o||function(e,r){throw Error("Expected "+(r?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,n.jsxs)(o,{children:[(0,n.jsx)("summary",{children:"Komodo Example"}),(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-shell",children:"docker compose up --no-log-prefix\n"})}),(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"INFO : [Init] Debug Mode: NO\nINFO : [App] Version: 0.1.0\nINFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer\nINFO : [App] [Files On Server] Processing Stacks for 2 folders:\n/filesOnServer/immich\n/filesOnServer/plex\n/filesOnServer/uptime-kuma\nINFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml\nINFO : [App] [Files On Server] Env Glob: **/.env\nINFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml\nWARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob\nINFO : [App] [Files On Server] [compose] Stack config complete\n\n...\n\nINFO : [App] [Files On Server] Built Stack configs for 3 folders\nINFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync\n\n...\n\nINFO : [App] [Sync API] Using 'komodo-import' as Sync Name\nVERBOSE: [App] [Sync API] KOMODO_URL: http://192.168.0.101:9120 | Normalized: http://192.168.0.101:9120/\nINFO : [App] [Sync API] Resource Sync created.\nINFO : [App] [Sync API] Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57\n"})}),(0,n.jsxs)(r.p,{children:["The ",(0,n.jsx)(r.a,{href:"../usage/resourceSync#verify-sync-changes",children:"Sync Resource"})," is automatically created for you (but not executed!)"]}),(0,n.jsx)(w.Z,{img:I()})]})}function R(e={}){let{wrapper:r}={...(0,t.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(E,{...e})}):E(e)}let _=(0,v.wL)("services:\n komodo-import:\n image: foxxmd/komodo-import:latest\n restart: no\n volumes:\n - ./home/myUser/homelab:/filesOnServer\n environment:\n"),C=(0,v.wL)("socket-proxy:\n image: lscr.io/linuxserver/socket-proxy:latest\n environment:\n - CONTAINERS=1\n - INFO=1\n - POST=0\n - PING=1\n - VERSION=1\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n read_only: true\n tmpfs:\n - /run"),K=e=>{let{data:r,name:o,client:s=!1}=e,[t,c]=(0,i.useState)({stacksFrom:"dir",api:!1}),[p,h]=(0,i.useState)(_),[u,j]=i.useState(""),[f]=(0,S.Nr)(u,500),[g,k]=i.useState(""),[O]=(0,S.Nr)(g,500),[w,N]=i.useState(""),[I]=(0,S.Nr)(w,500),[E,K]=i.useState(""),[P]=(0,S.Nr)(E,500),[D,U]=i.useState(""),[T]=(0,S.Nr)(D,500),B=(0,i.useCallback)(()=>{c({...t,api:!t.api})},[t,c]);return(0,i.useEffect)(()=>{let e=_.clone(),r=void 0!==f&&""!==f.trim()?f:"/home/myUser/homelab",o=new v.Ru(`${r}:/filesOnServer`);o.commentBefore=`# ${"dir"===t.stacksFrom?"Parent directory where all subfolders are compose projects":"Top-most directory that contains all folders (at any level) that compose projects are found in"}`,e.setIn(["services","komodo-import","volumes",0],o),e.setIn(["services","komodo-import","environment"],new v.wr);let s=e.getIn(["services","komodo-import","environment"]),n=new v.Ru(`HOST_PARENT_PATH=${r}`);n.commentBefore="# Same as mounted directory above",s.add(n);let i=new v.Ru(`STACKS_FROM=${t.stacksFrom}`);i.commentBefore="# Determines what sources to generate Stacks from",i.comment=`# ${"dir"===t.stacksFrom?"Generate stacks from subfolders in directory":"Generate stacks from compose projects"}`,s.add(i);let c=new v.Ru(`SERVER_NAME=${void 0!==O&&""!==O.trim()?O:"my-cool-server"}`);if(c.commentBefore="# Name of Server for this machine, in Komodo",s.add(c),t.api){let e=new v.Ru(`KOMODO_URL=${""===I?"http://192.168.KOMOMDO.IP:8120":I}`);e.spaceBefore=!0,e.commentBefore="# Configuration for interacting with Komodo API",s.add(e),s.add(`API_KEY=${""===P?"K-3A6btIPZYeBu_EXAMPLE_KEY":P}`),s.add(`API_SECRET=${""===T?"S-qnaXD1frutYlfC2ZYl_EXAMPLE_SECRET":T}`);let r=new v.Ru("OUTPUT_API_SYNC=true");r.comment="Create Sync Resource in Komodo",s.add(r)}if("compose"===t.stacksFrom){let r=new v.Ru("DOCKER_HOST=tcp://socket-proxy:2375");r.spaceBefore=!0,r.commentBefore="Tells Komodo Import how to connect to Docker",s.add(r);let o=new v.wr;o.add("socket-proxy"),e.setIn(["services","komodo-import","depends_on"],o),e.setIn(["services","socket-proxy"],C.get("socket-proxy")),e.getIn(["services","socket-proxy"]).commentBefore="# used to communicate with docker daemon"}h(e)},[t,f,O,P,T,I,h]),(0,n.jsxs)(i.Fragment,{children:[(0,n.jsxs)("h3",{children:["1. What ",(0,n.jsx)("a",{href:"../usage/overview#stack-sources",children:"Stack Sources"})," to generate Stacks from?"]}),(0,n.jsx)("p",{children:(0,n.jsx)(y,{options:[["dir","Directory"],["compose","Compose Projects"]],defaultValue:"dir",value:t.stacksFrom,variant:"primary",size:"lg",onChange:e=>c({...t,stacksFrom:e})})}),(0,n.jsx)("span",{style:{display:"dir"===t.stacksFrom?"inherit":"none"},children:(0,n.jsxs)(d.Z,{type:"info",children:["For ",(0,n.jsx)("strong",{children:"Directory"})," (",(0,n.jsx)(a.Z,{children:"STACKS_FROM=dir"}),") Komodo Import will try to generate Stacks from each ",(0,n.jsx)("strong",{children:"subfolder"})," inside the directory mounted into the container."]})}),(0,n.jsx)("span",{style:{display:"compose"===t.stacksFrom?"inherit":"none"},children:(0,n.jsxs)(d.Z,{type:"info",children:["For ",(0,n.jsx)("strong",{children:"Compose Projects"})," (",(0,n.jsx)(a.Z,{children:"STACKS_FROM=compose"}),") Komodo Import will try to generate Stacks from existing projects on your machine that were created with ",(0,n.jsx)(a.Z,{children:"docker compose up"})]})}),(0,n.jsx)("h3",{children:"2. Where are your existing projects located on your machine?"}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"hostDir",children:(0,n.jsx)("strong",{children:(0,n.jsx)("a",{href:"../usage/overview#host-directory",children:"Host Directory:"})})}),(0,n.jsx)("input",{id:"hostDir",type:"text",placeholder:"/home/myUser/homelab",onChange:e=>{j(e.target.value)},value:u})]}),"compose"===t.stacksFrom?(0,n.jsx)(m.Z,{children:(0,n.jsx)(b,{})}):(0,n.jsx)(m.Z,{children:(0,n.jsx)(A,{})}),(0,n.jsx)("h3",{children:"3. What is the name of this Komodo Server?"}),(0,n.jsxs)("p",{children:["Once Komodo Periphery agent was added to this machine you connected it to Komodo as a ",(0,n.jsx)("a",{href:"https://komo.do/docs/resources#server",children:(0,n.jsx)("strong",{children:"Server"})}),". Specify the name you gave it."]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"serverName",children:(0,n.jsx)("strong",{children:"Server Name:"})}),(0,n.jsx)("input",{id:"serverName",type:"text",placeholder:"my-cool-server",onChange:e=>{k(e.target.value)},value:g})]}),(0,n.jsx)("h3",{children:"4. Where should generated Stacks be created?"}),(0,n.jsxs)("p",{children:["Choose one or more ",(0,n.jsx)("a",{href:"../usage/overview#outputs-1",children:"Outputs"}),":"]}),(0,n.jsxs)("p",{children:[(0,n.jsx)(x,{className:"margin-right--md",label:"Console",link:"#",variant:"primary",disabled:!0})," ",(0,n.jsx)(x,{label:"Komodo",link:"#",variant:"primary",outline:!t.api,onClick:B})]}),(0,n.jsxs)("p",{children:["Generated Stacks are ",(0,n.jsx)("strong",{children:"always"})," output to docker logs as a ",(0,n.jsx)("a",{href:"../usage/resourceSync#create-sync-resource",children:"Sync Resource"}),"."]}),(0,n.jsx)(m.Z,{children:(0,n.jsx)(F.ZP,{})}),(0,n.jsxs)("div",{style:{display:t.api?"inherit":"none"},children:[(0,n.jsxs)("p",{children:["Komodo Import can, additionally, create a ",(0,n.jsx)("a",{href:"../usage/resourceSync#create-sync-resource",children:"Sync Resource"})," with the generated Stacks in Komodo for you. This method ",(0,n.jsx)("strong",{children:"only"})," creates the Resource, it does not execute or change your existing Stacks."]}),(0,n.jsxs)("p",{children:["Create an ",(0,n.jsx)("a",{href:"../usage/overview#api-sync",children:"API Key and Secret"}),", then specify them below."]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"url",children:(0,n.jsx)("strong",{children:"Komodo URL:"})}),(0,n.jsx)("input",{id:"url",type:"text",placeholder:"http://192.168.0.101:8120",onChange:e=>{N(e.target.value)},value:w})]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"apiKey",children:(0,n.jsx)("strong",{children:"Komodo API Key:"})}),(0,n.jsx)("input",{id:"apiKey",type:"text",placeholder:"K-3A6btIPZYeBuD5ebSa9uD5ebuD5ebHIjYxT5sc",onChange:e=>{K(e.target.value)},value:E})]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("label",{className:"margin-right--sm",htmlFor:"apiSecret",children:(0,n.jsx)("strong",{children:"Komodo API Secret:"})}),(0,n.jsx)("input",{id:"apiSecret",type:"text",placeholder:"S-qnaXD1frutYlfC2ZYlfCSzqiYlfC1WYlfCVR34Yj4",onChange:e=>{U(e.target.value)},value:D})]}),(0,n.jsx)(m.Z,{children:(0,n.jsx)(R,{})})]}),(0,n.jsx)("h3",{children:"5. Save your customized Compose file"}),(0,n.jsx)("p",{children:"The file below has been customized for your specific machine! Save this somewhere on the machine:"}),(0,n.jsx)(l(),{className:"rr-block .rr-block",title:"compose.yaml",language:"yaml",children:p.toString()})]})},P=e=>(0,n.jsx)(p.Z,{fallback:({error:e})=>(0,n.jsx)("div",{children:(0,n.jsxs)(d.Z,{type:"danger",children:[(0,n.jsx)("p",{children:"Interactive Quickstart crashed because of error! Sorry."}),(0,n.jsx)(l(),{children:e.stack})]})}),children:(0,n.jsx)(K,{...e})}),D={title:"Quickstart",sidebar_position:1},U=void 0,T={},B=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create Your Scenario",id:"create-your-scenario",level:2},{value:"Generate Stacks",id:"generate-stacks",level:2},{value:"Next Steps",id:"next-steps",level:2}];function G(e){let r={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:"You have Komodo already setup"}),"\n",(0,n.jsxs)(r.li,{children:["You have installed ",(0,n.jsx)(r.a,{href:"https://komo.do/docs/connect-servers",children:"Periphery"})," on a machine","\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:["The Komodo ",(0,n.jsx)(r.a,{href:"https://komo.do/docs/resources#server",children:"Server"})," name is ",(0,n.jsx)(r.code,{children:"my-cool-server"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"create-your-scenario",children:"Create Your Scenario"}),"\n",(0,n.jsx)(r.p,{children:(0,n.jsx)(r.strong,{children:"Follow the directions below, select your options, and fill in all fields to generate a customized Docker Compose file for your specific scenario."})}),"\n",(0,n.jsx)(P,{}),"\n",(0,n.jsx)(r.h2,{id:"generate-stacks",children:"Generate Stacks"}),"\n",(0,n.jsxs)(r.p,{children:["Run the customized ",(0,n.jsx)(r.code,{children:"compose.yaml"})," from above with ",(0,n.jsx)(r.code,{children:"docker compose"})," to generate Komodo Stacks from existing projects on your machine!"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"# in the same directory as compose.yaml...\ndocker compose up --no-log-prefix\n"})}),"\n",(0,n.jsxs)(r.p,{children:["How the Stacks will be generated is determined by what you chose in ",(0,n.jsx)(r.strong,{children:"Step 4"}),". Refer to the expandable ",(0,n.jsx)(r.strong,{children:"Examples"})," in that step."]}),"\n",(0,n.jsx)(r.h2,{id:"next-steps",children:"Next Steps"}),"\n",(0,n.jsxs)(r.p,{children:["There are many more options (environmental variables) that can be used to customize how Stacks are generated, all found in ",(0,n.jsx)(r.a,{href:"../usage/overview#stacks",children:"Usage"})," docs. Some customizations that might interest you:"]}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.a,{href:"../usage/overview#stack-configuration",children:"Common Stack options"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:"Set image registry provider/account"}),"\n",(0,n.jsxs)(r.li,{children:["Set defaults for polling for new images (",(0,n.jsx)(r.code,{children:"POLL_FOR_UPDATE"}),") and auto updating (",(0,n.jsx)(r.code,{children:"AUTO_UPDATE"}),")"]}),"\n",(0,n.jsxs)(r.li,{children:["Set what compose files (",(0,n.jsx)(r.code,{children:"COMPOSE_FILE_GLOB"}),") and .env files (",(0,n.jsx)(r.code,{children:"ENV_FILE_GLOB"}),") to include, per Stack"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(r.li,{children:["For ",(0,n.jsx)(r.strong,{children:"Directory"})," generated stacks...","\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:["Include (",(0,n.jsx)(r.code,{children:"FOLDER_GLOB"}),") or exclude (",(0,n.jsx)(r.code,{children:"FOLDER_IGNORE_GLOB"}),") folders based on patterns"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(r.li,{children:["Configure Komodo Import to use the ",(0,n.jsx)(r.a,{href:"../usage/overview#komodo-api",children:"Komodo API"})," for better integration","\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:"Uses existing Linked Repos for Git Based Stacks"}),"\n",(0,n.jsx)(r.li,{children:"Automatically configures Git Based Stacks to use existing, private Git Provider if git URL domains match"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(r.p,{children:["Additionally, review the ",(0,n.jsx)(r.a,{href:"../usage/resourceSync",children:"Sync Resource"})," guide to learn how to use them for creating Stacks in Komodo."]})]})}function M(e={}){let{wrapper:r}={...(0,t.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(G,{...e})}):G(e)}}}]);
+1
assets/js/runtime~main.5e045682.js
··· 1 + (()=>{"use strict";var e,t,r,a,o,n,f,i={},c={};function b(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,b),r.loaded=!0,r.exports}b.m=i,b.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return b.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(r,a){if(1&a&&(r=this(r)),8&a||"object"==typeof r&&r&&(4&a&&r.__esModule||16&a&&"function"==typeof r.then))return r;var o=Object.create(null);b.r(o);var n={};e=e||[null,t({}),t([]),t(t)];for(var f=2&a&&r;"object"==typeof f&&!~e.indexOf(f);f=t(f))Object.getOwnPropertyNames(f).forEach(e=>{n[e]=()=>r[e]});return n.default=()=>r,b.d(o,n),o},b.d=(e,t)=>{for(var r in t)b.o(t,r)&&!b.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((t,r)=>(b.f[r](e,t),t),[])),b.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),b.u=e=>"assets/js/"+(({112:"aba21aa0",151:"138e0e15",16:"common",177:"4bf48adb",211:"a7bd4aaa",230:"1a4e3797",286:"bf69edfb",290:"490e20a0",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",131:"21a31147",151:"afe3d715",16:"1302b1a8",177:"20bb6869",21:"54b1ef8f",211:"9f5415ba",230:"aabbd79d",286:"0d3ab0b3",290:"591715c7",302:"482144b0",337:"faa7eb85",365:"e34fa5b5",376:"6cc9785c",394:"a1a6e3fe",431:"b3fb76dc",432:"67854d89",48:"0529b714",493:"27c72f7c",513:"549961f1",519:"c0807d55",6:"08681920",631:"0d709b04",757:"d483f644",775:"08282b3f",914:"1505498b",952:"b0fff9b6",983:"6843589d"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},b.l=function(e,t,a,o){if(r[e])return void r[e].push(t);if(void 0!==a)for(var n,f,i=document.getElementsByTagName("script"),c=0;c<i.length;c++){var d=i[c];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")=="my-website:"+a){n=d;break}}n||(f=!0,(n=document.createElement("script")).charset="utf-8",n.timeout=120,b.nc&&n.setAttribute("nonce",b.nc),n.setAttribute("data-webpack","my-website:"+a),n.src=e),r[e]=[t];var u=function(t,a){n.onerror=n.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach(function(e){return e(a)}),t)return t(a)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),f&&document.head.appendChild(n)},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a=[],b.O=(e,t,r,o)=>{if(t){o=o||0;for(var n=a.length;n>0&&a[n-1][2]>o;n--)a[n]=a[n-1];a[n]=[t,r,o];return}for(var f=1/0,n=0;n<a.length;n++){for(var t=a[n][0],r=a[n][1],o=a[n][2],i=!0,c=0;c<t.length;c++)(!1&o||f>=o)&&Object.keys(b.O).every(e=>b.O[e](t[c]))?t.splice(c--,1):(i=!1,o<f&&(f=o));if(i){a.splice(n--,1);var d=r();void 0!==d&&(e=d)}}return e},b.p="/komodo-import/",b.rv=()=>"1.4.6",b.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","490e20a0":"290","90524f8a":"302","2595c16e":"337",a7456010:"365","5e95c892":"432","1f391b9e":"493","0c76d939":"775",a94703ab:"914",e7ce6630:"952","14eb3368":"983"})[e]||e,b.p+b.u(e)},b.b=document.baseURI||self.location.href,o={212:0,580:0},b.f.j=function(e,t){var r=b.o(o,e)?o[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(212|580)$/.test(e))o[e]=0;else{var a=new Promise((t,a)=>r=o[e]=[t,a]);t.push(r[2]=a);var n=b.p+b.u(e),f=Error();b.l(n,function(t){if(b.o(o,e)&&(0!==(r=o[e])&&(o[e]=void 0),r)){var a=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;f.message="Loading chunk "+e+" failed.\n("+a+": "+n+")",f.name="ChunkLoadError",f.type=a,f.request=n,r[1](f)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],n=(e,t)=>{var r,a,n=t[0],f=t[1],i=t[2],c=0;if(n.some(e=>0!==o[e])){for(r in f)b.o(f,r)&&(b.m[r]=f[r]);if(i)var d=i(b)}for(e&&e(t);c<n.length;c++)a=n[c],b.o(o,a)&&o[a]&&o[a][0](),o[a]=0;return b.O(d)},(f=self.webpackChunkmy_website=self.webpackChunkmy_website||[]).forEach(n.bind(null,0)),f.push=n.bind(null,f.push.bind(f))})();
-1
assets/js/runtime~main.b394c1cf.js
··· 1 - (()=>{"use strict";var e,t,r,a,o,n,f,i={},c={};function d(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,d),r.loaded=!0,r.exports}d.m=i,d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(r,a){if(1&a&&(r=this(r)),8&a||"object"==typeof r&&r&&(4&a&&r.__esModule||16&a&&"function"==typeof r.then))return r;var o=Object.create(null);d.r(o);var n={};e=e||[null,t({}),t([]),t(t)];for(var f=2&a&&r;"object"==typeof f&&!~e.indexOf(f);f=t(f))Object.getOwnPropertyNames(f).forEach(e=>{n[e]=()=>r[e]});return n.default=()=>r,d.d(o,n),o},d.d=(e,t)=>{for(var r in t)d.o(t,r)&&!d.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce((t,r)=>(d.f[r](e,t),t),[])),d.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),d.u=e=>"assets/js/"+(({112:"aba21aa0",151:"138e0e15",16:"common",177:"4bf48adb",211:"a7bd4aaa",230:"1a4e3797",286:"bf69edfb",290:"490e20a0",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",131:"21a31147",151:"afe3d715",16:"1302b1a8",177:"20bb6869",21:"54b1ef8f",211:"9f5415ba",230:"aabbd79d",286:"0d3ab0b3",290:"591715c7",302:"482144b0",337:"faa7eb85",365:"e34fa5b5",376:"9d02cf6e",394:"a1a6e3fe",431:"b3fb76dc",432:"67854d89",48:"0529b714",493:"27c72f7c",513:"549961f1",519:"c0807d55",6:"08681920",631:"c85afe93",757:"d483f644",775:"f9a8dbee",914:"1505498b",952:"b0fff9b6",983:"6843589d"})[e]+".js",d.miniCssF=e=>""+e+".css",d.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},d.l=function(e,t,a,o){if(r[e])return void r[e].push(t);if(void 0!==a)for(var n,f,i=document.getElementsByTagName("script"),c=0;c<i.length;c++){var b=i[c];if(b.getAttribute("src")==e||b.getAttribute("data-webpack")=="my-website:"+a){n=b;break}}n||(f=!0,(n=document.createElement("script")).charset="utf-8",n.timeout=120,d.nc&&n.setAttribute("nonce",d.nc),n.setAttribute("data-webpack","my-website:"+a),n.src=e),r[e]=[t];var u=function(t,a){n.onerror=n.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach(function(e){return e(a)}),t)return t(a)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),f&&document.head.appendChild(n)},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a=[],d.O=(e,t,r,o)=>{if(t){o=o||0;for(var n=a.length;n>0&&a[n-1][2]>o;n--)a[n]=a[n-1];a[n]=[t,r,o];return}for(var f=1/0,n=0;n<a.length;n++){for(var t=a[n][0],r=a[n][1],o=a[n][2],i=!0,c=0;c<t.length;c++)(!1&o||f>=o)&&Object.keys(d.O).every(e=>d.O[e](t[c]))?t.splice(c--,1):(i=!1,o<f&&(f=o));if(i){a.splice(n--,1);var b=r();void 0!==b&&(e=b)}}return e},d.p="/komodo-import/",d.rv=()=>"1.4.6",d.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","490e20a0":"290","90524f8a":"302","2595c16e":"337",a7456010:"365","5e95c892":"432","1f391b9e":"493","0c76d939":"775",a94703ab:"914",e7ce6630:"952","14eb3368":"983"})[e]||e,d.p+d.u(e)},d.b=document.baseURI||self.location.href,o={212:0,580:0},d.f.j=function(e,t){var r=d.o(o,e)?o[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(212|580)$/.test(e))o[e]=0;else{var a=new Promise((t,a)=>r=o[e]=[t,a]);t.push(r[2]=a);var n=d.p+d.u(e),f=Error();d.l(n,function(t){if(d.o(o,e)&&(0!==(r=o[e])&&(o[e]=void 0),r)){var a=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;f.message="Loading chunk "+e+" failed.\n("+a+": "+n+")",f.name="ChunkLoadError",f.type=a,f.request=n,r[1](f)}},"chunk-"+e,e)}},d.O.j=e=>0===o[e],n=(e,t)=>{var r,a,n=t[0],f=t[1],i=t[2],c=0;if(n.some(e=>0!==o[e])){for(r in f)d.o(f,r)&&(d.m[r]=f[r]);if(i)var b=i(d)}for(e&&e(t);c<n.length;c++)a=n[c],d.o(o,a)&&o[a]&&o[a][0](),o[a]=0;return d.O(b)},(f=self.webpackChunkmy_website=self.webpackChunkmy_website||[]).forEach(n.bind(null,0)),f.push=n.bind(null,f.push.bind(f))})();
+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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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><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/help/>Help and FAQ</a></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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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><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/help/>Help and FAQ</a></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/help/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-help" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Help and FAQ | 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/help/><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="Help and FAQ | Komodo Import"><meta data-rh=true name=description content="Where To Start?"><meta data-rh=true property=og:description content="Where To Start?"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/help/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/help/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/help/ 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/help","name":"Help and FAQ","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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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-help" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.1"><title data-rh=true>Help and FAQ | 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/help/><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="Help and FAQ | Komodo Import"><meta data-rh=true name=description content="Where To Start?"><meta data-rh=true property=og:description content="Where To Start?"><link data-rh=true rel=canonical href=https://foxxmd.github.io/komodo-import/docs/help/><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/help/ hreflang=en><link data-rh=true rel=alternate href=https://foxxmd.github.io/komodo-import/docs/help/ 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/help","name":"Help and FAQ","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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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 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><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/help/>Help and FAQ</a></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>Help and FAQ</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>Help and FAQ</h1></header><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=where-to-start>Where To Start?<a href=#where-to-start class=hash-link aria-label="Direct link to Where To Start?" title="Direct link to Where To Start?">​</a></h2>
+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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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><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/help/>Help and FAQ</a></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>
+1 -1
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=Prerequisites><meta data-rh=true property=og:description content=Prerequisites><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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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=Prerequisites><meta data-rh=true property=og:description content=Prerequisites><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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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><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/help/>Help and FAQ</a></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=prerequisites>Prerequisites<a href=#prerequisites class=hash-link aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites">​</a></h2>
+2 -2
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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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><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/help/>Help and FAQ</a></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> ··· 48 48 <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">Directory<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">Compose Projects</ul><div class=margin-top--md><div role=tabpanel class=tabItem_Ymn6><p>For <strong>Directory</strong> (<code>STACKS_FROM=dir</code>) use the <strong>parent folder</strong> containing all of the immediate <strong>subfolders</strong> that should be generated as Stacks.<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Example</summary><div><div class=collapsibleContent_i85q><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"> │ └── .git</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>Directory should be <code>home/myUser/homelab</code>:<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockTitle_OeMC>compose.yaml</div><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">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 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><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"> HOST_DIR=/home/myUser/homelab</span><br></span></code></pre></div></div></div></div></details></div><div role=tabpanel class=tabItem_Ymn6 hidden><p>For <strong>Compose Projects</strong> (<code>STACKS_FROM=compose</code>) use the closest <strong>parent folder</strong> that contains all discovered compose project Config Files (<code>docker compose ls</code>).<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Example</summary><div><div class=collapsibleContent_i85q><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</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ├── 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"> │ │ └── .git</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> │ └── owncloud</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"> └── localDev</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> └── myProjects</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> └── project1</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> └── compose.yaml</span><br></span></code></pre></div></div><p>Directory should be <code>/home/myUser</code> because projects are found under both <code>localDev</code> and <code>homeLab</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 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">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 punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> /home/myUser</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><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"> HOST_DIR=/home/myUser</span><br></span></code></pre></div></div></div></div></details></div></div></div> 49 49 <h4 class="anchor anchorWithHideOnScrollNavbar_WYt5" id=stack-configuration>Stack Configuration<a href=#stack-configuration class=hash-link aria-label="Direct link to Stack Configuration" title="Direct link to Stack Configuration">​</a></h4> 50 50 <p>The configuration and behaviors below are applicable to all Stacks:</p> 51 - <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>STACKS_FROM</code><td style=text-align:left>☑️<td><code>dir</code><td style=text-align:left>What <a href=#stack-sources><strong>Stack Sources</strong></a> to generate Stacks from? <code>dir</code> or <code>compose</code><tr><td style=text-align:left><code>HOST_DIR</code><td style=text-align:left>☑️<td><td style=text-align:left>The parent directory on the <strong>host</strong> that mounted into the Komodo Import container<tr><td style=text-align:left><code>WRITE_ENV</code><td style=text-align:left>-<td><code>true</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>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> 51 + <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>STACKS_FROM</code><td style=text-align:left>☑️<td><code>dir</code><td style=text-align:left>What <a href=#stack-sources><strong>Stack Sources</strong></a> to generate Stacks from? <code>dir</code> or <code>compose</code><tr><td style=text-align:left><code>HOST_DIR</code><td style=text-align:left>☑️<td><td style=text-align:left>The parent directory on the <strong>host</strong> that mounted into the Komodo Import container<tr><td style=text-align:left><code>WRITE_ENV</code><td style=text-align:left>-<td><code>true</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>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>GLOB_DOT</code><td style=text-align:left>-<td><code>false</code><td style=text-align:left>Allow glob patterns, outside of ENV pattern, to find files/folders that start with <code>.</code><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> 52 52 <details markdown=1 class="details_lb9f alert alert--info details_b_Ee" data-collapsed=true><summary>Compose File Detection</summary><div><div class=collapsibleContent_i85q><ul> 53 53 <li>Default pattern<!-- --> 54 54 <ul>
+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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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><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/help/>Help and FAQ</a></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>
+1 -1
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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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>
+1 -1
search-index.json
··· 1 - [{"documents":[{"i":1,"t":"Help and FAQ","u":"/komodo-import/docs/help/","b":["Docs"]},{"i":8,"t":"Overview","u":"/komodo-import/docs/installation/","b":["Docs","Installation"]},{"i":16,"t":"Quickstart","u":"/komodo-import/docs/quickstart/","b":["Docs"]},{"i":35,"t":"Overview","u":"/komodo-import/docs/usage/overview/","b":["Docs","Usage"]},{"i":54,"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.258,1,1.258]],["t/8",[2,1.034]],["t/16",[3,1.638]],["t/35",[2,1.034]],["t/54",[4,1.021,5,1.021,6,1.021]]],"invertedIndex":[["faq",{"_index":1,"t":{"1":{"position":[[9,3]]}}}],["help",{"_index":0,"t":{"1":{"position":[[0,4]]}}}],["overview",{"_index":2,"t":{"8":{"position":[[0,8]]},"35":{"position":[[0,8]]}}}],["quickstart",{"_index":3,"t":{"16":{"position":[[0,10]]}}}],["resourc",{"_index":6,"t":{"54":{"position":[[11,9]]}}}],["sync",{"_index":5,"t":{"54":{"position":[[6,4]]}}}],["us",{"_index":4,"t":{"54":{"position":[[0,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Where To Start?","u":"/komodo-import/docs/help/","h":"#where-to-start","p":1},{"i":4,"t":"Further Help with Komodo Import","u":"/komodo-import/docs/help/","h":"#further-help-with-komodo-import","p":1},{"i":6,"t":"Found a Bug or Error?","u":"/komodo-import/docs/help/","h":"#found-a-bug-or-error","p":1},{"i":9,"t":"Docker","u":"/komodo-import/docs/installation/","h":"#docker","p":8},{"i":11,"t":"Docker Usage Example","u":"/komodo-import/docs/installation/","h":"#docker-usage-example","p":8},{"i":13,"t":"Local Installation","u":"/komodo-import/docs/installation/","h":"#local-installation","p":8},{"i":14,"t":"Nodejs","u":"/komodo-import/docs/installation/","h":"#nodejs","p":8},{"i":17,"t":"Prerequisites","u":"/komodo-import/docs/quickstart/","h":"#prerequisites","p":16},{"i":19,"t":"Create Your Scenario","u":"/komodo-import/docs/quickstart/","h":"#create-your-scenario","p":16},{"i":21,"t":"1. What Stack Sources to generate Stacks from?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":23,"t":"2. Where are your existing projects located on your machine?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":25,"t":"3. What is the name of this Komodo Server?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":27,"t":"4. Where should generated Stacks be created?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":29,"t":"5. Save your customized Compose file","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":31,"t":"Generate Stacks","u":"/komodo-import/docs/quickstart/","h":"#generate-stacks","p":16},{"i":33,"t":"Next Steps","u":"/komodo-import/docs/quickstart/","h":"#next-steps","p":16},{"i":36,"t":"Key Concepts","u":"/komodo-import/docs/usage/overview/","h":"#key-concepts","p":35},{"i":38,"t":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs","p":35},{"i":40,"t":"Configuration","u":"/komodo-import/docs/usage/overview/","h":"#configuration","p":35},{"i":42,"t":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs","p":35},{"i":44,"t":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs-1","p":35},{"i":45,"t":"Stacks","u":"/komodo-import/docs/usage/overview/","h":"#stacks","p":35},{"i":47,"t":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs-1","p":35},{"i":48,"t":"Console","u":"/komodo-import/docs/usage/overview/","h":"#console","p":35},{"i":50,"t":"API Sync","u":"/komodo-import/docs/usage/overview/","h":"#api-sync","p":35},{"i":52,"t":"Komodo API","u":"/komodo-import/docs/usage/overview/","h":"#komodo-api","p":35},{"i":55,"t":"What is a Sync Resource?","u":"/komodo-import/docs/usage/resourceSync/","h":"#what-is-a-sync-resource","p":54},{"i":57,"t":"How To Use with Komodo Import?","u":"/komodo-import/docs/usage/resourceSync/","h":"#how-to-use-with-komodo-import","p":54},{"i":59,"t":"Create Sync Resource","u":"/komodo-import/docs/usage/resourceSync/","h":"#create-sync-resource","p":54},{"i":61,"t":"Verify Sync Changes","u":"/komodo-import/docs/usage/resourceSync/","h":"#verify-sync-changes","p":54},{"i":63,"t":"Execute Sync","u":"/komodo-import/docs/usage/resourceSync/","h":"#execute-sync","p":54},{"i":65,"t":"Remove Sync (Optional)","u":"/komodo-import/docs/usage/resourceSync/","h":"#remove-sync-optional","p":54}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.026]],["t/4",[1,2.38,2,2.38,3,1.534,4,1.987]],["t/6",[5,2.756,6,2.756,7,2.756]],["t/9",[8,3.36]],["t/11",[8,2.3,9,2.756,10,2.756]],["t/13",[11,3.272,12,3.272]],["t/14",[13,4.026]],["t/17",[14,4.026]],["t/19",[15,2.375,16,3.272]],["t/21",[17,2.095,18,2.065,19,2.095,20,1.521]],["t/23",[21,2.095,22,2.095,23,2.095,24,2.095,25,2.095]],["t/25",[3,1.534,26,2.38,27,2.38,28,2.38]],["t/27",[15,1.728,18,1.534,20,1.728,29,2.38]],["t/29",[30,2.095,31,2.095,32,2.095,33,2.095,34,2.095]],["t/31",[18,2.109,20,2.375]],["t/33",[35,3.272,36,3.272]],["t/36",[37,3.272,38,3.272]],["t/38",[39,3.36]],["t/40",[40,4.026]],["t/42",[41,3.36]],["t/44",[39,3.36]],["t/45",[18,2.595]],["t/47",[41,3.36]],["t/48",[42,4.026]],["t/50",[43,2.731,44,1.72]],["t/52",[3,2.109,43,2.731]],["t/55",[44,1.72,45,2.731]],["t/57",[3,1.776,4,2.3,46,2.756]],["t/59",[15,2,44,1.449,45,2.3]],["t/61",[44,1.449,47,2.756,48,2.756]],["t/63",[44,1.72,49,3.272]],["t/65",[44,1.449,50,2.756,51,2.756]]],"invertedIndex":[["1",{"_index":17,"t":{"21":{"position":[[0,2]]}}}],["2",{"_index":21,"t":{"23":{"position":[[0,2]]}}}],["3",{"_index":26,"t":{"25":{"position":[[0,2]]}}}],["4",{"_index":29,"t":{"27":{"position":[[0,2]]}}}],["5",{"_index":30,"t":{"29":{"position":[[0,2]]}}}],["api",{"_index":43,"t":{"50":{"position":[[0,3]]},"52":{"position":[[7,3]]}}}],["bug",{"_index":6,"t":{"6":{"position":[[8,3]]}}}],["chang",{"_index":48,"t":{"61":{"position":[[12,7]]}}}],["compos",{"_index":33,"t":{"29":{"position":[[24,7]]}}}],["concept",{"_index":38,"t":{"36":{"position":[[4,8]]}}}],["configur",{"_index":40,"t":{"40":{"position":[[0,13]]}}}],["consol",{"_index":42,"t":{"48":{"position":[[0,7]]}}}],["creat",{"_index":15,"t":{"19":{"position":[[0,6]]},"27":{"position":[[36,8]]},"59":{"position":[[0,6]]}}}],["custom",{"_index":32,"t":{"29":{"position":[[13,10]]}}}],["docker",{"_index":8,"t":{"9":{"position":[[0,6]]},"11":{"position":[[0,6]]}}}],["error",{"_index":7,"t":{"6":{"position":[[15,6]]}}}],["exampl",{"_index":10,"t":{"11":{"position":[[13,7]]}}}],["execut",{"_index":49,"t":{"63":{"position":[[0,7]]}}}],["exist",{"_index":22,"t":{"23":{"position":[[18,8]]}}}],["file",{"_index":34,"t":{"29":{"position":[[32,4]]}}}],["found",{"_index":5,"t":{"6":{"position":[[0,5]]}}}],["further",{"_index":1,"t":{"4":{"position":[[0,7]]}}}],["gener",{"_index":20,"t":{"21":{"position":[[25,8]]},"27":{"position":[[16,9]]},"31":{"position":[[0,8]]}}}],["help",{"_index":2,"t":{"4":{"position":[[8,4]]}}}],["import",{"_index":4,"t":{"4":{"position":[[25,6]]},"57":{"position":[[23,7]]}}}],["input",{"_index":39,"t":{"38":{"position":[[0,6]]},"44":{"position":[[0,6]]}}}],["instal",{"_index":12,"t":{"13":{"position":[[6,12]]}}}],["key",{"_index":37,"t":{"36":{"position":[[0,3]]}}}],["komodo",{"_index":3,"t":{"4":{"position":[[18,6]]},"25":{"position":[[28,6]]},"52":{"position":[[0,6]]},"57":{"position":[[16,6]]}}}],["local",{"_index":11,"t":{"13":{"position":[[0,5]]}}}],["locat",{"_index":24,"t":{"23":{"position":[[36,7]]}}}],["machin",{"_index":25,"t":{"23":{"position":[[52,8]]}}}],["name",{"_index":27,"t":{"25":{"position":[[15,4]]}}}],["next",{"_index":35,"t":{"33":{"position":[[0,4]]}}}],["nodej",{"_index":13,"t":{"14":{"position":[[0,6]]}}}],["option",{"_index":51,"t":{"65":{"position":[[12,10]]}}}],["output",{"_index":41,"t":{"42":{"position":[[0,7]]},"47":{"position":[[0,7]]}}}],["prerequisit",{"_index":14,"t":{"17":{"position":[[0,13]]}}}],["project",{"_index":23,"t":{"23":{"position":[[27,8]]}}}],["remov",{"_index":50,"t":{"65":{"position":[[0,6]]}}}],["resourc",{"_index":45,"t":{"55":{"position":[[15,9]]},"59":{"position":[[12,8]]}}}],["save",{"_index":31,"t":{"29":{"position":[[3,4]]}}}],["scenario",{"_index":16,"t":{"19":{"position":[[12,8]]}}}],["server",{"_index":28,"t":{"25":{"position":[[35,7]]}}}],["sourc",{"_index":19,"t":{"21":{"position":[[14,7]]}}}],["stack",{"_index":18,"t":{"21":{"position":[[8,5],[34,6]]},"27":{"position":[[26,6]]},"31":{"position":[[9,6]]},"45":{"position":[[0,6]]}}}],["start",{"_index":0,"t":{"2":{"position":[[9,6]]}}}],["step",{"_index":36,"t":{"33":{"position":[[5,5]]}}}],["sync",{"_index":44,"t":{"50":{"position":[[4,4]]},"55":{"position":[[10,4]]},"59":{"position":[[7,4]]},"61":{"position":[[7,4]]},"63":{"position":[[8,4]]},"65":{"position":[[7,4]]}}}],["us",{"_index":46,"t":{"57":{"position":[[7,3]]}}}],["usag",{"_index":9,"t":{"11":{"position":[[7,5]]}}}],["verifi",{"_index":47,"t":{"61":{"position":[[0,6]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":1,"t":"Where To Start?","s":"Help and FAQ","u":"/komodo-import/docs/help/","p":1},{"i":8,"t":"Docker","s":"Overview","u":"/komodo-import/docs/installation/","p":8},{"i":16,"t":"Prerequisites","s":"Quickstart","u":"/komodo-import/docs/quickstart/","p":16},{"i":35,"t":"Key Concepts","s":"Overview","u":"/komodo-import/docs/usage/overview/","p":35},{"i":54,"t":"What is a Sync Resource?","s":"Using Sync Resources","u":"/komodo-import/docs/usage/resourceSync/","p":54}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,1.57]],["t/8",[1,1.57]],["t/16",[2,1.57]],["t/35",[3,1.179,4,1.179]],["t/54",[5,1.179,6,1.179]]],"invertedIndex":[["concept",{"_index":4,"t":{"35":{"position":[[4,8]]}}}],["docker",{"_index":1,"t":{"8":{"position":[[0,6]]}}}],["key",{"_index":3,"t":{"35":{"position":[[0,3]]}}}],["prerequisit",{"_index":2,"t":{"16":{"position":[[0,13]]}}}],["resourc",{"_index":6,"t":{"54":{"position":[[15,9]]}}}],["start",{"_index":0,"t":{"1":{"position":[[9,6]]}}}],["sync",{"_index":5,"t":{"54":{"position":[[10,4]]}}}]],"pipeline":["stemmer"]}},{"documents":[],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[],"invertedIndex":[],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"If you are overwhelmed by the docs or not sure where to begin you should try out the Quickstart guide. It uses step-by-step questions with interactive fields/buttons to help customize Komodo Import for your machine.","s":"Where To Start?","u":"/komodo-import/docs/help/","h":"#where-to-start","p":1},{"i":5,"t":"If the Quickstart guide and Usage docs do not cover what you want to do with Komodo Import or you do not fully understand how to use it please search the repository's Github Discussions and if your question is not answered then open a New Discussion.","s":"Further Help with Komodo Import","u":"/komodo-import/docs/help/","h":"#further-help-with-komodo-import","p":1},{"i":7,"t":"If Komodo Import is not behaving as you expect it to or is outputting errors that break functionality please search Github Issues and open a New Issue if you cannot find a solution to your problem.","s":"Found a Bug or Error?","u":"/komodo-import/docs/help/","h":"#found-a-bug-or-error","p":1},{"i":10,"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: ## Mount the parent directory where all subfolders are compose projects - /home/myUser/homelab:/filesOnServer environment: ## Same as host directory mounted above - HOST_DIR=/home/myUser/homelab ## where stacks are generated from. 'dir' or 'compose' - STACKS_FROM=dir ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## optional #- TZ=America/New_York #- IMAGE_REGISTRY_PROVIDER= #- IMAGE_REGISTRY_ACCOUNT= #- AUTO_UPDATE=false #- POLL_FOR_UPDATE=false #- KOMODO_ENV_NAME= #- COMPOSE_FILE_GLOB= #- ENV_FILE_GLOB= restart: no","s":"Docker","u":"/komodo-import/docs/installation/","h":"#docker","p":8},{"i":12,"t":"tip Use the Quick Start Guide for an interactive setup! 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 its projects directory looks like this: . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ ├── docker-compose.yaml │ └── .git └── uptime-kuma/ └── compose.yaml docker-compose.yml services: komodo-import: image: foxxmd/komodo-import:latest volumes: - /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_DIR=/home/myUser/homelab ## generate stacks from mounted directory subfolders - STACKS_FROM=dir restart: no Console Output Example docker compose up --no-log-prefix INFO : [Init] Debug Mode: NO INFO : [App] Version: 0.1.0 INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer INFO : [App] [Files On Server] Processing Stacks for 2 folders: /filesOnServer/immich /filesOnServer/plex /filesOnServer/uptime-kuma INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml INFO : [App] [Files On Server] Env Glob: **/.env INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob INFO : [App] [Files On Server] [compose] Stack config complete ... INFO : [App] [Files On Server] Built Stack configs for 3 folders 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\" ] ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ INFO : [App] Done! Copy the text between the scissors and create a new Sync Resource in Komodo","s":"Docker Usage Example","u":"/komodo-import/docs/installation/","h":"#docker-usage-example","p":8},{"i":15,"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-cool-server STACKS_FROM=dir MOUNT_DIR=/my/parent/folder node src/index.js","s":"Nodejs","u":"/komodo-import/docs/installation/","h":"#nodejs","p":8},{"i":18,"t":"You have Komodo already setup You have installed Periphery on a machine The Komodo Server name is my-cool-server","s":"Prerequisites","u":"/komodo-import/docs/quickstart/","h":"#prerequisites","p":16},{"i":20,"t":"Follow the directions below, select your options, and fill in all fields to generate a customized Docker Compose file for your specific scenario.","s":"Create Your Scenario","u":"/komodo-import/docs/quickstart/","h":"#create-your-scenario","p":16},{"i":22,"t":"DirectoryCompose Projects info For Directory (STACKS_FROM=dir) Komodo Import will try to generate Stacks from each subfolder inside the directory mounted into the container. info For Compose Projects (STACKS_FROM=compose) Komodo Import will try to generate Stacks from existing projects on your machine that were created with docker compose up","s":"1. What Stack Sources to generate Stacks from?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":24,"t":"Host Directory: For STACKS_FROM=dir this should be the immediate parent directory containing all your project folders. Example . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ ├── docker-compose.yaml │ └── .git └── uptime-kuma/ └── compose.yaml Then Host Directory should be /home/myUser/homelab","s":"2. Where are your existing projects located on your machine?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":26,"t":"Once Komodo Periphery agent was added to this machine you connected it to Komodo as a Server. Specify the name you gave it. Server Name:","s":"3. What is the name of this Komodo Server?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":28,"t":"Choose one or more Outputs: Console Komodo Generated Stacks are always output to docker logs as a Sync Resource. Console Output Example docker compose up --no-log-prefix INFO : [Init] Debug Mode: NO INFO : [App] Version: 0.1.0 INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer INFO : [App] [Files On Server] Processing Stacks for 2 folders: /filesOnServer/immich /filesOnServer/plex /filesOnServer/uptime-kuma INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml INFO : [App] [Files On Server] Env Glob: **/.env INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob INFO : [App] [Files On Server] [compose] Stack config complete ... INFO : [App] [Files On Server] Built Stack configs for 3 folders 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\" ] ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ INFO : [App] Done! Copy the text between the scissors and create a new Sync Resource in Komodo Komodo Import can, additionally, create a Sync Resource with the generated Stacks in Komodo for you. This method only creates the Resource, it does not execute or change your existing Stacks. Create an API Key and Secret, then specify them below. Komodo URL: Komodo API Key: Komodo API Secret: Komodo Example docker compose up --no-log-prefix INFO : [Init] Debug Mode: NO INFO : [App] Version: 0.1.0 INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer INFO : [App] [Files On Server] Processing Stacks for 2 folders: /filesOnServer/immich /filesOnServer/plex /filesOnServer/uptime-kuma INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml INFO : [App] [Files On Server] Env Glob: **/.env INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob INFO : [App] [Files On Server] [compose] Stack config complete ... INFO : [App] [Files On Server] Built Stack configs for 3 folders INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync ... INFO : [App] [Sync API] Using 'komodo-import' as Sync Name VERBOSE: [App] [Sync API] KOMODO_URL: http://192.168.0.101:9120 | Normalized: http://192.168.0.101:9120/ INFO : [App] [Sync API] Resource Sync created. INFO : [App] [Sync API] Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57 The Sync Resource is automatically created for you (but not executed!) <img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/komodo-import/assets/ideal-img/sync-resource-file.d733ef4.640.png srcset=\"/komodo-import/assets/ideal-img/sync-resource-file.d733ef4.640.png 640w,/komodo-import/assets/ideal-img/sync-resource-file.cdf1733.739.png 739w\" width=640 height=793>","s":"4. Where should generated Stacks be created?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":30,"t":"The file below has been customized for your specific machine! Save this somewhere on the machine: compose.yaml services: komodo-import: image: foxxmd/komodo-import:latest restart: no volumes: - ./home/myUser/homelab:/filesOnServer environment:","s":"5. Save your customized Compose file","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":32,"t":"Run the customized compose.yaml from above with docker compose to generate Komodo Stacks from existing projects on your machine! # in the same directory as compose.yaml... docker compose up --no-log-prefix How the Stacks will be generated is determined by what you chose in Step 4. Refer to the expandable Examples in that step.","s":"Generate Stacks","u":"/komodo-import/docs/quickstart/","h":"#generate-stacks","p":16},{"i":34,"t":"There are many more options (environmental variables) that can be used to customize how Stacks are generated, all found in Usage docs. Some customizations that might interest you: Common Stack options Set image registry provider/account Set defaults for polling for new images (POLL_FOR_UPDATE) and auto updating (AUTO_UPDATE) Set what compose files (COMPOSE_FILE_GLOB) and .env files (ENV_FILE_GLOB) to include, per Stack For Directory generated stacks... Include (FOLDER_GLOB) or exclude (FOLDER_IGNORE_GLOB) folders based on patterns Configure Komodo Import to use the Komodo API for better integration Uses existing Linked Repos for Git Based Stacks Automatically configures Git Based Stacks to use existing, private Git Provider if git URL domains match Additionally, review the Sync Resource guide to learn how to use them for creating Stacks in Komodo.","s":"Next Steps","u":"/komodo-import/docs/quickstart/","h":"#next-steps","p":16},{"i":37,"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":35},{"i":39,"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":35},{"i":41,"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":35},{"i":43,"t":"These are where and how KI puts the Resources created from Inputs: Log to output (docker logs, node console) Export to Komodo API (create Resource Sync, etc.)","s":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs","p":35},{"i":46,"t":"KI can create Komodo Stack Resources from existing resources on your machine. It will automatically detect what type of Stack to create based on the presence of git folders/data: Komodo Files On Server Stack => compose project/folder without a .git folder Komodo Git Repo Stacks => compose project/folder with a .git folder or with a parent folder containing a .git folder Stack Sources​ KI can generate Stacks from existing projects on your machine using one of two methods: Directory Compose Projects For Directory (STACKS_FROM=dir), Komodo Import will try to generate Stacks from each immediate subfolder inside the directory mounted into the container. Example . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ ├── docker-compose.yaml │ └── .git └── uptime-kuma/ └── compose.yaml Using STACKS_FROM=dir with host directory /home/myUser/homelab would produce Stacks for immich plex and uptime-kuma. For Compose Projects (STACKS_FROM=compose), Komodo Import will try to generate Stacks from existing projects on your machine that were created with docker compose up. Example docker compose ls reveals these projects: NAME STATUS CONFIG FILES immich running /home/myUser/homelab/immich/compose.yaml plex running /home/myUser/homelab/plex/docker-compose.yaml project1 running /home/myUser/localDev/myProjects/project1/compose.yaml . └── /home/myUser ├── homeLab │ ├── immich │ │ └── compose.yaml │ ├── plex │ │ ├── docker-compose.yaml │ │ └── .git │ └── owncloud │ └── compose.yaml └── localDev └── myProjects └── project1 └── compose.yaml Using STACKS_FROM=dir with host directory /home/myUser would produce Stacks for immich plex and project1. It would not generate a Stack for owncloud since it was not created with docker compose up yet. To use Compose Projects you must give Komodo Import access to Docker. This can be done by mounting docker.sock into the container or connecting it to a proxy service like docker-socket-proxy. Using socket-proxy (recommended) Add a socket-proxy service to your compose file and set the env DOCKER_HOST so Komodo Import knows how to connect to Docker: compose.yaml services: komodo-import: # ... environment: # ... # add to existing environment - DOCKER_HOST=tcp://socket-proxy:2375 socket-proxy: image: lscr.io/linuxserver/socket-proxy:latest environment: - CONTAINERS=1 - INFO=1 - POST=0 - PING=1 - VERSION=1 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro read_only: true tmpfs: - /run Mounting docker.sock Mount /var/run/docker.sock as a volume into the container: compose.yaml services: komodo-import: # ... volumes: # ... # add to existing volumes - /var/run/docker.sock:/var/run/docker.sock:ro Host Directory​ The directory on the Host machine that should be mounted into the Komodo Import container depends on which Stack Source you are using. The host directory should be mounted to /filesOnServer in the container. The host directory should also be set for HOST_DIR env. Directory Compose Projects For Directory (STACKS_FROM=dir) use the parent folder containing all of the immediate subfolders that should be generated as Stacks. Example . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ ├── docker-compose.yaml │ └── .git └── uptime-kuma/ └── compose.yaml Directory should be home/myUser/homelab: compose.yaml services: komodo-import: # ... volumes: - /home/myUser/homelab:/filesOnServer environment: - HOST_DIR=/home/myUser/homelab For Compose Projects (STACKS_FROM=compose) use the closest parent folder that contains all discovered compose project Config Files (docker compose ls). Example . └── /home/myUser ├── homeLab │ ├── immich │ │ └── compose.yaml │ ├── plex │ │ ├── docker-compose.yaml │ │ └── .git │ └── owncloud │ └── compose.yaml └── localDev └── myProjects └── project1 └── compose.yaml Directory should be /home/myUser because projects are found under both localDev and homeLab: services: komodo-import: # ... volumes: - /home/myUser:/filesOnServer environment: - HOST_DIR=/home/myUser Stack Configuration​ The configuration and behaviors below are applicable to all Stacks: Environmental Variables ENV Required Default Description SERVER_NAME ☑️ The name of the Komodo Server where a Stack is located STACKS_FROM ☑️ dir What Stack Sources to generate Stacks from? dir or compose HOST_DIR ☑️ The parent directory on the host that mounted into the Komodo Import container WRITE_ENV - true Write the contents of found .env files to Komodo Environment. Likely want this as true. 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? Compose File Detection 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 for non-compose project stack sources Will prioritize compose.yaml over docker-compose.yaml Will choose the file with the shortest path EX Prioritizes ./compose.yaml over ./aFolder/compose.yaml Komodo Import will log which files it detects and indicate which ones it will use for each project. note When using Compose Projects Stack Source compose files are automatically parsed from the running projects. .env File Detection 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 and WRITE_ENV=false then a Stack is configured 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. There is additional configuration available depending on the Stack Source: Directory Compose Projects The _GLOB patterns are for matching folder names within the parent folder, not full directory paths The default pattern matches all folder names except those starting with a . ENV Required Default Description 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 The _GLOB patterns are for matching full directory paths, not just a single folder name The default pattern matches all directories except those that have any folder starting with a . Komodo Import will always ignore projects created by Komodo itself (projects found in /etc/komodo or /home/USER/komodo) ENV Required Default Description COMPOSE_FILE_GLOB - **/** The glob pattern to use for matching a project's full directory on the host COMPOSE_FILE_IGNORE_GLOB - The glob pattern to use to ignore a project's full directory on the host Git Repo Stacks​ If a parsed folder (or parent of it) contains a .git folder and it has a valid tracked branch + remote, then it will generate a Git Repo Stack. How Git Repository Parsing Works A folder is only built as a Git Repo stack if... It contains a valid .git folder or a parent folder contains a .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 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 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 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) Monorepos​ Komodo Import also handles monorepos IE one git repository with many folders containing projects. The only requirement to ensure this works is that the git repo \"root\" directory must be mounted into Komodo Import. Directory Compose Projects For Directory Stack Source use the root git repository directory as the host directory. Example /home/myUser/homelab ├── .git ├── immich │ └── compose.yaml ├── plex │ └── docker-compose.yaml └── uptime-kuma └── compose.yaml Use /home/myUser/homelab as the host directory because it contains .git folder. If the directory containing your projects is not the root directory then use the ENV SCAN_DIR to set the path to use for projects relative to the host directory: Example /home/myUser/homelab ├── .git ├── myStacks <---- parent folder containing projects │ ├── immich │ │ └── compose.yaml │ ├── plex │ │ └── docker-compose.yaml │ └── uptime-kuma │ └── compose.yaml └── somethingElse Use /home/myUser/homelab as the host directory because it contains .git folder Use SCAN_DIR=myStacks -- the folder Komodo Import will parse projects from, relative to the host directory /home/myUser/homelab Komodo Import will automatically determine if a project is in a monorepo by scanning all parent directories for .git folder. Just make sure the mounted host directory contains the monorepo folder at some level.","s":"Stacks","u":"/komodo-import/docs/usage/overview/","h":"#stacks","p":35},{"i":49,"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":35},{"i":51,"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":35},{"i":53,"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":35},{"i":56,"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":54},{"i":58,"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 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":54},{"i":60,"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":54},{"i":62,"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":54},{"i":64,"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":54},{"i":66,"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":54}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,4.47,1,3.206,2,3.708,3,4.47,4,3.206,5,3.206,6,3.708,7,2.831,8,0.804,9,4.419,10,3.708,11,3.206,12,4.47,13,4.47,14,2.531,15,0.242,16,0.804,17,1.716]],["t/5",[1,3.166,6,3.662,7,2.796,8,0.794,10,3.662,15,0.24,16,0.794,18,3.166,19,4.415,20,2.796,21,4.415,22,4.415,23,3.662,24,3.662,25,4.415,26,3.166,27,5.288,28,4.415,29,3.166,30,2.043]],["t/7",[15,0.244,16,0.809,23,3.731,24,3.731,26,3.226,29,3.226,30,2.081,31,4.498,32,4.498,33,1.726,34,4.498,35,4.498,36,4.498,37,5.347,38,2.547,39,4.498,40,4.498]],["t/10",[8,0.759,15,0.229,16,0.558,26,2.223,41,3.099,42,3.099,43,2.446,44,1.963,45,3.099,46,3.099,47,3.099,48,2.571,49,3.099,50,3.099,51,2.571,52,3.099,53,3.099,54,3.024,55,3.497,56,3.099,57,3.436,58,3.099,59,1.305,60,3.497,61,1.755,62,1.963,63,2.571,64,3.099,65,1.434,66,1.755,67,2.223,68,1.963,69,1.941,70,2.67,71,2.223,72,1.618,73,1.963,74,1.349,75,1.305,76,2.223,77,1.963,78,2.571,79,1.963,80,2.223,81,2.223,82,1.477,83,1.232,84,1.963,85,1.582,86,1.477,87,0.992,88,2.223,89,1.582,90,1.755,91,2.571,92,2.571,93,2.571,94,3.099,95,3.099,96,2.571,97,2.223,98,2.223,99,2.223]],["t/12",[7,0.98,8,0.718,11,1.11,15,0.217,16,0.279,17,1.213,30,0.716,33,0.594,38,0.877,43,0.79,44,0.98,57,1.11,59,1.056,60,1.284,61,0.877,66,0.877,67,1.11,68,0.98,69,2.025,70,0.98,72,1.213,73,0.98,74,1.44,75,0.652,77,0.98,79,0.98,81,1.11,82,1.742,83,0.733,84,1.588,85,0.79,86,1.956,87,1.277,88,1.11,89,2.037,91,1.284,99,1.11,100,1.11,101,1.548,102,1.11,103,2.08,104,1.284,105,1.11,106,1.11,107,1.11,108,0.98,109,1.548,110,1.284,111,1.11,112,1.588,113,1.681,114,1.588,115,1.011,116,0.79,117,1.588,118,2.3,119,1.548,120,1.548,121,0.877,122,1.588,123,0.877,124,0.716,125,0.716,126,3.22,127,1.284,128,1.284,129,1.11,130,3.647,131,1.11,132,1.284,133,1.782,134,1.681,135,1.798,136,1.284,137,1.284,138,1.284,139,1.42,140,1.284,141,1.284,142,1.284,143,2.266,144,1.11,145,1.11,146,1.284,147,1.284,148,0.98,149,0.79,150,1.588,151,1.284,152,1.284,153,1.42,154,1.798,155,1.798,156,1.798,157,0.842,158,0.716,159,0.98,160,0.668,161,2.266,162,2.266,163,1.284,164,2.621,165,2.001,166,2.001,167,3.064,168,2.001,169,1.284,170,1.284,171,1.284,172,1.11,173,1.284,174,1.11,175,1.284,176,0.877,177,0.413]],["t/15",[8,0.7,15,0.211,16,0.7,18,2.789,54,2.789,59,1.637,69,1.713,72,1.493,85,1.985,86,1.363,88,2.789,89,1.985,90,2.202,102,2.789,106,3.508,116,1.985,121,3.03,131,2.789,178,4.891,179,3.225,180,3.225,181,3.889,182,3.889,183,3.889,184,3.889,185,2.202,186,3.889,187,4.057,188,5.615,189,3.889,190,3.889,191,3.889,192,3.889]],["t/18",[15,0.298,17,1.806,86,1.924,87,1.506,89,2.402,103,3.902,105,3.374,106,3.374,107,3.374]],["t/20",[14,2.613,74,1.477,83,1.348,90,2.613,104,3.827,115,1.477,133,1.617,193,3.827,194,3.827,195,2.922,196,4.613,197,4.613,198,3.827,199,3.309]],["t/22",[4,3.644,15,0.276,16,0.914,17,1.587,70,2.619,72,1.951,73,2.619,74,1.626,75,2.316,82,1.781,83,1.485,85,2.111,115,1.323,124,1.913,126,3.218,177,1.102,200,4.135,201,2.965,202,3.43,203,2.111,204,3.43,205,1.449]],["t/24",[59,1.711,69,2.006,71,2.915,72,2.096,75,1.711,79,3.184,85,2.075,111,3.606,112,2.574,113,2.527,114,2.574,115,1.301,116,2.075,117,2.574,118,2.574,139,2.302,203,2.075,206,3.372]],["t/26",[15,0.294,17,1.771,86,1.902,87,1.737,107,3.309,207,4.613,208,4.613,209,4.613,210,3.309,211,3.827,212,4.613]],["t/28",[8,0.473,15,0.238,16,0.364,30,0.553,33,1.01,38,1.146,44,1.281,59,0.852,61,1.146,69,1.998,74,1.595,82,1.746,83,0.591,84,1.961,86,1.916,87,0.991,89,1.343,112,0.757,113,0.553,114,0.757,115,0.842,117,0.757,118,1.961,122,1.281,123,1.146,124,0.936,125,1.217,126,3.513,127,1.678,128,1.678,129,1.451,130,4.003,131,1.451,132,1.678,133,1.916,134,1.854,135,2.22,136,1.678,137,1.678,138,1.678,139,1.753,140,1.678,141,1.678,142,1.678,143,2.697,144,1.451,145,1.451,146,1.678,147,1.678,148,1.281,149,1.033,150,1.961,151,1.678,152,1.678,153,1.49,154,1.887,155,1.887,156,1.887,157,1.328,158,0.936,159,1.281,160,1.304,161,1.887,162,1.887,163,0.991,164,2.182,165,1.666,166,1.666,167,2.697,168,1.666,169,0.991,170,0.991,171,0.991,172,0.857,173,0.991,174,0.857,175,0.991,176,0.677,177,1.002,195,0.757,205,0.419,211,0.991,213,0.857,214,0.857,215,0.757,216,0.857,217,0.857,218,0.991,219,1.146,220,0.857,221,1.687,222,1.281,223,1.678,224,1.281,225,1.195,226,0.991,227,2.023,228,1.195,229,1.195,230,1.195,231,0.857,232,1.195,233,1.195,234,1.195,235,1.195,236,1.195,237,1.195,238,2.631,239,2.631,240,2.023,241,1.195,242,1.195,243,1.195,244,1.195,245,1.195,246,1.195]],["t/30",[14,2.531,15,0.242,16,0.804,17,2.045,43,2.282,57,3.206,66,2.531,67,3.206,68,2.831,76,3.206,77,2.831,99,3.206,113,2.068,133,1.566,179,3.708,195,2.831,199,3.206,247,3.708]],["t/32",[9,4.23,14,2.355,15,0.226,17,1.596,59,1.751,69,1.331,72,1.596,74,1.632,75,1.751,78,3.45,80,2.983,82,1.787,83,1.49,113,2.36,115,1.632,121,2.355,122,2.634,124,1.925,125,1.925,205,1.457,248,3.45,249,4.159,250,4.159,251,4.159,252,4.159]],["t/34",[1,2.232,7,1.971,8,0.969,14,2.394,15,0.261,16,0.56,18,2.232,30,1.44,43,2.159,61,1.763,62,1.971,65,1.957,72,1.195,74,0.996,82,1.992,83,1.236,90,2.394,97,2.232,98,2.232,116,2.63,133,1.482,134,1.44,139,1.763,148,1.971,149,1.589,157,0.83,160,0.83,166,1.971,168,1.971,177,0.83,185,2.719,205,1.482,215,1.971,217,2.232,221,1.31,224,1.971,231,2.232,253,2.582,254,1.589,255,1.589,256,3.113,257,3.113,258,2.232,259,3.113,260,1.763,261,2.582,262,2.232,263,1.971,264,3.507,265,3.113,266,2.582,267,3.113,268,2.582,269,3.983,270,3.113,271,3.113,272,2.232,273,2.582,274,2.582,275,2.582,276,3.113,277,3.113]],["t/37",[8,1.038,15,0.25,16,0.83,33,1.771,65,2.135,254,2.355,255,2.355,278,4.613,279,4.613,280,2.135,281,3.827,282,3.309]],["t/39",[15,0.244,17,1.726,74,1.44,75,1.893,83,1.314,113,2.081,115,1.826,157,1.425,203,2.296,205,1.576,280,2.081,283,4.498,284,4.498,285,3.731,286,4.498]],["t/41",[8,0.7,11,2.789,15,0.305,33,1.493,43,1.985,72,1.493,86,1.363,87,1.245,121,2.202,125,1.799,133,1.363,157,1.426,185,2.77,198,3.225,205,1.363,221,1.637,222,2.462,254,1.985,255,1.985,258,2.789,260,2.202,262,2.789,263,2.462,280,2.476,282,3.838,287,3.889,288,3.556,289,2.462,290,2.789,291,3.225]],["t/43",[15,0.244,33,1.726,115,1.44,123,2.547,125,2.474,157,1.425,160,1.199,177,1.425,187,3.731,221,1.893,280,2.081,281,3.731,288,2.848,291,3.731,292,4.498]],["t/46",[2,0.503,4,0.796,5,0.435,8,0.885,15,0.269,16,0.78,17,0.73,20,0.384,38,0.87,43,0.97,44,0.384,48,0.503,51,0.503,54,1.363,59,1.151,61,1.411,62,2.373,65,1.026,66,1.411,68,1.578,69,1.966,70,1.991,71,2.254,72,1.961,73,0.703,74,1.412,75,1.989,76,0.435,77,1.869,79,2.517,80,0.435,81,0.435,82,1.79,83,0.799,84,0.703,85,0.97,86,0.666,87,1.006,92,0.503,93,0.503,96,0.921,97,1.102,98,0.796,102,0.796,108,0.384,110,0.921,111,2.379,112,2.2,113,2.295,114,2.2,115,1.305,116,2.625,117,1.732,118,1.869,121,1.411,124,0.514,125,0.514,133,1.571,134,1.97,135,0.435,139,2.831,143,1.787,144,0.435,145,0.435,148,2.29,149,1.396,150,1.204,157,0.41,158,0.281,159,0.384,165,1.204,166,0.384,168,0.384,172,0.435,174,0.796,176,0.343,177,0.786,180,0.921,185,0.87,195,0.384,201,1.102,202,0.503,203,2.173,204,0.921,205,0.873,206,0.921,210,0.796,213,0.435,214,1.363,216,0.435,217,0.435,218,0.503,221,0.255,224,0.384,231,1.363,248,0.503,253,0.503,254,0.31,255,0.31,258,0.796,260,1.549,261,0.503,262,0.435,263,0.384,266,0.503,268,0.503,269,0.503,272,0.435,273,0.503,274,1.577,275,0.503,280,0.514,289,1.204,290,0.435,293,2.492,294,0.606,295,0.606,296,0.606,297,1.111,298,0.503,299,2.735,300,1.111,301,1.111,302,1.111,303,0.606,304,0.606,305,0.606,306,0.606,307,1.901,308,0.606,309,1.901,310,1.536,311,1.536,312,1.536,313,1.111,314,0.435,315,0.606,316,1.111,317,2.216,318,1.901,319,0.606,320,1.204,321,0.606,322,0.606,323,0.606,324,0.606,325,0.606,326,0.606,327,0.606,328,0.606,329,0.606,330,0.606,331,0.606,332,1.111,333,0.606,334,0.606,335,0.606,336,1.111,337,1.111,338,0.606,339,0.606,340,0.503,341,0.606,342,0.606,343,0.606,344,0.606,345,1.102,346,0.606,347,0.606,348,0.606,349,0.606,350,1.102,351,2.216,352,1.111,353,1.111,354,0.796,355,0.606,356,0.606,357,1.111,358,0.606,359,0.606,360,1.536,361,0.606,362,1.111,363,1.111,364,0.606,365,0.606,366,0.606,367,1.111,368,0.503,369,2.216,370,1.274,371,1.901,372,0.606,373,0.503,374,1.111,375,1.111,376,1.901,377,1.111,378,1.111,379,1.111,380,1.536,381,0.606,382,0.606,383,0.606,384,0.606,385,1.111,386,0.606,387,1.274,388,1.111,389,1.536,390,2.216,391,0.435,392,0.606,393,0.606,394,0.606,395,0.606,396,0.606,397,0.606,398,0.606,399,0.606,400,0.606,401,0.503,402,1.901,403,0.606,404,0.606,405,1.536,406,0.606,407,1.111,408,0.606,409,0.606,410,0.606,411,0.606,412,0.435]],["t/49",[8,0.829,33,1.768,66,1.628,69,2.022,74,1.282,82,1.008,86,1.403,87,1.282,89,1.468,100,2.062,115,1.282,122,2.917,123,2.268,124,1.331,125,2.132,126,2.536,130,2.872,133,1.008,134,1.331,153,1.628,154,2.062,155,2.062,156,2.062,157,1.328,158,1.331,159,1.821,160,1.228,161,2.062,162,2.062,176,1.628,177,0.767,216,2.062,280,1.331,298,2.385,412,2.062,413,2.876,414,2.268,415,2.876,416,2.876,417,2.876,418,2.876,419,2.876,420,2.876,421,4.004,422,4.004,423,4.004,424,4.004,425,4.004,426,2.876,427,2.385,428,2.876,429,2.876,430,2.876]],["t/51",[8,0.599,15,0.299,16,0.894,33,1.278,65,1.541,69,1.066,87,1.066,105,2.388,108,2.108,134,1.541,157,1.324,158,1.541,160,1.541,165,2.108,167,2.388,177,1.469,193,2.762,205,1.167,215,2.108,219,2.505,221,2.229,222,2.108,254,2.258,255,2.258,260,1.885,289,2.108,290,2.388,320,2.108,345,2.388,354,2.388,368,2.762,401,2.762,431,2.762,432,3.329,433,2.388,434,3.329,435,3.329,436,2.762,437,3.329,438,3.329,439,3.329,440,3.329,441,3.329,442,3.329,443,3.329,444,4.424,445,3.329,446,3.329,447,3.329]],["t/53",[8,0.743,15,0.316,16,0.743,29,2.157,30,1.392,59,1.739,62,1.905,65,1.912,69,1.626,82,1.054,86,1.054,87,0.963,90,1.704,115,0.963,134,1.392,153,1.704,157,0.802,160,0.802,177,1.101,185,1.704,199,2.157,205,1.054,221,2.415,222,3.482,223,3.913,224,2.988,226,2.495,254,2.109,255,2.109,260,1.704,264,2.495,272,2.157,288,1.905,289,2.616,314,2.157,320,1.905,345,2.157,350,2.157,387,2.495,431,2.495,436,2.495,448,2.495,449,3.008,450,3.008,451,3.008,452,3.008,453,3.008,454,3.008,455,2.495,456,3.008,457,2.157,458,3.008,459,2.495,460,3.008,461,3.008,462,3.008,463,3.008,464,3.008,465,3.008,466,3.008,467,3.008,468,3.008]],["t/56",[5,2.932,8,0.735,15,0.31,83,1.195,108,2.589,149,2.087,157,1.524,158,1.892,160,1.594,203,2.087,214,2.932,215,2.589,219,2.315,350,2.932,414,3.1,469,4.088,470,4.088,471,4.088,472,4.088,473,4.088,474,3.391]],["t/58",[8,0.851,15,0.299,16,0.939,33,1.816,38,2.089,74,1.181,75,1.553,83,1.078,100,3.392,123,2.089,153,2.089,157,1.553,160,1.518,177,1.468,203,1.883,205,1.293,210,2.645,219,2.089,220,2.645,221,1.553,280,1.707,288,2.336,314,2.645,414,2.679,427,3.06,433,2.645,474,3.06,475,3.689,476,3.689,477,3.689,478,3.689,479,3.689]],["t/60",[15,0.292,16,0.707,20,2.489,30,1.819,55,3.261,69,1.804,87,1.258,129,2.819,133,1.378,157,1.433,160,1.503,177,1.048,213,2.819,247,3.261,282,2.819,320,2.489,354,2.819,391,2.819,414,2.226,455,3.261,480,3.931,481,3.931,482,3.931,483,3.931,484,4.925,485,4.085,486,3.931,487,3.931,488,3.261]],["t/62",[15,0.212,63,3.243,82,1.72,83,1.434,133,1.37,149,1.996,150,2.476,158,1.809,160,1.042,177,1.042,263,3.397,370,3.243,373,3.243,391,2.804,412,2.804,414,2.214,433,2.804,448,3.243,457,2.804,459,3.243,488,3.243,489,4.071,490,4.071,491,3.91,492,3.91,493,3.91,494,3.243,495,3.91,496,4.908,497,4.45,498,3.91,499,3.91,500,3.91]],["t/64",[8,0.814,160,1.206,201,3.246,219,3.039,220,3.246,285,3.754,340,3.754,457,3.246,490,3.754,494,4.452,497,4.452,501,4.526,502,4.526,503,4.526]],["t/66",[8,0.78,15,0.284,16,0.78,20,2.745,65,2.006,116,2.213,124,2.006,160,1.497,176,2.455,177,1.394,194,3.596,485,3.596,489,3.596,504,4.335,505,4.335,506,4.335,507,5.23,508,4.335,509,4.335]]],"invertedIndex":[["",{"_index":69,"t":{"10":{"position":[[407,2],[530,2],[602,2],[675,2],[754,2],[766,1],[789,1],[817,1],[844,1],[865,1],[890,1],[910,1],[932,1]]},"12":{"position":[[290,1],[292,3],[318,3],[330,1],[332,3],[349,3],[359,1],[361,3],[385,1],[387,3],[396,3],[413,3],[594,2],[673,2],[770,2],[915,1],[944,1],[972,1],[1021,1],[1053,1],[1186,1],[1273,1],[1322,1],[1420,1],[1515,1],[1573,3],[1582,1],[1647,1],[1755,2],[1758,2],[1761,2],[1764,2],[1767,2],[1770,2],[1773,2],[1776,2],[1779,2],[1782,2],[1785,2],[1788,2],[1806,1],[1839,1],[1872,1],[1918,1],[1937,1],[1962,1],[1981,1],[1983,1],[2014,1],[2031,1],[2062,1],[2095,1],[2139,1],[2158,1],[2183,1],[2206,1],[2244,1],[2277,1],[2328,1],[2347,1],[2372,1],[2394,1],[2430,1],[2432,1],[2441,1],[2443,2],[2446,2],[2449,2],[2452,2],[2455,2],[2458,2],[2461,2],[2464,2],[2467,2],[2470,2],[2473,2],[2476,2],[2484,1]]},"15":{"position":[[130,1],[157,1],[230,2]]},"24":{"position":[[127,1],[129,3],[155,3],[167,1],[169,3],[186,3],[196,1],[198,3],[222,1],[224,3],[233,3],[250,3]]},"28":{"position":[[175,1],[204,1],[232,1],[281,1],[313,1],[446,1],[533,1],[582,1],[680,1],[775,1],[833,3],[842,1],[907,1],[1015,2],[1018,2],[1021,2],[1024,2],[1027,2],[1030,2],[1033,2],[1036,2],[1039,2],[1042,2],[1045,2],[1048,2],[1066,1],[1099,1],[1132,1],[1178,1],[1197,1],[1222,1],[1241,1],[1243,1],[1274,1],[1291,1],[1322,1],[1355,1],[1399,1],[1418,1],[1443,1],[1466,1],[1504,1],[1537,1],[1588,1],[1607,1],[1632,1],[1654,1],[1690,1],[1692,1],[1701,1],[1703,2],[1706,2],[1709,2],[1712,2],[1715,2],[1718,2],[1721,2],[1724,2],[1727,2],[1730,2],[1733,2],[1736,2],[1744,1],[2182,1],[2211,1],[2239,1],[2288,1],[2320,1],[2453,1],[2540,1],[2589,1],[2687,1],[2782,1],[2840,3],[2849,1],[2914,1],[3022,3],[3031,1],[3149,1],[3195,1],[3242,1]]},"32":{"position":[[129,1]]},"46":{"position":[[208,2],[279,2],[665,1],[667,3],[693,3],[705,1],[707,3],[724,3],[734,1],[736,3],[760,1],[762,3],[771,3],[788,3],[1351,1],[1353,3],[1370,3],[1382,1],[1384,3],[1395,1],[1397,1],[1399,3],[1416,1],[1418,3],[1427,1],[1429,1],[1431,3],[1455,1],[1457,1],[1459,3],[1468,1],[1470,3],[1483,1],[1485,3],[1502,3],[1515,3],[1530,3],[1543,3],[2150,1],[2152,3],[2169,1],[2171,3],[2175,1],[2575,1],[2577,3],[2590,1],[2592,3],[2596,1],[3117,1],[3119,3],[3145,3],[3157,1],[3159,3],[3176,3],[3186,1],[3188,3],[3212,1],[3214,3],[3223,3],[3240,3],[3336,1],[3338,3],[3594,1],[3596,3],[3613,3],[3625,1],[3627,3],[3638,1],[3640,1],[3642,3],[3659,1],[3661,3],[3670,1],[3672,1],[3674,3],[3698,1],[3700,1],[3702,3],[3711,1],[3713,3],[3726,1],[3728,3],[3745,3],[3758,3],[3773,3],[3786,3],[3921,1],[3923,3],[4161,2],[4231,2],[4306,2],[6387,1],[6436,1],[6821,1],[6996,5],[7289,1],[7857,3],[7868,1],[7870,3],[7879,1],[7881,3],[7898,3],[7907,1],[7909,3],[7918,1],[7920,3],[7944,3],[7960,3],[8929,3],[8938,3],[8949,1],[8951,3],[8968,3],[8977,1],[8979,3],[9003,3],[9019,3],[9307,3],[9316,3],[9329,1],[9369,1],[9371,3],[9382,1],[9384,1],[9386,3],[9403,1],[9405,3],[9414,1],[9416,1],[9418,3],[9442,1],[9444,3],[9460,1],[9462,3],[9479,3]]},"49":{"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]]},"51":{"position":[[567,2]]},"53":{"position":[[282,1],[554,2],[583,2],[612,2]]},"60":{"position":[[45,1],[145,1],[158,2],[196,2]]}}}],["0.1.0",{"_index":132,"t":{"12":{"position":[[961,5]]},"28":{"position":[[221,5],[2228,5]]}}}],["0400",{"_index":425,"t":{"49":{"position":[[187,5],[523,5]]}}}],["08",{"_index":422,"t":{"49":{"position":[[167,2],[503,2]]}}}],["11",{"_index":423,"t":{"49":{"position":[[170,2],[506,2]]}}}],["14:06:19.119",{"_index":424,"t":{"49":{"position":[[173,12],[509,12]]}}}],["2",{"_index":138,"t":{"12":{"position":[[1101,1]]},"28":{"position":[[361,1],[2368,1]]}}}],["2025",{"_index":421,"t":{"49":{"position":[[161,5],[497,5]]}}}],["3",{"_index":152,"t":{"12":{"position":[[1632,1]]},"28":{"position":[[892,1],[2899,1]]}}}],["4",{"_index":250,"t":{"32":{"position":[[279,2]]}}}],["4px;position:absolute;top:0;left:0",{"_index":236,"t":{"28":{"position":[[3481,34]]}}}],["640w,/komodo",{"_index":242,"t":{"28":{"position":[[3662,12]]}}}],["739w",{"_index":244,"t":{"28":{"position":[[3734,5]]}}}],["_glob",{"_index":375,"t":{"46":{"position":[[6217,5],[6643,5]]}}}],["abov",{"_index":80,"t":{"10":{"position":[[564,5]]},"32":{"position":[[37,5]]},"46":{"position":[[7606,5]]}}}],["access",{"_index":315,"t":{"46":{"position":[[1814,6]]}}}],["account",{"_index":355,"t":{"46":{"position":[[5005,7]]}}}],["action",{"_index":497,"t":{"62":{"position":[[165,7],[301,8],[333,7]]},"64":{"position":[[49,7],[141,7]]}}}],["activ",{"_index":442,"t":{"51":{"position":[[592,8]]}}}],["ad",{"_index":209,"t":{"26":{"position":[[32,5]]}}}],["add",{"_index":320,"t":{"46":{"position":[[1987,3],[2177,3],[2598,3],[5722,4]]},"51":{"position":[[442,3]]},"53":{"position":[[412,3]]},"60":{"position":[[288,3]]}}}],["addit",{"_index":352,"t":{"46":{"position":[[4694,10],[6120,10]]}}}],["addition",{"_index":217,"t":{"28":{"position":[[1853,13]]},"34":{"position":[[759,13]]},"46":{"position":[[8260,13]]}}}],["additional_env_fil",{"_index":175,"t":{"12":{"position":[[2409,20]]},"28":{"position":[[1669,20]]}}}],["admin",{"_index":437,"t":{"51":{"position":[[347,5]]}}}],["advantag",{"_index":449,"t":{"53":{"position":[[23,9]]}}}],["afolder/compose.yaml",{"_index":366,"t":{"46":{"position":[[5451,22]]}}}],["agent",{"_index":208,"t":{"26":{"position":[[22,5]]}}}],["along",{"_index":400,"t":{"46":{"position":[[8487,5]]}}}],["alreadi",{"_index":105,"t":{"12":{"position":[[94,7]]},"18":{"position":[[16,7]]},"51":{"position":[[659,7]]}}}],["altern",{"_index":502,"t":{"64":{"position":[[72,14]]}}}],["alway",{"_index":216,"t":{"28":{"position":[[64,6]]},"46":{"position":[[6842,6]]},"49":{"position":[[8,6]]}}}],["anotheruser/immich",{"_index":399,"t":{"46":{"position":[[8143,18]]}}}],["answer",{"_index":28,"t":{"5":{"position":[[214,8]]}}}],["api",{"_index":221,"t":{"28":{"position":[[2036,3],[2100,3],[2116,3],[3045,4],[3106,4],[3209,4],[3256,4]]},"34":{"position":[[579,3]]},"41":{"position":[[254,4]]},"43":{"position":[[126,3]]},"46":{"position":[[8284,3]]},"51":{"position":[[74,4],[277,3],[328,3],[601,3]]},"53":{"position":[[170,3],[200,4],[205,3],[302,3],[393,3],[481,4],[593,3],[622,3]]},"58":{"position":[[423,3]]}}}],["api_key",{"_index":460,"t":{"53":{"position":[[575,7]]}}}],["api_secret",{"_index":461,"t":{"53":{"position":[[601,10]]}}}],["app",{"_index":130,"t":{"12":{"position":[[946,5],[974,5],[1055,5],[1188,5],[1275,5],[1324,5],[1422,5],[1517,5],[1584,5],[1649,5],[2486,5]]},"28":{"position":[[206,5],[234,5],[315,5],[448,5],[535,5],[584,5],[682,5],[777,5],[844,5],[909,5],[1746,5],[2213,5],[2241,5],[2322,5],[2455,5],[2542,5],[2591,5],[2689,5],[2784,5],[2851,5],[2916,5],[3033,5],[3094,5],[3197,5],[3244,5]]},"49":{"position":[[200,5],[536,5]]}}}],["append",{"_index":444,"t":{"51":{"position":[[626,6],[682,6]]}}}],["applic",{"_index":344,"t":{"46":{"position":[[4066,10]]}}}],["arm64",{"_index":47,"t":{"10":{"position":[[56,5]]}}}],["auto",{"_index":262,"t":{"34":{"position":[[299,4]]},"41":{"position":[[104,4]]},"46":{"position":[[5075,4]]}}}],["auto_upd",{"_index":166,"t":{"12":{"position":[[1925,11],[2146,11],[2335,11]]},"28":{"position":[[1185,11],[1406,11],[1595,11]]},"34":{"position":[[313,13]]},"46":{"position":[[5061,11]]}}}],["auto_update=fals",{"_index":94,"t":{"10":{"position":[[847,17]]}}}],["automat",{"_index":231,"t":{"28":{"position":[[3367,13]]},"34":{"position":[[654,13]]},"46":{"position":[[86,13],[5638,13],[8536,13],[9723,13]]}}}],["avail",{"_index":51,"t":{"10":{"position":[[80,9]]},"46":{"position":[[6145,9]]}}}],["back",{"_index":507,"t":{"66":{"position":[[149,6],[200,6]]}}}],["base",{"_index":269,"t":{"34":{"position":[[519,5],[641,5],[683,5]]},"46":{"position":[[136,5]]}}}],["befor",{"_index":434,"t":{"51":{"position":[[196,6]]}}}],["begin",{"_index":3,"t":{"3":{"position":[[56,5]]}}}],["behav",{"_index":31,"t":{"7":{"position":[[24,8]]}}}],["behavior",{"_index":290,"t":{"41":{"position":[[282,9]]},"46":{"position":[[4046,9]]},"51":{"position":[[633,8]]}}}],["below",{"_index":195,"t":{"20":{"position":[[22,6]]},"28":{"position":[[2074,6]]},"30":{"position":[[9,5]]},"46":{"position":[[4056,5]]}}}],["better",{"_index":270,"t":{"34":{"position":[[587,6]]}}}],["between",{"_index":155,"t":{"12":{"position":[[1669,7],[2512,7]]},"28":{"position":[[929,7],[1772,7],[2936,7]]},"49":{"position":[[220,7]]}}}],["bi",{"_index":506,"t":{"66":{"position":[[129,2]]}}}],["both",{"_index":341,"t":{"46":{"position":[[3869,4]]}}}],["bottom",{"_index":235,"t":{"28":{"position":[[3473,7]]}}}],["branch",{"_index":389,"t":{"46":{"position":[[7282,6],[7557,6],[7585,6]]}}}],["break",{"_index":35,"t":{"7":{"position":[[82,5]]}}}],["build",{"_index":190,"t":{"15":{"position":[[241,5]]}}}],["built",{"_index":44,"t":{"10":{"position":[[26,5]]},"12":{"position":[[1608,5]]},"28":{"position":[[868,5],[2875,5]]},"46":{"position":[[7389,5]]}}}],["bulk",{"_index":475,"t":{"58":{"position":[[100,4]]}}}],["button",{"_index":494,"t":{"62":{"position":[[97,6]]},"64":{"position":[[23,6],[110,6]]}}}],["cd",{"_index":183,"t":{"15":{"position":[[132,2]]}}}],["chang",{"_index":220,"t":{"28":{"position":[[1997,6]]},"58":{"position":[[502,8]]},"64":{"position":[[103,6]]}}}],["check",{"_index":391,"t":{"46":{"position":[[7539,7]]},"60":{"position":[[276,5]]},"62":{"position":[[43,6]]}}}],["choos",{"_index":213,"t":{"28":{"position":[[0,6]]},"46":{"position":[[5377,6]]},"60":{"position":[[132,6]]}}}],["chose",{"_index":249,"t":{"32":{"position":[[265,5]]}}}],["clear",{"_index":429,"t":{"49":{"position":[[680,5]]}}}],["click",{"_index":457,"t":{"53":{"position":[[292,5]]},"62":{"position":[[79,5]]},"64":{"position":[[0,5]]}}}],["clone",{"_index":178,"t":{"15":{"position":[[0,5],[80,5]]}}}],["closest",{"_index":338,"t":{"46":{"position":[[3485,7]]}}}],["commit",{"_index":473,"t":{"56":{"position":[[251,6]]}}}],["common",{"_index":257,"t":{"34":{"position":[[180,6]]}}}],["complet",{"_index":151,"t":{"12":{"position":[[1564,8]]},"28":{"position":[[824,8],[2831,8]]}}}],["compos",{"_index":74,"t":{"10":{"position":[[462,7],[647,9]]},"12":{"position":[[883,7],[1212,7],[1348,9],[1370,9],[1446,9],[1497,7],[1541,9]]},"20":{"position":[[105,7]]},"22":{"position":[[183,7],[333,7]]},"28":{"position":[[143,7],[472,7],[608,9],[630,9],[706,9],[757,7],[801,9],[2150,7],[2479,7],[2615,9],[2637,9],[2713,9],[2764,7],[2808,9]]},"32":{"position":[[55,7],[179,7]]},"34":{"position":[[336,7]]},"39":{"position":[[137,7]]},"46":{"position":[[211,7],[282,7],[486,7],[926,7],[1077,7],[1104,7],[1746,7],[1769,7],[2022,7],[2959,7],[3438,7],[3536,7],[3573,7],[4289,7],[5094,7],[5288,7],[5590,7],[5620,7],[6196,7],[8795,7]]},"49":{"position":[[359,9],[713,7]]},"58":{"position":[[154,7]]}}}],["compose,dock",{"_index":144,"t":{"12":{"position":[[1231,18]]},"28":{"position":[[491,18],[2498,18]]},"46":{"position":[[4513,18]]}}}],["compose.dev.yaml",{"_index":359,"t":{"46":{"position":[[5218,16]]}}}],["compose.y(a)ml",{"_index":357,"t":{"46":{"position":[[5143,14],[5169,14]]}}}],["compose.yaml",{"_index":113,"t":{"12":{"position":[[336,12],[372,12],[417,12],[2000,13]]},"24":{"position":[[173,12],[209,12],[254,12]]},"28":{"position":[[1260,13]]},"30":{"position":[[98,12]]},"32":{"position":[[19,12],[156,15]]},"39":{"position":[[154,14]]},"46":{"position":[[711,12],[747,12],[792,12],[1266,12],[1403,12],[1442,12],[1489,12],[1547,12],[2112,12],[2537,12],[3163,12],[3199,12],[3244,12],[3298,12],[3646,12],[3685,12],[3732,12],[3790,12],[5334,12],[5359,12],[5431,14],[7885,12],[7931,12],[7964,12],[8955,12],[8990,12],[9023,12],[9390,12],[9429,12],[9466,12]]}}}],["compose.yml",{"_index":60,"t":{"10":{"position":[[248,12],[326,11]]},"12":{"position":[[437,11]]}}}],["compose_file_glob",{"_index":97,"t":{"10":{"position":[[913,18]]},"34":{"position":[[350,19]]},"46":{"position":[[4493,17],[5258,17],[6976,17]]}}}],["compose_file_ignore_glob",{"_index":386,"t":{"46":{"position":[[7078,24]]}}}],["compose}*.y?(a)ml",{"_index":145,"t":{"12":{"position":[[1250,17]]},"28":{"position":[[510,17],[2517,17]]},"46":{"position":[[4532,17]]}}}],["config",{"_index":150,"t":{"12":{"position":[[1557,6],[1620,7]]},"28":{"position":[[817,6],[880,7],[2824,6],[2887,7]]},"46":{"position":[[1151,6],[3552,6],[4617,6],[4724,6]]},"62":{"position":[[454,6]]}}}],["configur",{"_index":65,"t":{"10":{"position":[[311,14]]},"34":{"position":[[537,9],[668,10]]},"37":{"position":[[65,14]]},"46":{"position":[[4009,14],[4028,13],[5877,10],[6131,13],[8291,10]]},"51":{"position":[[249,13]]},"53":{"position":[[69,9],[397,14]]},"66":{"position":[[183,13]]}}}],["connect",{"_index":210,"t":{"26":{"position":[[58,9]]},"46":{"position":[[1895,10],[2093,7]]},"58":{"position":[[129,7]]}}}],["consol",{"_index":123,"t":{"12":{"position":[[853,7]]},"28":{"position":[[28,7],[113,7]]},"43":{"position":[[100,8]]},"49":{"position":[[62,7],[142,7]]},"58":{"position":[[273,7]]}}}],["contain",{"_index":203,"t":{"22":{"position":[[163,10]]},"24":{"position":[[82,10]]},"39":{"position":[[176,10]]},"46":{"position":[[348,10],[646,10],[1882,9],[2526,10],[2765,9],[2882,10],[3030,10],[3512,8],[4378,9],[7232,8],[7424,8],[7472,8],[8648,10],[9094,8],[9133,10],[9349,10],[9555,8],[9871,8]]},"56":{"position":[[31,10]]},"58":{"position":[[172,10]]}}}],["containers=1",{"_index":327,"t":{"46":{"position":[[2319,12]]}}}],["content",{"_index":158,"t":{"12":{"position":[[1720,8]]},"28":{"position":[[980,8],[2987,8]]},"46":{"position":[[4415,8]]},"49":{"position":[[271,8]]},"51":{"position":[[188,7]]},"56":{"position":[[363,8]]},"62":{"position":[[421,8]]}}}],["cool",{"_index":89,"t":{"10":{"position":[[742,4]]},"12":{"position":[[196,4],[661,4],[1845,4],[2068,4],[2250,4]]},"15":{"position":[[292,4]]},"18":{"position":[[101,4]]},"28":{"position":[[1105,4],[1328,4],[1510,4]]},"49":{"position":[[397,4]]}}}],["copi",{"_index":153,"t":{"12":{"position":[[1655,4],[2498,4]]},"28":{"position":[[915,4],[1758,4],[2922,4]]},"49":{"position":[[206,4]]},"53":{"position":[[364,4]]},"58":{"position":[[260,4]]}}}],["correct",{"_index":186,"t":{"15":{"position":[[176,7]]}}}],["cover",{"_index":19,"t":{"5":{"position":[[46,5]]}}}],["creat",{"_index":177,"t":{"12":{"position":[[2537,6]]},"22":{"position":[[313,7]]},"28":{"position":[[1797,6],[1867,6],[1952,7],[2026,6],[3228,8],[3381,7]]},"34":{"position":[[833,8]]},"43":{"position":[[46,7],[130,7]]},"46":{"position":[[7,6],[129,6],[1057,7],[1726,7],[6865,7],[7987,7],[8079,7],[8177,7]]},"49":{"position":[[571,8]]},"51":{"position":[[27,6],[101,6],[148,8],[315,8],[356,6]]},"53":{"position":[[160,6],[345,6]]},"58":{"position":[[105,8],[217,7],[304,6],[337,6]]},"60":{"position":[[65,6]]},"62":{"position":[[286,7]]},"66":{"position":[[57,7],[113,6]]}}}],["create/modifi",{"_index":447,"t":{"51":{"position":[[744,13]]}}}],["creating/modifying/delet",{"_index":471,"t":{"56":{"position":[[150,27]]}}}],["creation",{"_index":452,"t":{"53":{"position":[[213,8]]}}}],["cross",{"_index":41,"t":{"10":{"position":[[0,5]]}}}],["current",{"_index":108,"t":{"12":{"position":[[223,9]]},"46":{"position":[[7531,7]]},"51":{"position":[[295,10]]},"56":{"position":[[310,9]]}}}],["custom",{"_index":14,"t":{"3":{"position":[[174,9]]},"20":{"position":[[87,10]]},"30":{"position":[[24,10]]},"32":{"position":[[8,10]]},"34":{"position":[[74,9],[140,14]]}}}],["dashboard",{"_index":480,"t":{"60":{"position":[[15,9]]}}}],["debug",{"_index":128,"t":{"12":{"position":[[924,5]]},"28":{"position":[[184,5],[2191,5]]}}}],["declar",{"_index":472,"t":{"56":{"position":[[225,8]]}}}],["default",{"_index":260,"t":{"34":{"position":[[241,8]]},"41":{"position":[[57,8]]},"46":{"position":[[4129,7],[5117,7],[5706,7],[6317,7],[6402,7],[6731,7],[6956,7]]},"51":{"position":[[531,7]]},"53":{"position":[[523,7]]}}}],["defin",{"_index":282,"t":{"37":{"position":[[109,7]]},"41":{"position":[[123,6],[202,6],[298,6]]},"60":{"position":[[150,7]]}}}],["delet",{"_index":485,"t":{"60":{"position":[[169,6],[231,6]]},"66":{"position":[[37,6]]}}}],["depend",{"_index":336,"t":{"46":{"position":[[2775,7],[6155,9]]}}}],["descript",{"_index":345,"t":{"46":{"position":[[4137,11],[6410,11],[6964,11]]},"51":{"position":[[539,11]]},"53":{"position":[[531,11]]}}}],["desir",{"_index":498,"t":{"62":{"position":[[354,7]]}}}],["detail",{"_index":483,"t":{"60":{"position":[[119,7]]}}}],["detect",{"_index":293,"t":{"46":{"position":[[100,6],[5107,9],[5512,7],[5696,9],[6049,7],[8550,9]]}}}],["determin",{"_index":248,"t":{"32":{"position":[[242,10]]},"46":{"position":[[9737,9]]}}}],["dir",{"_index":84,"t":{"10":{"position":[[638,5]]},"12":{"position":[[996,3],[1383,3]]},"28":{"position":[[256,3],[643,3],[2263,3],[2650,3]]},"46":{"position":[[4234,3],[4282,3]]}}}],["direct",{"_index":194,"t":{"20":{"position":[[11,10]]},"66":{"position":[[132,12]]}}}],["directli",{"_index":431,"t":{"51":{"position":[[18,8]]},"53":{"position":[[126,9]]}}}],["directori",{"_index":72,"t":{"10":{"position":[[427,9],[546,9]]},"12":{"position":[[263,9],[721,9],[802,9]]},"15":{"position":[[66,9]]},"22":{"position":[[35,9],[136,9]]},"24":{"position":[[5,10],[72,9],[277,9]]},"32":{"position":[[143,9]]},"34":{"position":[[427,9]]},"41":{"position":[[185,10]]},"46":{"position":[[476,9],[507,9],[619,9],[837,9],[1592,9],[2674,10],[2689,9],[2829,9],[2902,9],[2949,9],[2980,9],[3257,9],[3803,9],[4320,9],[6186,9],[6297,9],[6680,9],[6759,11],[7056,9],[7156,9],[8216,10],[8739,9],[8785,9],[8816,9],[8867,9],[8889,10],[9073,9],[9123,9],[9174,9],[9267,10],[9534,9],[9673,9],[9800,11],[9861,9]]}}}],["directorycompos",{"_index":200,"t":{"22":{"position":[[0,16]]}}}],["disabl",{"_index":484,"t":{"60":{"position":[[161,7],[214,8]]}}}],["discov",{"_index":339,"t":{"46":{"position":[[3525,10]]}}}],["discuss",{"_index":27,"t":{"5":{"position":[[174,11],[239,11]]}}}],["doc",{"_index":1,"t":{"3":{"position":[[30,4]]},"5":{"position":[[34,4]]},"34":{"position":[[129,5]]}}}],["docker",{"_index":115,"t":{"12":{"position":[[365,6],[430,6],[876,6]]},"20":{"position":[[98,6]]},"22":{"position":[[326,6]]},"24":{"position":[[202,6]]},"28":{"position":[[81,6],[136,6],[2143,6]]},"32":{"position":[[48,6],[172,6]]},"39":{"position":[[72,6],[130,6],[169,6]]},"43":{"position":[[81,7]]},"46":{"position":[[740,6],[1070,6],[1097,6],[1435,6],[1739,6],[1824,7],[1933,6],[2104,7],[3192,6],[3565,7],[3678,6],[5162,6],[5352,6],[7924,6],[8983,6],[9422,6]]},"49":{"position":[[120,6],[706,6]]},"53":{"position":[[834,6]]}}}],["docker.io/foxxmd/komodo",{"_index":56,"t":{"10":{"position":[[139,23]]}}}],["docker.sock",{"_index":316,"t":{"46":{"position":[[1861,11],[2466,11]]}}}],["docker/dock",{"_index":170,"t":{"12":{"position":[[1985,14]]},"28":{"position":[[1245,14]]}}}],["docker_host",{"_index":321,"t":{"46":{"position":[[2051,11]]}}}],["docker_host=tcp://socket",{"_index":323,"t":{"46":{"position":[[2207,24]]}}}],["dockerhub",{"_index":52,"t":{"10":{"position":[[97,9]]}}}],["dockg",{"_index":109,"t":{"12":{"position":[[239,6]]}}}],["docs:instal",{"_index":189,"t":{"15":{"position":[[217,12]]}}}],["domain",{"_index":275,"t":{"34":{"position":[[745,7]]},"46":{"position":[[8461,6]]}}}],["done",{"_index":176,"t":{"12":{"position":[[2492,5]]},"28":{"position":[[1752,5]]},"46":{"position":[[1844,4]]},"49":{"position":[[542,5]]},"66":{"position":[[17,4]]}}}],["doubl",{"_index":487,"t":{"60":{"position":[[269,6]]}}}],["each",{"_index":201,"t":{"22":{"position":[[110,4]]},"46":{"position":[[583,4],[5560,4],[6097,4]]},"64":{"position":[[125,4]]}}}],["easier",{"_index":430,"t":{"49":{"position":[[698,7]]}}}],["ensur",{"_index":404,"t":{"46":{"position":[[8693,6]]}}}],["entir",{"_index":508,"t":{"66":{"position":[[169,6]]}}}],["env",{"_index":134,"t":{"12":{"position":[[1000,4],[1299,3],[1309,7],[2434,6]]},"28":{"position":[[260,4],[559,3],[569,7],[1694,6],[2267,4],[2566,3],[2576,7]]},"34":{"position":[[374,4]]},"46":{"position":[[2047,3],[2944,4],[4116,3],[4433,4],[4640,7],[4705,3],[4772,4],[4851,4],[5276,3],[5686,4],[5731,4],[5813,3],[5822,4],[5951,4],[5963,3],[6389,3],[6943,3],[9197,3]]},"49":{"position":[[81,3]]},"51":{"position":[[518,3]]},"53":{"position":[[510,3]]}}}],["env_file_glob",{"_index":98,"t":{"10":{"position":[[935,14]]},"34":{"position":[[385,15]]},"46":{"position":[[4624,13],[5799,13]]}}}],["env_file_path",{"_index":173,"t":{"12":{"position":[[2380,13]]},"28":{"position":[[1640,13]]}}}],["environ",{"_index":77,"t":{"10":{"position":[[517,12]]},"12":{"position":[[559,12]]},"30":{"position":[[231,12]]},"46":{"position":[[2156,12],[2193,11],[2304,12],[3389,12],[3966,12],[4454,12],[4889,11],[5906,11]]}}}],["environment",{"_index":254,"t":{"34":{"position":[[28,14]]},"37":{"position":[[123,13]]},"41":{"position":[[10,13]]},"46":{"position":[[4092,13]]},"51":{"position":[[452,13],[494,13]]},"53":{"position":[[422,13],[486,13]]}}}],["error",{"_index":34,"t":{"7":{"position":[[70,6]]}}}],["etc",{"_index":288,"t":{"41":{"position":[[117,5],[196,5],[292,5],[358,5]]},"43":{"position":[[153,5]]},"53":{"position":[[136,6]]},"58":{"position":[[183,4]]}}}],["etc/komodo",{"_index":383,"t":{"46":{"position":[[6909,11]]}}}],["ex",{"_index":365,"t":{"46":{"position":[[5416,2]]}}}],["exampl",{"_index":59,"t":{"10":{"position":[[240,7]]},"12":{"position":[[60,7],[868,7]]},"15":{"position":[[267,9]]},"24":{"position":[[119,7]]},"28":{"position":[[128,7],[2135,7]]},"32":{"position":[[306,8]]},"46":{"position":[[657,7],[1089,7],[3109,7],[3586,7],[7686,7],[8900,7],[9278,7]]},"53":{"position":[[717,8],[854,8]]}}}],["except",{"_index":377,"t":{"46":{"position":[[6358,6],[6771,6]]}}}],["exclud",{"_index":267,"t":{"34":{"position":[[482,7]]}}}],["execut",{"_index":219,"t":{"28":{"position":[[1986,7],[3406,10]]},"51":{"position":[[130,7],[203,10]]},"56":{"position":[[127,7]]},"58":{"position":[[191,9]]},"64":{"position":[[10,7],[95,7]]}}}],["exist",{"_index":205,"t":{"22":{"position":[[269,8]]},"28":{"position":[[2009,8]]},"32":{"position":[[94,8]]},"34":{"position":[[611,8],[703,9]]},"39":{"position":[[62,9]]},"41":{"position":[[264,8]]},"46":{"position":[[42,8],[416,8],[1013,8],[2184,8],[2605,8],[4763,8]]},"51":{"position":[[667,7]]},"53":{"position":[[41,8]]},"58":{"position":[[145,8]]}}}],["existing_sync",{"_index":443,"t":{"51":{"position":[[610,13]]}}}],["expand",{"_index":252,"t":{"32":{"position":[[295,10]]}}}],["expect",{"_index":32,"t":{"7":{"position":[[40,6]]}}}],["expiri",{"_index":458,"t":{"53":{"position":[[338,6]]}}}],["export",{"_index":291,"t":{"41":{"position":[[340,6]]},"43":{"position":[[109,6]]}}}],["fals",{"_index":167,"t":{"12":{"position":[[1939,5],[1964,5],[2160,5],[2185,5],[2349,5],[2374,5]]},"28":{"position":[[1199,5],[1224,5],[1420,5],[1445,5],[1609,5],[1634,5]]},"51":{"position":[[570,5]]}}}],["field",{"_index":198,"t":{"20":{"position":[[66,6]]},"41":{"position":[[139,6]]}}}],["fields/button",{"_index":12,"t":{"3":{"position":[[151,14]]}}}],["file",{"_index":133,"t":{"12":{"position":[[980,5],[1061,6],[1194,6],[1220,4],[1281,6],[1330,6],[1428,6],[1473,5],[1523,6],[1590,6],[1714,5]]},"20":{"position":[[113,4]]},"28":{"position":[[240,5],[321,6],[454,6],[480,4],[541,6],[590,6],[688,6],[733,5],[783,6],[850,6],[974,5],[2247,5],[2328,6],[2461,6],[2487,4],[2548,6],[2597,6],[2695,6],[2740,5],[2790,6],[2857,6],[2981,5]]},"30":{"position":[[4,4]]},"34":{"position":[[344,5],[379,5]]},"41":{"position":[[334,5]]},"46":{"position":[[186,5],[1158,5],[2030,4],[3559,5],[4438,5],[4586,5],[4596,5],[4684,5],[4709,5],[4777,5],[5102,4],[5184,5],[5388,4],[5503,5],[5628,5],[5691,4],[5736,5],[5827,4],[6040,5],[7664,5],[8190,5]]},"49":{"position":[[265,5]]},"60":{"position":[[326,5]]},"62":{"position":[[441,5]]}}}],["file.cdf1733.739.png",{"_index":243,"t":{"28":{"position":[[3713,20]]}}}],["file.d733ef4.640.png",{"_index":240,"t":{"28":{"position":[[3566,20],[3641,20]]}}}],["file_path",{"_index":169,"t":{"12":{"position":[[1970,10]]},"28":{"position":[[1230,10]]}}}],["files_on_host",{"_index":164,"t":{"12":{"position":[[1904,13],[2125,13],[2314,13]]},"28":{"position":[[1164,13],[1385,13],[1574,13]]}}}],["filesonserv",{"_index":135,"t":{"12":{"position":[[1005,14],[1033,14]]},"28":{"position":[[265,14],[293,14],[2272,14],[2300,14]]},"46":{"position":[[2860,14]]}}}],["filesonserver/compose.yaml",{"_index":146,"t":{"12":{"position":[[1387,27]]},"28":{"position":[[647,27],[2654,27]]}}}],["filesonserver/immich",{"_index":140,"t":{"12":{"position":[[1112,21]]},"28":{"position":[[372,21],[2379,21]]}}}],["filesonserver/plex",{"_index":141,"t":{"12":{"position":[[1134,19]]},"28":{"position":[[394,19],[2401,19]]}}}],["filesonserver/uptim",{"_index":142,"t":{"12":{"position":[[1154,21]]},"28":{"position":[[414,21],[2421,21]]}}}],["fill",{"_index":197,"t":{"20":{"position":[[54,4]]}}}],["find",{"_index":38,"t":{"7":{"position":[[165,4]]},"12":{"position":[[1464,4]]},"28":{"position":[[724,4],[2731,4]]},"46":{"position":[[4578,7],[4676,7],[6466,7]]},"58":{"position":[[439,4]]}}}],["first",{"_index":435,"t":{"51":{"position":[[214,6]]}}}],["fit",{"_index":64,"t":{"10":{"position":[[302,3]]}}}],["folder",{"_index":139,"t":{"12":{"position":[[1103,8],[1634,7]]},"24":{"position":[[110,8]]},"28":{"position":[[363,8],[894,7],[2370,8],[2901,7]]},"34":{"position":[[511,7]]},"46":{"position":[[249,6],[317,6],[341,6],[366,6],[3023,6],[3500,6],[5768,7],[6249,6],[6280,7],[6345,6],[6474,7],[6499,6],[6584,7],[6609,6],[6715,6],[6798,6],[7207,6],[7248,6],[7374,6],[7446,6],[7465,6],[7488,6],[7634,6],[7803,6],[8640,7],[9108,7],[9342,6],[9569,6],[9605,6],[9821,7],[9893,6]]}}}],["folder_glob",{"_index":266,"t":{"34":{"position":[[465,13]]},"46":{"position":[[6422,11]]}}}],["folder_ignore_glob",{"_index":268,"t":{"34":{"position":[[490,20]]},"46":{"position":[[6529,18]]}}}],["folders/data",{"_index":296,"t":{"46":{"position":[[165,13]]}}}],["follow",{"_index":193,"t":{"20":{"position":[[0,6]]},"51":{"position":[[221,6]]}}}],["form",{"_index":415,"t":{"49":{"position":[[35,4]]}}}],["found",{"_index":61,"t":{"10":{"position":[[261,5]]},"12":{"position":[[1358,5]]},"28":{"position":[[618,5],[2625,5]]},"34":{"position":[[114,5]]},"46":{"position":[[3857,5],[4427,5],[4787,6],[5742,5],[5835,5],[6900,5]]}}}],["foxxmd/komodo",{"_index":67,"t":{"10":{"position":[[370,13]]},"12":{"position":[[481,13]]},"30":{"position":[[143,13]]}}}],["full",{"_index":376,"t":{"46":{"position":[[6292,4],[6675,4],[7051,4],[7151,4]]}}}],["fulli",{"_index":21,"t":{"5":{"position":[[105,5]]}}}],["function",{"_index":36,"t":{"7":{"position":[[88,13]]}}}],["futur",{"_index":440,"t":{"51":{"position":[[427,8]]}}}],["gave",{"_index":212,"t":{"26":{"position":[[115,4]]}}}],["gener",{"_index":83,"t":{"10":{"position":[[622,9],[708,9]]},"12":{"position":[[627,9],[773,8]]},"20":{"position":[[76,8]]},"22":{"position":[[89,8],[248,8]]},"28":{"position":[[43,9],[1899,9]]},"32":{"position":[[66,8],[229,9]]},"34":{"position":[[99,10],[437,9]]},"39":{"position":[[25,8]]},"46":{"position":[[395,8],[562,8],[992,8],[1679,8],[3088,9],[4260,8],[7312,8]]},"56":{"position":[[271,10]]},"58":{"position":[[388,9]]},"62":{"position":[[222,9],[250,9]]}}}],["get",{"_index":428,"t":{"49":{"position":[[672,7]]}}}],["ghcr.io/foxxmd/komodo",{"_index":58,"t":{"10":{"position":[[193,21]]}}}],["git",{"_index":116,"t":{"12":{"position":[[391,4]]},"15":{"position":[[76,3]]},"24":{"position":[[228,4]]},"34":{"position":[[637,3],[679,3],[721,3],[737,3]]},"46":{"position":[[161,3],[244,4],[263,3],[312,4],[361,4],[766,4],[1463,4],[3218,4],[3706,4],[7178,3],[7243,4],[7323,3],[7343,3],[7400,3],[7441,4],[7483,4],[7499,3],[7874,4],[7913,4],[8000,3],[8020,3],[8092,3],[8112,3],[8374,3],[8424,3],[8502,3],[8529,3],[8615,3],[8723,3],[8852,3],[8933,4],[9103,4],[9311,4],[9564,4],[9816,4]]},"66":{"position":[[145,3]]}}}],["git.mydomain.com",{"_index":396,"t":{"46":{"position":[[8034,16]]}}}],["github",{"_index":26,"t":{"5":{"position":[[167,6]]},"7":{"position":[[116,6]]},"10":{"position":[[107,6]]}}}],["github.com",{"_index":398,"t":{"46":{"position":[[8126,10]]}}}],["give",{"_index":314,"t":{"46":{"position":[[1795,4]]},"53":{"position":[[310,4]]},"58":{"position":[[14,5]]}}}],["given",{"_index":379,"t":{"46":{"position":[[6506,5],[6616,5]]}}}],["glob",{"_index":143,"t":{"12":{"position":[[1225,5],[1303,5],[1505,4]]},"28":{"position":[[485,5],[563,5],[765,4],[2492,5],[2570,5],[2772,4]]},"46":{"position":[[4554,4],[4652,4],[6442,4],[6554,4],[7006,4],[7109,4]]}}}],["granular",{"_index":439,"t":{"51":{"position":[[411,8]]}}}],["guid",{"_index":7,"t":{"3":{"position":[[96,6]]},"5":{"position":[[18,5]]},"12":{"position":[[24,5]]},"34":{"position":[[798,5]]}}}],["handl",{"_index":403,"t":{"46":{"position":[[8590,7]]}}}],["header",{"_index":492,"t":{"62":{"position":[[58,8]]}}}],["height=793",{"_index":246,"t":{"28":{"position":[[3750,11]]}}}],["help",{"_index":13,"t":{"3":{"position":[[169,4]]}}}],["home/myus",{"_index":309,"t":{"46":{"position":[[1357,12],[1602,12],[3600,12],[3823,12]]}}}],["home/myuser/homelab",{"_index":111,"t":{"12":{"position":[[296,21]]},"24":{"position":[[133,21],[297,20]]},"46":{"position":[[671,21],[847,20],[3123,21],[3277,20],[7836,20],[8908,20],[9040,20],[9286,20],[9501,20],[9683,20]]}}}],["home/myuser/homelab/compos",{"_index":426,"t":{"49":{"position":[[426,30]]}}}],["home/myuser/homelab/immich",{"_index":163,"t":{"12":{"position":[[1874,29]]},"28":{"position":[[1134,29]]}}}],["home/myuser/homelab/immich/compose.yaml",{"_index":305,"t":{"46":{"position":[[1179,40]]}}}],["home/myuser/homelab/plex",{"_index":171,"t":{"12":{"position":[[2097,27]]},"28":{"position":[[1357,27]]}}}],["home/myuser/homelab/plex/dock",{"_index":306,"t":{"46":{"position":[[1233,32]]}}}],["home/myuser/homelab/uptim",{"_index":172,"t":{"12":{"position":[[2279,28]]},"28":{"position":[[1539,28]]},"46":{"position":[[8227,27]]}}}],["home/myuser/homelab:/filesonserv",{"_index":76,"t":{"10":{"position":[[481,35]]},"30":{"position":[[194,36]]},"46":{"position":[[3353,35]]}}}],["home/myuser/homelab:/filesonserver:ro",{"_index":119,"t":{"12":{"position":[[520,38]]}}}],["home/myuser/localdev/myprojects/project1/compose.yaml",{"_index":308,"t":{"46":{"position":[[1296,54]]}}}],["home/myuser:/filesonserv",{"_index":342,"t":{"46":{"position":[[3938,27]]}}}],["home/user/komodo",{"_index":384,"t":{"46":{"position":[[6924,18]]}}}],["homelab",{"_index":310,"t":{"46":{"position":[[1374,7],[3617,7],[3887,8]]}}}],["hopefulli",{"_index":438,"t":{"51":{"position":[[393,9]]}}}],["host",{"_index":79,"t":{"10":{"position":[[541,4]]},"12":{"position":[[699,4]]},"24":{"position":[[0,4],[272,4]]},"46":{"position":[[832,4],[1587,4],[2669,4],[2706,4],[2824,4],[2897,4],[4337,4],[7073,4],[7173,4],[8884,4],[9068,4],[9262,4],[9529,4],[9668,4],[9856,4]]}}}],["host_dir",{"_index":337,"t":{"46":{"position":[[2935,8],[4297,8]]}}}],["host_dir=/home/myus",{"_index":343,"t":{"46":{"position":[[3981,21]]}}}],["host_dir=/home/myuser/homelab",{"_index":81,"t":{"10":{"position":[[572,29]]},"12":{"position":[[740,29]]},"46":{"position":[[3404,29]]}}}],["http://192.168.0.100:9120",{"_index":464,"t":{"53":{"position":[[741,25]]}}}],["http://192.168.0.101:9120",{"_index":227,"t":{"28":{"position":[[3123,25],[3163,26]]}}}],["http://192.168.0.101:9120/resourc",{"_index":229,"t":{"28":{"position":[[3280,34]]}}}],["http://komodo",{"_index":467,"t":{"53":{"position":[[816,13]]}}}],["https://git.mydomain.com/myuser/immich",{"_index":393,"t":{"46":{"position":[[7723,38]]}}}],["https://github.com/anotheruser/plex",{"_index":394,"t":{"46":{"position":[[7762,35]]}}}],["https://github.com/foxxmd/komodo",{"_index":181,"t":{"15":{"position":[[86,32]]}}}],["https://komodo.mydomain.com",{"_index":465,"t":{"53":{"position":[[767,27]]}}}],["https://mykomodo.com",{"_index":466,"t":{"53":{"position":[[795,20]]}}}],["ie",{"_index":48,"t":{"10":{"position":[[62,3]]},"46":{"position":[[8608,2]]}}}],["ignor",{"_index":380,"t":{"46":{"position":[[6577,6],[6849,6],[7132,6]]}}}],["imag",{"_index":43,"t":{"10":{"position":[[15,6],[90,6],[363,6]]},"12":{"position":[[474,6]]},"30":{"position":[[136,6]]},"34":{"position":[[205,5],[270,6]]},"41":{"position":[[87,6]]},"46":{"position":[[2257,6],[4943,5],[4990,5],[5053,7]]}}}],["image_registry_account",{"_index":93,"t":{"10":{"position":[[820,23]]},"46":{"position":[[4965,22]]}}}],["image_registry_provid",{"_index":92,"t":{"10":{"position":[[792,24]]},"46":{"position":[[4909,23]]}}}],["img",{"_index":232,"t":{"28":{"position":[[3417,4]]}}}],["img/sync",{"_index":239,"t":{"28":{"position":[[3548,8],[3623,8],[3695,8]]}}}],["immedi",{"_index":206,"t":{"24":{"position":[[55,9]]},"46":{"position":[[588,9],[3052,9]]}}}],["immich",{"_index":112,"t":{"12":{"position":[[322,7],[1808,8]]},"24":{"position":[[159,7]]},"28":{"position":[[1068,8]]},"46":{"position":[[697,7],[893,6],[1164,6],[1388,6],[1640,6],[3149,7],[3631,6],[7861,6],[7977,6],[8942,6],[9375,6]]}}}],["import",{"_index":16,"t":{"3":{"position":[[191,6]]},"5":{"position":[[84,6]]},"7":{"position":[[10,6]]},"10":{"position":[[355,7]]},"12":{"position":[[466,7]]},"15":{"position":[[142,6]]},"22":{"position":[[70,6],[229,6]]},"28":{"position":[[1841,6],[3064,7]]},"30":{"position":[[128,7]]},"34":{"position":[[554,6]]},"37":{"position":[[38,6]]},"46":{"position":[[543,6],[973,6],[1807,6],[2073,6],[2142,7],[2567,7],[2758,6],[3328,7],[3913,7],[4371,6],[5481,6],[6018,6],[6522,6],[6632,6],[6830,6],[8578,6],[8777,7],[9619,6],[9711,6]]},"51":{"position":[[7,6],[486,7],[721,6]]},"53":{"position":[[7,6],[456,6]]},"58":{"position":[[7,6],[237,7],[381,6]]},"60":{"position":[[303,6]]},"66":{"position":[[85,7]]}}}],["import.git",{"_index":182,"t":{"15":{"position":[[119,10]]}}}],["import/assets/id",{"_index":238,"t":{"28":{"position":[[3528,19],[3603,19],[3675,19]]}}}],["import:latest",{"_index":57,"t":{"10":{"position":[[163,13],[215,13],[384,13]]},"12":{"position":[[495,13]]},"30":{"position":[[157,13]]}}}],["includ",{"_index":264,"t":{"34":{"position":[[404,8],[457,7]]},"53":{"position":[[684,9]]}}}],["indic",{"_index":367,"t":{"46":{"position":[[5524,8],[6061,8]]}}}],["individu",{"_index":285,"t":{"39":{"position":[[103,10]]},"64":{"position":[[130,10]]}}}],["info",{"_index":126,"t":{"12":{"position":[[910,4],[939,4],[967,4],[1048,4],[1181,4],[1268,4],[1317,4],[1510,4],[1577,4],[1642,4],[2479,4]]},"22":{"position":[[26,4],[174,4]]},"28":{"position":[[170,4],[199,4],[227,4],[308,4],[441,4],[528,4],[577,4],[770,4],[837,4],[902,4],[1739,4],[2177,4],[2206,4],[2234,4],[2315,4],[2448,4],[2535,4],[2584,4],[2777,4],[2844,4],[2909,4],[3026,4],[3190,4],[3237,4]]},"49":{"position":[[193,4],[529,4]]}}}],["info=1",{"_index":328,"t":{"46":{"position":[[2334,6]]}}}],["init",{"_index":127,"t":{"12":{"position":[[917,6]]},"28":{"position":[[177,6],[2184,6]]}}}],["input",{"_index":281,"t":{"37":{"position":[[57,7]]},"43":{"position":[[59,7]]}}}],["insid",{"_index":202,"t":{"22":{"position":[[125,6]]},"46":{"position":[[608,6]]}}}],["instal",{"_index":106,"t":{"12":{"position":[[117,9]]},"15":{"position":[[41,7],[201,7]]},"18":{"position":[[39,9]]}}}],["instanc",{"_index":450,"t":{"53":{"position":[[57,8]]}}}],["instead",{"_index":374,"t":{"46":{"position":[[5940,7],[7644,7]]}}}],["instruct",{"_index":436,"t":{"51":{"position":[[232,12]]},"53":{"position":[[222,12]]}}}],["integr",{"_index":271,"t":{"34":{"position":[[594,11]]}}}],["intel/amd",{"_index":46,"t":{"10":{"position":[[40,11]]}}}],["interact",{"_index":11,"t":{"3":{"position":[[139,11]]},"12":{"position":[[37,11]]},"41":{"position":[[232,9]]}}}],["interest",{"_index":256,"t":{"34":{"position":[[166,8]]}}}],["interim",{"_index":358,"t":{"46":{"position":[[5199,7]]}}}],["issu",{"_index":37,"t":{"7":{"position":[[123,6],[145,5]]}}}],["it'",{"_index":373,"t":{"46":{"position":[[5897,4]]},"62":{"position":[[70,4]]}}}],["itself",{"_index":382,"t":{"46":{"position":[[6883,6]]}}}],["key",{"_index":222,"t":{"28":{"position":[[2040,3],[2104,4]]},"41":{"position":[[259,4]]},"51":{"position":[[332,3]]},"53":{"position":[[174,3],[209,3],[306,3],[356,3],[378,3],[597,3]]}}}],["ki",{"_index":280,"t":{"37":{"position":[[45,5]]},"39":{"position":[[13,2]]},"41":{"position":[[46,2],[226,2],[318,2]]},"43":{"position":[[24,2]]},"46":{"position":[[0,2],[388,2]]},"49":{"position":[[0,2]]},"58":{"position":[[462,2]]}}}],["know",{"_index":322,"t":{"46":{"position":[[2080,5]]}}}],["komodo",{"_index":15,"t":{"3":{"position":[[184,6]]},"5":{"position":[[77,6]]},"7":{"position":[[3,6]]},"10":{"position":[[348,6],[678,6]]},"12":{"position":[[87,6],[154,6],[459,6],[597,6],[2567,6]]},"15":{"position":[[135,6]]},"18":{"position":[[9,6],[76,6]]},"22":{"position":[[63,6],[222,6]]},"26":{"position":[[5,6],[74,6]]},"28":{"position":[[36,6],[1827,6],[1834,6],[1919,6],[2081,6],[2093,6],[2109,6],[2128,6],[3056,7]]},"30":{"position":[[121,6]]},"32":{"position":[[75,6]]},"34":{"position":[[547,6],[572,6],[852,7]]},"37":{"position":[[31,6]]},"39":{"position":[[34,6]]},"41":{"position":[[70,6],[150,6],[247,6],[350,7]]},"43":{"position":[[119,6]]},"46":{"position":[[14,6],[179,6],[256,6],[536,6],[966,6],[1800,6],[2066,6],[2135,6],[2560,6],[2751,6],[3321,6],[3906,6],[4180,6],[4364,6],[4447,6],[4861,6],[5474,6],[5956,6],[6011,6],[6515,6],[6625,6],[6823,6],[6876,6],[8277,6],[8313,6],[8411,6],[8571,6],[8770,6],[9612,6],[9704,6]]},"51":{"position":[[0,6],[52,6],[270,6],[479,6],[714,6]]},"53":{"position":[[0,6],[50,6],[252,6],[449,6],[474,6],[557,6],[586,6],[615,6],[638,6]]},"56":{"position":[[75,6],[93,6],[191,6],[323,6]]},"58":{"position":[[0,6],[72,7],[230,6],[374,6]]},"60":{"position":[[8,6],[261,7],[296,6]]},"62":{"position":[[173,6]]},"66":{"position":[[78,6],[176,6]]}}}],["komodo'",{"_index":432,"t":{"51":{"position":[[65,8]]}}}],["komodo_env_nam",{"_index":96,"t":{"10":{"position":[[893,16]]},"46":{"position":[[4731,15],[5995,15]]}}}],["komodo_url",{"_index":226,"t":{"28":{"position":[[3111,11]]},"53":{"position":[[543,10]]}}}],["komodoenv",{"_index":174,"t":{"12":{"position":[[2396,12]]},"28":{"position":[[1656,12]]},"46":{"position":[[4749,10],[5929,10]]}}}],["kuma",{"_index":118,"t":{"12":{"position":[[407,5],[1176,4],[2216,5],[2308,5]]},"24":{"position":[[244,5]]},"28":{"position":[[436,4],[1476,5],[1568,5],[2443,4]]},"46":{"position":[[782,5],[916,5],[3234,5],[7955,4],[8169,4],[8255,4],[9014,4],[9455,4]]}}}],["learn",{"_index":277,"t":{"34":{"position":[[807,5]]}}}],["level",{"_index":371,"t":{"46":{"position":[[5755,5],[6493,5],[6603,5],[9908,6]]}}}],["link",{"_index":272,"t":{"34":{"position":[[620,6]]},"46":{"position":[[8396,6]]},"53":{"position":[[91,6]]}}}],["local",{"_index":392,"t":{"46":{"position":[[7551,5]]}}}],["localdev",{"_index":312,"t":{"46":{"position":[[1506,8],[3749,8],[3874,8]]}}}],["locat",{"_index":347,"t":{"46":{"position":[[4211,7]]}}}],["log",{"_index":125,"t":{"12":{"position":[[899,3]]},"28":{"position":[[88,4],[159,3],[2166,3]]},"32":{"position":[[195,3]]},"41":{"position":[[326,4]]},"43":{"position":[[67,3],[89,5]]},"46":{"position":[[5493,3],[6030,3]]},"49":{"position":[[127,4],[608,3],[729,3]]}}}],["log_toml=fals",{"_index":417,"t":{"49":{"position":[[85,15]]}}}],["look",{"_index":110,"t":{"12":{"position":[[273,5]]},"46":{"position":[[5133,5],[7820,5]]}}}],["ls",{"_index":302,"t":{"46":{"position":[[1112,2],[3581,4]]}}}],["lscr.io/linuxserver/socket",{"_index":325,"t":{"46":{"position":[[2264,26]]}}}],["machin",{"_index":17,"t":{"3":{"position":[[207,8]]},"12":{"position":[[142,7],[182,7],[212,7]]},"18":{"position":[[64,7]]},"22":{"position":[[295,7]]},"26":{"position":[[46,7]]},"30":{"position":[[53,8],[89,8]]},"32":{"position":[[120,8]]},"39":{"position":[[114,7]]},"46":{"position":[[69,8],[442,7],[1039,7],[2711,7]]}}}],["made",{"_index":478,"t":{"58":{"position":[[465,4]]}}}],["make",{"_index":412,"t":{"46":{"position":[[9834,4]]},"49":{"position":[[666,5]]},"62":{"position":[[193,4]]}}}],["mani",{"_index":253,"t":{"34":{"position":[[10,4]]},"46":{"position":[[8635,4]]}}}],["manual",{"_index":427,"t":{"49":{"position":[[562,8]]},"58":{"position":[[328,8]]}}}],["match",{"_index":149,"t":{"12":{"position":[[1488,8]]},"28":{"position":[[748,8],[2755,8]]},"34":{"position":[[753,5]]},"46":{"position":[[6240,8],[6333,7],[6666,8],[6747,7],[7030,8],[8345,7],[8437,8]]},"56":{"position":[[209,7]]},"62":{"position":[[201,5]]}}}],["method",{"_index":218,"t":{"28":{"position":[[1940,6]]},"46":{"position":[[467,8]]}}}],["miss",{"_index":500,"t":{"62":{"position":[[378,7]]}}}],["mode",{"_index":129,"t":{"12":{"position":[[930,5]]},"28":{"position":[[190,5],[2197,5]]},"60":{"position":[[139,4]]}}}],["modifi",{"_index":63,"t":{"10":{"position":[[286,9]]},"62":{"position":[[407,9]]}}}],["monorepo",{"_index":402,"t":{"46":{"position":[[8560,10],[8598,9],[9768,8],[9884,8]]}}}],["more",{"_index":215,"t":{"28":{"position":[[14,4]]},"34":{"position":[[15,4]]},"51":{"position":[[406,4]]},"56":{"position":[[70,4]]}}}],["mount",{"_index":70,"t":{"10":{"position":[[410,5],[556,7]]},"12":{"position":[[794,7]]},"22":{"position":[[146,7]]},"46":{"position":[[629,7],[1852,8],[2457,8],[2478,5],[2734,7],[2849,7],[4347,7],[8757,7],[9848,7]]}}}],["mount_dir=/my/parent/fold",{"_index":191,"t":{"15":{"position":[[320,27]]}}}],["myproject",{"_index":313,"t":{"46":{"position":[[1519,10],[3762,10]]}}}],["mystack",{"_index":408,"t":{"46":{"position":[[9320,8]]}}}],["myuser/immich",{"_index":397,"t":{"46":{"position":[[8057,13]]}}}],["name",{"_index":87,"t":{"10":{"position":[[692,4]]},"12":{"position":[[168,4],[611,4],[1801,4],[2026,4],[2201,4]]},"18":{"position":[[90,4]]},"26":{"position":[[106,4],[131,5]]},"28":{"position":[[1061,4],[1286,4],[1461,4],[3080,4]]},"41":{"position":[[175,5]]},"46":{"position":[[1139,4],[4168,4],[4825,4],[4935,4],[5207,5],[5967,4],[6256,5],[6352,5],[6722,4]]},"49":{"position":[[352,4],[653,4]]},"51":{"position":[[728,4]]},"53":{"position":[[320,4]]},"60":{"position":[[93,4]]}}}],["navig",{"_index":453,"t":{"53":{"position":[[235,8]]}}}],["navigi",{"_index":481,"t":{"60":{"position":[[25,9]]}}}],["need",{"_index":451,"t":{"53":{"position":[[152,4]]}}}],["network",{"_index":468,"t":{"53":{"position":[[841,8]]}}}],["new",{"_index":30,"t":{"5":{"position":[[235,3]]},"7":{"position":[[141,3]]},"12":{"position":[[2546,3]]},"28":{"position":[[1806,3]]},"34":{"position":[[266,3]]},"53":{"position":[[298,3]]},"60":{"position":[[47,3]]}}}],["newer",{"_index":356,"t":{"46":{"position":[[5047,5]]}}}],["next",{"_index":503,"t":{"64":{"position":[[117,4]]}}}],["node",{"_index":187,"t":{"15":{"position":[[184,4],[348,4]]},"43":{"position":[[95,4]]}}}],["node'",{"_index":420,"t":{"49":{"position":[[135,6]]}}}],["non",{"_index":361,"t":{"46":{"position":[[5284,3]]}}}],["normal",{"_index":228,"t":{"28":{"position":[[3151,11]]}}}],["note",{"_index":368,"t":{"46":{"position":[[5574,4]]},"51":{"position":[[290,4]]}}}],["now",{"_index":489,"t":{"62":{"position":[[17,3],[144,3]]},"66":{"position":[[101,3]]}}}],["npm",{"_index":188,"t":{"15":{"position":[[197,3],[209,3],[233,3],[247,3]]}}}],["nvm",{"_index":184,"t":{"15":{"position":[[149,3]]}}}],["on",{"_index":214,"t":{"28":{"position":[[7,3]]},"46":{"position":[[456,3],[5539,4],[6076,4],[8611,3]]},"56":{"position":[[63,3]]}}}],["onc",{"_index":207,"t":{"26":{"position":[[0,4]]}}}],["open",{"_index":29,"t":{"5":{"position":[[228,4]]},"7":{"position":[[134,4]]},"53":{"position":[[267,4]]}}}],["option",{"_index":90,"t":{"10":{"position":[[757,8]]},"15":{"position":[[159,9]]},"20":{"position":[[41,8]]},"34":{"position":[[20,7],[193,7]]},"53":{"position":[[329,8]]}}}],["out",{"_index":5,"t":{"3":{"position":[[77,3]]},"46":{"position":[[7547,3]]},"56":{"position":[[342,3]]}}}],["output",{"_index":33,"t":{"7":{"position":[[59,10]]},"12":{"position":[[861,6]]},"28":{"position":[[19,8],[71,6],[121,6]]},"37":{"position":[[84,7]]},"41":{"position":[[310,7]]},"43":{"position":[[74,6]]},"49":{"position":[[15,6],[626,6],[691,6]]},"51":{"position":[[84,6]]},"58":{"position":[[281,6],[427,6]]}}}],["output_api_sync",{"_index":441,"t":{"51":{"position":[[551,15]]}}}],["over",{"_index":363,"t":{"46":{"position":[[5347,4],[5446,4]]}}}],["overridden",{"_index":360,"t":{"46":{"position":[[5242,10],[5783,10],[5979,10]]}}}],["overwhelm",{"_index":0,"t":{"3":{"position":[[11,11]]}}}],["overwrit",{"_index":445,"t":{"51":{"position":[[692,9]]}}}],["owncloud",{"_index":311,"t":{"46":{"position":[[1474,8],[1700,8],[3717,8]]}}}],["packag",{"_index":53,"t":{"10":{"position":[[114,8]]}}}],["page",{"_index":55,"t":{"10":{"position":[[134,4],[188,4]]},"60":{"position":[[127,4]]}}}],["parent",{"_index":71,"t":{"10":{"position":[[420,6]]},"24":{"position":[[65,6]]},"46":{"position":[[334,6],[3016,6],[3493,6],[4313,6],[6273,6],[7218,6],[7458,6],[9335,6],[9793,6]]}}}],["parentdirectori",{"_index":120,"t":{"12":{"position":[[676,15]]}}}],["pars",{"_index":369,"t":{"46":{"position":[[5652,6],[7200,6],[7358,7],[7652,6],[9631,5]]}}}],["part",{"_index":279,"t":{"37":{"position":[[16,5]]}}}],["past",{"_index":476,"t":{"58":{"position":[[265,7]]}}}],["path",{"_index":351,"t":{"46":{"position":[[4602,5],[5411,4],[6307,5],[6690,6],[9221,4]]}}}],["pattern",{"_index":148,"t":{"12":{"position":[[1479,8]]},"28":{"position":[[739,8],[2746,8]]},"34":{"position":[[528,8]]},"46":{"position":[[4559,7],[4657,7],[5125,7],[5714,7],[6223,8],[6325,7],[6447,7],[6559,7],[6649,8],[6739,7],[7011,7],[7114,7]]}}}],["pend",{"_index":490,"t":{"62":{"position":[[29,7],[132,7]]},"64":{"position":[[63,8]]}}}],["per",{"_index":265,"t":{"34":{"position":[[413,3]]}}}],["perform",{"_index":501,"t":{"64":{"position":[[33,7]]}}}],["peripheri",{"_index":107,"t":{"12":{"position":[[127,9]]},"18":{"position":[[49,9]]},"26":{"position":[[12,9]]}}}],["pi",{"_index":50,"t":{"10":{"position":[[76,3]]}}}],["ping=1",{"_index":330,"t":{"46":{"position":[[2352,6]]}}}],["platform",{"_index":42,"t":{"10":{"position":[[6,8]]}}}],["pleas",{"_index":23,"t":{"5":{"position":[[136,6]]},"7":{"position":[[102,6]]}}}],["plex",{"_index":114,"t":{"12":{"position":[[353,5],[2033,6]]},"24":{"position":[[190,5]]},"28":{"position":[[1293,6]]},"46":{"position":[[728,5],[900,4],[1220,4],[1422,4],[1647,4],[3180,5],[3665,4],[7902,4],[8071,4],[8972,4],[9409,4]]}}}],["poll",{"_index":261,"t":{"34":{"position":[[254,7]]},"46":{"position":[[5038,4]]}}}],["poll_for_upd",{"_index":168,"t":{"12":{"position":[[1945,16],[2166,16],[2355,16]]},"28":{"position":[[1205,16],[1426,16],[1615,16]]},"34":{"position":[[277,17]]},"46":{"position":[[5020,15]]}}}],["poll_for_update=fals",{"_index":95,"t":{"10":{"position":[[868,21]]}}}],["port",{"_index":463,"t":{"53":{"position":[[694,4]]}}}],["possibl",{"_index":462,"t":{"53":{"position":[[674,9]]}}}],["post=0",{"_index":329,"t":{"46":{"position":[[2343,6]]}}}],["prefix",{"_index":122,"t":{"12":{"position":[[731,6],[903,6]]},"28":{"position":[[163,6],[2170,6]]},"32":{"position":[[199,6]]},"49":{"position":[[612,6],[658,7],[733,6]]}}}],["presenc",{"_index":295,"t":{"46":{"position":[[149,8]]}}}],["priorit",{"_index":362,"t":{"46":{"position":[[5323,10],[5419,11]]}}}],["privat",{"_index":273,"t":{"34":{"position":[[713,7]]},"46":{"position":[[8520,8]]}}}],["problem",{"_index":40,"t":{"7":{"position":[[189,8]]}}}],["proce",{"_index":477,"t":{"58":{"position":[[293,7]]}}}],["process",{"_index":137,"t":{"12":{"position":[[1079,10]]},"28":{"position":[[339,10],[2346,10]]}}}],["produc",{"_index":301,"t":{"46":{"position":[[874,7],[1621,7]]}}}],["profil",{"_index":456,"t":{"53":{"position":[[284,7]]}}}],["project",{"_index":75,"t":{"10":{"position":[[470,8]]},"12":{"position":[[254,8]]},"22":{"position":[[17,8],[191,8],[278,8]]},"24":{"position":[[102,7]]},"32":{"position":[[103,8]]},"39":{"position":[[145,8]]},"46":{"position":[[425,8],[494,8],[934,8],[1022,8],[1129,9],[1777,8],[2967,8],[3446,8],[3544,7],[3844,8],[5296,7],[5565,8],[5598,8],[5676,9],[6102,8],[6204,8],[6856,8],[6890,9],[8659,9],[8803,8],[9149,8],[9237,8],[9360,8],[9637,8],[9752,7]]},"58":{"position":[[162,9]]}}}],["project'",{"_index":385,"t":{"46":{"position":[[7041,9],[7141,9]]}}}],["project/fold",{"_index":297,"t":{"46":{"position":[[219,14],[290,14]]}}}],["project1",{"_index":307,"t":{"46":{"position":[[1279,8],[1534,8],[1656,9],[3777,8]]}}}],["proper",{"_index":505,"t":{"66":{"position":[[122,6]]}}}],["provid",{"_index":274,"t":{"34":{"position":[[725,8]]},"46":{"position":[[8024,9],[8116,9],[8428,8],[8506,8]]}}}],["provider/account",{"_index":259,"t":{"34":{"position":[[220,16]]}}}],["proxi",{"_index":317,"t":{"46":{"position":[[1914,5],[1947,6],[1967,5],[2000,5],[2250,6]]}}}],["proxy:2375",{"_index":324,"t":{"46":{"position":[[2232,10]]}}}],["proxy:latest",{"_index":326,"t":{"46":{"position":[[2291,12]]}}}],["put",{"_index":292,"t":{"43":{"position":[[27,4]]}}}],["question",{"_index":10,"t":{"3":{"position":[[124,9]]},"5":{"position":[[198,8]]}}}],["quick",{"_index":101,"t":{"12":{"position":[[12,5]]}}}],["quickstart",{"_index":6,"t":{"3":{"position":[[85,10]]},"5":{"position":[[7,10]]}}}],["raspberri",{"_index":49,"t":{"10":{"position":[[66,9]]}}}],["raw",{"_index":413,"t":{"49":{"position":[[26,3]]}}}],["read",{"_index":283,"t":{"39":{"position":[[16,5]]}}}],["read_onli",{"_index":333,"t":{"46":{"position":[[2427,10]]}}}],["recommend",{"_index":319,"t":{"46":{"position":[[1973,13]]}}}],["refer",{"_index":251,"t":{"32":{"position":[[282,5]]}}}],["refresh",{"_index":493,"t":{"62":{"position":[[89,7]]}}}],["registri",{"_index":258,"t":{"34":{"position":[[211,8]]},"41":{"position":[[94,9]]},"46":{"position":[[4949,8],[4996,8]]}}}],["rel",{"_index":407,"t":{"46":{"position":[[9246,8],[9652,8]]}}}],["relat",{"_index":284,"t":{"39":{"position":[[79,7]]}}}],["remot",{"_index":390,"t":{"46":{"position":[[7291,7],[7520,6],[7578,6],[8357,7],[8450,6]]}}}],["repo",{"_index":62,"t":{"10":{"position":[[274,5]]},"34":{"position":[[627,5]]},"46":{"position":[[267,4],[7182,4],[7327,4],[7404,4],[7503,4],[8004,4],[8051,5],[8096,4],[8137,5],[8326,4],[8378,4],[8403,4],[8727,4]]},"53":{"position":[[98,6]]}}}],["repositori",{"_index":54,"t":{"10":{"position":[[123,10],[177,10]]},"15":{"position":[[11,10]]},"46":{"position":[[7347,10],[7707,12],[8619,10],[8856,10]]}}}],["repository'",{"_index":25,"t":{"5":{"position":[[154,12]]}}}],["repres",{"_index":470,"t":{"56":{"position":[[52,10]]}}}],["represent",{"_index":474,"t":{"56":{"position":[[284,14]]},"58":{"position":[[33,14]]}}}],["requir",{"_index":289,"t":{"41":{"position":[[130,8]]},"46":{"position":[[4120,8],[6393,8],[6947,8],[8678,11]]},"51":{"position":[[522,8]]},"53":{"position":[[514,8],[702,9]]}}}],["resolv",{"_index":136,"t":{"12":{"position":[[1023,9]]},"28":{"position":[[283,9],[2290,9]]}}}],["resour",{"_index":488,"t":{"60":{"position":[[318,7]]},"62":{"position":[[433,7]]}}}],["resourc",{"_index":157,"t":{"12":{"position":[[1704,9],[1741,8],[2555,8]]},"28":{"position":[[103,9],[964,9],[1001,8],[1815,8],[1881,8],[1964,9],[2971,9],[3008,8],[3214,8],[3261,8],[3355,8],[3557,8],[3632,8],[3704,8]]},"34":{"position":[[789,8]]},"39":{"position":[[41,10],[87,9]]},"41":{"position":[[77,9],[157,9],[273,8]]},"43":{"position":[[36,9],[138,8]]},"46":{"position":[[27,9],[51,9],[8331,8]]},"49":{"position":[[50,8],[255,9],[292,8],[585,9]]},"51":{"position":[[39,9],[368,9],[645,8]]},"53":{"position":[[111,8]]},"56":{"position":[[7,8],[82,10],[115,8],[178,9]]},"58":{"position":[[51,9],[114,9],[208,8],[316,8],[351,8],[453,8]]},"60":{"position":[[51,8],[186,9],[248,9]]}}}],["restart",{"_index":99,"t":{"10":{"position":[[950,8]]},"12":{"position":[[841,8]]},"30":{"position":[[171,8]]}}}],["restor",{"_index":509,"t":{"66":{"position":[[214,11]]}}}],["reveal",{"_index":303,"t":{"46":{"position":[[1115,7]]}}}],["review",{"_index":276,"t":{"34":{"position":[[773,6]]}}}],["root",{"_index":405,"t":{"46":{"position":[[8732,6],[8847,4],[9169,4]]}}}],["run",{"_index":121,"t":{"12":{"position":[[717,3]]},"15":{"position":[[213,3],[237,3],[251,3]]},"32":{"position":[[0,3]]},"41":{"position":[[181,3]]},"46":{"position":[[1171,7],[1225,7],[1288,7],[2452,4],[5668,7],[8212,3]]}}}],["run_directori",{"_index":162,"t":{"12":{"position":[[1858,13],[2081,13],[2263,13]]},"28":{"position":[[1118,13],[1341,13],[1523,13]]},"49":{"position":[[410,13]]}}}],["safe",{"_index":504,"t":{"66":{"position":[[30,6]]}}}],["same",{"_index":78,"t":{"10":{"position":[[533,4]]},"32":{"position":[[138,4]]}}}],["save",{"_index":247,"t":{"30":{"position":[[62,4]]},"60":{"position":[[340,4]]}}}],["scan",{"_index":411,"t":{"46":{"position":[[9780,8]]}}}],["scan_dir",{"_index":406,"t":{"46":{"position":[[9201,8]]}}}],["scan_dir=mystack",{"_index":410,"t":{"46":{"position":[[9580,17]]}}}],["scenario",{"_index":104,"t":{"12":{"position":[[68,9]]},"20":{"position":[[136,9]]}}}],["scissor",{"_index":156,"t":{"12":{"position":[[1681,8],[2524,8]]},"28":{"position":[[941,8],[1784,8],[2948,8]]},"49":{"position":[[232,8]]}}}],["search",{"_index":24,"t":{"5":{"position":[[143,6]]},"7":{"position":[[109,6]]}}}],["secret",{"_index":223,"t":{"28":{"position":[[2048,7],[2120,7]]},"53":{"position":[[182,6],[386,6],[626,6]]}}}],["section",{"_index":354,"t":{"46":{"position":[[4901,7],[5918,7]]},"51":{"position":[[281,8]]},"60":{"position":[[332,7]]}}}],["see",{"_index":419,"t":{"49":{"position":[[108,3]]}}}],["select",{"_index":196,"t":{"20":{"position":[[29,6]]}}}],["server",{"_index":86,"t":{"10":{"position":[[685,6],[747,6]]},"12":{"position":[[161,6],[201,6],[604,6],[666,6],[989,6],[1071,7],[1204,7],[1291,7],[1340,7],[1438,7],[1533,7],[1600,7],[1832,6],[1850,7],[2055,6],[2073,7],[2237,6],[2255,7]]},"15":{"position":[[297,6]]},"18":{"position":[[83,6],[106,6]]},"26":{"position":[[86,7],[124,6]]},"28":{"position":[[249,6],[331,7],[464,7],[551,7],[600,7],[698,7],[793,7],[860,7],[1092,6],[1110,7],[1315,6],[1333,7],[1497,6],[1515,7],[2256,6],[2338,7],[2471,7],[2558,7],[2607,7],[2705,7],[2800,7],[2867,7]]},"41":{"position":[[167,7]]},"46":{"position":[[195,6],[4187,6],[7673,6],[8199,6]]},"49":{"position":[[384,6],[402,7]]},"53":{"position":[[564,6]]}}}],["server_nam",{"_index":346,"t":{"46":{"position":[[4149,11]]}}}],["server_name=mi",{"_index":88,"t":{"10":{"position":[[727,14]]},"12":{"position":[[646,14]]},"15":{"position":[[277,14]]}}}],["servic",{"_index":66,"t":{"10":{"position":[[338,9]]},"12":{"position":[[449,9]]},"30":{"position":[[111,9]]},"46":{"position":[[1920,7],[2006,7],[2125,9],[2550,9],[3311,9],[3896,9]]},"49":{"position":[[645,7]]}}}],["set",{"_index":185,"t":{"15":{"position":[[172,3]]},"34":{"position":[[201,3],[237,3],[327,3]]},"41":{"position":[[53,3],[209,8]]},"46":{"position":[[2039,3],[2927,3],[9213,3]]},"53":{"position":[[272,8]]}}}],["setup",{"_index":103,"t":{"12":{"position":[[49,6],[102,5]]},"18":{"position":[[24,5]]}}}],["shortest",{"_index":364,"t":{"46":{"position":[[5402,8]]}}}],["show",{"_index":459,"t":{"53":{"position":[[373,4]]},"62":{"position":[[148,5]]}}}],["singl",{"_index":381,"t":{"46":{"position":[[6708,6]]}}}],["skip",{"_index":479,"t":{"58":{"position":[[482,4]]}}}],["socket",{"_index":318,"t":{"46":{"position":[[1940,6],[1960,6],[1993,6],[2243,6]]}}}],["solut",{"_index":39,"t":{"7":{"position":[[172,8]]}}}],["someth",{"_index":499,"t":{"62":{"position":[[365,9]]}}}],["somethingels",{"_index":409,"t":{"46":{"position":[[9483,13]]}}}],["somewher",{"_index":179,"t":{"15":{"position":[[22,9]]},"30":{"position":[[72,9]]}}}],["sourc",{"_index":299,"t":{"46":{"position":[[379,8],[2798,6],[4249,7],[5310,7],[5613,6],[6178,7],[8832,6]]}}}],["specif",{"_index":199,"t":{"20":{"position":[[127,8]]},"30":{"position":[[44,8]]},"53":{"position":[[662,8]]}}}],["specifi",{"_index":211,"t":{"26":{"position":[[94,7]]},"28":{"position":[[2061,7]]}}}],["src/index.j",{"_index":192,"t":{"15":{"position":[[353,12]]}}}],["src=/komodo",{"_index":237,"t":{"28":{"position":[[3516,11]]}}}],["srcset=\"/komodo",{"_index":241,"t":{"28":{"position":[[3587,15]]}}}],["stack",{"_index":82,"t":{"10":{"position":[[611,6],[718,6]]},"12":{"position":[[637,6],[711,5],[782,6],[1090,6],[1364,5],[1551,5],[1614,5],[1791,9],[2016,9],[2191,9]]},"22":{"position":[[98,6],[257,6]]},"28":{"position":[[53,6],[350,6],[624,5],[811,5],[874,5],[1051,9],[1276,9],[1451,9],[1909,6],[2018,7],[2357,6],[2631,5],[2818,5],[2881,5]]},"32":{"position":[[82,6],[214,6]]},"34":{"position":[[88,6],[187,5],[417,5],[447,9],[647,6],[689,6],[842,6]]},"46":{"position":[[21,5],[120,5],[202,5],[272,6],[373,5],[404,6],[571,6],[882,6],[1001,6],[1629,6],[1690,5],[2792,5],[3101,7],[4003,5],[4084,7],[4202,5],[4243,5],[4269,6],[4611,5],[4718,5],[5087,6],[5304,5],[5607,5],[5868,5],[6172,5],[7187,7],[7332,6],[7409,5],[7680,5],[8009,5],[8101,5],[8206,5],[8383,5],[8826,5]]},"49":{"position":[[342,9]]},"53":{"position":[[79,6]]},"62":{"position":[[276,6],[294,6]]}}}],["stack.config",{"_index":161,"t":{"12":{"position":[[1817,14],[2040,14],[2222,14]]},"28":{"position":[[1077,14],[1300,14],[1482,14]]},"49":{"position":[[369,14]]}}}],["stacks_from",{"_index":348,"t":{"46":{"position":[[4219,11]]}}}],["stacks_from=compos",{"_index":204,"t":{"22":{"position":[[200,21]]},"46":{"position":[[943,22],[3455,21]]}}}],["stacks_from=dir",{"_index":85,"t":{"10":{"position":[[659,15]]},"12":{"position":[[825,15]]},"15":{"position":[[304,15]]},"22":{"position":[[45,17]]},"24":{"position":[[20,15]]},"46":{"position":[[517,18],[811,15],[1566,15],[2990,17]]}}}],["start",{"_index":102,"t":{"12":{"position":[[18,5]]},"15":{"position":[[255,5]]},"46":{"position":[[6371,8],[6805,8]]}}}],["state",{"_index":491,"t":{"62":{"position":[[37,5]]}}}],["statu",{"_index":304,"t":{"46":{"position":[[1144,6]]}}}],["step",{"_index":9,"t":{"3":{"position":[[111,4],[119,4]]},"32":{"position":[[274,4],[323,5]]}}}],["structur",{"_index":395,"t":{"46":{"position":[[7810,9]]}}}],["style=width:100%;height:auto;max",{"_index":233,"t":{"28":{"position":[[3422,32]]}}}],["sub",{"_index":372,"t":{"46":{"position":[[5764,3]]}}}],["subfold",{"_index":73,"t":{"10":{"position":[[447,10]]},"12":{"position":[[812,10]]},"22":{"position":[[115,9]]},"46":{"position":[[598,9],[3062,10]]}}}],["such",{"_index":286,"t":{"39":{"position":[[122,4]]}}}],["suppli",{"_index":287,"t":{"41":{"position":[[34,8]]}}}],["sure",{"_index":2,"t":{"3":{"position":[[42,4]]},"46":{"position":[[9839,4]]}}}],["switch",{"_index":495,"t":{"62":{"position":[[115,9]]}}}],["sync",{"_index":160,"t":{"12":{"position":[[1750,4],[2550,4]]},"28":{"position":[[98,4],[1010,4],[1810,4],[1876,4],[3017,4],[3039,5],[3075,4],[3100,5],[3203,5],[3223,4],[3250,5],[3270,4],[3350,4]]},"34":{"position":[[784,4]]},"43":{"position":[[147,5]]},"49":{"position":[[45,4],[301,4],[580,4]]},"51":{"position":[[34,4],[112,5],[161,4],[363,4],[605,4],[654,4],[736,4]]},"53":{"position":[[120,5]]},"56":{"position":[[2,4],[110,4],[144,5],[241,4],[265,5],[353,4]]},"58":{"position":[[203,4],[311,4],[346,4],[448,4],[497,4]]},"60":{"position":[[38,5],[60,4],[74,4],[114,4]]},"62":{"position":[[5,4]]},"64":{"position":[[18,4]]},"66":{"position":[[6,7],[48,4],[156,4]]}}}],["sync_nam",{"_index":446,"t":{"51":{"position":[[702,9]]}}}],["syncs/689a41a04ed1b642f3053f57",{"_index":230,"t":{"28":{"position":[[3315,30]]}}}],["tab",{"_index":496,"t":{"62":{"position":[[140,3],[461,4]]}}}],["take",{"_index":448,"t":{"53":{"position":[[18,4]]},"62":{"position":[[185,4]]}}}],["text",{"_index":154,"t":{"12":{"position":[[1664,4],[2507,4]]},"28":{"position":[[924,4],[1767,4],[2931,4]]},"49":{"position":[[215,4]]}}}],["text/fil",{"_index":469,"t":{"56":{"position":[[21,9]]}}}],["those",{"_index":378,"t":{"46":{"position":[[6365,5],[6778,5]]}}}],["three",{"_index":278,"t":{"37":{"position":[[10,5]]}}}],["tip",{"_index":100,"t":{"12":{"position":[[0,3]]},"49":{"position":[[595,3]]},"58":{"position":[[245,3],[407,3]]}}}],["tmpf",{"_index":334,"t":{"46":{"position":[[2443,6]]}}}],["toml",{"_index":414,"t":{"49":{"position":[[30,4],[686,4]]},"56":{"position":[[42,4],[246,4],[358,4]]},"58":{"position":[[28,4],[369,4]]},"60":{"position":[[310,4]]},"62":{"position":[[232,5]]}}}],["top",{"_index":370,"t":{"46":{"position":[[5751,3],[6489,3],[6599,3]]},"62":{"position":[[54,3]]}}}],["track",{"_index":388,"t":{"46":{"position":[[7274,7],[7567,8]]}}}],["tri",{"_index":4,"t":{"3":{"position":[[73,3]]},"22":{"position":[[82,3],[241,3]]},"46":{"position":[[555,3],[985,3]]}}}],["true",{"_index":165,"t":{"12":{"position":[[1920,4],[2141,4],[2330,4]]},"28":{"position":[[1180,4],[1401,4],[1590,4]]},"46":{"position":[[2438,4],[4400,4],[4487,5],[7620,4]]},"51":{"position":[[584,4]]}}}],["two",{"_index":300,"t":{"46":{"position":[[463,3],[7703,3]]}}}],["type",{"_index":294,"t":{"46":{"position":[[112,4]]}}}],["tz=america/new_york",{"_index":91,"t":{"10":{"position":[[769,19]]},"12":{"position":[[574,19]]}}}],["ui",{"_index":455,"t":{"53":{"position":[[263,3]]},"60":{"position":[[147,2]]}}}],["under",{"_index":340,"t":{"46":{"position":[[3863,5]]},"64":{"position":[[57,5]]}}}],["understand",{"_index":22,"t":{"5":{"position":[[111,10]]}}}],["unless",{"_index":416,"t":{"49":{"position":[[70,6]]}}}],["unmatch",{"_index":486,"t":{"60":{"position":[[176,9]]}}}],["up",{"_index":124,"t":{"12":{"position":[[891,2]]},"22":{"position":[[341,2]]},"28":{"position":[[151,2],[2158,2]]},"32":{"position":[[187,2]]},"46":{"position":[[1085,3],[1754,2]]},"49":{"position":[[721,2]]},"66":{"position":[[207,2]]}}}],["updat",{"_index":263,"t":{"34":{"position":[[304,8]]},"41":{"position":[[109,7]]},"46":{"position":[[5080,6]]},"62":{"position":[[107,7],[268,7],[396,7]]}}}],["uptim",{"_index":117,"t":{"12":{"position":[[400,6],[2208,7]]},"24":{"position":[[237,6]]},"28":{"position":[[1468,7]]},"46":{"position":[[775,6],[909,6],[3227,6],[7948,6],[8162,6],[9007,6],[9448,6]]}}}],["url",{"_index":224,"t":{"28":{"position":[[2088,4],[3275,4]]},"34":{"position":[[741,3]]},"46":{"position":[[8457,3]]},"53":{"position":[[571,3],[645,3],[735,5]]}}}],["us",{"_index":8,"t":{"3":{"position":[[106,4]]},"5":{"position":[[129,3]]},"10":{"position":[[232,3],[700,3]]},"12":{"position":[[4,3],[233,5],[619,3],[704,3],[1693,3]]},"15":{"position":[[153,3]]},"28":{"position":[[953,3],[2960,3],[3050,5]]},"34":{"position":[[66,4],[564,3],[606,4],[699,3],[820,3]]},"37":{"position":[[25,5],[96,4],[117,5]]},"41":{"position":[[321,4]]},"46":{"position":[[450,5],[805,5],[1560,5],[1765,3],[1954,5],[2813,6],[3008,3],[3477,3],[4570,3],[4668,3],[4838,4],[4875,5],[4961,3],[5016,3],[5552,3],[5584,5],[6089,3],[6458,3],[6570,3],[7022,3],[7125,3],[8389,4],[8481,5],[8839,3],[9036,3],[9189,3],[9229,3],[9497,3],[9576,3]]},"49":{"position":[[244,3],[548,3],[599,3]]},"51":{"position":[[59,5]]},"53":{"position":[[192,3],[466,3]]},"56":{"position":[[104,3]]},"58":{"position":[[88,3],[418,4]]},"64":{"position":[[87,3]]},"66":{"position":[[69,3]]}}}],["usag",{"_index":18,"t":{"5":{"position":[[28,5]]},"15":{"position":[[261,5]]},"34":{"position":[[123,5]]}}}],["user",{"_index":401,"t":{"46":{"position":[[8515,4]]},"51":{"position":[[310,4]]}}}],["valid",{"_index":387,"t":{"46":{"position":[[7268,5],[7435,5],[7514,5]]},"53":{"position":[[729,5]]}}}],["var/run/docker.sock",{"_index":335,"t":{"46":{"position":[[2484,20]]}}}],["var/run/docker.sock:/var/run/docker.sock:ro",{"_index":332,"t":{"46":{"position":[[2382,44],[2624,44]]}}}],["variabl",{"_index":255,"t":{"34":{"position":[[43,10]]},"37":{"position":[[137,10]]},"41":{"position":[[24,9]]},"46":{"position":[[4106,9]]},"51":{"position":[[466,9],[508,9]]},"53":{"position":[[436,9],[500,9]]}}}],["verbos",{"_index":225,"t":{"28":{"position":[[3085,8]]}}}],["verifi",{"_index":433,"t":{"51":{"position":[[177,6]]},"58":{"position":[[490,6]]},"62":{"position":[[310,6]]}}}],["version",{"_index":131,"t":{"12":{"position":[[952,8]]},"15":{"position":[[189,7]]},"28":{"position":[[212,8],[2219,8]]}}}],["version=1",{"_index":331,"t":{"46":{"position":[[2361,9]]}}}],["volum",{"_index":68,"t":{"10":{"position":[[398,8]]},"12":{"position":[[509,8]]},"30":{"position":[[183,8]]},"46":{"position":[[2371,8],[2510,6],[2581,8],[2614,7],[3342,8],[3927,8]]}}}],["want",{"_index":20,"t":{"5":{"position":[[61,4]]},"46":{"position":[[4474,4]]},"60":{"position":[[102,4]]},"66":{"position":[[105,4]]}}}],["warn",{"_index":147,"t":{"12":{"position":[[1415,4]]},"28":{"position":[[675,4],[2682,4]]}}}],["web",{"_index":454,"t":{"53":{"position":[[259,3]]}}}],["whatev",{"_index":482,"t":{"60":{"position":[[84,8]]}}}],["width:100%;margin",{"_index":234,"t":{"28":{"position":[[3455,17]]}}}],["width=640",{"_index":245,"t":{"28":{"position":[[3740,9]]}}}],["within",{"_index":159,"t":{"12":{"position":[[1729,6]]},"28":{"position":[[989,6],[2996,6]]},"46":{"position":[[6262,6]]},"49":{"position":[[280,6]]}}}],["without",{"_index":298,"t":{"46":{"position":[[234,7]]},"49":{"position":[[633,7]]}}}],["work",{"_index":180,"t":{"15":{"position":[[58,7]]},"46":{"position":[[7366,5],[8705,5]]}}}],["write",{"_index":350,"t":{"46":{"position":[[4405,5],[4868,6],[5891,5]]},"53":{"position":[[105,5]]},"56":{"position":[[334,7]]}}}],["write_env",{"_index":349,"t":{"46":{"position":[[4388,9]]}}}],["write_env=fals",{"_index":353,"t":{"46":{"position":[[4798,16],[5845,15]]}}}],["x86",{"_index":45,"t":{"10":{"position":[[36,3]]}}}],["you'll",{"_index":418,"t":{"49":{"position":[[101,6]]}}}]],"pipeline":["stemmer"]}}] 1 + [{"documents":[{"i":1,"t":"Help and FAQ","u":"/komodo-import/docs/help/","b":["Docs"]},{"i":8,"t":"Overview","u":"/komodo-import/docs/installation/","b":["Docs","Installation"]},{"i":16,"t":"Quickstart","u":"/komodo-import/docs/quickstart/","b":["Docs"]},{"i":35,"t":"Overview","u":"/komodo-import/docs/usage/overview/","b":["Docs","Usage"]},{"i":54,"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.258,1,1.258]],["t/8",[2,1.034]],["t/16",[3,1.638]],["t/35",[2,1.034]],["t/54",[4,1.021,5,1.021,6,1.021]]],"invertedIndex":[["faq",{"_index":1,"t":{"1":{"position":[[9,3]]}}}],["help",{"_index":0,"t":{"1":{"position":[[0,4]]}}}],["overview",{"_index":2,"t":{"8":{"position":[[0,8]]},"35":{"position":[[0,8]]}}}],["quickstart",{"_index":3,"t":{"16":{"position":[[0,10]]}}}],["resourc",{"_index":6,"t":{"54":{"position":[[11,9]]}}}],["sync",{"_index":5,"t":{"54":{"position":[[6,4]]}}}],["us",{"_index":4,"t":{"54":{"position":[[0,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Where To Start?","u":"/komodo-import/docs/help/","h":"#where-to-start","p":1},{"i":4,"t":"Further Help with Komodo Import","u":"/komodo-import/docs/help/","h":"#further-help-with-komodo-import","p":1},{"i":6,"t":"Found a Bug or Error?","u":"/komodo-import/docs/help/","h":"#found-a-bug-or-error","p":1},{"i":9,"t":"Docker","u":"/komodo-import/docs/installation/","h":"#docker","p":8},{"i":11,"t":"Docker Usage Example","u":"/komodo-import/docs/installation/","h":"#docker-usage-example","p":8},{"i":13,"t":"Local Installation","u":"/komodo-import/docs/installation/","h":"#local-installation","p":8},{"i":14,"t":"Nodejs","u":"/komodo-import/docs/installation/","h":"#nodejs","p":8},{"i":17,"t":"Prerequisites","u":"/komodo-import/docs/quickstart/","h":"#prerequisites","p":16},{"i":19,"t":"Create Your Scenario","u":"/komodo-import/docs/quickstart/","h":"#create-your-scenario","p":16},{"i":21,"t":"1. What Stack Sources to generate Stacks from?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":23,"t":"2. Where are your existing projects located on your machine?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":25,"t":"3. What is the name of this Komodo Server?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":27,"t":"4. Where should generated Stacks be created?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":29,"t":"5. Save your customized Compose file","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":31,"t":"Generate Stacks","u":"/komodo-import/docs/quickstart/","h":"#generate-stacks","p":16},{"i":33,"t":"Next Steps","u":"/komodo-import/docs/quickstart/","h":"#next-steps","p":16},{"i":36,"t":"Key Concepts","u":"/komodo-import/docs/usage/overview/","h":"#key-concepts","p":35},{"i":38,"t":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs","p":35},{"i":40,"t":"Configuration","u":"/komodo-import/docs/usage/overview/","h":"#configuration","p":35},{"i":42,"t":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs","p":35},{"i":44,"t":"Inputs","u":"/komodo-import/docs/usage/overview/","h":"#inputs-1","p":35},{"i":45,"t":"Stacks","u":"/komodo-import/docs/usage/overview/","h":"#stacks","p":35},{"i":47,"t":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs-1","p":35},{"i":48,"t":"Console","u":"/komodo-import/docs/usage/overview/","h":"#console","p":35},{"i":50,"t":"API Sync","u":"/komodo-import/docs/usage/overview/","h":"#api-sync","p":35},{"i":52,"t":"Komodo API","u":"/komodo-import/docs/usage/overview/","h":"#komodo-api","p":35},{"i":55,"t":"What is a Sync Resource?","u":"/komodo-import/docs/usage/resourceSync/","h":"#what-is-a-sync-resource","p":54},{"i":57,"t":"How To Use with Komodo Import?","u":"/komodo-import/docs/usage/resourceSync/","h":"#how-to-use-with-komodo-import","p":54},{"i":59,"t":"Create Sync Resource","u":"/komodo-import/docs/usage/resourceSync/","h":"#create-sync-resource","p":54},{"i":61,"t":"Verify Sync Changes","u":"/komodo-import/docs/usage/resourceSync/","h":"#verify-sync-changes","p":54},{"i":63,"t":"Execute Sync","u":"/komodo-import/docs/usage/resourceSync/","h":"#execute-sync","p":54},{"i":65,"t":"Remove Sync (Optional)","u":"/komodo-import/docs/usage/resourceSync/","h":"#remove-sync-optional","p":54}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.026]],["t/4",[1,2.38,2,2.38,3,1.534,4,1.987]],["t/6",[5,2.756,6,2.756,7,2.756]],["t/9",[8,3.36]],["t/11",[8,2.3,9,2.756,10,2.756]],["t/13",[11,3.272,12,3.272]],["t/14",[13,4.026]],["t/17",[14,4.026]],["t/19",[15,2.375,16,3.272]],["t/21",[17,2.095,18,2.065,19,2.095,20,1.521]],["t/23",[21,2.095,22,2.095,23,2.095,24,2.095,25,2.095]],["t/25",[3,1.534,26,2.38,27,2.38,28,2.38]],["t/27",[15,1.728,18,1.534,20,1.728,29,2.38]],["t/29",[30,2.095,31,2.095,32,2.095,33,2.095,34,2.095]],["t/31",[18,2.109,20,2.375]],["t/33",[35,3.272,36,3.272]],["t/36",[37,3.272,38,3.272]],["t/38",[39,3.36]],["t/40",[40,4.026]],["t/42",[41,3.36]],["t/44",[39,3.36]],["t/45",[18,2.595]],["t/47",[41,3.36]],["t/48",[42,4.026]],["t/50",[43,2.731,44,1.72]],["t/52",[3,2.109,43,2.731]],["t/55",[44,1.72,45,2.731]],["t/57",[3,1.776,4,2.3,46,2.756]],["t/59",[15,2,44,1.449,45,2.3]],["t/61",[44,1.449,47,2.756,48,2.756]],["t/63",[44,1.72,49,3.272]],["t/65",[44,1.449,50,2.756,51,2.756]]],"invertedIndex":[["1",{"_index":17,"t":{"21":{"position":[[0,2]]}}}],["2",{"_index":21,"t":{"23":{"position":[[0,2]]}}}],["3",{"_index":26,"t":{"25":{"position":[[0,2]]}}}],["4",{"_index":29,"t":{"27":{"position":[[0,2]]}}}],["5",{"_index":30,"t":{"29":{"position":[[0,2]]}}}],["api",{"_index":43,"t":{"50":{"position":[[0,3]]},"52":{"position":[[7,3]]}}}],["bug",{"_index":6,"t":{"6":{"position":[[8,3]]}}}],["chang",{"_index":48,"t":{"61":{"position":[[12,7]]}}}],["compos",{"_index":33,"t":{"29":{"position":[[24,7]]}}}],["concept",{"_index":38,"t":{"36":{"position":[[4,8]]}}}],["configur",{"_index":40,"t":{"40":{"position":[[0,13]]}}}],["consol",{"_index":42,"t":{"48":{"position":[[0,7]]}}}],["creat",{"_index":15,"t":{"19":{"position":[[0,6]]},"27":{"position":[[36,8]]},"59":{"position":[[0,6]]}}}],["custom",{"_index":32,"t":{"29":{"position":[[13,10]]}}}],["docker",{"_index":8,"t":{"9":{"position":[[0,6]]},"11":{"position":[[0,6]]}}}],["error",{"_index":7,"t":{"6":{"position":[[15,6]]}}}],["exampl",{"_index":10,"t":{"11":{"position":[[13,7]]}}}],["execut",{"_index":49,"t":{"63":{"position":[[0,7]]}}}],["exist",{"_index":22,"t":{"23":{"position":[[18,8]]}}}],["file",{"_index":34,"t":{"29":{"position":[[32,4]]}}}],["found",{"_index":5,"t":{"6":{"position":[[0,5]]}}}],["further",{"_index":1,"t":{"4":{"position":[[0,7]]}}}],["gener",{"_index":20,"t":{"21":{"position":[[25,8]]},"27":{"position":[[16,9]]},"31":{"position":[[0,8]]}}}],["help",{"_index":2,"t":{"4":{"position":[[8,4]]}}}],["import",{"_index":4,"t":{"4":{"position":[[25,6]]},"57":{"position":[[23,7]]}}}],["input",{"_index":39,"t":{"38":{"position":[[0,6]]},"44":{"position":[[0,6]]}}}],["instal",{"_index":12,"t":{"13":{"position":[[6,12]]}}}],["key",{"_index":37,"t":{"36":{"position":[[0,3]]}}}],["komodo",{"_index":3,"t":{"4":{"position":[[18,6]]},"25":{"position":[[28,6]]},"52":{"position":[[0,6]]},"57":{"position":[[16,6]]}}}],["local",{"_index":11,"t":{"13":{"position":[[0,5]]}}}],["locat",{"_index":24,"t":{"23":{"position":[[36,7]]}}}],["machin",{"_index":25,"t":{"23":{"position":[[52,8]]}}}],["name",{"_index":27,"t":{"25":{"position":[[15,4]]}}}],["next",{"_index":35,"t":{"33":{"position":[[0,4]]}}}],["nodej",{"_index":13,"t":{"14":{"position":[[0,6]]}}}],["option",{"_index":51,"t":{"65":{"position":[[12,10]]}}}],["output",{"_index":41,"t":{"42":{"position":[[0,7]]},"47":{"position":[[0,7]]}}}],["prerequisit",{"_index":14,"t":{"17":{"position":[[0,13]]}}}],["project",{"_index":23,"t":{"23":{"position":[[27,8]]}}}],["remov",{"_index":50,"t":{"65":{"position":[[0,6]]}}}],["resourc",{"_index":45,"t":{"55":{"position":[[15,9]]},"59":{"position":[[12,8]]}}}],["save",{"_index":31,"t":{"29":{"position":[[3,4]]}}}],["scenario",{"_index":16,"t":{"19":{"position":[[12,8]]}}}],["server",{"_index":28,"t":{"25":{"position":[[35,7]]}}}],["sourc",{"_index":19,"t":{"21":{"position":[[14,7]]}}}],["stack",{"_index":18,"t":{"21":{"position":[[8,5],[34,6]]},"27":{"position":[[26,6]]},"31":{"position":[[9,6]]},"45":{"position":[[0,6]]}}}],["start",{"_index":0,"t":{"2":{"position":[[9,6]]}}}],["step",{"_index":36,"t":{"33":{"position":[[5,5]]}}}],["sync",{"_index":44,"t":{"50":{"position":[[4,4]]},"55":{"position":[[10,4]]},"59":{"position":[[7,4]]},"61":{"position":[[7,4]]},"63":{"position":[[8,4]]},"65":{"position":[[7,4]]}}}],["us",{"_index":46,"t":{"57":{"position":[[7,3]]}}}],["usag",{"_index":9,"t":{"11":{"position":[[7,5]]}}}],["verifi",{"_index":47,"t":{"61":{"position":[[0,6]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":1,"t":"Where To Start?","s":"Help and FAQ","u":"/komodo-import/docs/help/","p":1},{"i":8,"t":"Docker","s":"Overview","u":"/komodo-import/docs/installation/","p":8},{"i":16,"t":"Prerequisites","s":"Quickstart","u":"/komodo-import/docs/quickstart/","p":16},{"i":35,"t":"Key Concepts","s":"Overview","u":"/komodo-import/docs/usage/overview/","p":35},{"i":54,"t":"What is a Sync Resource?","s":"Using Sync Resources","u":"/komodo-import/docs/usage/resourceSync/","p":54}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,1.57]],["t/8",[1,1.57]],["t/16",[2,1.57]],["t/35",[3,1.179,4,1.179]],["t/54",[5,1.179,6,1.179]]],"invertedIndex":[["concept",{"_index":4,"t":{"35":{"position":[[4,8]]}}}],["docker",{"_index":1,"t":{"8":{"position":[[0,6]]}}}],["key",{"_index":3,"t":{"35":{"position":[[0,3]]}}}],["prerequisit",{"_index":2,"t":{"16":{"position":[[0,13]]}}}],["resourc",{"_index":6,"t":{"54":{"position":[[15,9]]}}}],["start",{"_index":0,"t":{"1":{"position":[[9,6]]}}}],["sync",{"_index":5,"t":{"54":{"position":[[10,4]]}}}]],"pipeline":["stemmer"]}},{"documents":[],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[],"invertedIndex":[],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"If you are overwhelmed by the docs or not sure where to begin you should try out the Quickstart guide. It uses step-by-step questions with interactive fields/buttons to help customize Komodo Import for your machine.","s":"Where To Start?","u":"/komodo-import/docs/help/","h":"#where-to-start","p":1},{"i":5,"t":"If the Quickstart guide and Usage docs do not cover what you want to do with Komodo Import or you do not fully understand how to use it please search the repository's Github Discussions and if your question is not answered then open a New Discussion.","s":"Further Help with Komodo Import","u":"/komodo-import/docs/help/","h":"#further-help-with-komodo-import","p":1},{"i":7,"t":"If Komodo Import is not behaving as you expect it to or is outputting errors that break functionality please search Github Issues and open a New Issue if you cannot find a solution to your problem.","s":"Found a Bug or Error?","u":"/komodo-import/docs/help/","h":"#found-a-bug-or-error","p":1},{"i":10,"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: ## Mount the parent directory where all subfolders are compose projects - /home/myUser/homelab:/filesOnServer environment: ## Same as host directory mounted above - HOST_DIR=/home/myUser/homelab ## where stacks are generated from. 'dir' or 'compose' - STACKS_FROM=dir ## Komodo Server name to use for generated Stacks - SERVER_NAME=my-cool-server ## optional #- TZ=America/New_York #- IMAGE_REGISTRY_PROVIDER= #- IMAGE_REGISTRY_ACCOUNT= #- AUTO_UPDATE=false #- POLL_FOR_UPDATE=false #- KOMODO_ENV_NAME= #- COMPOSE_FILE_GLOB= #- ENV_FILE_GLOB= restart: no","s":"Docker","u":"/komodo-import/docs/installation/","h":"#docker","p":8},{"i":12,"t":"tip Use the Quick Start Guide for an interactive setup! 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 its projects directory looks like this: . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ ├── docker-compose.yaml │ └── .git └── uptime-kuma/ └── compose.yaml docker-compose.yml services: komodo-import: image: foxxmd/komodo-import:latest volumes: - /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_DIR=/home/myUser/homelab ## generate stacks from mounted directory subfolders - STACKS_FROM=dir restart: no Console Output Example docker compose up --no-log-prefix INFO : [Init] Debug Mode: NO INFO : [App] Version: 0.1.0 INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer INFO : [App] [Files On Server] Processing Stacks for 2 folders: /filesOnServer/immich /filesOnServer/plex /filesOnServer/uptime-kuma INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml INFO : [App] [Files On Server] Env Glob: **/.env INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob INFO : [App] [Files On Server] [compose] Stack config complete ... INFO : [App] [Files On Server] Built Stack configs for 3 folders 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\" ] ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ INFO : [App] Done! Copy the text between the scissors and create a new Sync Resource in Komodo","s":"Docker Usage Example","u":"/komodo-import/docs/installation/","h":"#docker-usage-example","p":8},{"i":15,"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-cool-server STACKS_FROM=dir MOUNT_DIR=/my/parent/folder node src/index.js","s":"Nodejs","u":"/komodo-import/docs/installation/","h":"#nodejs","p":8},{"i":18,"t":"You have Komodo already setup You have installed Periphery on a machine The Komodo Server name is my-cool-server","s":"Prerequisites","u":"/komodo-import/docs/quickstart/","h":"#prerequisites","p":16},{"i":20,"t":"Follow the directions below, select your options, and fill in all fields to generate a customized Docker Compose file for your specific scenario.","s":"Create Your Scenario","u":"/komodo-import/docs/quickstart/","h":"#create-your-scenario","p":16},{"i":22,"t":"DirectoryCompose Projects info For Directory (STACKS_FROM=dir) Komodo Import will try to generate Stacks from each subfolder inside the directory mounted into the container. info For Compose Projects (STACKS_FROM=compose) Komodo Import will try to generate Stacks from existing projects on your machine that were created with docker compose up","s":"1. What Stack Sources to generate Stacks from?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":24,"t":"Host Directory: For STACKS_FROM=dir this should be the immediate parent directory containing all your project folders. Example . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ ├── docker-compose.yaml │ └── .git └── uptime-kuma/ └── compose.yaml Then Host Directory should be /home/myUser/homelab","s":"2. Where are your existing projects located on your machine?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":26,"t":"Once Komodo Periphery agent was added to this machine you connected it to Komodo as a Server. Specify the name you gave it. Server Name:","s":"3. What is the name of this Komodo Server?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":28,"t":"Choose one or more Outputs: Console Komodo Generated Stacks are always output to docker logs as a Sync Resource. Console Output Example docker compose up --no-log-prefix INFO : [Init] Debug Mode: NO INFO : [App] Version: 0.1.0 INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer INFO : [App] [Files On Server] Processing Stacks for 2 folders: /filesOnServer/immich /filesOnServer/plex /filesOnServer/uptime-kuma INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml INFO : [App] [Files On Server] Env Glob: **/.env INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob INFO : [App] [Files On Server] [compose] Stack config complete ... INFO : [App] [Files On Server] Built Stack configs for 3 folders 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\" ] ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ INFO : [App] Done! Copy the text between the scissors and create a new Sync Resource in Komodo Komodo Import can, additionally, create a Sync Resource with the generated Stacks in Komodo for you. This method only creates the Resource, it does not execute or change your existing Stacks. Create an API Key and Secret, then specify them below. Komodo URL: Komodo API Key: Komodo API Secret: Komodo Example docker compose up --no-log-prefix INFO : [Init] Debug Mode: NO INFO : [App] Version: 0.1.0 INFO : [App] Files On Server Dir ENV: /filesOnServer -> Resolved: /filesOnServer INFO : [App] [Files On Server] Processing Stacks for 2 folders: /filesOnServer/immich /filesOnServer/plex /filesOnServer/uptime-kuma INFO : [App] [Files On Server] Compose File Glob: **/{compose,docker-compose}*.y?(a)ml INFO : [App] [Files On Server] Env Glob: **/.env INFO : [App] [Files On Server] [compose] Found Stack 'compose' at dir /filesOnServer/compose.yaml WARN : [App] [Files On Server] [compose] Did not find any files patterns matching compose glob INFO : [App] [Files On Server] [compose] Stack config complete ... INFO : [App] [Files On Server] Built Stack configs for 3 folders INFO : [App] Copy the text between the scissors to use as the *Resource File* contents within your Resource Sync ... INFO : [App] [Sync API] Using 'komodo-import' as Sync Name VERBOSE: [App] [Sync API] KOMODO_URL: http://192.168.0.101:9120 | Normalized: http://192.168.0.101:9120/ INFO : [App] [Sync API] Resource Sync created. INFO : [App] [Sync API] Resource Sync URL: http://192.168.0.101:9120/resource-syncs/689a41a04ed1b642f3053f57 The Sync Resource is automatically created for you (but not executed!) <img style=width:100%;height:auto;max-width:100%;margin-bottom:-4px;position:absolute;top:0;left:0 src=/komodo-import/assets/ideal-img/sync-resource-file.d733ef4.640.png srcset=\"/komodo-import/assets/ideal-img/sync-resource-file.d733ef4.640.png 640w,/komodo-import/assets/ideal-img/sync-resource-file.cdf1733.739.png 739w\" width=640 height=793>","s":"4. Where should generated Stacks be created?","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":30,"t":"The file below has been customized for your specific machine! Save this somewhere on the machine: compose.yaml services: komodo-import: image: foxxmd/komodo-import:latest restart: no volumes: - ./home/myUser/homelab:/filesOnServer environment:","s":"5. Save your customized Compose file","u":"/komodo-import/docs/quickstart/","h":"","p":16},{"i":32,"t":"Run the customized compose.yaml from above with docker compose to generate Komodo Stacks from existing projects on your machine! # in the same directory as compose.yaml... docker compose up --no-log-prefix How the Stacks will be generated is determined by what you chose in Step 4. Refer to the expandable Examples in that step.","s":"Generate Stacks","u":"/komodo-import/docs/quickstart/","h":"#generate-stacks","p":16},{"i":34,"t":"There are many more options (environmental variables) that can be used to customize how Stacks are generated, all found in Usage docs. Some customizations that might interest you: Common Stack options Set image registry provider/account Set defaults for polling for new images (POLL_FOR_UPDATE) and auto updating (AUTO_UPDATE) Set what compose files (COMPOSE_FILE_GLOB) and .env files (ENV_FILE_GLOB) to include, per Stack For Directory generated stacks... Include (FOLDER_GLOB) or exclude (FOLDER_IGNORE_GLOB) folders based on patterns Configure Komodo Import to use the Komodo API for better integration Uses existing Linked Repos for Git Based Stacks Automatically configures Git Based Stacks to use existing, private Git Provider if git URL domains match Additionally, review the Sync Resource guide to learn how to use them for creating Stacks in Komodo.","s":"Next Steps","u":"/komodo-import/docs/quickstart/","h":"#next-steps","p":16},{"i":37,"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":35},{"i":39,"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":35},{"i":41,"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":35},{"i":43,"t":"These are where and how KI puts the Resources created from Inputs: Log to output (docker logs, node console) Export to Komodo API (create Resource Sync, etc.)","s":"Outputs","u":"/komodo-import/docs/usage/overview/","h":"#outputs","p":35},{"i":46,"t":"KI can create Komodo Stack Resources from existing resources on your machine. It will automatically detect what type of Stack to create based on the presence of git folders/data: Komodo Files On Server Stack => compose project/folder without a .git folder Komodo Git Repo Stacks => compose project/folder with a .git folder or with a parent folder containing a .git folder Stack Sources​ KI can generate Stacks from existing projects on your machine using one of two methods: Directory Compose Projects For Directory (STACKS_FROM=dir), Komodo Import will try to generate Stacks from each immediate subfolder inside the directory mounted into the container. Example . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ ├── docker-compose.yaml │ └── .git └── uptime-kuma/ └── compose.yaml Using STACKS_FROM=dir with host directory /home/myUser/homelab would produce Stacks for immich plex and uptime-kuma. For Compose Projects (STACKS_FROM=compose), Komodo Import will try to generate Stacks from existing projects on your machine that were created with docker compose up. Example docker compose ls reveals these projects: NAME STATUS CONFIG FILES immich running /home/myUser/homelab/immich/compose.yaml plex running /home/myUser/homelab/plex/docker-compose.yaml project1 running /home/myUser/localDev/myProjects/project1/compose.yaml . └── /home/myUser ├── homeLab │ ├── immich │ │ └── compose.yaml │ ├── plex │ │ ├── docker-compose.yaml │ │ └── .git │ └── owncloud │ └── compose.yaml └── localDev └── myProjects └── project1 └── compose.yaml Using STACKS_FROM=dir with host directory /home/myUser would produce Stacks for immich plex and project1. It would not generate a Stack for owncloud since it was not created with docker compose up yet. To use Compose Projects you must give Komodo Import access to Docker. This can be done by mounting docker.sock into the container or connecting it to a proxy service like docker-socket-proxy. Using socket-proxy (recommended) Add a socket-proxy service to your compose file and set the env DOCKER_HOST so Komodo Import knows how to connect to Docker: compose.yaml services: komodo-import: # ... environment: # ... # add to existing environment - DOCKER_HOST=tcp://socket-proxy:2375 socket-proxy: image: lscr.io/linuxserver/socket-proxy:latest environment: - CONTAINERS=1 - INFO=1 - POST=0 - PING=1 - VERSION=1 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro read_only: true tmpfs: - /run Mounting docker.sock Mount /var/run/docker.sock as a volume into the container: compose.yaml services: komodo-import: # ... volumes: # ... # add to existing volumes - /var/run/docker.sock:/var/run/docker.sock:ro Host Directory​ The directory on the Host machine that should be mounted into the Komodo Import container depends on which Stack Source you are using. The host directory should be mounted to /filesOnServer in the container. The host directory should also be set for HOST_DIR env. Directory Compose Projects For Directory (STACKS_FROM=dir) use the parent folder containing all of the immediate subfolders that should be generated as Stacks. Example . └── /home/myUser/homelab/ ├── immich/ │ └── compose.yaml ├── plex/ │ ├── docker-compose.yaml │ └── .git └── uptime-kuma/ └── compose.yaml Directory should be home/myUser/homelab: compose.yaml services: komodo-import: # ... volumes: - /home/myUser/homelab:/filesOnServer environment: - HOST_DIR=/home/myUser/homelab For Compose Projects (STACKS_FROM=compose) use the closest parent folder that contains all discovered compose project Config Files (docker compose ls). Example . └── /home/myUser ├── homeLab │ ├── immich │ │ └── compose.yaml │ ├── plex │ │ ├── docker-compose.yaml │ │ └── .git │ └── owncloud │ └── compose.yaml └── localDev └── myProjects └── project1 └── compose.yaml Directory should be /home/myUser because projects are found under both localDev and homeLab: services: komodo-import: # ... volumes: - /home/myUser:/filesOnServer environment: - HOST_DIR=/home/myUser Stack Configuration​ The configuration and behaviors below are applicable to all Stacks: Environmental Variables ENV Required Default Description SERVER_NAME ☑️ The name of the Komodo Server where a Stack is located STACKS_FROM ☑️ dir What Stack Sources to generate Stacks from? dir or compose HOST_DIR ☑️ The parent directory on the host that mounted into the Komodo Import container WRITE_ENV - true Write the contents of found .env files to Komodo Environment. Likely want this as true. 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 GLOB_DOT - false Allow glob patterns, outside of ENV pattern, to find files/folders that start with . 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? Compose File Detection 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 for non-compose project stack sources Will prioritize compose.yaml over docker-compose.yaml Will choose the file with the shortest path EX Prioritizes ./compose.yaml over ./aFolder/compose.yaml Komodo Import will log which files it detects and indicate which ones it will use for each project. note When using Compose Projects Stack Source compose files are automatically parsed from the running projects. .env File Detection 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 and WRITE_ENV=false then a Stack is configured 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. There is additional configuration available depending on the Stack Source: Directory Compose Projects The _GLOB patterns are for matching folder names within the parent folder, not full directory paths The default pattern matches all folder names except those starting with a . ENV Required Default Description 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 The _GLOB patterns are for matching full directory paths, not just a single folder name The default pattern matches all directories except those that have any folder starting with a . Komodo Import will always ignore projects created by Komodo itself (projects found in /etc/komodo or /home/USER/komodo) ENV Required Default Description COMPOSE_FILE_GLOB - **/** The glob pattern to use for matching a project's full directory on the host COMPOSE_FILE_IGNORE_GLOB - The glob pattern to use to ignore a project's full directory on the host Git Repo Stacks​ If a parsed folder (or parent of it) contains a .git folder and it has a valid tracked branch + remote, then it will generate a Git Repo Stack. How Git Repository Parsing Works A folder is only built as a Git Repo stack if... It contains a valid .git folder or a parent folder contains a .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 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 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 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) Monorepos​ Komodo Import also handles monorepos IE one git repository with many folders containing projects. The only requirement to ensure this works is that the git repo \"root\" directory must be mounted into Komodo Import. Directory Compose Projects For Directory Stack Source use the root git repository directory as the host directory. Example /home/myUser/homelab ├── .git ├── immich │ └── compose.yaml ├── plex │ └── docker-compose.yaml └── uptime-kuma └── compose.yaml Use /home/myUser/homelab as the host directory because it contains .git folder. If the directory containing your projects is not the root directory then use the ENV SCAN_DIR to set the path to use for projects relative to the host directory: Example /home/myUser/homelab ├── .git ├── myStacks <---- parent folder containing projects │ ├── immich │ │ └── compose.yaml │ ├── plex │ │ └── docker-compose.yaml │ └── uptime-kuma │ └── compose.yaml └── somethingElse Use /home/myUser/homelab as the host directory because it contains .git folder Use SCAN_DIR=myStacks -- the folder Komodo Import will parse projects from, relative to the host directory /home/myUser/homelab Komodo Import will automatically determine if a project is in a monorepo by scanning all parent directories for .git folder. Just make sure the mounted host directory contains the monorepo folder at some level.","s":"Stacks","u":"/komodo-import/docs/usage/overview/","h":"#stacks","p":35},{"i":49,"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":35},{"i":51,"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":35},{"i":53,"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":35},{"i":56,"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":54},{"i":58,"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 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":54},{"i":60,"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":54},{"i":62,"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":54},{"i":64,"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":54},{"i":66,"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":54}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,4.472,1,3.207,2,3.709,3,4.472,4,3.207,5,3.207,6,3.709,7,2.832,8,0.805,9,4.42,10,3.709,11,3.207,12,4.472,13,4.472,14,2.532,15,0.243,16,0.805,17,1.717]],["t/5",[1,3.168,6,3.664,7,2.797,8,0.795,10,3.664,15,0.24,16,0.795,18,3.168,19,4.417,20,2.797,21,4.417,22,4.417,23,3.664,24,3.664,25,4.417,26,3.168,27,5.289,28,4.417,29,3.168,30,2.044]],["t/7",[15,0.244,16,0.81,23,3.733,24,3.733,26,3.227,29,3.227,30,2.082,31,4.5,32,4.5,33,1.727,34,4.5,35,4.5,36,4.5,37,5.348,38,2.548,39,4.5,40,4.5]],["t/10",[8,0.759,15,0.229,16,0.559,26,2.226,41,3.104,42,3.104,43,2.448,44,1.966,45,3.104,46,3.104,47,3.104,48,2.575,49,3.104,50,3.104,51,2.575,52,3.104,53,3.104,54,3.027,55,3.501,56,3.104,57,3.439,58,3.104,59,1.307,60,3.501,61,1.758,62,1.966,63,2.575,64,3.104,65,1.437,66,1.758,67,2.226,68,1.966,69,1.942,70,2.673,71,2.226,72,1.62,73,1.966,74,1.351,75,1.307,76,2.226,77,1.966,78,2.575,79,1.966,80,2.226,81,2.226,82,1.479,83,1.233,84,1.966,85,1.585,86,1.479,87,0.994,88,2.226,89,1.585,90,1.758,91,2.575,92,2.575,93,2.575,94,3.104,95,3.104,96,2.575,97,2.226,98,2.226,99,2.226]],["t/12",[7,0.983,8,0.719,11,1.114,15,0.217,16,0.279,17,1.215,30,0.719,33,0.596,38,0.879,43,0.793,44,0.983,57,1.114,59,1.058,60,1.288,61,0.879,66,0.879,67,1.114,68,0.983,69,2.025,70,0.983,72,1.215,73,0.983,74,1.441,75,0.654,77,0.983,79,0.983,81,1.114,82,1.744,83,0.734,84,1.592,85,0.793,86,1.957,87,1.279,88,1.114,89,2.041,91,1.288,99,1.114,100,1.114,101,1.553,102,1.114,103,2.085,104,1.288,105,1.114,106,1.114,107,1.114,108,0.983,109,1.553,110,1.288,111,1.114,112,1.592,113,1.684,114,1.592,115,1.013,116,0.793,117,1.592,118,2.304,119,1.553,120,1.553,121,0.879,122,1.592,123,0.879,124,0.719,125,0.719,126,3.223,127,1.288,128,1.288,129,1.114,130,3.65,131,1.114,132,1.288,133,1.784,134,1.684,135,1.802,136,1.288,137,1.288,138,1.288,139,1.423,140,1.288,141,1.288,142,1.288,143,2.271,144,1.114,145,1.114,146,1.288,147,1.288,148,0.983,149,0.793,150,1.592,151,1.288,152,1.288,153,1.423,154,1.802,155,1.802,156,1.802,157,0.844,158,0.719,159,0.983,160,0.67,161,2.271,162,2.271,163,1.288,164,2.626,165,2.005,166,2.005,167,2.709,168,2.005,169,1.288,170,1.288,171,1.288,172,1.114,173,1.288,174,1.114,175,1.288,176,0.879,177,0.414]],["t/15",[8,0.7,15,0.211,16,0.7,18,2.791,54,2.791,59,1.639,69,1.714,72,1.494,85,1.987,86,1.364,88,2.791,89,1.987,90,2.204,102,2.791,106,3.51,116,1.987,121,3.032,131,2.791,178,4.894,179,3.229,180,3.229,181,3.892,182,3.892,183,3.892,184,3.892,185,2.204,186,3.892,187,4.06,188,5.617,189,3.892,190,3.892,191,3.892,192,3.892]],["t/18",[15,0.298,17,1.806,86,1.924,87,1.506,89,2.402,103,3.903,105,3.375,106,3.375,107,3.375]],["t/20",[14,2.614,74,1.477,83,1.349,90,2.614,104,3.828,115,1.477,133,1.617,193,3.828,194,3.828,195,2.923,196,4.615,197,4.615,198,3.828,199,3.31]],["t/22",[4,3.646,15,0.276,16,0.915,17,1.588,70,2.621,72,1.952,73,2.621,74,1.627,75,2.317,82,1.782,83,1.486,85,2.113,115,1.325,124,1.915,126,3.22,177,1.103,200,4.138,201,2.968,202,3.433,203,2.113,204,3.433,205,1.45]],["t/24",[59,1.713,69,2.006,71,2.917,72,2.096,75,1.713,79,3.186,85,2.077,111,3.608,112,2.576,113,2.527,114,2.576,115,1.302,116,2.077,117,2.576,118,2.576,139,2.304,203,2.077,206,3.374]],["t/26",[15,0.295,17,1.772,86,1.902,87,1.738,107,3.31,207,4.615,208,4.615,209,4.615,210,3.31,211,3.828,212,4.615]],["t/28",[8,0.474,15,0.238,16,0.365,30,0.555,33,1.012,38,1.149,44,1.285,59,0.854,61,1.149,69,1.999,74,1.597,82,1.748,83,0.593,84,1.965,86,1.918,87,0.993,89,1.346,112,0.759,113,0.555,114,0.759,115,0.844,117,0.759,118,1.965,122,1.285,123,1.149,124,0.939,125,1.22,126,3.515,127,1.683,128,1.683,129,1.455,130,4.006,131,1.455,132,1.683,133,1.918,134,1.857,135,2.225,136,1.683,137,1.683,138,1.683,139,1.757,140,1.683,141,1.683,142,1.683,143,2.702,144,1.455,145,1.455,146,1.683,147,1.683,148,1.285,149,1.036,150,1.965,151,1.683,152,1.683,153,1.493,154,1.891,155,1.891,156,1.891,157,1.33,158,0.939,159,1.285,160,1.305,161,1.891,162,1.891,163,0.994,164,2.187,165,1.67,166,1.67,167,2.386,168,1.67,169,0.994,170,0.994,171,0.994,172,0.86,173,0.994,174,0.86,175,0.994,176,0.679,177,1.004,195,0.759,205,0.42,211,0.994,213,0.86,214,0.86,215,0.759,216,0.86,217,0.86,218,0.994,219,1.149,220,0.86,221,1.689,222,1.285,223,1.683,224,1.285,225,1.199,226,0.994,227,2.029,228,1.199,229,1.199,230,1.199,231,0.86,232,1.199,233,1.199,234,1.199,235,1.199,236,1.199,237,1.199,238,2.637,239,2.637,240,2.029,241,1.199,242,1.199,243,1.199,244,1.199,245,1.199,246,1.199]],["t/30",[14,2.532,15,0.243,16,0.805,17,2.045,43,2.283,57,3.207,66,2.532,67,3.207,68,2.832,76,3.207,77,2.832,99,3.207,113,2.069,133,1.567,179,3.709,195,2.832,199,3.207,247,3.709]],["t/32",[9,4.232,14,2.357,15,0.226,17,1.598,59,1.752,69,1.332,72,1.598,74,1.633,75,1.752,78,3.452,80,2.985,82,1.788,83,1.491,113,2.361,115,1.633,121,2.357,122,2.636,124,1.926,125,1.926,205,1.459,248,3.452,249,4.162,250,4.162,251,4.162,252,4.162]],["t/34",[1,2.236,7,1.974,8,0.97,14,2.397,15,0.261,16,0.561,18,2.236,30,1.443,43,2.161,61,1.766,62,1.974,65,1.959,72,1.197,74,0.998,82,1.993,83,1.237,90,2.397,97,2.236,98,2.236,116,2.632,133,1.483,134,1.443,139,1.766,148,1.974,149,1.592,157,0.831,160,0.831,166,1.974,168,1.974,177,0.831,185,2.722,205,1.483,215,1.974,217,2.236,221,1.312,224,1.974,231,2.236,253,2.586,254,1.592,255,1.592,256,3.118,257,3.118,258,2.236,259,3.118,260,1.766,261,2.586,262,2.236,263,1.974,264,3.511,265,3.118,266,2.586,267,3.118,268,2.586,269,3.987,270,3.118,271,3.118,272,2.236,273,2.586,274,2.586,275,2.586,276,3.118,277,3.118]],["t/37",[8,1.038,15,0.25,16,0.83,33,1.772,65,2.136,254,2.356,255,2.356,278,4.615,279,4.615,280,2.136,281,3.828,282,3.31]],["t/39",[15,0.244,17,1.727,74,1.44,75,1.894,83,1.315,113,2.082,115,1.827,157,1.426,203,2.297,205,1.577,280,2.082,283,4.5,284,4.5,285,3.733,286,4.5]],["t/41",[8,0.7,11,2.791,15,0.305,33,1.494,43,1.987,72,1.494,86,1.364,87,1.246,121,2.204,125,1.801,133,1.364,157,1.427,185,2.772,198,3.229,205,1.364,221,1.639,222,2.465,254,1.987,255,1.987,258,2.791,260,2.204,262,2.791,263,2.465,280,2.477,282,3.839,287,3.892,288,3.557,289,2.465,290,2.791,291,3.229]],["t/43",[15,0.244,33,1.727,115,1.44,123,2.548,125,2.475,157,1.426,160,1.199,177,1.426,187,3.733,221,1.894,280,2.082,281,3.733,288,2.85,291,3.733,292,4.5]],["t/46",[2,0.5,4,0.792,5,0.432,8,0.883,15,0.269,16,0.779,17,0.726,20,0.382,38,1.071,43,0.966,44,0.382,48,0.5,51,0.5,54,1.356,59,1.147,61,1.405,62,2.365,65,1.021,66,1.405,68,1.571,69,1.966,70,1.983,71,2.246,72,1.958,73,0.699,74,1.409,75,1.985,76,0.432,77,1.861,79,2.51,80,0.432,81,0.432,82,1.787,83,0.796,84,0.699,85,0.966,86,0.663,87,1.002,92,0.5,93,0.5,96,0.916,97,1.096,98,0.792,102,1.096,108,0.382,110,0.916,111,2.371,112,2.193,113,2.291,114,2.193,115,1.301,116,2.621,117,1.725,118,1.861,121,1.405,124,0.511,125,0.511,133,1.568,134,2.002,135,0.432,139,2.826,143,1.953,144,0.432,145,0.432,148,2.441,149,1.39,150,1.198,157,0.407,158,0.279,159,0.382,165,1.198,166,0.382,167,0.382,168,0.382,172,0.432,174,0.792,176,0.341,177,0.783,180,0.916,185,0.865,195,0.382,201,1.096,202,0.5,203,2.168,204,0.916,205,0.869,206,0.916,210,0.792,213,0.432,214,1.356,216,0.432,217,0.432,218,0.5,221,0.254,224,0.382,231,1.356,248,0.5,253,0.5,254,0.308,255,0.308,258,0.792,260,1.542,261,0.5,262,0.432,263,0.382,266,0.5,268,0.5,269,0.5,272,0.432,273,0.5,274,1.569,275,0.5,280,0.511,289,1.198,290,0.432,293,2.481,294,0.602,295,0.602,296,0.602,297,1.104,298,0.5,299,2.724,300,1.104,301,1.104,302,1.104,303,0.602,304,0.602,305,0.602,306,0.602,307,1.891,308,0.602,309,1.891,310,1.528,311,1.528,312,1.528,313,1.104,314,0.432,315,0.602,316,1.104,317,2.206,318,1.891,319,0.602,320,1.198,321,0.602,322,0.602,323,0.602,324,0.602,325,0.602,326,0.602,327,0.602,328,0.602,329,0.602,330,0.602,331,0.602,332,1.104,333,0.602,334,0.602,335,0.602,336,1.104,337,1.104,338,0.602,339,0.602,340,0.5,341,0.602,342,0.602,343,0.602,344,0.602,345,1.096,346,0.602,347,0.602,348,0.602,349,0.602,350,1.096,351,2.206,352,1.104,353,0.602,354,0.602,355,0.602,356,0.602,357,1.104,358,0.792,359,0.602,360,0.602,361,1.104,362,0.602,363,0.602,364,1.528,365,0.602,366,1.104,367,1.104,368,0.602,369,0.602,370,0.602,371,1.104,372,0.5,373,2.206,374,1.268,375,1.891,376,0.602,377,0.5,378,1.104,379,1.104,380,1.891,381,1.104,382,1.104,383,1.104,384,1.528,385,0.602,386,0.602,387,0.602,388,0.602,389,1.104,390,0.602,391,1.268,392,1.104,393,1.528,394,2.206,395,0.432,396,0.602,397,0.602,398,0.602,399,0.602,400,0.602,401,0.602,402,0.602,403,0.602,404,0.602,405,0.5,406,1.891,407,0.602,408,0.602,409,1.528,410,0.602,411,1.104,412,0.602,413,0.602,414,0.602,415,0.602,416,0.432]],["t/49",[8,0.83,33,1.77,66,1.631,69,2.023,74,1.283,82,1.01,86,1.405,87,1.283,89,1.471,100,2.066,115,1.283,122,2.92,123,2.27,124,1.333,125,2.134,126,2.539,130,2.875,133,1.01,134,1.333,153,1.631,154,2.066,155,2.066,156,2.066,157,1.329,158,1.333,159,1.824,160,1.229,161,2.066,162,2.066,176,1.631,177,0.768,216,2.066,280,1.333,298,2.39,416,2.066,417,2.881,418,2.27,419,2.881,420,2.881,421,2.881,422,2.881,423,2.881,424,2.881,425,4.009,426,4.009,427,4.009,428,4.009,429,4.009,430,2.881,431,2.39,432,2.881,433,2.881,434,2.881]],["t/51",[8,0.6,15,0.299,16,0.895,33,1.28,65,1.543,69,1.067,87,1.067,105,2.391,108,2.111,134,1.543,157,1.325,158,1.543,160,1.542,165,2.111,167,2.111,177,1.47,193,2.766,205,1.168,215,2.111,219,2.508,221,2.23,222,2.111,254,2.261,255,2.261,260,1.888,289,2.111,290,2.391,320,2.111,345,2.391,358,2.391,372,2.766,405,2.766,435,2.766,436,3.334,437,2.391,438,3.334,439,3.334,440,2.766,441,3.334,442,3.334,443,3.334,444,3.334,445,3.334,446,3.334,447,3.334,448,4.428,449,3.334,450,3.334,451,3.334]],["t/53",[8,0.744,15,0.316,16,0.744,29,2.161,30,1.394,59,1.741,62,1.908,65,1.914,69,1.627,82,1.056,86,1.056,87,0.965,90,1.706,115,0.965,134,1.394,153,1.706,157,0.803,160,0.803,177,1.102,185,1.706,199,2.161,205,1.056,221,2.416,222,3.484,223,3.917,224,2.99,226,2.5,254,2.111,255,2.111,260,1.706,264,2.5,272,2.161,288,1.908,289,2.619,314,2.161,320,1.908,345,2.161,350,2.161,391,2.5,435,2.5,440,2.5,452,2.5,453,3.013,454,3.013,455,3.013,456,3.013,457,3.013,458,3.013,459,2.5,460,3.013,461,2.161,462,3.013,463,2.5,464,3.013,465,3.013,466,3.013,467,3.013,468,3.013,469,3.013,470,3.013,471,3.013,472,3.013]],["t/56",[5,2.934,8,0.736,15,0.31,83,1.196,108,2.591,149,2.089,157,1.524,158,1.893,160,1.594,203,2.089,214,2.934,215,2.591,219,2.317,350,2.934,418,3.101,473,4.091,474,4.091,475,4.091,476,4.091,477,4.091,478,3.394]],["t/58",[8,0.852,15,0.299,16,0.94,33,1.817,38,2.091,74,1.182,75,1.555,83,1.079,100,3.395,123,2.091,153,2.091,157,1.554,160,1.518,177,1.469,203,1.885,205,1.294,210,2.648,219,2.091,220,2.648,221,1.555,280,1.709,288,2.339,314,2.648,418,2.681,431,3.063,437,2.648,478,3.063,479,3.693,480,3.693,481,3.693,482,3.693,483,3.693]],["t/60",[15,0.292,16,0.708,20,2.492,30,1.821,55,3.264,69,1.805,87,1.259,129,2.822,133,1.379,157,1.434,160,1.503,177,1.049,213,2.822,247,3.264,282,2.822,320,2.492,358,2.822,395,2.822,418,2.228,459,3.264,484,3.935,485,3.935,486,3.935,487,3.935,488,4.928,489,4.087,490,3.935,491,3.935,492,3.264]],["t/62",[15,0.212,63,3.246,82,1.721,83,1.435,133,1.371,149,1.998,150,2.478,158,1.811,160,1.043,177,1.043,263,3.399,374,3.246,377,3.246,395,2.807,416,2.807,418,2.216,437,2.807,452,3.246,461,2.807,463,3.246,492,3.246,493,4.073,494,4.073,495,3.913,496,3.913,497,3.913,498,3.246,499,3.913,500,4.911,501,4.452,502,3.913,503,3.913,504,3.913]],["t/64",[8,0.815,160,1.207,201,3.247,219,3.04,220,3.247,285,3.756,340,3.756,461,3.247,494,3.756,498,4.453,501,4.453,505,4.528,506,4.528,507,4.528]],["t/66",[8,0.78,15,0.284,16,0.78,20,2.747,65,2.007,116,2.214,124,2.007,160,1.497,176,2.456,177,1.395,194,3.598,489,3.598,493,3.598,508,4.337,509,4.337,510,4.337,511,5.232,512,4.337,513,4.337]]],"invertedIndex":[["",{"_index":69,"t":{"10":{"position":[[407,2],[530,2],[602,2],[675,2],[754,2],[766,1],[789,1],[817,1],[844,1],[865,1],[890,1],[910,1],[932,1]]},"12":{"position":[[290,1],[292,3],[318,3],[330,1],[332,3],[349,3],[359,1],[361,3],[385,1],[387,3],[396,3],[413,3],[594,2],[673,2],[770,2],[915,1],[944,1],[972,1],[1021,1],[1053,1],[1186,1],[1273,1],[1322,1],[1420,1],[1515,1],[1573,3],[1582,1],[1647,1],[1755,2],[1758,2],[1761,2],[1764,2],[1767,2],[1770,2],[1773,2],[1776,2],[1779,2],[1782,2],[1785,2],[1788,2],[1806,1],[1839,1],[1872,1],[1918,1],[1937,1],[1962,1],[1981,1],[1983,1],[2014,1],[2031,1],[2062,1],[2095,1],[2139,1],[2158,1],[2183,1],[2206,1],[2244,1],[2277,1],[2328,1],[2347,1],[2372,1],[2394,1],[2430,1],[2432,1],[2441,1],[2443,2],[2446,2],[2449,2],[2452,2],[2455,2],[2458,2],[2461,2],[2464,2],[2467,2],[2470,2],[2473,2],[2476,2],[2484,1]]},"15":{"position":[[130,1],[157,1],[230,2]]},"24":{"position":[[127,1],[129,3],[155,3],[167,1],[169,3],[186,3],[196,1],[198,3],[222,1],[224,3],[233,3],[250,3]]},"28":{"position":[[175,1],[204,1],[232,1],[281,1],[313,1],[446,1],[533,1],[582,1],[680,1],[775,1],[833,3],[842,1],[907,1],[1015,2],[1018,2],[1021,2],[1024,2],[1027,2],[1030,2],[1033,2],[1036,2],[1039,2],[1042,2],[1045,2],[1048,2],[1066,1],[1099,1],[1132,1],[1178,1],[1197,1],[1222,1],[1241,1],[1243,1],[1274,1],[1291,1],[1322,1],[1355,1],[1399,1],[1418,1],[1443,1],[1466,1],[1504,1],[1537,1],[1588,1],[1607,1],[1632,1],[1654,1],[1690,1],[1692,1],[1701,1],[1703,2],[1706,2],[1709,2],[1712,2],[1715,2],[1718,2],[1721,2],[1724,2],[1727,2],[1730,2],[1733,2],[1736,2],[1744,1],[2182,1],[2211,1],[2239,1],[2288,1],[2320,1],[2453,1],[2540,1],[2589,1],[2687,1],[2782,1],[2840,3],[2849,1],[2914,1],[3022,3],[3031,1],[3149,1],[3195,1],[3242,1]]},"32":{"position":[[129,1]]},"46":{"position":[[208,2],[279,2],[665,1],[667,3],[693,3],[705,1],[707,3],[724,3],[734,1],[736,3],[760,1],[762,3],[771,3],[788,3],[1351,1],[1353,3],[1370,3],[1382,1],[1384,3],[1395,1],[1397,1],[1399,3],[1416,1],[1418,3],[1427,1],[1429,1],[1431,3],[1455,1],[1457,1],[1459,3],[1468,1],[1470,3],[1483,1],[1485,3],[1502,3],[1515,3],[1530,3],[1543,3],[2150,1],[2152,3],[2169,1],[2171,3],[2175,1],[2575,1],[2577,3],[2590,1],[2592,3],[2596,1],[3117,1],[3119,3],[3145,3],[3157,1],[3159,3],[3176,3],[3186,1],[3188,3],[3212,1],[3214,3],[3223,3],[3240,3],[3336,1],[3338,3],[3594,1],[3596,3],[3613,3],[3625,1],[3627,3],[3638,1],[3640,1],[3642,3],[3659,1],[3661,3],[3670,1],[3672,1],[3674,3],[3698,1],[3700,1],[3702,3],[3711,1],[3713,3],[3726,1],[3728,3],[3745,3],[3758,3],[3773,3],[3786,3],[3921,1],[3923,3],[4161,2],[4231,2],[4306,2],[4831,1],[6489,1],[6538,1],[6923,1],[7098,5],[7391,1],[7959,3],[7970,1],[7972,3],[7981,1],[7983,3],[8000,3],[8009,1],[8011,3],[8020,1],[8022,3],[8046,3],[8062,3],[9031,3],[9040,3],[9051,1],[9053,3],[9070,3],[9079,1],[9081,3],[9105,3],[9121,3],[9409,3],[9418,3],[9431,1],[9471,1],[9473,3],[9484,1],[9486,1],[9488,3],[9505,1],[9507,3],[9516,1],[9518,1],[9520,3],[9544,1],[9546,3],[9562,1],[9564,3],[9581,3]]},"49":{"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]]},"51":{"position":[[567,2]]},"53":{"position":[[282,1],[554,2],[583,2],[612,2]]},"60":{"position":[[45,1],[145,1],[158,2],[196,2]]}}}],["0.1.0",{"_index":132,"t":{"12":{"position":[[961,5]]},"28":{"position":[[221,5],[2228,5]]}}}],["0400",{"_index":429,"t":{"49":{"position":[[187,5],[523,5]]}}}],["08",{"_index":426,"t":{"49":{"position":[[167,2],[503,2]]}}}],["11",{"_index":427,"t":{"49":{"position":[[170,2],[506,2]]}}}],["14:06:19.119",{"_index":428,"t":{"49":{"position":[[173,12],[509,12]]}}}],["2",{"_index":138,"t":{"12":{"position":[[1101,1]]},"28":{"position":[[361,1],[2368,1]]}}}],["2025",{"_index":425,"t":{"49":{"position":[[161,5],[497,5]]}}}],["3",{"_index":152,"t":{"12":{"position":[[1632,1]]},"28":{"position":[[892,1],[2899,1]]}}}],["4",{"_index":250,"t":{"32":{"position":[[279,2]]}}}],["4px;position:absolute;top:0;left:0",{"_index":236,"t":{"28":{"position":[[3481,34]]}}}],["640w,/komodo",{"_index":242,"t":{"28":{"position":[[3662,12]]}}}],["739w",{"_index":244,"t":{"28":{"position":[[3734,5]]}}}],["_glob",{"_index":379,"t":{"46":{"position":[[6319,5],[6745,5]]}}}],["abov",{"_index":80,"t":{"10":{"position":[[564,5]]},"32":{"position":[[37,5]]},"46":{"position":[[7708,5]]}}}],["access",{"_index":315,"t":{"46":{"position":[[1814,6]]}}}],["account",{"_index":359,"t":{"46":{"position":[[5107,7]]}}}],["action",{"_index":501,"t":{"62":{"position":[[165,7],[301,8],[333,7]]},"64":{"position":[[49,7],[141,7]]}}}],["activ",{"_index":446,"t":{"51":{"position":[[592,8]]}}}],["ad",{"_index":209,"t":{"26":{"position":[[32,5]]}}}],["add",{"_index":320,"t":{"46":{"position":[[1987,3],[2177,3],[2598,3],[5824,4]]},"51":{"position":[[442,3]]},"53":{"position":[[412,3]]},"60":{"position":[[288,3]]}}}],["addit",{"_index":352,"t":{"46":{"position":[[4694,10],[6222,10]]}}}],["addition",{"_index":217,"t":{"28":{"position":[[1853,13]]},"34":{"position":[[759,13]]},"46":{"position":[[8362,13]]}}}],["additional_env_fil",{"_index":175,"t":{"12":{"position":[[2409,20]]},"28":{"position":[[1669,20]]}}}],["admin",{"_index":441,"t":{"51":{"position":[[347,5]]}}}],["advantag",{"_index":453,"t":{"53":{"position":[[23,9]]}}}],["afolder/compose.yaml",{"_index":370,"t":{"46":{"position":[[5553,22]]}}}],["agent",{"_index":208,"t":{"26":{"position":[[22,5]]}}}],["allow",{"_index":354,"t":{"46":{"position":[[4748,5]]}}}],["along",{"_index":404,"t":{"46":{"position":[[8589,5]]}}}],["alreadi",{"_index":105,"t":{"12":{"position":[[94,7]]},"18":{"position":[[16,7]]},"51":{"position":[[659,7]]}}}],["altern",{"_index":506,"t":{"64":{"position":[[72,14]]}}}],["alway",{"_index":216,"t":{"28":{"position":[[64,6]]},"46":{"position":[[6944,6]]},"49":{"position":[[8,6]]}}}],["anotheruser/immich",{"_index":403,"t":{"46":{"position":[[8245,18]]}}}],["answer",{"_index":28,"t":{"5":{"position":[[214,8]]}}}],["api",{"_index":221,"t":{"28":{"position":[[2036,3],[2100,3],[2116,3],[3045,4],[3106,4],[3209,4],[3256,4]]},"34":{"position":[[579,3]]},"41":{"position":[[254,4]]},"43":{"position":[[126,3]]},"46":{"position":[[8386,3]]},"51":{"position":[[74,4],[277,3],[328,3],[601,3]]},"53":{"position":[[170,3],[200,4],[205,3],[302,3],[393,3],[481,4],[593,3],[622,3]]},"58":{"position":[[423,3]]}}}],["api_key",{"_index":464,"t":{"53":{"position":[[575,7]]}}}],["api_secret",{"_index":465,"t":{"53":{"position":[[601,10]]}}}],["app",{"_index":130,"t":{"12":{"position":[[946,5],[974,5],[1055,5],[1188,5],[1275,5],[1324,5],[1422,5],[1517,5],[1584,5],[1649,5],[2486,5]]},"28":{"position":[[206,5],[234,5],[315,5],[448,5],[535,5],[584,5],[682,5],[777,5],[844,5],[909,5],[1746,5],[2213,5],[2241,5],[2322,5],[2455,5],[2542,5],[2591,5],[2689,5],[2784,5],[2851,5],[2916,5],[3033,5],[3094,5],[3197,5],[3244,5]]},"49":{"position":[[200,5],[536,5]]}}}],["append",{"_index":448,"t":{"51":{"position":[[626,6],[682,6]]}}}],["applic",{"_index":344,"t":{"46":{"position":[[4066,10]]}}}],["arm64",{"_index":47,"t":{"10":{"position":[[56,5]]}}}],["auto",{"_index":262,"t":{"34":{"position":[[299,4]]},"41":{"position":[[104,4]]},"46":{"position":[[5177,4]]}}}],["auto_upd",{"_index":166,"t":{"12":{"position":[[1925,11],[2146,11],[2335,11]]},"28":{"position":[[1185,11],[1406,11],[1595,11]]},"34":{"position":[[313,13]]},"46":{"position":[[5163,11]]}}}],["auto_update=fals",{"_index":94,"t":{"10":{"position":[[847,17]]}}}],["automat",{"_index":231,"t":{"28":{"position":[[3367,13]]},"34":{"position":[[654,13]]},"46":{"position":[[86,13],[5740,13],[8638,13],[9825,13]]}}}],["avail",{"_index":51,"t":{"10":{"position":[[80,9]]},"46":{"position":[[6247,9]]}}}],["back",{"_index":511,"t":{"66":{"position":[[149,6],[200,6]]}}}],["base",{"_index":269,"t":{"34":{"position":[[519,5],[641,5],[683,5]]},"46":{"position":[[136,5]]}}}],["befor",{"_index":438,"t":{"51":{"position":[[196,6]]}}}],["begin",{"_index":3,"t":{"3":{"position":[[56,5]]}}}],["behav",{"_index":31,"t":{"7":{"position":[[24,8]]}}}],["behavior",{"_index":290,"t":{"41":{"position":[[282,9]]},"46":{"position":[[4046,9]]},"51":{"position":[[633,8]]}}}],["below",{"_index":195,"t":{"20":{"position":[[22,6]]},"28":{"position":[[2074,6]]},"30":{"position":[[9,5]]},"46":{"position":[[4056,5]]}}}],["better",{"_index":270,"t":{"34":{"position":[[587,6]]}}}],["between",{"_index":155,"t":{"12":{"position":[[1669,7],[2512,7]]},"28":{"position":[[929,7],[1772,7],[2936,7]]},"49":{"position":[[220,7]]}}}],["bi",{"_index":510,"t":{"66":{"position":[[129,2]]}}}],["both",{"_index":341,"t":{"46":{"position":[[3869,4]]}}}],["bottom",{"_index":235,"t":{"28":{"position":[[3473,7]]}}}],["branch",{"_index":393,"t":{"46":{"position":[[7384,6],[7659,6],[7687,6]]}}}],["break",{"_index":35,"t":{"7":{"position":[[82,5]]}}}],["build",{"_index":190,"t":{"15":{"position":[[241,5]]}}}],["built",{"_index":44,"t":{"10":{"position":[[26,5]]},"12":{"position":[[1608,5]]},"28":{"position":[[868,5],[2875,5]]},"46":{"position":[[7491,5]]}}}],["bulk",{"_index":479,"t":{"58":{"position":[[100,4]]}}}],["button",{"_index":498,"t":{"62":{"position":[[97,6]]},"64":{"position":[[23,6],[110,6]]}}}],["cd",{"_index":183,"t":{"15":{"position":[[132,2]]}}}],["chang",{"_index":220,"t":{"28":{"position":[[1997,6]]},"58":{"position":[[502,8]]},"64":{"position":[[103,6]]}}}],["check",{"_index":395,"t":{"46":{"position":[[7641,7]]},"60":{"position":[[276,5]]},"62":{"position":[[43,6]]}}}],["choos",{"_index":213,"t":{"28":{"position":[[0,6]]},"46":{"position":[[5479,6]]},"60":{"position":[[132,6]]}}}],["chose",{"_index":249,"t":{"32":{"position":[[265,5]]}}}],["clear",{"_index":433,"t":{"49":{"position":[[680,5]]}}}],["click",{"_index":461,"t":{"53":{"position":[[292,5]]},"62":{"position":[[79,5]]},"64":{"position":[[0,5]]}}}],["clone",{"_index":178,"t":{"15":{"position":[[0,5],[80,5]]}}}],["closest",{"_index":338,"t":{"46":{"position":[[3485,7]]}}}],["commit",{"_index":477,"t":{"56":{"position":[[251,6]]}}}],["common",{"_index":257,"t":{"34":{"position":[[180,6]]}}}],["complet",{"_index":151,"t":{"12":{"position":[[1564,8]]},"28":{"position":[[824,8],[2831,8]]}}}],["compos",{"_index":74,"t":{"10":{"position":[[462,7],[647,9]]},"12":{"position":[[883,7],[1212,7],[1348,9],[1370,9],[1446,9],[1497,7],[1541,9]]},"20":{"position":[[105,7]]},"22":{"position":[[183,7],[333,7]]},"28":{"position":[[143,7],[472,7],[608,9],[630,9],[706,9],[757,7],[801,9],[2150,7],[2479,7],[2615,9],[2637,9],[2713,9],[2764,7],[2808,9]]},"32":{"position":[[55,7],[179,7]]},"34":{"position":[[336,7]]},"39":{"position":[[137,7]]},"46":{"position":[[211,7],[282,7],[486,7],[926,7],[1077,7],[1104,7],[1746,7],[1769,7],[2022,7],[2959,7],[3438,7],[3536,7],[3573,7],[4289,7],[5196,7],[5390,7],[5692,7],[5722,7],[6298,7],[8897,7]]},"49":{"position":[[359,9],[713,7]]},"58":{"position":[[154,7]]}}}],["compose,dock",{"_index":144,"t":{"12":{"position":[[1231,18]]},"28":{"position":[[491,18],[2498,18]]},"46":{"position":[[4513,18]]}}}],["compose.dev.yaml",{"_index":363,"t":{"46":{"position":[[5320,16]]}}}],["compose.y(a)ml",{"_index":361,"t":{"46":{"position":[[5245,14],[5271,14]]}}}],["compose.yaml",{"_index":113,"t":{"12":{"position":[[336,12],[372,12],[417,12],[2000,13]]},"24":{"position":[[173,12],[209,12],[254,12]]},"28":{"position":[[1260,13]]},"30":{"position":[[98,12]]},"32":{"position":[[19,12],[156,15]]},"39":{"position":[[154,14]]},"46":{"position":[[711,12],[747,12],[792,12],[1266,12],[1403,12],[1442,12],[1489,12],[1547,12],[2112,12],[2537,12],[3163,12],[3199,12],[3244,12],[3298,12],[3646,12],[3685,12],[3732,12],[3790,12],[5436,12],[5461,12],[5533,14],[7987,12],[8033,12],[8066,12],[9057,12],[9092,12],[9125,12],[9492,12],[9531,12],[9568,12]]}}}],["compose.yml",{"_index":60,"t":{"10":{"position":[[248,12],[326,11]]},"12":{"position":[[437,11]]}}}],["compose_file_glob",{"_index":97,"t":{"10":{"position":[[913,18]]},"34":{"position":[[350,19]]},"46":{"position":[[4493,17],[5360,17],[7078,17]]}}}],["compose_file_ignore_glob",{"_index":390,"t":{"46":{"position":[[7180,24]]}}}],["compose}*.y?(a)ml",{"_index":145,"t":{"12":{"position":[[1250,17]]},"28":{"position":[[510,17],[2517,17]]},"46":{"position":[[4532,17]]}}}],["config",{"_index":150,"t":{"12":{"position":[[1557,6],[1620,7]]},"28":{"position":[[817,6],[880,7],[2824,6],[2887,7]]},"46":{"position":[[1151,6],[3552,6],[4617,6],[4724,6]]},"62":{"position":[[454,6]]}}}],["configur",{"_index":65,"t":{"10":{"position":[[311,14]]},"34":{"position":[[537,9],[668,10]]},"37":{"position":[[65,14]]},"46":{"position":[[4009,14],[4028,13],[5979,10],[6233,13],[8393,10]]},"51":{"position":[[249,13]]},"53":{"position":[[69,9],[397,14]]},"66":{"position":[[183,13]]}}}],["connect",{"_index":210,"t":{"26":{"position":[[58,9]]},"46":{"position":[[1895,10],[2093,7]]},"58":{"position":[[129,7]]}}}],["consol",{"_index":123,"t":{"12":{"position":[[853,7]]},"28":{"position":[[28,7],[113,7]]},"43":{"position":[[100,8]]},"49":{"position":[[62,7],[142,7]]},"58":{"position":[[273,7]]}}}],["contain",{"_index":203,"t":{"22":{"position":[[163,10]]},"24":{"position":[[82,10]]},"39":{"position":[[176,10]]},"46":{"position":[[348,10],[646,10],[1882,9],[2526,10],[2765,9],[2882,10],[3030,10],[3512,8],[4378,9],[7334,8],[7526,8],[7574,8],[8750,10],[9196,8],[9235,10],[9451,10],[9657,8],[9973,8]]},"56":{"position":[[31,10]]},"58":{"position":[[172,10]]}}}],["containers=1",{"_index":327,"t":{"46":{"position":[[2319,12]]}}}],["content",{"_index":158,"t":{"12":{"position":[[1720,8]]},"28":{"position":[[980,8],[2987,8]]},"46":{"position":[[4415,8]]},"49":{"position":[[271,8]]},"51":{"position":[[188,7]]},"56":{"position":[[363,8]]},"62":{"position":[[421,8]]}}}],["cool",{"_index":89,"t":{"10":{"position":[[742,4]]},"12":{"position":[[196,4],[661,4],[1845,4],[2068,4],[2250,4]]},"15":{"position":[[292,4]]},"18":{"position":[[101,4]]},"28":{"position":[[1105,4],[1328,4],[1510,4]]},"49":{"position":[[397,4]]}}}],["copi",{"_index":153,"t":{"12":{"position":[[1655,4],[2498,4]]},"28":{"position":[[915,4],[1758,4],[2922,4]]},"49":{"position":[[206,4]]},"53":{"position":[[364,4]]},"58":{"position":[[260,4]]}}}],["correct",{"_index":186,"t":{"15":{"position":[[176,7]]}}}],["cover",{"_index":19,"t":{"5":{"position":[[46,5]]}}}],["creat",{"_index":177,"t":{"12":{"position":[[2537,6]]},"22":{"position":[[313,7]]},"28":{"position":[[1797,6],[1867,6],[1952,7],[2026,6],[3228,8],[3381,7]]},"34":{"position":[[833,8]]},"43":{"position":[[46,7],[130,7]]},"46":{"position":[[7,6],[129,6],[1057,7],[1726,7],[6967,7],[8089,7],[8181,7],[8279,7]]},"49":{"position":[[571,8]]},"51":{"position":[[27,6],[101,6],[148,8],[315,8],[356,6]]},"53":{"position":[[160,6],[345,6]]},"58":{"position":[[105,8],[217,7],[304,6],[337,6]]},"60":{"position":[[65,6]]},"62":{"position":[[286,7]]},"66":{"position":[[57,7],[113,6]]}}}],["create/modifi",{"_index":451,"t":{"51":{"position":[[744,13]]}}}],["creating/modifying/delet",{"_index":475,"t":{"56":{"position":[[150,27]]}}}],["creation",{"_index":456,"t":{"53":{"position":[[213,8]]}}}],["cross",{"_index":41,"t":{"10":{"position":[[0,5]]}}}],["current",{"_index":108,"t":{"12":{"position":[[223,9]]},"46":{"position":[[7633,7]]},"51":{"position":[[295,10]]},"56":{"position":[[310,9]]}}}],["custom",{"_index":14,"t":{"3":{"position":[[174,9]]},"20":{"position":[[87,10]]},"30":{"position":[[24,10]]},"32":{"position":[[8,10]]},"34":{"position":[[74,9],[140,14]]}}}],["dashboard",{"_index":484,"t":{"60":{"position":[[15,9]]}}}],["debug",{"_index":128,"t":{"12":{"position":[[924,5]]},"28":{"position":[[184,5],[2191,5]]}}}],["declar",{"_index":476,"t":{"56":{"position":[[225,8]]}}}],["default",{"_index":260,"t":{"34":{"position":[[241,8]]},"41":{"position":[[57,8]]},"46":{"position":[[4129,7],[5219,7],[5808,7],[6419,7],[6504,7],[6833,7],[7058,7]]},"51":{"position":[[531,7]]},"53":{"position":[[523,7]]}}}],["defin",{"_index":282,"t":{"37":{"position":[[109,7]]},"41":{"position":[[123,6],[202,6],[298,6]]},"60":{"position":[[150,7]]}}}],["delet",{"_index":489,"t":{"60":{"position":[[169,6],[231,6]]},"66":{"position":[[37,6]]}}}],["depend",{"_index":336,"t":{"46":{"position":[[2775,7],[6257,9]]}}}],["descript",{"_index":345,"t":{"46":{"position":[[4137,11],[6512,11],[7066,11]]},"51":{"position":[[539,11]]},"53":{"position":[[531,11]]}}}],["desir",{"_index":502,"t":{"62":{"position":[[354,7]]}}}],["detail",{"_index":487,"t":{"60":{"position":[[119,7]]}}}],["detect",{"_index":293,"t":{"46":{"position":[[100,6],[5209,9],[5614,7],[5798,9],[6151,7],[8652,9]]}}}],["determin",{"_index":248,"t":{"32":{"position":[[242,10]]},"46":{"position":[[9839,9]]}}}],["dir",{"_index":84,"t":{"10":{"position":[[638,5]]},"12":{"position":[[996,3],[1383,3]]},"28":{"position":[[256,3],[643,3],[2263,3],[2650,3]]},"46":{"position":[[4234,3],[4282,3]]}}}],["direct",{"_index":194,"t":{"20":{"position":[[11,10]]},"66":{"position":[[132,12]]}}}],["directli",{"_index":435,"t":{"51":{"position":[[18,8]]},"53":{"position":[[126,9]]}}}],["directori",{"_index":72,"t":{"10":{"position":[[427,9],[546,9]]},"12":{"position":[[263,9],[721,9],[802,9]]},"15":{"position":[[66,9]]},"22":{"position":[[35,9],[136,9]]},"24":{"position":[[5,10],[72,9],[277,9]]},"32":{"position":[[143,9]]},"34":{"position":[[427,9]]},"41":{"position":[[185,10]]},"46":{"position":[[476,9],[507,9],[619,9],[837,9],[1592,9],[2674,10],[2689,9],[2829,9],[2902,9],[2949,9],[2980,9],[3257,9],[3803,9],[4320,9],[6288,9],[6399,9],[6782,9],[6861,11],[7158,9],[7258,9],[8318,10],[8841,9],[8887,9],[8918,9],[8969,9],[8991,10],[9175,9],[9225,9],[9276,9],[9369,10],[9636,9],[9775,9],[9902,11],[9963,9]]}}}],["directorycompos",{"_index":200,"t":{"22":{"position":[[0,16]]}}}],["disabl",{"_index":488,"t":{"60":{"position":[[161,7],[214,8]]}}}],["discov",{"_index":339,"t":{"46":{"position":[[3525,10]]}}}],["discuss",{"_index":27,"t":{"5":{"position":[[174,11],[239,11]]}}}],["doc",{"_index":1,"t":{"3":{"position":[[30,4]]},"5":{"position":[[34,4]]},"34":{"position":[[129,5]]}}}],["docker",{"_index":115,"t":{"12":{"position":[[365,6],[430,6],[876,6]]},"20":{"position":[[98,6]]},"22":{"position":[[326,6]]},"24":{"position":[[202,6]]},"28":{"position":[[81,6],[136,6],[2143,6]]},"32":{"position":[[48,6],[172,6]]},"39":{"position":[[72,6],[130,6],[169,6]]},"43":{"position":[[81,7]]},"46":{"position":[[740,6],[1070,6],[1097,6],[1435,6],[1739,6],[1824,7],[1933,6],[2104,7],[3192,6],[3565,7],[3678,6],[5264,6],[5454,6],[8026,6],[9085,6],[9524,6]]},"49":{"position":[[120,6],[706,6]]},"53":{"position":[[834,6]]}}}],["docker.io/foxxmd/komodo",{"_index":56,"t":{"10":{"position":[[139,23]]}}}],["docker.sock",{"_index":316,"t":{"46":{"position":[[1861,11],[2466,11]]}}}],["docker/dock",{"_index":170,"t":{"12":{"position":[[1985,14]]},"28":{"position":[[1245,14]]}}}],["docker_host",{"_index":321,"t":{"46":{"position":[[2051,11]]}}}],["docker_host=tcp://socket",{"_index":323,"t":{"46":{"position":[[2207,24]]}}}],["dockerhub",{"_index":52,"t":{"10":{"position":[[97,9]]}}}],["dockg",{"_index":109,"t":{"12":{"position":[[239,6]]}}}],["docs:instal",{"_index":189,"t":{"15":{"position":[[217,12]]}}}],["domain",{"_index":275,"t":{"34":{"position":[[745,7]]},"46":{"position":[[8563,6]]}}}],["done",{"_index":176,"t":{"12":{"position":[[2492,5]]},"28":{"position":[[1752,5]]},"46":{"position":[[1844,4]]},"49":{"position":[[542,5]]},"66":{"position":[[17,4]]}}}],["doubl",{"_index":491,"t":{"60":{"position":[[269,6]]}}}],["each",{"_index":201,"t":{"22":{"position":[[110,4]]},"46":{"position":[[583,4],[5662,4],[6199,4]]},"64":{"position":[[125,4]]}}}],["easier",{"_index":434,"t":{"49":{"position":[[698,7]]}}}],["ensur",{"_index":408,"t":{"46":{"position":[[8795,6]]}}}],["entir",{"_index":512,"t":{"66":{"position":[[169,6]]}}}],["env",{"_index":134,"t":{"12":{"position":[[1000,4],[1299,3],[1309,7],[2434,6]]},"28":{"position":[[260,4],[559,3],[569,7],[1694,6],[2267,4],[2566,3],[2576,7]]},"34":{"position":[[374,4]]},"46":{"position":[[2047,3],[2944,4],[4116,3],[4433,4],[4640,7],[4705,3],[4780,3],[4874,4],[4953,4],[5378,3],[5788,4],[5833,4],[5915,3],[5924,4],[6053,4],[6065,3],[6491,3],[7045,3],[9299,3]]},"49":{"position":[[81,3]]},"51":{"position":[[518,3]]},"53":{"position":[[510,3]]}}}],["env_file_glob",{"_index":98,"t":{"10":{"position":[[935,14]]},"34":{"position":[[385,15]]},"46":{"position":[[4624,13],[5901,13]]}}}],["env_file_path",{"_index":173,"t":{"12":{"position":[[2380,13]]},"28":{"position":[[1640,13]]}}}],["environ",{"_index":77,"t":{"10":{"position":[[517,12]]},"12":{"position":[[559,12]]},"30":{"position":[[231,12]]},"46":{"position":[[2156,12],[2193,11],[2304,12],[3389,12],[3966,12],[4454,12],[4991,11],[6008,11]]}}}],["environment",{"_index":254,"t":{"34":{"position":[[28,14]]},"37":{"position":[[123,13]]},"41":{"position":[[10,13]]},"46":{"position":[[4092,13]]},"51":{"position":[[452,13],[494,13]]},"53":{"position":[[422,13],[486,13]]}}}],["error",{"_index":34,"t":{"7":{"position":[[70,6]]}}}],["etc",{"_index":288,"t":{"41":{"position":[[117,5],[196,5],[292,5],[358,5]]},"43":{"position":[[153,5]]},"53":{"position":[[136,6]]},"58":{"position":[[183,4]]}}}],["etc/komodo",{"_index":387,"t":{"46":{"position":[[7011,11]]}}}],["ex",{"_index":369,"t":{"46":{"position":[[5518,2]]}}}],["exampl",{"_index":59,"t":{"10":{"position":[[240,7]]},"12":{"position":[[60,7],[868,7]]},"15":{"position":[[267,9]]},"24":{"position":[[119,7]]},"28":{"position":[[128,7],[2135,7]]},"32":{"position":[[306,8]]},"46":{"position":[[657,7],[1089,7],[3109,7],[3586,7],[7788,7],[9002,7],[9380,7]]},"53":{"position":[[717,8],[854,8]]}}}],["except",{"_index":381,"t":{"46":{"position":[[6460,6],[6873,6]]}}}],["exclud",{"_index":267,"t":{"34":{"position":[[482,7]]}}}],["execut",{"_index":219,"t":{"28":{"position":[[1986,7],[3406,10]]},"51":{"position":[[130,7],[203,10]]},"56":{"position":[[127,7]]},"58":{"position":[[191,9]]},"64":{"position":[[10,7],[95,7]]}}}],["exist",{"_index":205,"t":{"22":{"position":[[269,8]]},"28":{"position":[[2009,8]]},"32":{"position":[[94,8]]},"34":{"position":[[611,8],[703,9]]},"39":{"position":[[62,9]]},"41":{"position":[[264,8]]},"46":{"position":[[42,8],[416,8],[1013,8],[2184,8],[2605,8],[4865,8]]},"51":{"position":[[667,7]]},"53":{"position":[[41,8]]},"58":{"position":[[145,8]]}}}],["existing_sync",{"_index":447,"t":{"51":{"position":[[610,13]]}}}],["expand",{"_index":252,"t":{"32":{"position":[[295,10]]}}}],["expect",{"_index":32,"t":{"7":{"position":[[40,6]]}}}],["expiri",{"_index":462,"t":{"53":{"position":[[338,6]]}}}],["export",{"_index":291,"t":{"41":{"position":[[340,6]]},"43":{"position":[[109,6]]}}}],["fals",{"_index":167,"t":{"12":{"position":[[1939,5],[1964,5],[2160,5],[2185,5],[2349,5],[2374,5]]},"28":{"position":[[1199,5],[1224,5],[1420,5],[1445,5],[1609,5],[1634,5]]},"46":{"position":[[4742,5]]},"51":{"position":[[570,5]]}}}],["field",{"_index":198,"t":{"20":{"position":[[66,6]]},"41":{"position":[[139,6]]}}}],["fields/button",{"_index":12,"t":{"3":{"position":[[151,14]]}}}],["file",{"_index":133,"t":{"12":{"position":[[980,5],[1061,6],[1194,6],[1220,4],[1281,6],[1330,6],[1428,6],[1473,5],[1523,6],[1590,6],[1714,5]]},"20":{"position":[[113,4]]},"28":{"position":[[240,5],[321,6],[454,6],[480,4],[541,6],[590,6],[688,6],[733,5],[783,6],[850,6],[974,5],[2247,5],[2328,6],[2461,6],[2487,4],[2548,6],[2597,6],[2695,6],[2740,5],[2790,6],[2857,6],[2981,5]]},"30":{"position":[[4,4]]},"34":{"position":[[344,5],[379,5]]},"41":{"position":[[334,5]]},"46":{"position":[[186,5],[1158,5],[2030,4],[3559,5],[4438,5],[4586,5],[4596,5],[4684,5],[4709,5],[4879,5],[5204,4],[5286,5],[5490,4],[5605,5],[5730,5],[5793,4],[5838,5],[5929,4],[6142,5],[7766,5],[8292,5]]},"49":{"position":[[265,5]]},"60":{"position":[[326,5]]},"62":{"position":[[441,5]]}}}],["file.cdf1733.739.png",{"_index":243,"t":{"28":{"position":[[3713,20]]}}}],["file.d733ef4.640.png",{"_index":240,"t":{"28":{"position":[[3566,20],[3641,20]]}}}],["file_path",{"_index":169,"t":{"12":{"position":[[1970,10]]},"28":{"position":[[1230,10]]}}}],["files/fold",{"_index":356,"t":{"46":{"position":[[4801,13]]}}}],["files_on_host",{"_index":164,"t":{"12":{"position":[[1904,13],[2125,13],[2314,13]]},"28":{"position":[[1164,13],[1385,13],[1574,13]]}}}],["filesonserv",{"_index":135,"t":{"12":{"position":[[1005,14],[1033,14]]},"28":{"position":[[265,14],[293,14],[2272,14],[2300,14]]},"46":{"position":[[2860,14]]}}}],["filesonserver/compose.yaml",{"_index":146,"t":{"12":{"position":[[1387,27]]},"28":{"position":[[647,27],[2654,27]]}}}],["filesonserver/immich",{"_index":140,"t":{"12":{"position":[[1112,21]]},"28":{"position":[[372,21],[2379,21]]}}}],["filesonserver/plex",{"_index":141,"t":{"12":{"position":[[1134,19]]},"28":{"position":[[394,19],[2401,19]]}}}],["filesonserver/uptim",{"_index":142,"t":{"12":{"position":[[1154,21]]},"28":{"position":[[414,21],[2421,21]]}}}],["fill",{"_index":197,"t":{"20":{"position":[[54,4]]}}}],["find",{"_index":38,"t":{"7":{"position":[[165,4]]},"12":{"position":[[1464,4]]},"28":{"position":[[724,4],[2731,4]]},"46":{"position":[[4578,7],[4676,7],[4796,4],[6568,7]]},"58":{"position":[[439,4]]}}}],["first",{"_index":439,"t":{"51":{"position":[[214,6]]}}}],["fit",{"_index":64,"t":{"10":{"position":[[302,3]]}}}],["folder",{"_index":139,"t":{"12":{"position":[[1103,8],[1634,7]]},"24":{"position":[[110,8]]},"28":{"position":[[363,8],[894,7],[2370,8],[2901,7]]},"34":{"position":[[511,7]]},"46":{"position":[[249,6],[317,6],[341,6],[366,6],[3023,6],[3500,6],[5870,7],[6351,6],[6382,7],[6447,6],[6576,7],[6601,6],[6686,7],[6711,6],[6817,6],[6900,6],[7309,6],[7350,6],[7476,6],[7548,6],[7567,6],[7590,6],[7736,6],[7905,6],[8742,7],[9210,7],[9444,6],[9671,6],[9707,6],[9923,7],[9995,6]]}}}],["folder_glob",{"_index":266,"t":{"34":{"position":[[465,13]]},"46":{"position":[[6524,11]]}}}],["folder_ignore_glob",{"_index":268,"t":{"34":{"position":[[490,20]]},"46":{"position":[[6631,18]]}}}],["folders/data",{"_index":296,"t":{"46":{"position":[[165,13]]}}}],["follow",{"_index":193,"t":{"20":{"position":[[0,6]]},"51":{"position":[[221,6]]}}}],["form",{"_index":419,"t":{"49":{"position":[[35,4]]}}}],["found",{"_index":61,"t":{"10":{"position":[[261,5]]},"12":{"position":[[1358,5]]},"28":{"position":[[618,5],[2625,5]]},"34":{"position":[[114,5]]},"46":{"position":[[3857,5],[4427,5],[4889,6],[5844,5],[5937,5],[7002,5]]}}}],["foxxmd/komodo",{"_index":67,"t":{"10":{"position":[[370,13]]},"12":{"position":[[481,13]]},"30":{"position":[[143,13]]}}}],["full",{"_index":380,"t":{"46":{"position":[[6394,4],[6777,4],[7153,4],[7253,4]]}}}],["fulli",{"_index":21,"t":{"5":{"position":[[105,5]]}}}],["function",{"_index":36,"t":{"7":{"position":[[88,13]]}}}],["futur",{"_index":444,"t":{"51":{"position":[[427,8]]}}}],["gave",{"_index":212,"t":{"26":{"position":[[115,4]]}}}],["gener",{"_index":83,"t":{"10":{"position":[[622,9],[708,9]]},"12":{"position":[[627,9],[773,8]]},"20":{"position":[[76,8]]},"22":{"position":[[89,8],[248,8]]},"28":{"position":[[43,9],[1899,9]]},"32":{"position":[[66,8],[229,9]]},"34":{"position":[[99,10],[437,9]]},"39":{"position":[[25,8]]},"46":{"position":[[395,8],[562,8],[992,8],[1679,8],[3088,9],[4260,8],[7414,8]]},"56":{"position":[[271,10]]},"58":{"position":[[388,9]]},"62":{"position":[[222,9],[250,9]]}}}],["get",{"_index":432,"t":{"49":{"position":[[672,7]]}}}],["ghcr.io/foxxmd/komodo",{"_index":58,"t":{"10":{"position":[[193,21]]}}}],["git",{"_index":116,"t":{"12":{"position":[[391,4]]},"15":{"position":[[76,3]]},"24":{"position":[[228,4]]},"34":{"position":[[637,3],[679,3],[721,3],[737,3]]},"46":{"position":[[161,3],[244,4],[263,3],[312,4],[361,4],[766,4],[1463,4],[3218,4],[3706,4],[7280,3],[7345,4],[7425,3],[7445,3],[7502,3],[7543,4],[7585,4],[7601,3],[7976,4],[8015,4],[8102,3],[8122,3],[8194,3],[8214,3],[8476,3],[8526,3],[8604,3],[8631,3],[8717,3],[8825,3],[8954,3],[9035,4],[9205,4],[9413,4],[9666,4],[9918,4]]},"66":{"position":[[145,3]]}}}],["git.mydomain.com",{"_index":400,"t":{"46":{"position":[[8136,16]]}}}],["github",{"_index":26,"t":{"5":{"position":[[167,6]]},"7":{"position":[[116,6]]},"10":{"position":[[107,6]]}}}],["github.com",{"_index":402,"t":{"46":{"position":[[8228,10]]}}}],["give",{"_index":314,"t":{"46":{"position":[[1795,4]]},"53":{"position":[[310,4]]},"58":{"position":[[14,5]]}}}],["given",{"_index":383,"t":{"46":{"position":[[6608,5],[6718,5]]}}}],["glob",{"_index":143,"t":{"12":{"position":[[1225,5],[1303,5],[1505,4]]},"28":{"position":[[485,5],[563,5],[765,4],[2492,5],[2570,5],[2772,4]]},"46":{"position":[[4554,4],[4652,4],[4754,4],[6544,4],[6656,4],[7108,4],[7211,4]]}}}],["glob_dot",{"_index":353,"t":{"46":{"position":[[4731,8]]}}}],["granular",{"_index":443,"t":{"51":{"position":[[411,8]]}}}],["guid",{"_index":7,"t":{"3":{"position":[[96,6]]},"5":{"position":[[18,5]]},"12":{"position":[[24,5]]},"34":{"position":[[798,5]]}}}],["handl",{"_index":407,"t":{"46":{"position":[[8692,7]]}}}],["header",{"_index":496,"t":{"62":{"position":[[58,8]]}}}],["height=793",{"_index":246,"t":{"28":{"position":[[3750,11]]}}}],["help",{"_index":13,"t":{"3":{"position":[[169,4]]}}}],["home/myus",{"_index":309,"t":{"46":{"position":[[1357,12],[1602,12],[3600,12],[3823,12]]}}}],["home/myuser/homelab",{"_index":111,"t":{"12":{"position":[[296,21]]},"24":{"position":[[133,21],[297,20]]},"46":{"position":[[671,21],[847,20],[3123,21],[3277,20],[7938,20],[9010,20],[9142,20],[9388,20],[9603,20],[9785,20]]}}}],["home/myuser/homelab/compos",{"_index":430,"t":{"49":{"position":[[426,30]]}}}],["home/myuser/homelab/immich",{"_index":163,"t":{"12":{"position":[[1874,29]]},"28":{"position":[[1134,29]]}}}],["home/myuser/homelab/immich/compose.yaml",{"_index":305,"t":{"46":{"position":[[1179,40]]}}}],["home/myuser/homelab/plex",{"_index":171,"t":{"12":{"position":[[2097,27]]},"28":{"position":[[1357,27]]}}}],["home/myuser/homelab/plex/dock",{"_index":306,"t":{"46":{"position":[[1233,32]]}}}],["home/myuser/homelab/uptim",{"_index":172,"t":{"12":{"position":[[2279,28]]},"28":{"position":[[1539,28]]},"46":{"position":[[8329,27]]}}}],["home/myuser/homelab:/filesonserv",{"_index":76,"t":{"10":{"position":[[481,35]]},"30":{"position":[[194,36]]},"46":{"position":[[3353,35]]}}}],["home/myuser/homelab:/filesonserver:ro",{"_index":119,"t":{"12":{"position":[[520,38]]}}}],["home/myuser/localdev/myprojects/project1/compose.yaml",{"_index":308,"t":{"46":{"position":[[1296,54]]}}}],["home/myuser:/filesonserv",{"_index":342,"t":{"46":{"position":[[3938,27]]}}}],["home/user/komodo",{"_index":388,"t":{"46":{"position":[[7026,18]]}}}],["homelab",{"_index":310,"t":{"46":{"position":[[1374,7],[3617,7],[3887,8]]}}}],["hopefulli",{"_index":442,"t":{"51":{"position":[[393,9]]}}}],["host",{"_index":79,"t":{"10":{"position":[[541,4]]},"12":{"position":[[699,4]]},"24":{"position":[[0,4],[272,4]]},"46":{"position":[[832,4],[1587,4],[2669,4],[2706,4],[2824,4],[2897,4],[4337,4],[7175,4],[7275,4],[8986,4],[9170,4],[9364,4],[9631,4],[9770,4],[9958,4]]}}}],["host_dir",{"_index":337,"t":{"46":{"position":[[2935,8],[4297,8]]}}}],["host_dir=/home/myus",{"_index":343,"t":{"46":{"position":[[3981,21]]}}}],["host_dir=/home/myuser/homelab",{"_index":81,"t":{"10":{"position":[[572,29]]},"12":{"position":[[740,29]]},"46":{"position":[[3404,29]]}}}],["http://192.168.0.100:9120",{"_index":468,"t":{"53":{"position":[[741,25]]}}}],["http://192.168.0.101:9120",{"_index":227,"t":{"28":{"position":[[3123,25],[3163,26]]}}}],["http://192.168.0.101:9120/resourc",{"_index":229,"t":{"28":{"position":[[3280,34]]}}}],["http://komodo",{"_index":471,"t":{"53":{"position":[[816,13]]}}}],["https://git.mydomain.com/myuser/immich",{"_index":397,"t":{"46":{"position":[[7825,38]]}}}],["https://github.com/anotheruser/plex",{"_index":398,"t":{"46":{"position":[[7864,35]]}}}],["https://github.com/foxxmd/komodo",{"_index":181,"t":{"15":{"position":[[86,32]]}}}],["https://komodo.mydomain.com",{"_index":469,"t":{"53":{"position":[[767,27]]}}}],["https://mykomodo.com",{"_index":470,"t":{"53":{"position":[[795,20]]}}}],["ie",{"_index":48,"t":{"10":{"position":[[62,3]]},"46":{"position":[[8710,2]]}}}],["ignor",{"_index":384,"t":{"46":{"position":[[6679,6],[6951,6],[7234,6]]}}}],["imag",{"_index":43,"t":{"10":{"position":[[15,6],[90,6],[363,6]]},"12":{"position":[[474,6]]},"30":{"position":[[136,6]]},"34":{"position":[[205,5],[270,6]]},"41":{"position":[[87,6]]},"46":{"position":[[2257,6],[5045,5],[5092,5],[5155,7]]}}}],["image_registry_account",{"_index":93,"t":{"10":{"position":[[820,23]]},"46":{"position":[[5067,22]]}}}],["image_registry_provid",{"_index":92,"t":{"10":{"position":[[792,24]]},"46":{"position":[[5011,23]]}}}],["img",{"_index":232,"t":{"28":{"position":[[3417,4]]}}}],["img/sync",{"_index":239,"t":{"28":{"position":[[3548,8],[3623,8],[3695,8]]}}}],["immedi",{"_index":206,"t":{"24":{"position":[[55,9]]},"46":{"position":[[588,9],[3052,9]]}}}],["immich",{"_index":112,"t":{"12":{"position":[[322,7],[1808,8]]},"24":{"position":[[159,7]]},"28":{"position":[[1068,8]]},"46":{"position":[[697,7],[893,6],[1164,6],[1388,6],[1640,6],[3149,7],[3631,6],[7963,6],[8079,6],[9044,6],[9477,6]]}}}],["import",{"_index":16,"t":{"3":{"position":[[191,6]]},"5":{"position":[[84,6]]},"7":{"position":[[10,6]]},"10":{"position":[[355,7]]},"12":{"position":[[466,7]]},"15":{"position":[[142,6]]},"22":{"position":[[70,6],[229,6]]},"28":{"position":[[1841,6],[3064,7]]},"30":{"position":[[128,7]]},"34":{"position":[[554,6]]},"37":{"position":[[38,6]]},"46":{"position":[[543,6],[973,6],[1807,6],[2073,6],[2142,7],[2567,7],[2758,6],[3328,7],[3913,7],[4371,6],[5583,6],[6120,6],[6624,6],[6734,6],[6932,6],[8680,6],[8879,7],[9721,6],[9813,6]]},"51":{"position":[[7,6],[486,7],[721,6]]},"53":{"position":[[7,6],[456,6]]},"58":{"position":[[7,6],[237,7],[381,6]]},"60":{"position":[[303,6]]},"66":{"position":[[85,7]]}}}],["import.git",{"_index":182,"t":{"15":{"position":[[119,10]]}}}],["import/assets/id",{"_index":238,"t":{"28":{"position":[[3528,19],[3603,19],[3675,19]]}}}],["import:latest",{"_index":57,"t":{"10":{"position":[[163,13],[215,13],[384,13]]},"12":{"position":[[495,13]]},"30":{"position":[[157,13]]}}}],["includ",{"_index":264,"t":{"34":{"position":[[404,8],[457,7]]},"53":{"position":[[684,9]]}}}],["indic",{"_index":371,"t":{"46":{"position":[[5626,8],[6163,8]]}}}],["individu",{"_index":285,"t":{"39":{"position":[[103,10]]},"64":{"position":[[130,10]]}}}],["info",{"_index":126,"t":{"12":{"position":[[910,4],[939,4],[967,4],[1048,4],[1181,4],[1268,4],[1317,4],[1510,4],[1577,4],[1642,4],[2479,4]]},"22":{"position":[[26,4],[174,4]]},"28":{"position":[[170,4],[199,4],[227,4],[308,4],[441,4],[528,4],[577,4],[770,4],[837,4],[902,4],[1739,4],[2177,4],[2206,4],[2234,4],[2315,4],[2448,4],[2535,4],[2584,4],[2777,4],[2844,4],[2909,4],[3026,4],[3190,4],[3237,4]]},"49":{"position":[[193,4],[529,4]]}}}],["info=1",{"_index":328,"t":{"46":{"position":[[2334,6]]}}}],["init",{"_index":127,"t":{"12":{"position":[[917,6]]},"28":{"position":[[177,6],[2184,6]]}}}],["input",{"_index":281,"t":{"37":{"position":[[57,7]]},"43":{"position":[[59,7]]}}}],["insid",{"_index":202,"t":{"22":{"position":[[125,6]]},"46":{"position":[[608,6]]}}}],["instal",{"_index":106,"t":{"12":{"position":[[117,9]]},"15":{"position":[[41,7],[201,7]]},"18":{"position":[[39,9]]}}}],["instanc",{"_index":454,"t":{"53":{"position":[[57,8]]}}}],["instead",{"_index":378,"t":{"46":{"position":[[6042,7],[7746,7]]}}}],["instruct",{"_index":440,"t":{"51":{"position":[[232,12]]},"53":{"position":[[222,12]]}}}],["integr",{"_index":271,"t":{"34":{"position":[[594,11]]}}}],["intel/amd",{"_index":46,"t":{"10":{"position":[[40,11]]}}}],["interact",{"_index":11,"t":{"3":{"position":[[139,11]]},"12":{"position":[[37,11]]},"41":{"position":[[232,9]]}}}],["interest",{"_index":256,"t":{"34":{"position":[[166,8]]}}}],["interim",{"_index":362,"t":{"46":{"position":[[5301,7]]}}}],["issu",{"_index":37,"t":{"7":{"position":[[123,6],[145,5]]}}}],["it'",{"_index":377,"t":{"46":{"position":[[5999,4]]},"62":{"position":[[70,4]]}}}],["itself",{"_index":386,"t":{"46":{"position":[[6985,6]]}}}],["key",{"_index":222,"t":{"28":{"position":[[2040,3],[2104,4]]},"41":{"position":[[259,4]]},"51":{"position":[[332,3]]},"53":{"position":[[174,3],[209,3],[306,3],[356,3],[378,3],[597,3]]}}}],["ki",{"_index":280,"t":{"37":{"position":[[45,5]]},"39":{"position":[[13,2]]},"41":{"position":[[46,2],[226,2],[318,2]]},"43":{"position":[[24,2]]},"46":{"position":[[0,2],[388,2]]},"49":{"position":[[0,2]]},"58":{"position":[[462,2]]}}}],["know",{"_index":322,"t":{"46":{"position":[[2080,5]]}}}],["komodo",{"_index":15,"t":{"3":{"position":[[184,6]]},"5":{"position":[[77,6]]},"7":{"position":[[3,6]]},"10":{"position":[[348,6],[678,6]]},"12":{"position":[[87,6],[154,6],[459,6],[597,6],[2567,6]]},"15":{"position":[[135,6]]},"18":{"position":[[9,6],[76,6]]},"22":{"position":[[63,6],[222,6]]},"26":{"position":[[5,6],[74,6]]},"28":{"position":[[36,6],[1827,6],[1834,6],[1919,6],[2081,6],[2093,6],[2109,6],[2128,6],[3056,7]]},"30":{"position":[[121,6]]},"32":{"position":[[75,6]]},"34":{"position":[[547,6],[572,6],[852,7]]},"37":{"position":[[31,6]]},"39":{"position":[[34,6]]},"41":{"position":[[70,6],[150,6],[247,6],[350,7]]},"43":{"position":[[119,6]]},"46":{"position":[[14,6],[179,6],[256,6],[536,6],[966,6],[1800,6],[2066,6],[2135,6],[2560,6],[2751,6],[3321,6],[3906,6],[4180,6],[4364,6],[4447,6],[4963,6],[5576,6],[6058,6],[6113,6],[6617,6],[6727,6],[6925,6],[6978,6],[8379,6],[8415,6],[8513,6],[8673,6],[8872,6],[9714,6],[9806,6]]},"51":{"position":[[0,6],[52,6],[270,6],[479,6],[714,6]]},"53":{"position":[[0,6],[50,6],[252,6],[449,6],[474,6],[557,6],[586,6],[615,6],[638,6]]},"56":{"position":[[75,6],[93,6],[191,6],[323,6]]},"58":{"position":[[0,6],[72,7],[230,6],[374,6]]},"60":{"position":[[8,6],[261,7],[296,6]]},"62":{"position":[[173,6]]},"66":{"position":[[78,6],[176,6]]}}}],["komodo'",{"_index":436,"t":{"51":{"position":[[65,8]]}}}],["komodo_env_nam",{"_index":96,"t":{"10":{"position":[[893,16]]},"46":{"position":[[4833,15],[6097,15]]}}}],["komodo_url",{"_index":226,"t":{"28":{"position":[[3111,11]]},"53":{"position":[[543,10]]}}}],["komodoenv",{"_index":174,"t":{"12":{"position":[[2396,12]]},"28":{"position":[[1656,12]]},"46":{"position":[[4851,10],[6031,10]]}}}],["kuma",{"_index":118,"t":{"12":{"position":[[407,5],[1176,4],[2216,5],[2308,5]]},"24":{"position":[[244,5]]},"28":{"position":[[436,4],[1476,5],[1568,5],[2443,4]]},"46":{"position":[[782,5],[916,5],[3234,5],[8057,4],[8271,4],[8357,4],[9116,4],[9557,4]]}}}],["learn",{"_index":277,"t":{"34":{"position":[[807,5]]}}}],["level",{"_index":375,"t":{"46":{"position":[[5857,5],[6595,5],[6705,5],[10010,6]]}}}],["link",{"_index":272,"t":{"34":{"position":[[620,6]]},"46":{"position":[[8498,6]]},"53":{"position":[[91,6]]}}}],["local",{"_index":396,"t":{"46":{"position":[[7653,5]]}}}],["localdev",{"_index":312,"t":{"46":{"position":[[1506,8],[3749,8],[3874,8]]}}}],["locat",{"_index":347,"t":{"46":{"position":[[4211,7]]}}}],["log",{"_index":125,"t":{"12":{"position":[[899,3]]},"28":{"position":[[88,4],[159,3],[2166,3]]},"32":{"position":[[195,3]]},"41":{"position":[[326,4]]},"43":{"position":[[67,3],[89,5]]},"46":{"position":[[5595,3],[6132,3]]},"49":{"position":[[127,4],[608,3],[729,3]]}}}],["log_toml=fals",{"_index":421,"t":{"49":{"position":[[85,15]]}}}],["look",{"_index":110,"t":{"12":{"position":[[273,5]]},"46":{"position":[[5235,5],[7922,5]]}}}],["ls",{"_index":302,"t":{"46":{"position":[[1112,2],[3581,4]]}}}],["lscr.io/linuxserver/socket",{"_index":325,"t":{"46":{"position":[[2264,26]]}}}],["machin",{"_index":17,"t":{"3":{"position":[[207,8]]},"12":{"position":[[142,7],[182,7],[212,7]]},"18":{"position":[[64,7]]},"22":{"position":[[295,7]]},"26":{"position":[[46,7]]},"30":{"position":[[53,8],[89,8]]},"32":{"position":[[120,8]]},"39":{"position":[[114,7]]},"46":{"position":[[69,8],[442,7],[1039,7],[2711,7]]}}}],["made",{"_index":482,"t":{"58":{"position":[[465,4]]}}}],["make",{"_index":416,"t":{"46":{"position":[[9936,4]]},"49":{"position":[[666,5]]},"62":{"position":[[193,4]]}}}],["mani",{"_index":253,"t":{"34":{"position":[[10,4]]},"46":{"position":[[8737,4]]}}}],["manual",{"_index":431,"t":{"49":{"position":[[562,8]]},"58":{"position":[[328,8]]}}}],["match",{"_index":149,"t":{"12":{"position":[[1488,8]]},"28":{"position":[[748,8],[2755,8]]},"34":{"position":[[753,5]]},"46":{"position":[[6342,8],[6435,7],[6768,8],[6849,7],[7132,8],[8447,7],[8539,8]]},"56":{"position":[[209,7]]},"62":{"position":[[201,5]]}}}],["method",{"_index":218,"t":{"28":{"position":[[1940,6]]},"46":{"position":[[467,8]]}}}],["miss",{"_index":504,"t":{"62":{"position":[[378,7]]}}}],["mode",{"_index":129,"t":{"12":{"position":[[930,5]]},"28":{"position":[[190,5],[2197,5]]},"60":{"position":[[139,4]]}}}],["modifi",{"_index":63,"t":{"10":{"position":[[286,9]]},"62":{"position":[[407,9]]}}}],["monorepo",{"_index":406,"t":{"46":{"position":[[8662,10],[8700,9],[9870,8],[9986,8]]}}}],["more",{"_index":215,"t":{"28":{"position":[[14,4]]},"34":{"position":[[15,4]]},"51":{"position":[[406,4]]},"56":{"position":[[70,4]]}}}],["mount",{"_index":70,"t":{"10":{"position":[[410,5],[556,7]]},"12":{"position":[[794,7]]},"22":{"position":[[146,7]]},"46":{"position":[[629,7],[1852,8],[2457,8],[2478,5],[2734,7],[2849,7],[4347,7],[8859,7],[9950,7]]}}}],["mount_dir=/my/parent/fold",{"_index":191,"t":{"15":{"position":[[320,27]]}}}],["myproject",{"_index":313,"t":{"46":{"position":[[1519,10],[3762,10]]}}}],["mystack",{"_index":412,"t":{"46":{"position":[[9422,8]]}}}],["myuser/immich",{"_index":401,"t":{"46":{"position":[[8159,13]]}}}],["name",{"_index":87,"t":{"10":{"position":[[692,4]]},"12":{"position":[[168,4],[611,4],[1801,4],[2026,4],[2201,4]]},"18":{"position":[[90,4]]},"26":{"position":[[106,4],[131,5]]},"28":{"position":[[1061,4],[1286,4],[1461,4],[3080,4]]},"41":{"position":[[175,5]]},"46":{"position":[[1139,4],[4168,4],[4927,4],[5037,4],[5309,5],[6069,4],[6358,5],[6454,5],[6824,4]]},"49":{"position":[[352,4],[653,4]]},"51":{"position":[[728,4]]},"53":{"position":[[320,4]]},"60":{"position":[[93,4]]}}}],["navig",{"_index":457,"t":{"53":{"position":[[235,8]]}}}],["navigi",{"_index":485,"t":{"60":{"position":[[25,9]]}}}],["need",{"_index":455,"t":{"53":{"position":[[152,4]]}}}],["network",{"_index":472,"t":{"53":{"position":[[841,8]]}}}],["new",{"_index":30,"t":{"5":{"position":[[235,3]]},"7":{"position":[[141,3]]},"12":{"position":[[2546,3]]},"28":{"position":[[1806,3]]},"34":{"position":[[266,3]]},"53":{"position":[[298,3]]},"60":{"position":[[47,3]]}}}],["newer",{"_index":360,"t":{"46":{"position":[[5149,5]]}}}],["next",{"_index":507,"t":{"64":{"position":[[117,4]]}}}],["node",{"_index":187,"t":{"15":{"position":[[184,4],[348,4]]},"43":{"position":[[95,4]]}}}],["node'",{"_index":424,"t":{"49":{"position":[[135,6]]}}}],["non",{"_index":365,"t":{"46":{"position":[[5386,3]]}}}],["normal",{"_index":228,"t":{"28":{"position":[[3151,11]]}}}],["note",{"_index":372,"t":{"46":{"position":[[5676,4]]},"51":{"position":[[290,4]]}}}],["now",{"_index":493,"t":{"62":{"position":[[17,3],[144,3]]},"66":{"position":[[101,3]]}}}],["npm",{"_index":188,"t":{"15":{"position":[[197,3],[209,3],[233,3],[247,3]]}}}],["nvm",{"_index":184,"t":{"15":{"position":[[149,3]]}}}],["on",{"_index":214,"t":{"28":{"position":[[7,3]]},"46":{"position":[[456,3],[5641,4],[6178,4],[8713,3]]},"56":{"position":[[63,3]]}}}],["onc",{"_index":207,"t":{"26":{"position":[[0,4]]}}}],["open",{"_index":29,"t":{"5":{"position":[[228,4]]},"7":{"position":[[134,4]]},"53":{"position":[[267,4]]}}}],["option",{"_index":90,"t":{"10":{"position":[[757,8]]},"15":{"position":[[159,9]]},"20":{"position":[[41,8]]},"34":{"position":[[20,7],[193,7]]},"53":{"position":[[329,8]]}}}],["out",{"_index":5,"t":{"3":{"position":[[77,3]]},"46":{"position":[[7649,3]]},"56":{"position":[[342,3]]}}}],["output",{"_index":33,"t":{"7":{"position":[[59,10]]},"12":{"position":[[861,6]]},"28":{"position":[[19,8],[71,6],[121,6]]},"37":{"position":[[84,7]]},"41":{"position":[[310,7]]},"43":{"position":[[74,6]]},"49":{"position":[[15,6],[626,6],[691,6]]},"51":{"position":[[84,6]]},"58":{"position":[[281,6],[427,6]]}}}],["output_api_sync",{"_index":445,"t":{"51":{"position":[[551,15]]}}}],["outsid",{"_index":355,"t":{"46":{"position":[[4769,7]]}}}],["over",{"_index":367,"t":{"46":{"position":[[5449,4],[5548,4]]}}}],["overridden",{"_index":364,"t":{"46":{"position":[[5344,10],[5885,10],[6081,10]]}}}],["overwhelm",{"_index":0,"t":{"3":{"position":[[11,11]]}}}],["overwrit",{"_index":449,"t":{"51":{"position":[[692,9]]}}}],["owncloud",{"_index":311,"t":{"46":{"position":[[1474,8],[1700,8],[3717,8]]}}}],["packag",{"_index":53,"t":{"10":{"position":[[114,8]]}}}],["page",{"_index":55,"t":{"10":{"position":[[134,4],[188,4]]},"60":{"position":[[127,4]]}}}],["parent",{"_index":71,"t":{"10":{"position":[[420,6]]},"24":{"position":[[65,6]]},"46":{"position":[[334,6],[3016,6],[3493,6],[4313,6],[6375,6],[7320,6],[7560,6],[9437,6],[9895,6]]}}}],["parentdirectori",{"_index":120,"t":{"12":{"position":[[676,15]]}}}],["pars",{"_index":373,"t":{"46":{"position":[[5754,6],[7302,6],[7460,7],[7754,6],[9733,5]]}}}],["part",{"_index":279,"t":{"37":{"position":[[16,5]]}}}],["past",{"_index":480,"t":{"58":{"position":[[265,7]]}}}],["path",{"_index":351,"t":{"46":{"position":[[4602,5],[5513,4],[6409,5],[6792,6],[9323,4]]}}}],["pattern",{"_index":148,"t":{"12":{"position":[[1479,8]]},"28":{"position":[[739,8],[2746,8]]},"34":{"position":[[528,8]]},"46":{"position":[[4559,7],[4657,7],[4759,9],[4784,8],[5227,7],[5816,7],[6325,8],[6427,7],[6549,7],[6661,7],[6751,8],[6841,7],[7113,7],[7216,7]]}}}],["pend",{"_index":494,"t":{"62":{"position":[[29,7],[132,7]]},"64":{"position":[[63,8]]}}}],["per",{"_index":265,"t":{"34":{"position":[[413,3]]}}}],["perform",{"_index":505,"t":{"64":{"position":[[33,7]]}}}],["peripheri",{"_index":107,"t":{"12":{"position":[[127,9]]},"18":{"position":[[49,9]]},"26":{"position":[[12,9]]}}}],["pi",{"_index":50,"t":{"10":{"position":[[76,3]]}}}],["ping=1",{"_index":330,"t":{"46":{"position":[[2352,6]]}}}],["platform",{"_index":42,"t":{"10":{"position":[[6,8]]}}}],["pleas",{"_index":23,"t":{"5":{"position":[[136,6]]},"7":{"position":[[102,6]]}}}],["plex",{"_index":114,"t":{"12":{"position":[[353,5],[2033,6]]},"24":{"position":[[190,5]]},"28":{"position":[[1293,6]]},"46":{"position":[[728,5],[900,4],[1220,4],[1422,4],[1647,4],[3180,5],[3665,4],[8004,4],[8173,4],[9074,4],[9511,4]]}}}],["poll",{"_index":261,"t":{"34":{"position":[[254,7]]},"46":{"position":[[5140,4]]}}}],["poll_for_upd",{"_index":168,"t":{"12":{"position":[[1945,16],[2166,16],[2355,16]]},"28":{"position":[[1205,16],[1426,16],[1615,16]]},"34":{"position":[[277,17]]},"46":{"position":[[5122,15]]}}}],["poll_for_update=fals",{"_index":95,"t":{"10":{"position":[[868,21]]}}}],["port",{"_index":467,"t":{"53":{"position":[[694,4]]}}}],["possibl",{"_index":466,"t":{"53":{"position":[[674,9]]}}}],["post=0",{"_index":329,"t":{"46":{"position":[[2343,6]]}}}],["prefix",{"_index":122,"t":{"12":{"position":[[731,6],[903,6]]},"28":{"position":[[163,6],[2170,6]]},"32":{"position":[[199,6]]},"49":{"position":[[612,6],[658,7],[733,6]]}}}],["presenc",{"_index":295,"t":{"46":{"position":[[149,8]]}}}],["priorit",{"_index":366,"t":{"46":{"position":[[5425,10],[5521,11]]}}}],["privat",{"_index":273,"t":{"34":{"position":[[713,7]]},"46":{"position":[[8622,8]]}}}],["problem",{"_index":40,"t":{"7":{"position":[[189,8]]}}}],["proce",{"_index":481,"t":{"58":{"position":[[293,7]]}}}],["process",{"_index":137,"t":{"12":{"position":[[1079,10]]},"28":{"position":[[339,10],[2346,10]]}}}],["produc",{"_index":301,"t":{"46":{"position":[[874,7],[1621,7]]}}}],["profil",{"_index":460,"t":{"53":{"position":[[284,7]]}}}],["project",{"_index":75,"t":{"10":{"position":[[470,8]]},"12":{"position":[[254,8]]},"22":{"position":[[17,8],[191,8],[278,8]]},"24":{"position":[[102,7]]},"32":{"position":[[103,8]]},"39":{"position":[[145,8]]},"46":{"position":[[425,8],[494,8],[934,8],[1022,8],[1129,9],[1777,8],[2967,8],[3446,8],[3544,7],[3844,8],[5398,7],[5667,8],[5700,8],[5778,9],[6204,8],[6306,8],[6958,8],[6992,9],[8761,9],[8905,8],[9251,8],[9339,8],[9462,8],[9739,8],[9854,7]]},"58":{"position":[[162,9]]}}}],["project'",{"_index":389,"t":{"46":{"position":[[7143,9],[7243,9]]}}}],["project/fold",{"_index":297,"t":{"46":{"position":[[219,14],[290,14]]}}}],["project1",{"_index":307,"t":{"46":{"position":[[1279,8],[1534,8],[1656,9],[3777,8]]}}}],["proper",{"_index":509,"t":{"66":{"position":[[122,6]]}}}],["provid",{"_index":274,"t":{"34":{"position":[[725,8]]},"46":{"position":[[8126,9],[8218,9],[8530,8],[8608,8]]}}}],["provider/account",{"_index":259,"t":{"34":{"position":[[220,16]]}}}],["proxi",{"_index":317,"t":{"46":{"position":[[1914,5],[1947,6],[1967,5],[2000,5],[2250,6]]}}}],["proxy:2375",{"_index":324,"t":{"46":{"position":[[2232,10]]}}}],["proxy:latest",{"_index":326,"t":{"46":{"position":[[2291,12]]}}}],["put",{"_index":292,"t":{"43":{"position":[[27,4]]}}}],["question",{"_index":10,"t":{"3":{"position":[[124,9]]},"5":{"position":[[198,8]]}}}],["quick",{"_index":101,"t":{"12":{"position":[[12,5]]}}}],["quickstart",{"_index":6,"t":{"3":{"position":[[85,10]]},"5":{"position":[[7,10]]}}}],["raspberri",{"_index":49,"t":{"10":{"position":[[66,9]]}}}],["raw",{"_index":417,"t":{"49":{"position":[[26,3]]}}}],["read",{"_index":283,"t":{"39":{"position":[[16,5]]}}}],["read_onli",{"_index":333,"t":{"46":{"position":[[2427,10]]}}}],["recommend",{"_index":319,"t":{"46":{"position":[[1973,13]]}}}],["refer",{"_index":251,"t":{"32":{"position":[[282,5]]}}}],["refresh",{"_index":497,"t":{"62":{"position":[[89,7]]}}}],["registri",{"_index":258,"t":{"34":{"position":[[211,8]]},"41":{"position":[[94,9]]},"46":{"position":[[5051,8],[5098,8]]}}}],["rel",{"_index":411,"t":{"46":{"position":[[9348,8],[9754,8]]}}}],["relat",{"_index":284,"t":{"39":{"position":[[79,7]]}}}],["remot",{"_index":394,"t":{"46":{"position":[[7393,7],[7622,6],[7680,6],[8459,7],[8552,6]]}}}],["repo",{"_index":62,"t":{"10":{"position":[[274,5]]},"34":{"position":[[627,5]]},"46":{"position":[[267,4],[7284,4],[7429,4],[7506,4],[7605,4],[8106,4],[8153,5],[8198,4],[8239,5],[8428,4],[8480,4],[8505,4],[8829,4]]},"53":{"position":[[98,6]]}}}],["repositori",{"_index":54,"t":{"10":{"position":[[123,10],[177,10]]},"15":{"position":[[11,10]]},"46":{"position":[[7449,10],[7809,12],[8721,10],[8958,10]]}}}],["repository'",{"_index":25,"t":{"5":{"position":[[154,12]]}}}],["repres",{"_index":474,"t":{"56":{"position":[[52,10]]}}}],["represent",{"_index":478,"t":{"56":{"position":[[284,14]]},"58":{"position":[[33,14]]}}}],["requir",{"_index":289,"t":{"41":{"position":[[130,8]]},"46":{"position":[[4120,8],[6495,8],[7049,8],[8780,11]]},"51":{"position":[[522,8]]},"53":{"position":[[514,8],[702,9]]}}}],["resolv",{"_index":136,"t":{"12":{"position":[[1023,9]]},"28":{"position":[[283,9],[2290,9]]}}}],["resour",{"_index":492,"t":{"60":{"position":[[318,7]]},"62":{"position":[[433,7]]}}}],["resourc",{"_index":157,"t":{"12":{"position":[[1704,9],[1741,8],[2555,8]]},"28":{"position":[[103,9],[964,9],[1001,8],[1815,8],[1881,8],[1964,9],[2971,9],[3008,8],[3214,8],[3261,8],[3355,8],[3557,8],[3632,8],[3704,8]]},"34":{"position":[[789,8]]},"39":{"position":[[41,10],[87,9]]},"41":{"position":[[77,9],[157,9],[273,8]]},"43":{"position":[[36,9],[138,8]]},"46":{"position":[[27,9],[51,9],[8433,8]]},"49":{"position":[[50,8],[255,9],[292,8],[585,9]]},"51":{"position":[[39,9],[368,9],[645,8]]},"53":{"position":[[111,8]]},"56":{"position":[[7,8],[82,10],[115,8],[178,9]]},"58":{"position":[[51,9],[114,9],[208,8],[316,8],[351,8],[453,8]]},"60":{"position":[[51,8],[186,9],[248,9]]}}}],["restart",{"_index":99,"t":{"10":{"position":[[950,8]]},"12":{"position":[[841,8]]},"30":{"position":[[171,8]]}}}],["restor",{"_index":513,"t":{"66":{"position":[[214,11]]}}}],["reveal",{"_index":303,"t":{"46":{"position":[[1115,7]]}}}],["review",{"_index":276,"t":{"34":{"position":[[773,6]]}}}],["root",{"_index":409,"t":{"46":{"position":[[8834,6],[8949,4],[9271,4]]}}}],["run",{"_index":121,"t":{"12":{"position":[[717,3]]},"15":{"position":[[213,3],[237,3],[251,3]]},"32":{"position":[[0,3]]},"41":{"position":[[181,3]]},"46":{"position":[[1171,7],[1225,7],[1288,7],[2452,4],[5770,7],[8314,3]]}}}],["run_directori",{"_index":162,"t":{"12":{"position":[[1858,13],[2081,13],[2263,13]]},"28":{"position":[[1118,13],[1341,13],[1523,13]]},"49":{"position":[[410,13]]}}}],["safe",{"_index":508,"t":{"66":{"position":[[30,6]]}}}],["same",{"_index":78,"t":{"10":{"position":[[533,4]]},"32":{"position":[[138,4]]}}}],["save",{"_index":247,"t":{"30":{"position":[[62,4]]},"60":{"position":[[340,4]]}}}],["scan",{"_index":415,"t":{"46":{"position":[[9882,8]]}}}],["scan_dir",{"_index":410,"t":{"46":{"position":[[9303,8]]}}}],["scan_dir=mystack",{"_index":414,"t":{"46":{"position":[[9682,17]]}}}],["scenario",{"_index":104,"t":{"12":{"position":[[68,9]]},"20":{"position":[[136,9]]}}}],["scissor",{"_index":156,"t":{"12":{"position":[[1681,8],[2524,8]]},"28":{"position":[[941,8],[1784,8],[2948,8]]},"49":{"position":[[232,8]]}}}],["search",{"_index":24,"t":{"5":{"position":[[143,6]]},"7":{"position":[[109,6]]}}}],["secret",{"_index":223,"t":{"28":{"position":[[2048,7],[2120,7]]},"53":{"position":[[182,6],[386,6],[626,6]]}}}],["section",{"_index":358,"t":{"46":{"position":[[5003,7],[6020,7]]},"51":{"position":[[281,8]]},"60":{"position":[[332,7]]}}}],["see",{"_index":423,"t":{"49":{"position":[[108,3]]}}}],["select",{"_index":196,"t":{"20":{"position":[[29,6]]}}}],["server",{"_index":86,"t":{"10":{"position":[[685,6],[747,6]]},"12":{"position":[[161,6],[201,6],[604,6],[666,6],[989,6],[1071,7],[1204,7],[1291,7],[1340,7],[1438,7],[1533,7],[1600,7],[1832,6],[1850,7],[2055,6],[2073,7],[2237,6],[2255,7]]},"15":{"position":[[297,6]]},"18":{"position":[[83,6],[106,6]]},"26":{"position":[[86,7],[124,6]]},"28":{"position":[[249,6],[331,7],[464,7],[551,7],[600,7],[698,7],[793,7],[860,7],[1092,6],[1110,7],[1315,6],[1333,7],[1497,6],[1515,7],[2256,6],[2338,7],[2471,7],[2558,7],[2607,7],[2705,7],[2800,7],[2867,7]]},"41":{"position":[[167,7]]},"46":{"position":[[195,6],[4187,6],[7775,6],[8301,6]]},"49":{"position":[[384,6],[402,7]]},"53":{"position":[[564,6]]}}}],["server_nam",{"_index":346,"t":{"46":{"position":[[4149,11]]}}}],["server_name=mi",{"_index":88,"t":{"10":{"position":[[727,14]]},"12":{"position":[[646,14]]},"15":{"position":[[277,14]]}}}],["servic",{"_index":66,"t":{"10":{"position":[[338,9]]},"12":{"position":[[449,9]]},"30":{"position":[[111,9]]},"46":{"position":[[1920,7],[2006,7],[2125,9],[2550,9],[3311,9],[3896,9]]},"49":{"position":[[645,7]]}}}],["set",{"_index":185,"t":{"15":{"position":[[172,3]]},"34":{"position":[[201,3],[237,3],[327,3]]},"41":{"position":[[53,3],[209,8]]},"46":{"position":[[2039,3],[2927,3],[9315,3]]},"53":{"position":[[272,8]]}}}],["setup",{"_index":103,"t":{"12":{"position":[[49,6],[102,5]]},"18":{"position":[[24,5]]}}}],["shortest",{"_index":368,"t":{"46":{"position":[[5504,8]]}}}],["show",{"_index":463,"t":{"53":{"position":[[373,4]]},"62":{"position":[[148,5]]}}}],["singl",{"_index":385,"t":{"46":{"position":[[6810,6]]}}}],["skip",{"_index":483,"t":{"58":{"position":[[482,4]]}}}],["socket",{"_index":318,"t":{"46":{"position":[[1940,6],[1960,6],[1993,6],[2243,6]]}}}],["solut",{"_index":39,"t":{"7":{"position":[[172,8]]}}}],["someth",{"_index":503,"t":{"62":{"position":[[365,9]]}}}],["somethingels",{"_index":413,"t":{"46":{"position":[[9585,13]]}}}],["somewher",{"_index":179,"t":{"15":{"position":[[22,9]]},"30":{"position":[[72,9]]}}}],["sourc",{"_index":299,"t":{"46":{"position":[[379,8],[2798,6],[4249,7],[5412,7],[5715,6],[6280,7],[8934,6]]}}}],["specif",{"_index":199,"t":{"20":{"position":[[127,8]]},"30":{"position":[[44,8]]},"53":{"position":[[662,8]]}}}],["specifi",{"_index":211,"t":{"26":{"position":[[94,7]]},"28":{"position":[[2061,7]]}}}],["src/index.j",{"_index":192,"t":{"15":{"position":[[353,12]]}}}],["src=/komodo",{"_index":237,"t":{"28":{"position":[[3516,11]]}}}],["srcset=\"/komodo",{"_index":241,"t":{"28":{"position":[[3587,15]]}}}],["stack",{"_index":82,"t":{"10":{"position":[[611,6],[718,6]]},"12":{"position":[[637,6],[711,5],[782,6],[1090,6],[1364,5],[1551,5],[1614,5],[1791,9],[2016,9],[2191,9]]},"22":{"position":[[98,6],[257,6]]},"28":{"position":[[53,6],[350,6],[624,5],[811,5],[874,5],[1051,9],[1276,9],[1451,9],[1909,6],[2018,7],[2357,6],[2631,5],[2818,5],[2881,5]]},"32":{"position":[[82,6],[214,6]]},"34":{"position":[[88,6],[187,5],[417,5],[447,9],[647,6],[689,6],[842,6]]},"46":{"position":[[21,5],[120,5],[202,5],[272,6],[373,5],[404,6],[571,6],[882,6],[1001,6],[1629,6],[1690,5],[2792,5],[3101,7],[4003,5],[4084,7],[4202,5],[4243,5],[4269,6],[4611,5],[4718,5],[5189,6],[5406,5],[5709,5],[5970,5],[6274,5],[7289,7],[7434,6],[7511,5],[7782,5],[8111,5],[8203,5],[8308,5],[8485,5],[8928,5]]},"49":{"position":[[342,9]]},"53":{"position":[[79,6]]},"62":{"position":[[276,6],[294,6]]}}}],["stack.config",{"_index":161,"t":{"12":{"position":[[1817,14],[2040,14],[2222,14]]},"28":{"position":[[1077,14],[1300,14],[1482,14]]},"49":{"position":[[369,14]]}}}],["stacks_from",{"_index":348,"t":{"46":{"position":[[4219,11]]}}}],["stacks_from=compos",{"_index":204,"t":{"22":{"position":[[200,21]]},"46":{"position":[[943,22],[3455,21]]}}}],["stacks_from=dir",{"_index":85,"t":{"10":{"position":[[659,15]]},"12":{"position":[[825,15]]},"15":{"position":[[304,15]]},"22":{"position":[[45,17]]},"24":{"position":[[20,15]]},"46":{"position":[[517,18],[811,15],[1566,15],[2990,17]]}}}],["start",{"_index":102,"t":{"12":{"position":[[18,5]]},"15":{"position":[[255,5]]},"46":{"position":[[4820,5],[6473,8],[6907,8]]}}}],["state",{"_index":495,"t":{"62":{"position":[[37,5]]}}}],["statu",{"_index":304,"t":{"46":{"position":[[1144,6]]}}}],["step",{"_index":9,"t":{"3":{"position":[[111,4],[119,4]]},"32":{"position":[[274,4],[323,5]]}}}],["structur",{"_index":399,"t":{"46":{"position":[[7912,9]]}}}],["style=width:100%;height:auto;max",{"_index":233,"t":{"28":{"position":[[3422,32]]}}}],["sub",{"_index":376,"t":{"46":{"position":[[5866,3]]}}}],["subfold",{"_index":73,"t":{"10":{"position":[[447,10]]},"12":{"position":[[812,10]]},"22":{"position":[[115,9]]},"46":{"position":[[598,9],[3062,10]]}}}],["such",{"_index":286,"t":{"39":{"position":[[122,4]]}}}],["suppli",{"_index":287,"t":{"41":{"position":[[34,8]]}}}],["sure",{"_index":2,"t":{"3":{"position":[[42,4]]},"46":{"position":[[9941,4]]}}}],["switch",{"_index":499,"t":{"62":{"position":[[115,9]]}}}],["sync",{"_index":160,"t":{"12":{"position":[[1750,4],[2550,4]]},"28":{"position":[[98,4],[1010,4],[1810,4],[1876,4],[3017,4],[3039,5],[3075,4],[3100,5],[3203,5],[3223,4],[3250,5],[3270,4],[3350,4]]},"34":{"position":[[784,4]]},"43":{"position":[[147,5]]},"49":{"position":[[45,4],[301,4],[580,4]]},"51":{"position":[[34,4],[112,5],[161,4],[363,4],[605,4],[654,4],[736,4]]},"53":{"position":[[120,5]]},"56":{"position":[[2,4],[110,4],[144,5],[241,4],[265,5],[353,4]]},"58":{"position":[[203,4],[311,4],[346,4],[448,4],[497,4]]},"60":{"position":[[38,5],[60,4],[74,4],[114,4]]},"62":{"position":[[5,4]]},"64":{"position":[[18,4]]},"66":{"position":[[6,7],[48,4],[156,4]]}}}],["sync_nam",{"_index":450,"t":{"51":{"position":[[702,9]]}}}],["syncs/689a41a04ed1b642f3053f57",{"_index":230,"t":{"28":{"position":[[3315,30]]}}}],["tab",{"_index":500,"t":{"62":{"position":[[140,3],[461,4]]}}}],["take",{"_index":452,"t":{"53":{"position":[[18,4]]},"62":{"position":[[185,4]]}}}],["text",{"_index":154,"t":{"12":{"position":[[1664,4],[2507,4]]},"28":{"position":[[924,4],[1767,4],[2931,4]]},"49":{"position":[[215,4]]}}}],["text/fil",{"_index":473,"t":{"56":{"position":[[21,9]]}}}],["those",{"_index":382,"t":{"46":{"position":[[6467,5],[6880,5]]}}}],["three",{"_index":278,"t":{"37":{"position":[[10,5]]}}}],["tip",{"_index":100,"t":{"12":{"position":[[0,3]]},"49":{"position":[[595,3]]},"58":{"position":[[245,3],[407,3]]}}}],["tmpf",{"_index":334,"t":{"46":{"position":[[2443,6]]}}}],["toml",{"_index":418,"t":{"49":{"position":[[30,4],[686,4]]},"56":{"position":[[42,4],[246,4],[358,4]]},"58":{"position":[[28,4],[369,4]]},"60":{"position":[[310,4]]},"62":{"position":[[232,5]]}}}],["top",{"_index":374,"t":{"46":{"position":[[5853,3],[6591,3],[6701,3]]},"62":{"position":[[54,3]]}}}],["track",{"_index":392,"t":{"46":{"position":[[7376,7],[7669,8]]}}}],["tri",{"_index":4,"t":{"3":{"position":[[73,3]]},"22":{"position":[[82,3],[241,3]]},"46":{"position":[[555,3],[985,3]]}}}],["true",{"_index":165,"t":{"12":{"position":[[1920,4],[2141,4],[2330,4]]},"28":{"position":[[1180,4],[1401,4],[1590,4]]},"46":{"position":[[2438,4],[4400,4],[4487,5],[7722,4]]},"51":{"position":[[584,4]]}}}],["two",{"_index":300,"t":{"46":{"position":[[463,3],[7805,3]]}}}],["type",{"_index":294,"t":{"46":{"position":[[112,4]]}}}],["tz=america/new_york",{"_index":91,"t":{"10":{"position":[[769,19]]},"12":{"position":[[574,19]]}}}],["ui",{"_index":459,"t":{"53":{"position":[[263,3]]},"60":{"position":[[147,2]]}}}],["under",{"_index":340,"t":{"46":{"position":[[3863,5]]},"64":{"position":[[57,5]]}}}],["understand",{"_index":22,"t":{"5":{"position":[[111,10]]}}}],["unless",{"_index":420,"t":{"49":{"position":[[70,6]]}}}],["unmatch",{"_index":490,"t":{"60":{"position":[[176,9]]}}}],["up",{"_index":124,"t":{"12":{"position":[[891,2]]},"22":{"position":[[341,2]]},"28":{"position":[[151,2],[2158,2]]},"32":{"position":[[187,2]]},"46":{"position":[[1085,3],[1754,2]]},"49":{"position":[[721,2]]},"66":{"position":[[207,2]]}}}],["updat",{"_index":263,"t":{"34":{"position":[[304,8]]},"41":{"position":[[109,7]]},"46":{"position":[[5182,6]]},"62":{"position":[[107,7],[268,7],[396,7]]}}}],["uptim",{"_index":117,"t":{"12":{"position":[[400,6],[2208,7]]},"24":{"position":[[237,6]]},"28":{"position":[[1468,7]]},"46":{"position":[[775,6],[909,6],[3227,6],[8050,6],[8264,6],[9109,6],[9550,6]]}}}],["url",{"_index":224,"t":{"28":{"position":[[2088,4],[3275,4]]},"34":{"position":[[741,3]]},"46":{"position":[[8559,3]]},"53":{"position":[[571,3],[645,3],[735,5]]}}}],["us",{"_index":8,"t":{"3":{"position":[[106,4]]},"5":{"position":[[129,3]]},"10":{"position":[[232,3],[700,3]]},"12":{"position":[[4,3],[233,5],[619,3],[704,3],[1693,3]]},"15":{"position":[[153,3]]},"28":{"position":[[953,3],[2960,3],[3050,5]]},"34":{"position":[[66,4],[564,3],[606,4],[699,3],[820,3]]},"37":{"position":[[25,5],[96,4],[117,5]]},"41":{"position":[[321,4]]},"46":{"position":[[450,5],[805,5],[1560,5],[1765,3],[1954,5],[2813,6],[3008,3],[3477,3],[4570,3],[4668,3],[4940,4],[4977,5],[5063,3],[5118,3],[5654,3],[5686,5],[6191,3],[6560,3],[6672,3],[7124,3],[7227,3],[8491,4],[8583,5],[8941,3],[9138,3],[9291,3],[9331,3],[9599,3],[9678,3]]},"49":{"position":[[244,3],[548,3],[599,3]]},"51":{"position":[[59,5]]},"53":{"position":[[192,3],[466,3]]},"56":{"position":[[104,3]]},"58":{"position":[[88,3],[418,4]]},"64":{"position":[[87,3]]},"66":{"position":[[69,3]]}}}],["usag",{"_index":18,"t":{"5":{"position":[[28,5]]},"15":{"position":[[261,5]]},"34":{"position":[[123,5]]}}}],["user",{"_index":405,"t":{"46":{"position":[[8617,4]]},"51":{"position":[[310,4]]}}}],["valid",{"_index":391,"t":{"46":{"position":[[7370,5],[7537,5],[7616,5]]},"53":{"position":[[729,5]]}}}],["var/run/docker.sock",{"_index":335,"t":{"46":{"position":[[2484,20]]}}}],["var/run/docker.sock:/var/run/docker.sock:ro",{"_index":332,"t":{"46":{"position":[[2382,44],[2624,44]]}}}],["variabl",{"_index":255,"t":{"34":{"position":[[43,10]]},"37":{"position":[[137,10]]},"41":{"position":[[24,9]]},"46":{"position":[[4106,9]]},"51":{"position":[[466,9],[508,9]]},"53":{"position":[[436,9],[500,9]]}}}],["verbos",{"_index":225,"t":{"28":{"position":[[3085,8]]}}}],["verifi",{"_index":437,"t":{"51":{"position":[[177,6]]},"58":{"position":[[490,6]]},"62":{"position":[[310,6]]}}}],["version",{"_index":131,"t":{"12":{"position":[[952,8]]},"15":{"position":[[189,7]]},"28":{"position":[[212,8],[2219,8]]}}}],["version=1",{"_index":331,"t":{"46":{"position":[[2361,9]]}}}],["volum",{"_index":68,"t":{"10":{"position":[[398,8]]},"12":{"position":[[509,8]]},"30":{"position":[[183,8]]},"46":{"position":[[2371,8],[2510,6],[2581,8],[2614,7],[3342,8],[3927,8]]}}}],["want",{"_index":20,"t":{"5":{"position":[[61,4]]},"46":{"position":[[4474,4]]},"60":{"position":[[102,4]]},"66":{"position":[[105,4]]}}}],["warn",{"_index":147,"t":{"12":{"position":[[1415,4]]},"28":{"position":[[675,4],[2682,4]]}}}],["web",{"_index":458,"t":{"53":{"position":[[259,3]]}}}],["whatev",{"_index":486,"t":{"60":{"position":[[84,8]]}}}],["width:100%;margin",{"_index":234,"t":{"28":{"position":[[3455,17]]}}}],["width=640",{"_index":245,"t":{"28":{"position":[[3740,9]]}}}],["within",{"_index":159,"t":{"12":{"position":[[1729,6]]},"28":{"position":[[989,6],[2996,6]]},"46":{"position":[[6364,6]]},"49":{"position":[[280,6]]}}}],["without",{"_index":298,"t":{"46":{"position":[[234,7]]},"49":{"position":[[633,7]]}}}],["work",{"_index":180,"t":{"15":{"position":[[58,7]]},"46":{"position":[[7468,5],[8807,5]]}}}],["write",{"_index":350,"t":{"46":{"position":[[4405,5],[4970,6],[5993,5]]},"53":{"position":[[105,5]]},"56":{"position":[[334,7]]}}}],["write_env",{"_index":349,"t":{"46":{"position":[[4388,9]]}}}],["write_env=fals",{"_index":357,"t":{"46":{"position":[[4900,16],[5947,15]]}}}],["x86",{"_index":45,"t":{"10":{"position":[[36,3]]}}}],["you'll",{"_index":422,"t":{"49":{"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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.b394c1cf.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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.32f1448d.css><script src=/komodo-import/assets/js/runtime~main.5e045682.js defer></script><script src=/komodo-import/assets/js/main.509e1f90.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>