The alpha StackKits definition archive for a homelab spanning home and cloud
Modern Homelab describes a homelab spanning a Home environment and a Cloud
environment. Its definition keeps control and default data authority at Home
and requires explicitly declared connections and publication between locations.
A normal homelab lives in one place. Modern Homelab describes one that spans two: your home and a cloud server. Today this is an early definition that you can read, initialize, validate and generate. It is not a finished way to run a two-location homelab, so it is meant for exploring and not for family photos or passwords.
Modern Homelab is an alpha definition archive without a supported
installation path. You can initialize, validate and generate it with the
released CLI. Downloading its archive does not establish a working
connection between hosts, protected application access or recovery across
locations. Use Basement Kit or Cloud Kit for an existing installation guide.
The public StackKits release
includes Modern Homelab definition archives alongside the CLI. They describe
the intended sites, application placement, connections and authority boundaries.
Review the release’s release-evidence.json for the runtime evidence that is
actually attached to that version.The toolchain-only installation guide
explains how to download the CLI and Modern definitions. A complete Modern deployment
still needs concrete connection, identity, routing, TLS and location-failure
behavior. A configuration or generated plan alone does not verify those behaviors.
The definition and generated files stay in your workspace folder. The definition keeps control and default data authority at Home. Nothing in the alpha archive moves data between locations on its own.
Choose Basement Kit for an existing Linux host
at home, or Cloud Kit for an existing cloud host
with a domain you control. Their guides keep configuration bootstrap and
release-specific runtime evidence separate.Keep the same distinction when exploring Modern: protect existing data and
retain each workspace’s configuration and operation output. Do not assume
that an application remains available during a connection or Cloud outage
until the selected release has evidence for that behavior.See Choose a StackKit for all entry paths
and application delivery compatibility
for the capabilities declared by the published application adapters.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"kombify","colors":{"primary":"#6366F1","light":"#818CF8","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/kombiverselabs-0b0a8e7b/KJjd5IRouo0WTrDs/images/logo_sized.png?fit=max\u0026auto=format\u0026n=KJjd5IRouo0WTrDs\u0026q=85\u0026s=dd7a94af58a3970049f077be986cb8c4","dark":"https://mintcdn.com/kombiverselabs-0b0a8e7b/KJjd5IRouo0WTrDs/images/logo_sized.png?fit=max\u0026auto=format\u0026n=KJjd5IRouo0WTrDs\u0026q=85\u0026s=dd7a94af58a3970049f077be986cb8c4"},"favicon":"https://mintcdn.com/kombiverselabs-0b0a8e7b/KJjd5IRouo0WTrDs/images/Icon.png?fit=max\u0026auto=format\u0026n=KJjd5IRouo0WTrDs\u0026q=85\u0026s=aa98ac0e30731dc139d4b955ca600db8","appearance":{"default":"dark"},"navbar":{"links":[{"href":"mailto:info@kombify.io","label":"Support"}]},"footer":{"socials":{"github":"https://github.com/kombifyio"},"links":[{"header":"Legal","items":[{"label":"Imprint","href":"https://kombify.io/impressum"},{"label":"Privacy","href":"https://kombify.io/privacy"},{"label":"Terms","href":"https://kombify.io/terms"},{"label":"Status","href":"https://status.kombify.io"}]}]},"search":{"prompt":"Search kombify docs..."},"integrations":{"telemetry":{"enabled":false}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/kombifyio"},{"anchor":"Community","icon":"comments","href":"https://github.com/kombifyio/StackKits/discussions"},{"anchor":"Blog","icon":"newspaper","href":"https://blog.kombify.io"}]},"languages":[{"language":"en","default":true,"href":""},{"language":"de","href":"de"},{"language":"es","href":"es"},{"language":"zh-Hans","href":"zh-Hans"},{"language":"hi","href":"hi"},{"language":"ar","href":"ar"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kombiverselabs-0b0a8e7b","hasAudioNarration":false,"actualSubdomain":"kombiverselabs-0b0a8e7b","customDomains":["docs.kombify.io"],"gitSource":{"type":"github","owner":"kombiverselabs","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af0f66c99ffa6db6967f219","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"en","tag":"Reference","count":304},{"language":"ar","tag":"المرجع","count":298},{"language":"de","tag":"Referenz","count":298},{"language":"es","tag":"Referencia","count":298},{"language":"hi","tag":"संदर्भ","count":298},{"language":"zh-Hans","tag":"参考","count":298},{"language":"en","tag":"Techstack","count":270},{"language":"ar","tag":"Techstack","count":264},{"language":"de","tag":"Techstack","count":264},{"language":"es","tag":"Techstack","count":264},{"language":"hi","tag":"Techstack","count":264},{"language":"zh-Hans","tag":"Techstack","count":264},{"language":"en","tag":"API","count":212},{"language":"ar","tag":"API","count":212},{"language":"de","tag":"API","count":212},{"language":"es","tag":"API","count":212},{"language":"hi","tag":"API","count":212},{"language":"zh-Hans","tag":"API","count":212},{"language":"en","tag":"StackKits","count":104},{"language":"de","tag":"StackKits","count":97},{"language":"ar","tag":"StackKits","count":95},{"language":"es","tag":"StackKits","count":95},{"language":"hi","tag":"StackKits","count":95},{"language":"zh-Hans","tag":"StackKits","count":95},{"language":"en","tag":"CLI","count":84},{"language":"ar","tag":"CLI","count":79},{"language":"de","tag":"CLI","count":79},{"language":"es","tag":"CLI","count":79},{"language":"hi","tag":"CLI","count":79},{"language":"zh-Hans","tag":"CLI","count":79},{"language":"en","tag":"Identity \u0026 Access","count":56},{"language":"ar","tag":"الهوية والوصول","count":50},{"language":"de","tag":"Identität \u0026 Zugriff","count":50},{"language":"es","tag":"Identidad y acceso","count":50},{"language":"hi","tag":"पहचान और एक्सेस","count":50},{"language":"zh-Hans","tag":"身份与访问","count":50},{"language":"en","tag":"Gateway API","count":48},{"language":"ar","tag":"واجهة برمجة تطبيقات Gateway","count":48},{"language":"de","tag":"Gateway-API","count":48},{"language":"es","tag":"API de Gateway","count":48},{"language":"hi","tag":"Gateway API","count":48},{"language":"zh-Hans","tag":"Gateway API","count":48},{"language":"en","tag":"Advanced tools and reference","count":35},{"language":"ar","tag":"الأدوات المتقدمة والمرجع","count":30},{"language":"de","tag":"Erweiterte Werkzeuge und Referenz","count":30},{"language":"es","tag":"Herramientas avanzadas y referencia","count":30},{"language":"hi","tag":"उन्नत टूल और संदर्भ","count":30},{"language":"zh-Hans","tag":"高级工具与参考","count":30},{"language":"en","tag":"Workers","count":21},{"language":"ar","tag":"Workers","count":21},{"language":"de","tag":"Workers","count":21},{"language":"es","tag":"Workers","count":21},{"language":"hi","tag":"Workers","count":21},{"language":"zh-Hans","tag":"Workers","count":21},{"language":"en","tag":"Apps","count":20},{"language":"ar","tag":"Auth","count":20},{"language":"de","tag":"Auth","count":20},{"language":"es","tag":"Auth","count":20},{"language":"hi","tag":"Auth","count":20},{"language":"zh-Hans","tag":"Auth","count":20}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"photo-backup-guide.css","content":".kombify-photo-guide{--ink:#202337;--muted:#696e7c;--quiet:#8b8e9b;--primary:#6366f1;--deep:#4f46e5;--wash:#f0efff;--border:#e9e9f0;--bg:#fff;--panel:#f7f8fb;--soft:#f5f5f9;--green:#25765e;color:var(--ink);font:inherit;font-size:14px;line-height:1.6}.kombify-photo-guide *{box-sizing:border-box}.kombify-photo-guide [hidden]{display:none!important}.kombify-photo-guide .guide-content{max-width:1010px;margin:auto}.kombify-photo-guide a{color:inherit;text-decoration:none}.kombify-photo-guide button,.kombify-photo-guide input{font:inherit}.kombify-photo-guide button{cursor:pointer;touch-action:manipulation}.kombify-photo-guide button:disabled{cursor:default;opacity:.4}.kombify-photo-guide :is(button,a,input,summary):focus-visible{outline:3px solid #9c95ff;outline-offset:4px}.kombify-photo-guide .ico{display:inline-block;width:19px;height:19px;flex-shrink:0;vertical-align:middle}.kombify-photo-guide button .ico{pointer-events:none}.kombify-photo-guide p{margin:0}.kombify-photo-guide h2{font-size:16px;font-weight:640;letter-spacing:-.3px;margin:0}.kombify-photo-guide :is(section,details){scroll-margin-top:110px}.kombify-photo-guide .page-top,.kombify-photo-guide .section-top,.kombify-photo-guide .guide-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.kombify-photo-guide .intro-meta{display:flex;align-items:center;gap:17px;color:var(--quiet);font-size:11px}.kombify-photo-guide .intro-meta span{display:flex;align-items:center;gap:6px}.kombify-photo-guide .intro-meta .ico{width:14px;height:14px}.kombify-photo-guide .tool-button{border:1px solid var(--border);border-radius:8px;padding:8px;background:var(--bg);color:var(--muted);display:flex;align-items:center;justify-content:center}.kombify-photo-guide .ready-strip{margin-top:24px;background:var(--panel);border:1px solid var(--border);padding:11px 15px;display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;border-radius:9px;font-size:11px;color:var(--muted)}.kombify-photo-guide .ready-strip>span{display:flex;align-items:center;gap:6px}.kombify-photo-guide .ready-strip strong{color:var(--ink);white-space:nowrap}.kombify-photo-guide .ready-strip .ico{width:14px;height:14px;color:var(--green)}.kombify-photo-guide .ready-strip a{margin-left:auto;color:var(--deep);white-space:nowrap;font-size:10px}.kombify-photo-guide .downloads{margin-top:26px}.kombify-photo-guide .section-top{margin-bottom:12px}.kombify-photo-guide .small-link{font-size:10px;color:var(--muted)}.kombify-photo-guide .small-link .ico{width:12px}.kombify-photo-guide .downloads-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.kombify-photo-guide .download-card{border:1px solid var(--border);border-radius:11px;display:flex;gap:13px;align-items:center;padding:16px 17px;background:var(--bg);transition:transform .15s,border-color .15s;min-height:89px}.kombify-photo-guide .download-card.active{border-color:#c9c6fa;background:var(--wash)}.kombify-photo-guide .download-card:hover{transform:translateY(-2px);border-color:var(--primary)}.kombify-photo-guide .platform-icon{display:flex;align-items:center;justify-content:center;background:var(--soft);border:1px solid var(--border);width:42px;height:46px;flex-shrink:0;border-radius:11px}.kombify-photo-guide .platform-icon .ico{width:26px;height:26px}.kombify-photo-guide .download-text{display:flex;flex-direction:column;gap:2px;min-width:0}.kombify-photo-guide .download-text strong{font-size:12px;font-weight:650}.kombify-photo-guide .download-text small{font-size:10px;color:var(--muted)}.kombify-photo-guide .store-name{color:var(--deep);font-size:10px;margin-top:4px}.kombify-photo-guide .store-name .ico{width:11px;height:11px}.kombify-photo-guide .download-hint{font-size:10px;color:var(--muted);margin-top:9px}.kombify-photo-guide .download-hint a{color:var(--deep);text-decoration:underline;text-underline-offset:3px}.kombify-photo-guide .download-hint .ico{width:10px;height:10px}.kombify-photo-guide .guide-section{margin-top:31px}.kombify-photo-guide .guide-heading{margin-bottom:13px}.kombify-photo-guide .platform-label{font-size:10px;color:var(--muted)}.kombify-photo-guide .platform-label .ico{width:12px;height:12px}.kombify-photo-guide .wizard{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--bg);box-shadow:0 6px 24px #30215e05}.kombify-photo-guide .step-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--border);padding:0 16px}.kombify-photo-guide .step-tab{display:flex;gap:9px;align-items:center;justify-content:center;position:relative;padding:17px 10px;border:0;background:transparent;font-size:12px;color:var(--muted)}.kombify-photo-guide .step-tab[aria-selected=true]{color:var(--deep);font-weight:600}.kombify-photo-guide .step-tab[aria-selected=true]:after{content:\"\";position:absolute;bottom:-1px;left:10px;right:10px;height:2px;background:var(--primary)}.kombify-photo-guide .step-dot{width:25px;height:25px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;font-size:11px;background:var(--soft)}.kombify-photo-guide .step-tab[aria-selected=true] .step-dot{background:var(--primary);border-color:var(--primary);color:white}.kombify-photo-guide .step-tab.done .step-dot{background:var(--wash);color:var(--green)}.kombify-photo-guide .guide-panel{display:grid;grid-template-columns:minmax(0,1fr) 43%;min-height:460px}.kombify-photo-guide .panel-copy{padding:29px 30px 24px;display:flex;flex-direction:column;min-width:0}.kombify-photo-guide .step-kicker{font-size:9px;letter-spacing:1.35px;font-weight:650;color:var(--primary);margin-bottom:11px}.kombify-photo-guide .panel-copy h3{font-size:25px;line-height:1.24;letter-spacing:-.7px;font-weight:650;margin:0 0 13px}.kombify-photo-guide .step-intro{color:var(--muted);font-size:14px;line-height:1.65;margin-bottom:21px}.kombify-photo-guide .click-list{padding:0;list-style:none;margin:0 0 14px}.kombify-photo-guide .click-list li{display:flex;align-items:flex-start;gap:11px;margin:0 0 15px;font-size:14px;line-height:1.7}.kombify-photo-guide .click-num{width:22px;height:22px;background:var(--wash);color:var(--deep);display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:6px;font-size:10px;font-weight:650;margin-top:2px}.kombify-photo-guide .key{font-size:12px;background:var(--soft);border:1px solid var(--border);border-radius:4px;padding:1px 4px;font-weight:600;white-space:nowrap}.kombify-photo-guide .micro-note{font-size:12px;line-height:1.7;color:var(--muted);display:flex;align-items:flex-start;gap:8px;margin-bottom:15px}.kombify-photo-guide .micro-note .ico{width:14px;height:14px;margin-top:3px}.kombify-photo-guide .panel-copy details{font-size:12px;color:var(--muted);margin:0 0 15px}.kombify-photo-guide summary{cursor:pointer}.kombify-photo-guide .panel-copy summary{color:var(--deep);font-weight:500}.kombify-photo-guide .panel-copy details p{padding-top:8px;line-height:1.8}.kombify-photo-guide .panel-copy details a{color:var(--deep);text-decoration:underline}.kombify-photo-guide .step-check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--green);margin-top:auto;padding-top:10px}.kombify-photo-guide .step-check .ico{width:15px;height:15px}.kombify-photo-guide .panel-visual{border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px 24px 18px;position:relative;min-width:0}.kombify-photo-guide .screenshot-tag{position:absolute;left:15px;top:12px;font-size:8px;letter-spacing:.8px;color:var(--quiet)}.kombify-photo-guide .screenshot-tag .ico{width:11px;height:11px;margin-right:4px}.kombify-photo-guide .screen-figure{width:min(100%,280px);margin:24px 0 0}.kombify-photo-guide .screen-figure.portrait{width:min(100%,205px)}.kombify-photo-guide .screen-figure.tall{width:min(100%,178px)}.kombify-photo-guide .screen-image{position:relative;border:5px solid white;border-radius:10px;background:white;box-shadow:0 8px 24px #35324d14;overflow:hidden}.kombify-photo-guide .screen-image>img{display:block;width:100%;height:auto;margin:0;border-radius:0}.kombify-photo-guide .annotation{position:absolute;border:2px solid #8b79e7;border-radius:5px;box-shadow:0 0 0 2px #8b79e721;pointer-events:none}.kombify-photo-guide .annotation:before{content:attr(data-n);position:absolute;left:-10px;top:-10px;background:#7864cb;color:white;border:2px solid white;border-radius:50%;width:19px;height:19px;text-align:center;font-size:10px;font-weight:700;line-height:15px}.kombify-photo-guide .login-url{top:49.7%;left:12.7%;width:74.5%;height:12.1%}.kombify-photo-guide .login-next{top:64.8%;left:12.7%;width:74.5%;height:9.5%}.kombify-photo-guide .album-mark{top:44.7%;left:3.1%;width:93.6%;height:13.1%}.kombify-photo-guide .enable-mark{top:82%;left:3%;width:94%;height:11.5%;border-color:#bcabff}.kombify-photo-guide .zoom-button{position:absolute;right:8px;bottom:8px;border:1px solid #e5e0ed;border-radius:7px;padding:6px;background:#ffffffeb;color:#656070;display:flex}.kombify-photo-guide .zoom-button .ico{width:15px;height:15px}.kombify-photo-guide figcaption{text-align:center;margin-top:10px;font-size:9px;color:var(--muted)}.kombify-photo-guide figcaption .ico{width:10px;height:10px}.kombify-photo-guide .image-fallback{display:none}.kombify-photo-guide .image-unavailable .screen-image>img,.kombify-photo-guide .image-unavailable .annotation{display:none}.kombify-photo-guide .image-unavailable .image-fallback{min-height:260px;padding:30px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:#656070;font-size:13px;background:#fff}.kombify-photo-guide .image-fallback span{font-size:11px}.kombify-photo-guide .wizard-bottom{display:flex;align-items:center;gap:16px;padding:14px 20px;border-top:1px solid var(--border);background:var(--bg)}.kombify-photo-guide .progress-note{font-size:10px;color:var(--muted);margin-right:auto}.kombify-photo-guide .progress-meter{display:flex;gap:4px;margin-bottom:5px}.kombify-photo-guide .progress-meter span{width:25px;height:3px;border-radius:3px;background:var(--border)}.kombify-photo-guide .progress-meter .done{background:var(--primary)}.kombify-photo-guide .prev,.kombify-photo-guide .next{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:7px;font-size:12px;padding:10px 14px}.kombify-photo-guide .prev{background:transparent;color:var(--muted)}.kombify-photo-guide .next{background:var(--primary);color:white;font-weight:550}.kombify-photo-guide .next .ico,.kombify-photo-guide .prev .ico{width:15px;height:15px}.kombify-photo-guide .provenance-inline{font-size:9px;color:var(--quiet);padding:9px 3px 0;display:flex;gap:5px;align-items:center;flex-wrap:wrap}.kombify-photo-guide .provenance-inline a{text-decoration:underline;text-underline-offset:3px}.kombify-photo-guide .verify-visual{background:var(--panel)}.kombify-photo-guide .flow-device{display:flex;align-items:center;justify-content:center;gap:16px;width:100%}.kombify-photo-guide .flow-node{width:76px;height:89px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);position:relative;border-radius:14px;background:var(--bg)}.kombify-photo-guide .flow-node>.ico{width:34px;height:34px;color:var(--green)}.kombify-photo-guide .flow-arrow{color:var(--green)}.kombify-photo-guide .flow-labels{display:flex;justify-content:space-between;width:225px;font-size:10px;color:var(--muted);margin-top:13px}.kombify-photo-guide .check-stamp{position:absolute;right:-8px;bottom:-8px;background:var(--green);border:3px solid var(--panel);border-radius:50%;width:28px;height:28px;color:white;display:flex;align-items:center;justify-content:center}.kombify-photo-guide .check-stamp .ico{width:14px;height:14px}.kombify-photo-guide .flow-caption{font-size:16px;font-weight:600;margin-top:28px;text-align:center}.kombify-photo-guide .flow-sub{font-size:11px;color:var(--muted);text-align:center;max-width:235px;margin-top:7px}.kombify-photo-guide .verify-list{display:flex;flex-direction:column;gap:13px;margin:0 0 21px}.kombify-photo-guide .verify-list label{display:flex;align-items:flex-start;gap:10px;font-size:13px;cursor:pointer}.kombify-photo-guide .verify-list input{appearance:auto;width:16px;height:16px;margin-top:3px;accent-color:var(--primary);flex-shrink:0}.kombify-photo-guide .done-message{font-size:12px;color:var(--green);padding:10px 12px;background:var(--panel);border-radius:7px;margin-bottom:12px}.kombify-photo-guide .warning{display:flex;gap:12px;padding:16px 18px;border:1px solid #e4e7df;background:#f8faf6;border-radius:10px;margin-top:24px;color:#515b48}.kombify-photo-guide .warning>.ico{width:21px;height:21px;flex-shrink:0}.kombify-photo-guide .warning strong{font-size:12px}.kombify-photo-guide .warning p{font-size:11px;line-height:1.8;margin-top:3px}.kombify-photo-guide .warning a{font-weight:600;text-decoration:underline}.kombify-photo-guide .more-section{margin-top:29px}.kombify-photo-guide .more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kombify-photo-guide .more-card{display:flex;align-items:center;gap:13px;padding:17px;border:1px solid var(--border);border-radius:10px;background:var(--bg);text-align:left;color:var(--ink)}.kombify-photo-guide .more-card>span:nth-child(2){flex:1}.kombify-photo-guide .more-card strong{display:block;font-size:12px;font-weight:600}.kombify-photo-guide .more-card small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.kombify-photo-guide .more-card>.ico{width:15px;height:15px;color:var(--quiet)}.kombify-photo-guide .more-icon{background:var(--wash);color:var(--deep);width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:9px;flex-shrink:0}.kombify-photo-guide .more-icon.green{color:var(--green);background:var(--panel)}.kombify-photo-guide .faq-section{margin-top:32px}.kombify-photo-guide .faq{border-bottom:1px solid var(--border)}.kombify-photo-guide .faq summary{padding:16px 1px;font-size:13px;font-weight:500}.kombify-photo-guide .answer{font-size:13px;line-height:1.8;color:var(--muted);padding:0 2px 16px}.kombify-photo-guide .answer a{color:var(--deep);text-decoration:underline}.kombify-photo-guide .answer .ico{width:11px;height:11px}.kombify-photo-guide .footline{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-top:1px solid var(--border);margin-top:35px;padding-top:20px;font-size:10px;color:var(--muted)}.kombify-photo-guide .attribution strong{font-weight:500;color:var(--ink)}.kombify-photo-guide .attribution .ico{width:10px;height:10px}.kombify-photo-guide .reset{border:0;background:transparent;color:var(--muted);font-size:10px;white-space:nowrap;padding:0}.kombify-photo-guide .source-section{margin-top:17px;font-size:10px;color:var(--muted)}.kombify-photo-guide .source-content{padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-top:10px;font-size:11px;line-height:1.8}.kombify-photo-guide .source-content p+p{margin-top:9px}.kombify-photo-guide .source-links{display:flex;flex-wrap:wrap;gap:8px 15px;margin-top:12px}.kombify-photo-guide .source-links a{color:var(--deep)}.kombify-photo-guide .source-links .ico{width:10px;height:10px}.kombify-photo-guide .dim{font-size:9px;color:var(--quiet);margin-top:14px}.kombify-photo-guide dialog{border:1px solid var(--border);border-radius:16px;padding:0;width:min(560px,calc(100vw - 32px));max-height:85dvh;background:var(--bg);color:var(--ink);box-shadow:0 20px 80px #18122b44;margin:auto}.kombify-photo-guide dialog::backdrop{background:#20163366;backdrop-filter:blur(3px)}.kombify-photo-guide .dialog-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:15px}.kombify-photo-guide .dialog-header h2{font-size:18px}.kombify-photo-guide .dialog-close{border:0;background:var(--soft);color:var(--muted);border-radius:6px;padding:6px;display:flex}.kombify-photo-guide .dialog-body{padding:23px 25px;line-height:1.8}.kombify-photo-guide .dialog-body p{font-size:13px;margin-bottom:14px}.kombify-photo-guide .simple-steps{list-style:decimal;margin:15px 0 22px;padding-left:22px;font-size:13px}.kombify-photo-guide .simple-steps li{padding-left:5px;margin-bottom:12px}.kombify-photo-guide .primary-link{display:inline-flex;align-items:center;gap:8px;background:var(--primary);color:white;padding:10px 14px;border-radius:7px;font-size:12px}.kombify-photo-guide .primary-link .ico{width:13px;height:13px}.kombify-photo-guide .dialog-body .fineprint{font-size:11px;color:var(--muted);margin-top:17px}.kombify-photo-guide .fineprint .ico{width:11px;height:11px}.kombify-photo-guide .zoom-dialog{width:auto;max-width:calc(100vw - 32px)}.kombify-photo-guide .zoom-content{padding:20px;text-align:center}.kombify-photo-guide .zoom-content img{display:block;max-height:65dvh;max-width:min(80vw,820px);width:auto;height:auto;margin:auto}.kombify-photo-guide .zoom-content a{display:inline-block;font-size:11px;color:var(--deep);margin-top:12px}.kombify-photo-guide .zoom-content .ico{width:11px;height:11px}.kombify-photo-guide .toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:10px 20px;border-radius:10px;background:#33304a;color:white;font-size:12px;z-index:90;box-shadow:0 5px 30px #30284722}.dark .kombify-photo-guide{--ink:#ececf5;--muted:#b1b3c5;--quiet:#9b9db0;--primary:#818cf8;--deep:#a5b4fc;--wash:#292745;--border:#343447;--bg:#18181f;--panel:#202029;--soft:#25252f;--green:#6fd4ac}.dark .kombify-photo-guide .warning{background:#25271e;border-color:#454833;color:#dcdfcf}@media (max-width:1000px){.kombify-photo-guide .panel-copy{padding:25px 22px}.kombify-photo-guide .download-card{padding:14px 12px;gap:10px}.kombify-photo-guide .step-tab{font-size:10px;gap:6px}.kombify-photo-guide .panel-visual{padding:22px 15px}.kombify-photo-guide .panel-copy h3{font-size:23px}}@media (max-width:600px){.kombify-photo-guide .page-tools{display:none}.kombify-photo-guide .intro-meta{gap:12px;font-size:10px;flex-wrap:wrap}.kombify-photo-guide .ready-strip{margin-top:19px;padding:11px 12px;gap:7px 12px}.kombify-photo-guide .ready-strip>strong{width:100%}.kombify-photo-guide .ready-strip a{margin-left:0}.kombify-photo-guide .downloads-grid{grid-template-columns:1fr 1fr;gap:8px}.kombify-photo-guide .download-card{padding:14px 12px;gap:10px}.kombify-photo-guide .download-card:nth-child(3){grid-column:1/-1;min-height:auto;border-style:dashed}.kombify-photo-guide .download-card:nth-child(3) .download-text{flex-direction:row;align-items:center;width:100%;gap:6px}.kombify-photo-guide .download-card:nth-child(3) small{display:none}.kombify-photo-guide .download-card:nth-child(3) .store-name{margin-left:auto}.kombify-photo-guide .platform-icon{width:33px;height:37px}.kombify-photo-guide .platform-icon .ico{width:21px;height:21px}.kombify-photo-guide .download-text strong{font-size:11px}.kombify-photo-guide .download-text small,.kombify-photo-guide .store-name{font-size:9px}.kombify-photo-guide .guide-heading h2{font-size:14px}.kombify-photo-guide .step-tabs{padding:0 5px}.kombify-photo-guide .step-tab{flex-direction:column;gap:5px;padding:12px 4px;font-size:10px}.kombify-photo-guide .step-dot{width:22px;height:22px;font-size:9px}.kombify-photo-guide .guide-panel{grid-template-columns:1fr;min-height:0}.kombify-photo-guide .panel-copy{padding:22px}.kombify-photo-guide .panel-copy h3{font-size:22px}.kombify-photo-guide .panel-visual{border-left:0;border-top:1px solid var(--border);min-height:310px;padding:28px 22px 15px}.kombify-photo-guide .screen-figure{width:230px}.kombify-photo-guide .screen-figure.portrait{width:178px}.kombify-photo-guide .screen-figure.tall{width:160px}.kombify-photo-guide .wizard-bottom{padding:12px 13px;gap:6px}.kombify-photo-guide .prev{padding:8px 5px;font-size:11px}.kombify-photo-guide .next{padding:11px;font-size:11px}.kombify-photo-guide .progress-note{font-size:8px}.kombify-photo-guide .progress-meter span{width:17px}.kombify-photo-guide .more-grid{grid-template-columns:1fr}.kombify-photo-guide .footline{flex-wrap:wrap}.kombify-photo-guide .toast{width:calc(100vw - 40px);text-align:center;font-size:11px}.kombify-photo-guide .dialog-header{padding:17px 19px}.kombify-photo-guide .dialog-body{padding:19px}}@media (prefers-reduced-motion:reduce){.kombify-photo-guide *{transition:none!important;animation:none!important}}@media print{.kombify-photo-guide :is(.page-tools,.step-tabs,.wizard-bottom,.more-section,.reset,.toast,.zoom-button){display:none!important}.kombify-photo-guide .guide-panel[hidden]{display:grid!important}.kombify-photo-guide .guide-panel{grid-template-columns:1fr 40%;break-inside:avoid;border-top:1px solid var(--border)}.kombify-photo-guide .warning{break-inside:avoid}}"},{"filePath":"client-setup-guide.css","content":".kombify-client-guide{--ink:#202337;--muted:#696e7c;--quiet:#8b8e9b;--primary:#6366f1;--deep:#4f46e5;--wash:#f0efff;--border:#e9e9f0;--bg:#fff;--panel:#f7f8fb;--soft:#f5f5f9;--green:#25765e;color:var(--ink);font:inherit;font-size:14px;line-height:1.6}.kombify-client-guide *{box-sizing:border-box}.kombify-client-guide [hidden]{display:none!important}.kombify-client-guide .guide-content{max-width:1010px;margin:auto}.kombify-client-guide a{color:inherit;text-decoration:none}.kombify-client-guide button,.kombify-client-guide input{font:inherit}.kombify-client-guide button{cursor:pointer;touch-action:manipulation}.kombify-client-guide button:disabled{cursor:default;opacity:.4}.kombify-client-guide :is(button,a,input,summary):focus-visible{outline:3px solid #9c95ff;outline-offset:4px}.kombify-client-guide .ico{display:inline-block;width:19px;height:19px;flex-shrink:0;vertical-align:middle}.kombify-client-guide button .ico{pointer-events:none}.kombify-client-guide p{margin:0}.kombify-client-guide h2{font-size:16px;font-weight:640;letter-spacing:-.3px;margin:0}.kombify-client-guide :is(section,details){scroll-margin-top:110px}.kombify-client-guide.guide-enhanced .step-content h3{scroll-margin-top:var(--scroll-mt)}.kombify-client-guide .page-top,.kombify-client-guide .section-top,.kombify-client-guide .guide-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.kombify-client-guide .intro-meta{display:flex;align-items:center;gap:17px;color:var(--quiet);font-size:11px}.kombify-client-guide .intro-meta span{display:flex;align-items:center;gap:6px}.kombify-client-guide .intro-meta .ico{width:14px;height:14px}.kombify-client-guide .tool-button{border:1px solid var(--border);border-radius:8px;padding:8px;background:var(--bg);color:var(--muted);display:flex;align-items:center;justify-content:center}.kombify-client-guide .ready-strip{margin-top:24px;background:var(--panel);border:1px solid var(--border);padding:11px 15px;display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;border-radius:9px;font-size:11px;color:var(--muted)}.kombify-client-guide .ready-strip>span{display:flex;align-items:center;gap:6px}.kombify-client-guide .ready-strip strong{color:var(--ink);white-space:nowrap}.kombify-client-guide .ready-strip .ico{width:14px;height:14px;color:var(--green)}.kombify-client-guide .ready-strip a{margin-left:auto;color:var(--deep);white-space:nowrap;font-size:10px}.kombify-client-guide .downloads{margin-top:26px}.kombify-client-guide .section-top{margin-bottom:12px}.kombify-client-guide .small-link{font-size:10px;color:var(--muted)}.kombify-client-guide .small-link .ico{width:12px}.kombify-client-guide .downloads-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:11px}.kombify-client-guide .download-card{border:1px solid var(--border);border-radius:11px;display:flex;gap:13px;align-items:center;padding:16px 17px;background:var(--bg);transition:transform .15s,border-color .15s;min-height:89px}.kombify-client-guide .download-card:hover{transform:translateY(-2px);border-color:var(--primary)}.kombify-client-guide .platform-icon{display:flex;align-items:center;justify-content:center;background:var(--soft);border:1px solid var(--border);width:42px;height:46px;flex-shrink:0;border-radius:11px}.kombify-client-guide .platform-icon .ico{width:26px;height:26px}.kombify-client-guide .download-text{display:flex;flex-direction:column;gap:2px;min-width:0}.kombify-client-guide .download-text strong{font-size:12px;font-weight:650}.kombify-client-guide .download-text small{font-size:10px;color:var(--muted)}.kombify-client-guide .store-name{color:var(--deep);font-size:10px;margin-top:4px}.kombify-client-guide .store-name .ico{width:11px;height:11px}.kombify-client-guide .download-hint{font-size:10px;color:var(--muted);margin-top:9px}.kombify-client-guide .download-hint a{color:var(--deep);text-decoration:underline;text-underline-offset:3px}.kombify-client-guide .download-hint .ico{width:10px;height:10px}.kombify-client-guide .guide-section{margin-top:31px}.kombify-client-guide .guide-heading{margin-bottom:13px}.kombify-client-guide .wizard{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--bg);box-shadow:0 6px 24px #30215e05}.kombify-client-guide .step-tabs{display:grid;grid-template-columns:repeat(var(--kcg-steps,4),minmax(0,1fr));border-bottom:1px solid var(--border);padding:0 16px}.kombify-client-guide .step-tab{display:flex;gap:9px;align-items:center;justify-content:center;position:relative;padding:17px 10px;border:0;background:transparent;font-size:12px;color:var(--muted)}.kombify-client-guide .step-tab[aria-selected=true]{color:var(--deep);font-weight:600}.kombify-client-guide .step-tab[aria-selected=true]:after{content:\"\";position:absolute;bottom:-1px;left:10px;right:10px;height:2px;background:var(--primary)}.kombify-client-guide .step-dot{width:25px;height:25px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;font-size:11px;background:var(--soft)}.kombify-client-guide .step-tab[aria-selected=true] .step-dot{background:var(--primary);border-color:var(--primary);color:white}.kombify-client-guide .step-tab.done .step-dot{background:var(--wash);color:var(--green)}.kombify-client-guide .guide-panel{display:grid;grid-template-columns:minmax(0,1fr) 43%;min-height:460px}.kombify-client-guide.guide-enhanced .guide-panel:not(.active){display:none}.kombify-client-guide .panel-copy{padding:29px 30px 24px;display:flex;flex-direction:column;min-width:0}.kombify-client-guide .step-kicker{font-size:9px;letter-spacing:1.35px;font-weight:650;color:var(--primary);margin-bottom:11px}.kombify-client-guide .panel-copy h3{font-size:25px;line-height:1.24;letter-spacing:-.7px;font-weight:650;margin:0 0 13px}.kombify-client-guide .step-intro{color:var(--muted);font-size:14px;line-height:1.65;margin-bottom:21px}.kombify-client-guide .click-list{padding:0;list-style:none;margin:0 0 14px}.kombify-client-guide .click-list li{display:flex;align-items:flex-start;gap:11px;margin:0 0 15px;font-size:14px;line-height:1.7}.kombify-client-guide .click-num{width:22px;height:22px;background:var(--wash);color:var(--deep);display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:6px;font-size:10px;font-weight:650;margin-top:2px}.kombify-client-guide .key{font-size:12px;background:var(--soft);border:1px solid var(--border);border-radius:4px;padding:1px 4px;font-weight:600;white-space:nowrap}.kombify-client-guide .micro-note{font-size:12px;line-height:1.7;color:var(--muted);display:flex;align-items:flex-start;gap:8px;margin-bottom:15px}.kombify-client-guide .micro-note .ico{width:14px;height:14px;margin-top:3px}.kombify-client-guide .panel-copy details{font-size:12px;color:var(--muted);margin:0 0 15px}.kombify-client-guide summary{cursor:pointer}.kombify-client-guide .panel-copy summary{color:var(--deep);font-weight:500}.kombify-client-guide .panel-copy details p{padding-top:8px;line-height:1.8}.kombify-client-guide .panel-copy details a{color:var(--deep);text-decoration:underline}.kombify-client-guide .step-check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--green);margin-top:auto;padding-top:10px}.kombify-client-guide .step-check .ico{width:15px;height:15px}.kombify-client-guide .panel-visual{border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px 24px 18px;position:relative;min-width:0}.kombify-client-guide .screenshot-tag{position:absolute;left:15px;top:12px;font-size:8px;letter-spacing:.8px;color:var(--quiet)}.kombify-client-guide .screenshot-tag .ico{width:11px;height:11px;margin-right:4px}.kombify-client-guide .screen-figure{width:min(100%,400px);margin:24px 0 0}.kombify-client-guide .screen-figure.phone{width:min(100%,220px)}.kombify-client-guide .screen-image{position:relative;border:5px solid white;border-radius:10px;background:white;box-shadow:0 8px 24px #35324d14;overflow:hidden}.kombify-client-guide .screen-image>img{display:block;width:100%;height:auto;margin:0;border-radius:0}.kombify-client-guide .annotation{position:absolute;border:2px solid #8b79e7;border-radius:5px;box-shadow:0 0 0 2px #8b79e721;pointer-events:none}.kombify-client-guide .annotation:not([data-n]):before{display:none}.kombify-client-guide .annotation:before{content:attr(data-n);position:absolute;left:-10px;top:-10px;background:#7864cb;color:white;border:2px solid white;border-radius:50%;width:19px;height:19px;text-align:center;font-size:10px;font-weight:700;line-height:15px}.kombify-client-guide .zoom-button{position:absolute;right:8px;bottom:8px;border:1px solid #e5e0ed;border-radius:7px;padding:6px;background:#ffffffeb;color:#656070;display:flex}.kombify-client-guide .zoom-button .ico{width:15px;height:15px}.kombify-client-guide .screen-caption{text-align:center;margin-top:10px;font-size:9px;color:var(--muted)}.kombify-client-guide .screen-caption .ico{width:10px;height:10px}.kombify-client-guide .image-fallback{display:none}.kombify-client-guide .image-unavailable .screen-image>img,.kombify-client-guide .image-unavailable .annotation{display:none}.kombify-client-guide .image-unavailable .image-fallback{min-height:260px;padding:30px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:#656070;font-size:13px;background:#fff}.kombify-client-guide .image-fallback span{font-size:11px}.kombify-client-guide .wizard-bottom{display:flex;align-items:center;gap:16px;padding:14px 20px;border-top:1px solid var(--border);background:var(--bg)}.kombify-client-guide .progress-note{font-size:10px;color:var(--muted);margin-right:auto}.kombify-client-guide .progress-meter{display:flex;gap:4px;margin-bottom:5px}.kombify-client-guide .progress-meter span{width:25px;height:3px;border-radius:3px;background:var(--border)}.kombify-client-guide .progress-meter .done{background:var(--primary)}.kombify-client-guide .prev,.kombify-client-guide .next{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:7px;font-size:12px;padding:10px 14px}.kombify-client-guide .prev{background:transparent;color:var(--muted)}.kombify-client-guide .next{background:var(--primary);color:white;font-weight:550}.kombify-client-guide .next .ico,.kombify-client-guide .prev .ico{width:15px;height:15px}.kombify-client-guide .provenance-inline{font-size:9px;color:var(--quiet);padding:9px 3px 0;display:flex;gap:5px;align-items:center;flex-wrap:wrap}.kombify-client-guide .provenance-inline a{text-decoration:underline;text-underline-offset:3px}.kombify-client-guide .verify-list{display:flex;flex-direction:column;gap:13px;margin:0 0 21px}.kombify-client-guide .verify-list label{display:flex;align-items:flex-start;gap:10px;font-size:13px;cursor:pointer}.kombify-client-guide .verify-list input{appearance:auto;width:16px;height:16px;margin-top:3px;accent-color:var(--primary);flex-shrink:0}.kombify-client-guide .more-section{margin-top:29px}.kombify-client-guide .more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kombify-client-guide .more-card{display:flex;align-items:center;gap:13px;padding:17px;border:1px solid var(--border);border-radius:10px;background:var(--bg);text-align:left;color:var(--ink)}.kombify-client-guide .more-card>span:nth-child(2){flex:1}.kombify-client-guide .more-card strong{display:block;font-size:12px;font-weight:600}.kombify-client-guide .more-card small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.kombify-client-guide .more-card>.ico{width:15px;height:15px;color:var(--quiet)}.kombify-client-guide .more-icon{background:var(--wash);color:var(--deep);width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:9px;flex-shrink:0}.kombify-client-guide .more-icon.green{color:var(--green);background:var(--panel)}.kombify-client-guide .faq-section{margin-top:32px}.kombify-client-guide .faq{border-bottom:1px solid var(--border)}.kombify-client-guide .faq .disclosure-title{padding:16px 1px;font-size:13px;font-weight:500}.kombify-client-guide .answer{font-size:13px;line-height:1.8;color:var(--muted);padding:0 2px 16px}.kombify-client-guide .answer a{color:var(--deep);text-decoration:underline}.kombify-client-guide .answer .ico{width:11px;height:11px}.kombify-client-guide .footline{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-top:1px solid var(--border);margin-top:35px;padding-top:20px;font-size:10px;color:var(--muted)}.kombify-client-guide .attribution strong{font-weight:500;color:var(--ink)}.kombify-client-guide .attribution .ico{width:10px;height:10px}.kombify-client-guide .reset{border:0;background:transparent;color:var(--muted);font-size:10px;white-space:nowrap;padding:0}.kombify-client-guide .source-section{margin-top:17px;font-size:10px;color:var(--muted)}.kombify-client-guide .source-content{padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-top:10px;font-size:11px;line-height:1.8}.kombify-client-guide .source-content p+p{margin-top:9px}.kombify-client-guide .source-links{display:flex;flex-wrap:wrap;gap:8px 15px;margin-top:12px}.kombify-client-guide .source-links a{color:var(--deep)}.kombify-client-guide .source-links .ico{width:10px;height:10px}.kombify-client-guide .dim{font-size:9px;color:var(--quiet);margin-top:14px}.kombify-client-guide dialog{border:1px solid var(--border);border-radius:16px;padding:0;width:min(560px,calc(100vw - 32px));max-height:85dvh;background:var(--bg);color:var(--ink);box-shadow:0 20px 80px #18122b44;margin:auto}.kombify-client-guide dialog::backdrop{background:#20163366;backdrop-filter:blur(3px)}.kombify-client-guide .dialog-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:15px}.kombify-client-guide .dialog-header h2{font-size:18px}.kombify-client-guide .dialog-close{border:0;background:var(--soft);color:var(--muted);border-radius:6px;padding:6px;display:flex}.kombify-client-guide .zoom-dialog{width:auto;max-width:calc(100vw - 32px)}.kombify-client-guide .zoom-content{padding:20px;text-align:center}.kombify-client-guide .zoom-content img{display:block;max-height:65dvh;max-width:min(80vw,820px);width:auto;height:auto;margin:auto}.kombify-client-guide .zoom-content a{display:inline-block;font-size:11px;color:var(--deep);margin-top:12px}.kombify-client-guide .zoom-content .ico{width:11px;height:11px}.kombify-client-guide .toast:not(.show){display:none}.kombify-client-guide .toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:10px 20px;border-radius:10px;background:#33304a;color:white;font-size:12px;z-index:90;box-shadow:0 5px 30px #30284722}@media (max-width:1000px){.kombify-client-guide .panel-copy{padding:25px 22px}.kombify-client-guide .download-card{padding:14px 12px;gap:10px}.kombify-client-guide .step-tab{font-size:10px;gap:6px}.kombify-client-guide .panel-visual{padding:22px 15px}.kombify-client-guide .panel-copy h3{font-size:23px}}@media (max-width:600px){.kombify-client-guide .page-tools{display:none}.kombify-client-guide .intro-meta{gap:12px;font-size:10px;flex-wrap:wrap}.kombify-client-guide .ready-strip{margin-top:19px;padding:11px 12px;gap:7px 12px}.kombify-client-guide .ready-strip>.guide-strong{width:100%}.kombify-client-guide .ready-strip a{margin-left:0}.kombify-client-guide .downloads-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kombify-client-guide .step-tab span:last-child{display:none}.kombify-client-guide .download-card{padding:14px 12px;gap:10px}.kombify-client-guide .platform-icon{width:33px;height:37px}.kombify-client-guide .platform-icon .ico{width:21px;height:21px}.kombify-client-guide .download-text strong{font-size:11px}.kombify-client-guide .download-text small,.kombify-client-guide .store-name{font-size:9px}.kombify-client-guide .guide-heading h2{font-size:14px}.kombify-client-guide .step-tabs{padding:0 5px}.kombify-client-guide .step-tab{flex-direction:column;gap:5px;padding:12px 4px;font-size:10px}.kombify-client-guide .step-dot{width:22px;height:22px;font-size:9px}.kombify-client-guide .guide-panel{grid-template-columns:1fr;min-height:0}.kombify-client-guide .panel-copy{padding:22px}.kombify-client-guide .panel-copy h3{font-size:22px}.kombify-client-guide .panel-visual{border-left:0;border-top:1px solid var(--border);min-height:310px;padding:28px 22px 15px}.kombify-client-guide .screen-figure{width:min(100%,360px)}.kombify-client-guide .screen-figure.phone{width:190px}.kombify-client-guide .wizard-bottom{padding:12px 13px;gap:6px}.kombify-client-guide .prev{padding:8px 5px;font-size:11px}.kombify-client-guide .next{padding:11px;font-size:11px}.kombify-client-guide .progress-note{font-size:8px}.kombify-client-guide .progress-meter span{width:17px}.kombify-client-guide .more-grid{grid-template-columns:1fr}.kombify-client-guide .footline{flex-wrap:wrap}.kombify-client-guide .toast{width:calc(100vw - 40px);text-align:center;font-size:11px}.kombify-client-guide .dialog-header{padding:17px 19px}}@media (prefers-reduced-motion:reduce){.kombify-client-guide *{transition:none!important;animation:none!important}}@media print{.kombify-client-guide :is(.page-tools,.step-tabs,.wizard-bottom,.more-section,.reset,.toast,.zoom-button){display:none!important}.kombify-client-guide.guide-enhanced .guide-panel:not(.active){display:grid}.kombify-client-guide .guide-panel{grid-template-columns:1fr 40%;break-inside:avoid;border-top:1px solid var(--border)}}.kombify-client-guide .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.kombify-client-guide .badge{display:inline-flex;align-items:center;gap:4px;width:max-content;max-width:100%;overflow-wrap:anywhere;margin-top:5px;padding:1px 6px;border-radius:999px;font-size:9px;font-weight:600;letter-spacing:.2px;border:1px solid var(--border);color:var(--muted);background:var(--soft)}.kombify-client-guide .badge.official{color:var(--green);border-color:#bfe0d3;background:#f1f9f5}.kombify-client-guide .badge.unofficial{color:#8a5a00;border-color:#ecd9a8;background:#fdf8ea}.kombify-client-guide .screen-image>.annotation{z-index:1}.kombify-client-guide .only-dark{display:none!important}.kombify-client-guide .link-visual{width:min(100%,360px);margin-top:18px;display:flex;flex-direction:column;gap:12px}.kombify-client-guide .link-visual>p{font-size:12px;line-height:1.7;color:var(--muted)}.kombify-client-guide .link-visual>.guide-strong{font-size:15px;font-weight:620}.kombify-client-guide .vendor-link{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg);font-size:12px;color:var(--ink)}.kombify-client-guide .vendor-link:hover{border-color:var(--primary)}.kombify-client-guide .vendor-link small{display:block;font-size:10px;color:var(--muted)}.kombify-client-guide .vendor-link>span{flex:1}.kombify-client-guide .vendor-link .ico{width:14px;height:14px;color:var(--deep)}.kombify-client-guide .screen-caption .meta{display:block;margin-top:3px;color:var(--quiet)}.kombify-client-guide .more-card{text-decoration:none}.dark .kombify-client-guide{--ink:#ececf5;--muted:#b1b3c5;--quiet:#9b9db0;--primary:#818cf8;--deep:#a5b4fc;--wash:#292745;--border:#343447;--bg:#18181f;--panel:#202029;--soft:#25252f;--green:#6fd4ac}.dark .kombify-client-guide .only-dark{display:block!important}.dark .kombify-client-guide .only-light.has-dark{display:none!important}.dark .kombify-client-guide .screen-image{border-color:#2b2b36;background:#2b2b36}.dark .kombify-client-guide .badge.official{background:#1c2a24;border-color:#2f5446}.dark .kombify-client-guide .badge.unofficial{background:#2c2618;border-color:#5a4a22;color:#f0cf85}@media print{.kombify-client-guide .panel-visual{border-left:0}.kombify-client-guide .link-visual a:after{content:\" (\" attr(href) \")\";font-size:9px;color:var(--muted)}.kombify-client-guide .image-fallback{display:none!important}}.kombify-client-guide .disclosure-title{cursor:pointer;text-align:start;color:inherit;font:inherit;background:none;border:0;padding:0}.kombify-client-guide.guide-enhanced [data-guide-disclosure].collapsed>:is(.answer,.source-content){display:none}@media print{.kombify-client-guide.guide-enhanced [data-guide-disclosure].collapsed>:is(.answer,.source-content){display:block}}.kombify-client-guide .guide-strong{font-weight:600}.kombify-client-guide .guide-small{font-size:smaller}@media print{body:has(.kombify-client-guide) #navbar{display:none!important}}"}],"page":{"pagePath":"stackkits/kits/modern-homelab","slug":"/stackkits/kits/modern-homelab","pageMetadata":{"title":"Modern Homelab","description":"The alpha StackKits definition archive for a homelab spanning home and cloud","sidebarTitle":"Modern Homelab (alpha)","icon":"network-wired","href":"/stackkits/kits/modern-homelab"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The alpha StackKits definition archive for a homelab spanning home and cloud\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Modern Homelab describes a homelab spanning a Home environment and a Cloud\nenvironment. Its definition keeps control and default data authority at Home\nand requires explicitly declared connections and publication between locations.`}),`\n`,_jsx(Heading,{level:`2`,id:`in-plain-words`,children:`In plain words`}),`\n`,_jsx(_components.p,{children:`A normal homelab lives in one place. Modern Homelab describes one that spans two: your home and a cloud server. Today this is an early definition that you can read, initialize, validate and generate. It is not a finished way to run a two-location homelab, so it is meant for exploring and not for family photos or passwords.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Modern Homelab is an alpha definition archive without a supported\ninstallation path. You can initialize, validate and generate it with the\nreleased CLI. Downloading its archive does not establish a working\nconnection between hosts, protected application access or recovery across\nlocations. Use Basement Kit or Cloud Kit for an existing installation guide.`})}),`\n`,_jsx(Heading,{level:`2`,id:`what-the-alpha-archive-contains`,children:`What the alpha archive contains`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`https://github.com/kombifyio/StackKits/releases/latest`,children:`public StackKits release`}),`\nincludes Modern Homelab definition archives alongside the CLI. They describe\nthe intended sites, application placement, connections and authority boundaries.\nReview the release’s `,_jsx(_components.code,{children:`release-evidence.json`}),` for the runtime evidence that is\nactually attached to that version.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/guides/stackkits/choosing-a-kit#install-only-the-toolchain`,children:`toolchain-only installation guide`}),`\nexplains how to download the CLI and Modern definitions. A complete Modern deployment\nstill needs concrete connection, identity, routing, TLS and location-failure\nbehavior. A configuration or generated plan alone does not verify those behaviors.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-need-first`,children:`What you need first`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Experience with one of the kits, ideally a working `,_jsx(_components.a,{href:`/stackkits/kits/basement-kit`,children:`Basement Kit`}),`. Read `,_jsx(_components.a,{href:`/guides/stackkits/before-you-start`,children:`Before you start`}),` if you are new.`]}),`\n`,_jsx(_components.li,{children:`A host at home and a cloud host with a domain you control, if you want to follow the definition’s intended shape.`}),`\n`,_jsx(_components.li,{children:`The CLI, installed as described in the toolchain-only guide above.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-can-try-today`,children:`What you can try today`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Install the CLI and the Modern definitions. Expect the tool to be available on your computer, with nothing changed on a server.`}),`\n`,_jsx(_components.li,{children:`Initialize and validate a workspace. Expect a configuration file and a report on whether it is valid.`}),`\n`,_jsx(_components.li,{children:`Generate and read the plan. Expect files and a plan that describe the intended layout, not a running system.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-stored-where`,children:`What is stored where`}),`\n`,_jsx(_components.p,{children:`The definition and generated files stay in your workspace folder. The definition keeps control and default data authority at Home. Nothing in the alpha archive moves data between locations on its own.`}),`\n`,_jsx(Heading,{level:`2`,id:`if-something-goes-wrong`,children:`If something goes wrong`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Validation or generation fails: read the log with `,_jsx(_components.code,{children:`stackkit logs latest --json`}),` and see `,_jsx(_components.a,{href:`/guides/stackkits/troubleshooting`,children:`Troubleshooting`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`You need a working homelab now: use `,_jsx(_components.a,{href:`/stackkits/kits/basement-kit`,children:`Basement Kit`}),` or `,_jsx(_components.a,{href:`/stackkits/kits/cloud-kit`,children:`Cloud Kit`}),`.`]}),`\n`,_jsx(_components.li,{children:`You are unsure what a result proves: a generated plan alone does not verify connections, access or recovery.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`choose-an-entry-path`,children:`Choose an entry path`}),`\n`,_jsxs(_components.p,{children:[`Choose `,_jsx(_components.a,{href:`/stackkits/kits/basement-kit`,children:`Basement Kit`}),` for an existing Linux host\nat home, or `,_jsx(_components.a,{href:`/stackkits/kits/cloud-kit`,children:`Cloud Kit`}),` for an existing cloud host\nwith a domain you control. Their guides keep configuration bootstrap and\nrelease-specific runtime evidence separate.`]}),`\n`,_jsx(_components.p,{children:`Keep the same distinction when exploring Modern: protect existing data and\nretain each workspace’s configuration and operation output. Do not assume\nthat an application remains available during a connection or Cloud outage\nuntil the selected release has evidence for that behavior.`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/guides/stackkits/choosing-a-kit`,children:`Choose a StackKit`}),` for all entry paths\nand `,_jsx(_components.a,{href:`/stackkits/reference/application-delivery-compatibility`,children:`application delivery compatibility`}),`\nfor the capabilities declared by the published application adapters.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Modern Homelab","description":"The alpha StackKits definition archive for a homelab spanning home and cloud","sidebarTitle":"Modern Homelab (alpha)","icon":"network-wired","href":"/stackkits/kits/modern-homelab"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"In plain words","slug":"in-plain-words","depth":2,"children":[]},{"title":"What the alpha archive contains","slug":"what-the-alpha-archive-contains","depth":2,"children":[]},{"title":"What you need first","slug":"what-you-need-first","depth":2,"children":[]},{"title":"What you can try today","slug":"what-you-can-try-today","depth":2,"children":[]},{"title":"What is stored where","slug":"what-is-stored-where","depth":2,"children":[]},{"title":"If something goes wrong","slug":"if-something-goes-wrong","depth":2,"children":[]},{"title":"Choose an entry path","slug":"choose-an-entry-path","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"kombiverselabs-0b0a8e7b","siteName":"kombify","title":"Modern Homelab - kombify","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/stackkits/kits/modern-homelab","matchLevel":0},"de":{"href":"/de/stackkits/kits/modern-homelab","matchLevel":1},"es":{"href":"/es/stackkits/kits/modern-homelab","matchLevel":1},"zh-Hans":{"href":"/zh-Hans/stackkits/kits/modern-homelab","matchLevel":1},"hi":{"href":"/hi/stackkits/kits/modern-homelab","matchLevel":1},"ar":{"href":"/ar/stackkits/kits/modern-homelab","matchLevel":1}}},"lastModified":"2026-10-17T16:21:47.569Z","originalFileLocation":"stackkits/kits/modern-homelab.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The alpha StackKits definition archive for a homelab spanning home and cloud\">\u003cmeta data-mint-head name=\"application-name\" content=\"kombify\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Modern Homelab - kombify\">\u003cmeta data-mint-head property=\"og:description\" content=\"The alpha StackKits definition archive for a homelab spanning home and cloud\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"kombify\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kombify.io/stackkits/kits/modern-homelab\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kombiverselabs-0b0a8e7b.mintlify.site/_mintlify/api/og/v2?division=Kits\u0026amp;title=Modern+Homelab\u0026amp;description=The+alpha+StackKits+definition+archive+for+a+homelab+spanning+home+and+cloud\u0026amp;theme=97f0ab81668eb9bf6fc5e99c\u0026amp;signature=23f85e67fe7108d0c4936345210ecdcf11ac543d361d0b9e6c74ab0508b5b4e4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Modern Homelab - kombify\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The alpha StackKits definition archive for a homelab spanning home and cloud\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kombiverselabs-0b0a8e7b.mintlify.site/_mintlify/api/og/v2?division=Kits\u0026amp;title=Modern+Homelab\u0026amp;description=The+alpha+StackKits+definition+archive+for+a+homelab+spanning+home+and+cloud\u0026amp;theme=97f0ab81668eb9bf6fc5e99c\u0026amp;signature=23f85e67fe7108d0c4936345210ecdcf11ac543d361d0b9e6c74ab0508b5b4e4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kombiverselabs-0b0a8e7b/6N-jvzL82rvGR_d7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"kombify\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366F1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kombify.io/stackkits/kits/modern-homelab\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/stackkits/kits/modern-homelab.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.kombify.io/stackkits/kits/modern-homelab\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.kombify.io/de/stackkits/kits/modern-homelab\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.kombify.io/es/stackkits/kits/modern-homelab\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://docs.kombify.io/zh-Hans/stackkits/kits/modern-homelab\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://docs.kombify.io/hi/stackkits/kits/modern-homelab\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.kombify.io/ar/stackkits/kits/modern-homelab\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.kombify.io/stackkits/kits/modern-homelab\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kombify.io/#organization\",\"name\":\"kombify\",\"url\":\"https://docs.kombify.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kombiverselabs-0b0a8e7b/KJjd5IRouo0WTrDs/images/logo_sized.png?fit=max\u0026auto=format\u0026n=KJjd5IRouo0WTrDs\u0026q=85\u0026s=dd7a94af58a3970049f077be986cb8c4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kombify.io#website\",\"name\":\"kombify\",\"url\":\"https://docs.kombify.io\",\"publisher\":{\"@id\":\"https://docs.kombify.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kombify.io/stackkits/kits/modern-homelab#webpage\",\"url\":\"https://docs.kombify.io/stackkits/kits/modern-homelab\",\"name\":\"Modern Homelab\",\"description\":\"The alpha StackKits definition archive for a homelab spanning home and cloud\",\"dateModified\":\"2026-10-17T16:21:47.569Z\",\"isPartOf\":{\"@id\":\"https://docs.kombify.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kombify.io/stackkits/kits/modern-homelab#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kombify.io/stackkits/kits/modern-homelab#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get started\",\"item\":\"https://docs.kombify.io/stackkits/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kits\",\"item\":\"https://docs.kombify.io/guides/stackkits/choosing-a-kit\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Modern Homelab\",\"item\":\"https://docs.kombify.io/stackkits/kits/modern-homelab\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kombify.io/stackkits/kits/modern-homelab#article\",\"headline\":\"Modern Homelab\",\"name\":\"Modern Homelab\",\"description\":\"The alpha StackKits definition archive for a homelab spanning home and cloud\",\"url\":\"https://docs.kombify.io/stackkits/kits/modern-homelab\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kombify.io/stackkits/kits/modern-homelab#webpage\"},\"dateModified\":\"2026-10-17T16:21:47.569Z\",\"publisher\":{\"@id\":\"https://docs.kombify.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kombify.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"kombify\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"kombify","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/kombifyio"},{"anchor":"Community","icon":"comments","href":"https://github.com/kombifyio/StackKits/discussions"},{"anchor":"Blog","icon":"newspaper","href":"https://blog.kombify.io"}]},"languages":[{"language":"en","default":true,"tabs":[{"tab":"Start","icon":"house","pages":[{"title":"Start","href":""}]},{"tab":"StackKits","icon":"boxes-stacked","groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"StackKits","sidebarTitle":"Overview","icon":"boxes-stacked","href":"/stackkits/overview"},{"title":"Install a homelab in 10 minutes","sidebarTitle":"Install in 10 minutes","icon":"stopwatch","href":"/stackkits/install-in-10-minutes"},{"title":"StackKits quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/stackkits/quickstart"},{"title":"Your first CLI deployment","sidebarTitle":"CLI walkthrough","icon":"terminal","href":"/guides/stackkits/cli-walkthrough"},{"group":"Kits","icon":"box","root":{"title":"Choose a StackKit","sidebarTitle":"Choose a kit","href":"/guides/stackkits/choosing-a-kit"},"pages":[{"title":"Basement Kit","sidebarTitle":"Basement Kit","icon":"house","href":"/stackkits/kits/basement-kit"},{"title":"Cloud Kit","description":"The released StackKits definition for an existing cloud host and owned domain","sidebarTitle":"Cloud Kit","icon":"cloud","href":"/stackkits/kits/cloud-kit"},{"title":"Modern Homelab","sidebarTitle":"Modern Homelab (alpha)","icon":"network-wired","href":"/stackkits/kits/modern-homelab"}]}]},{"group":"Get help","icon":"life-ring","pages":[{"title":"Get help","description":"Where to ask questions, report bugs and report security problems, and what to include","sidebarTitle":"Get help","icon":"headset","href":"/guides/stackkits/support"}]},{"group":"Use cases","icon":"diagram-project","root":{"title":"Use cases","sidebarTitle":"Use cases","icon":"diagram-project","href":"/guides/stackkits/use-cases/overview"},"pages":[{"group":"Photos","icon":"camera-retro","root":{"title":"Photos","sidebarTitle":"Photos","icon":"camera-retro","href":"/guides/stackkits/use-cases/photos"},"pages":[{"title":"Immich","sidebarTitle":"Immich","icon":"images","href":"/stackkits/apps/immich"},{"title":"Back up photos from your phone","sidebarTitle":"Phone backup","icon":"mobile-screen-button","mode":"wide","href":"/guides/stackkits/use-cases/photos/phone-backup"}]},{"group":"Documents \u0026 Files","icon":"folder-open","root":{"title":"Documents \u0026 Files","sidebarTitle":"Documents \u0026 Files","icon":"folder-open","href":"/guides/stackkits/use-cases/documents-and-files"},"pages":[{"title":"Cloudreve","sidebarTitle":"Cloudreve","icon":"folder-cloud","href":"/stackkits/apps/cloudreve"}]},{"group":"Vault","icon":"vault","root":{"title":"Vault","sidebarTitle":"Vault","icon":"vault","href":"/guides/stackkits/use-cases/vault"},"pages":[{"group":"Passwords","icon":"key","root":{"title":"Passwords","sidebarTitle":"Passwords","icon":"key","href":"/guides/stackkits/use-cases/passwords"},"pages":[{"title":"Vaultwarden","sidebarTitle":"Vaultwarden","icon":"vault","href":"/stackkits/apps/vaultwarden"},{"title":"Set up your password manager apps","sidebarTitle":"Password apps","icon":"mobile-screen-button","mode":"wide","href":"/guides/stackkits/use-cases/passwords/clients"}]}]},{"group":"Media","icon":"clapperboard","root":{"title":"Media","sidebarTitle":"Media","icon":"clapperboard","href":"/guides/stackkits/use-cases/media"},"pages":[{"title":"Jellyfin","sidebarTitle":"Jellyfin","icon":"film","href":"/stackkits/apps/jellyfin"}]},{"title":"Smart Home","sidebarTitle":"Smart Home","icon":"house-signal","href":"/guides/stackkits/use-cases/smart-home"},{"group":"Dev","icon":"code","root":{"title":"Dev","sidebarTitle":"Dev","icon":"code","href":"/guides/stackkits/use-cases/development"},"pages":[{"title":"Gitea","sidebarTitle":"Gitea","icon":"code-branch","href":"/stackkits/apps/gitea"}]},{"title":"Mail","sidebarTitle":"Mail","icon":"envelope","href":"/guides/stackkits/use-cases/mail"},{"title":"Game","sidebarTitle":"Game","icon":"gamepad","href":"/guides/stackkits/use-cases/game"},{"title":"Network","sidebarTitle":"Network","icon":"network-wired","href":"/guides/stackkits/use-cases/network"},{"title":"Automation","sidebarTitle":"Automation","icon":"gears","href":"/guides/stackkits/use-cases/automation"},{"title":"Personal AI","sidebarTitle":"Personal AI","icon":"brain","href":"/guides/stackkits/use-cases/personal-ai"}]},{"group":"Guides","icon":"list-check","pages":[{"title":"Before you start: what a homelab is and what you need","sidebarTitle":"Before you start","icon":"map","href":"/guides/stackkits/before-you-start"},{"title":"Configure a StackSpec","sidebarTitle":"Configure a StackSpec","icon":"sliders","href":"/guides/stackkits/configure-stack-spec"},{"title":"Choose application delivery","sidebarTitle":"Application delivery","icon":"route","href":"/guides/stackkits/application-delivery"},{"title":"Review, apply, and verify","sidebarTitle":"Apply safely","icon":"clipboard-check","href":"/guides/stackkits/review-plan-and-apply"},{"title":"StackKits Node Hub","sidebarTitle":"Node Hub","icon":"grid-2","href":"/guides/stackkits/node-hub"},{"title":"Operate a StackKit","sidebarTitle":"Operations","icon":"wrench","href":"/stackkits/reference/day-2-operations"},{"title":"Back up and restore a Basement Kit","sidebarTitle":"Back up and restore","icon":"clock-rotate-left","href":"/guides/stackkits/back-up-and-restore"},{"title":"Use your homelab day to day","sidebarTitle":"Day to day","icon":"house-user","href":"/guides/stackkits/daily-use"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","icon":"life-ring","href":"/guides/stackkits/troubleshooting"}]},{"group":"Platform services","icon":"grid-2","root":{"title":"Platform services","sidebarTitle":"Platform services","icon":"grid-2","href":"/stackkits/apps/overview"},"pages":[{"group":"Access and routing","pages":[{"title":"PocketID","sidebarTitle":"PocketID","icon":"fingerprint","href":"/stackkits/apps/pocketid"},{"title":"TinyAuth","sidebarTitle":"TinyAuth","icon":"lock-keyhole","href":"/stackkits/apps/tinyauth"},{"title":"Login gateway","sidebarTitle":"Login gateway","icon":"shield-check","href":"/stackkits/apps/login-gateway"},{"title":"Traefik","sidebarTitle":"Traefik","icon":"route","href":"/stackkits/apps/traefik"},{"title":"kombify Point DNS","sidebarTitle":"kombify Point DNS","icon":"globe","href":"/stackkits/apps/kombify-point"},{"title":"Whoami","sidebarTitle":"Whoami","icon":"bug","href":"/stackkits/apps/whoami"}]},{"group":"Application platforms","pages":[{"title":"Coolify","sidebarTitle":"Coolify","icon":"cloud-upload","href":"/stackkits/apps/coolify"},{"title":"Komodo","sidebarTitle":"Komodo","icon":"rocket","href":"/stackkits/apps/komodo"}]},{"group":"Dashboards and monitoring","pages":[{"title":"Homepage","sidebarTitle":"Homepage","icon":"house","href":"/stackkits/apps/homepage"},{"title":"Uptime Kuma","sidebarTitle":"Uptime Kuma","icon":"chart-line","href":"/stackkits/apps/uptime-kuma"},{"title":"Dozzle","sidebarTitle":"Dozzle","icon":"list","href":"/stackkits/apps/dozzle"}]}]},{"group":"Reference","icon":"book-bookmark","pages":[{"group":"CLI","icon":"square-terminal","root":{"title":"CLI reference","sidebarTitle":"Overview","icon":"square-terminal","href":"/stackkits/reference/cli/overview"},"pages":[{"group":"Set up your services","pages":[{"title":"stackkit apply","sidebarTitle":"apply","href":"/stackkits/reference/cli/apply"},{"title":"stackkit generate","sidebarTitle":"generate","href":"/stackkits/reference/cli/generate"},{"title":"stackkit init","sidebarTitle":"init","href":"/stackkits/reference/cli/init"},{"title":"stackkit plan","sidebarTitle":"plan","href":"/stackkits/reference/cli/plan"},{"title":"stackkit prepare","sidebarTitle":"prepare","href":"/stackkits/reference/cli/prepare"},{"title":"stackkit setup","sidebarTitle":"setup","href":"/stackkits/reference/cli/setup"},{"title":"stackkit validate","sidebarTitle":"validate","href":"/stackkits/reference/cli/validate"}]},{"group":"Check, maintain and recover","pages":[{"title":"stackkit backup","sidebarTitle":"backup","href":"/stackkits/reference/cli/backup"},{"title":"stackkit break-glass","sidebarTitle":"break-glass","href":"/stackkits/reference/cli/break-glass"},{"title":"stackkit drift","sidebarTitle":"drift","href":"/stackkits/reference/cli/drift"},{"title":"stackkit logs","sidebarTitle":"logs","href":"/stackkits/reference/cli/logs"},{"title":"stackkit remove","sidebarTitle":"remove","href":"/stackkits/reference/cli/remove"},{"title":"stackkit service","sidebarTitle":"service","href":"/stackkits/reference/cli/service"},{"title":"stackkit status","sidebarTitle":"status","href":"/stackkits/reference/cli/status"},{"title":"stackkit upgrade","sidebarTitle":"upgrade","href":"/stackkits/reference/cli/upgrade"},{"title":"stackkit user","sidebarTitle":"user","href":"/stackkits/reference/cli/user"},{"title":"stackkit verify","sidebarTitle":"verify","href":"/stackkits/reference/cli/verify"}]},{"group":"Advanced tools and reference","pages":[{"title":"stackkit address","sidebarTitle":"address","href":"/stackkits/reference/cli/address"},{"title":"stackkit advanced","sidebarTitle":"advanced","href":"/stackkits/reference/cli/advanced"},{"title":"stackkit agent","sidebarTitle":"agent","href":"/stackkits/reference/cli/agent"},{"title":"stackkit app","sidebarTitle":"app","href":"/stackkits/reference/cli/app"},{"title":"stackkit application","sidebarTitle":"application","href":"/stackkits/reference/cli/application"},{"title":"stackkit capacity","sidebarTitle":"capacity","href":"/stackkits/reference/cli/capacity"},{"title":"stackkit channel","sidebarTitle":"channel","href":"/stackkits/reference/cli/channel"},{"title":"stackkit cluster","sidebarTitle":"cluster","href":"/stackkits/reference/cli/cluster"},{"title":"stackkit compat","sidebarTitle":"compat","href":"/stackkits/reference/cli/compat"},{"title":"stackkit completion","sidebarTitle":"completion","href":"/stackkits/reference/cli/completion"},{"title":"stackkit device","sidebarTitle":"device","href":"/stackkits/reference/cli/device"},{"title":"stackkit docs","sidebarTitle":"docs","href":"/stackkits/reference/cli/docs"},{"title":"stackkit feasibility","sidebarTitle":"feasibility","href":"/stackkits/reference/cli/feasibility"},{"title":"stackkit federation","sidebarTitle":"federation","href":"/stackkits/reference/cli/federation"},{"title":"stackkit fleet","sidebarTitle":"fleet","href":"/stackkits/reference/cli/fleet"},{"title":"stackkit game","sidebarTitle":"game","href":"/stackkits/reference/cli/game"},{"title":"stackkit host","sidebarTitle":"host","href":"/stackkits/reference/cli/host"},{"title":"stackkit identity","sidebarTitle":"identity","href":"/stackkits/reference/cli/identity"},{"title":"stackkit image","sidebarTitle":"image","href":"/stackkits/reference/cli/image"},{"title":"stackkit kit","sidebarTitle":"kit","href":"/stackkits/reference/cli/kit"},{"title":"stackkit migrate","sidebarTitle":"migrate","href":"/stackkits/reference/cli/migrate"},{"title":"stackkit module","sidebarTitle":"module","href":"/stackkits/reference/cli/module"},{"title":"stackkit network","sidebarTitle":"network","href":"/stackkits/reference/cli/network"},{"title":"stackkit notify","sidebarTitle":"notify","href":"/stackkits/reference/cli/notify"},{"title":"stackkit operations","sidebarTitle":"operations","href":"/stackkits/reference/cli/operations"},{"title":"stackkit output-transaction","sidebarTitle":"output-transaction","href":"/stackkits/reference/cli/output-transaction"},{"title":"stackkit registry","sidebarTitle":"registry","href":"/stackkits/reference/cli/registry"},{"title":"stackkit relocate","sidebarTitle":"relocate","href":"/stackkits/reference/cli/relocate"},{"title":"stackkit resolve","sidebarTitle":"resolve","href":"/stackkits/reference/cli/resolve"},{"title":"stackkit runtime","sidebarTitle":"runtime","href":"/stackkits/reference/cli/runtime"},{"title":"stackkit secrets","sidebarTitle":"secrets","href":"/stackkits/reference/cli/secrets"},{"title":"stackkit support","sidebarTitle":"support","href":"/stackkits/reference/cli/support"},{"title":"stackkit use-cases","sidebarTitle":"use-cases","href":"/stackkits/reference/cli/use-cases"},{"title":"stackkit version","sidebarTitle":"version","href":"/stackkits/reference/cli/version"},{"title":"stackkit wallet-item","sidebarTitle":"wallet-item","href":"/stackkits/reference/cli/wallet-item"}]},{"title":"Legacy and deprecated commands","sidebarTitle":"Legacy and deprecated","href":"/stackkits/reference/cli/legacy"}]},{"title":"StackSpec","sidebarTitle":"StackSpec","icon":"file-code","href":"/stackkits/reference/spec-format"},{"title":"StackKit Open Spec","sidebarTitle":"Open Spec (v0)","icon":"file-contract","href":"/stackkits/open-spec"},{"title":"CUE and StackKits","sidebarTitle":"CUE","icon":"cubes","href":"/stackkits/explanations/cue-architecture"},{"title":"StackKits MCP connector","sidebarTitle":"MCP connector","icon":"plug","href":"/stackkits/reference/mcp-connector"},{"title":"Use-case catalog","sidebarTitle":"Use-case catalog","icon":"diagram-project","href":"/stackkits/reference/use-case-catalog"},{"title":"Applications in the released catalog","sidebarTitle":"Application catalog","icon":"table-list","href":"/stackkits/reference/application-catalog"},{"title":"OS compatibility","sidebarTitle":"OS compatibility","icon":"server","href":"/stackkits/reference/os-compatibility"},{"title":"Application delivery compatibility","sidebarTitle":"Application delivery compatibility","icon":"route","href":"/stackkits/reference/application-delivery-compatibility"}]}]},{"tab":"Techstack","icon":"layer-group","pages":[{"title":"Techstack","href":"/techstack/overview"}]},{"tab":"SpeechKit","icon":"microphone","pages":[{"title":"SpeechKit","href":"/speechkit/overview"}]},{"tab":"Apps","icon":"grid-2","pages":[{"title":"Apps","href":"/apps/cloud/overview"}]},{"tab":"Identity \u0026 Access","icon":"shield-halved","pages":[{"title":"Identity \u0026 Access","href":"/identity/overview"}]},{"tab":"Changelog","icon":"newspaper","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},{"language":"de","pages":[{"title":"de","href":"/de/stackkits/kits/modern-homelab"}]},{"language":"es","pages":[{"title":"es","href":"/es/stackkits/kits/modern-homelab"}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-Hans/stackkits/kits/modern-homelab"}]},{"language":"hi","pages":[{"title":"hi","href":"/hi/stackkits/kits/modern-homelab"}]},{"language":"ar","pages":[{"title":"ar","href":"/ar/stackkits/kits/modern-homelab"}]}]},"basePath":"","title":"Modern Homelab - kombify","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}