> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombify.io/llms.txt
> Use this file to discover all available pages before exploring further.

# stackkit init

> Initialize a new deployment from a StackKit

Initialize a new deployment from a StackKit.

Create a stack-spec.yaml in your deployment directory. This saves your choices; it does not install services or change the host. The standalone local path works without a kombify account or Techstack.

Start with the selected Kit's catalog defaults. `--owner-source=local` keeps the owner on this machine and needs `--owner-email` for the local PocketID owner. Cloud Kit uses a kombify.me address unless `--domain` names a domain that already points at this host.

Review the saved configuration before generating or applying it. Defaults are recorded as explicit intent and validated by the Kit's CUE contract. Required information, such as a domain, is requested when the Kit needs it. Use `--non-interactive` in scripts to fail instead of prompting.

For precise control, use `--use-case-alternative` and `--module-compute-profile` instead of `--catalog-defaults`. These selections come from the chosen Kit. Native authoring uses stackkit/v2alpha2; `--api-version` stackkit/v2alpha1 selects the explicit legacy graph adapter. Flags marked v0.6 compatibility are accepted only by an explicitly versioned v0.6 binary.

```bash theme={null}
stackkit init [stackkit] [flags]
```

| Flag                             | Type        | Default             | Description                                                                                                                                                        |
| -------------------------------- | ----------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `--admin-email`                  | string      | —                   | v0.6 compatibility only: admin email for login accounts                                                                                                            |
| `--api-version`                  | string      | `stackkit/v2alpha2` | StackSpec contract (stackkit/v2alpha2; explicit legacy adapter: stackkit/v2alpha1)                                                                                 |
| `--candidate-spec`               | string      | —                   | Native v2 only: preserve a complete CUE-valid StackSpec from a file or - for stdin; excludes authoring overrides                                                   |
| `--catalog-defaults`             | bool        | —                   | Accept CUE catalog defaults for omitted native alternatives and compute profiles; persist explicit intent                                                          |
| `--cloud-oidc-client-id`         | string      | —                   | v0.6 compatibility only: Cloud OIDC client ID                                                                                                                      |
| `--cloud-oidc-client-secret-ref` | string      | —                   | v0.6 compatibility only: Cloud OIDC client secret reference (e.g. secret://)                                                                                       |
| `--cloud-oidc-foreign-subject`   | string      | —                   | v0.6 compatibility only: Cloud user's foreign subject ID                                                                                                           |
| `--cloud-oidc-issuer`            | string      | —                   | v0.6 compatibility only: Cloud OIDC issuer URL for auto/cloud owner handoff                                                                                        |
| `--cluster-mode`                 | string      | `first`             | v0.6 compatibility only: cluster mode (first\|join)                                                                                                                |
| `--compute-tier`                 | string      | —                   | Legacy v2alpha1 only: declared kit graph (low, standard, high)                                                                                                     |
| `--domain`                       | string      | —                   | Domain override for the generated stack spec                                                                                                                       |
| `--enable`                       | strings     | —                   | Native v2 only: optional kit capabilities to enable (capabilities.enable, e.g. lan-dns,internal-pki)                                                               |
| `--expected-spec-hash`           | string      | —                   | Native v2 only: exact current CUE-normalized spec hash required for replacement                                                                                    |
| `--force, -f`                    | bool        | —                   | v0.6 compatibility only: overwrite existing files                                                                                                                  |
| `--hardware-profile`             | string      | —                   | Device class for nodes\[0].hardware.profile (standard, pi, gpu, storage). pi is a constrained homelab device, not Raspberry-only. Not auto-detected from inventory |
| `--local-dns`                    | bool        | —                   | v0.6 compatibility only: use Kombify Point local DNS names                                                                                                         |
| `--local-name`                   | string      | —                   | v0.6 compatibility only: local DNS short name for `--local-dns`                                                                                                    |
| `--mode`                         | string      | —                   | v0.6 compatibility only: installation mode (bare, bootstrapped, advanced)                                                                                          |
| `--module-accelerator-profile`   | stringArray | —                   | Native v2alpha2: module-id=accelerator-profile for a declared accelerator dimension                                                                                |
| `--module-compute-profile`       | stringArray | —                   | Native v2alpha2: module-id=profile; repeat for every selected workload module                                                                                      |
| `--module-storage-profile`       | stringArray | —                   | Native v2alpha2: module-id=storage-profile for a declared storage dimension                                                                                        |
| `--name`                         | string      | —                   | Deployment contract ID (defaults to a normalized working-directory name)                                                                                           |
| `--non-interactive`              | bool        | —                   | Run in non-interactive mode (fail if input is required)                                                                                                            |
| `--output, -o`                   | string      | `deploy`            | v0.6 compatibility only: output directory for generated files                                                                                                      |
| `--owner-bootstrap-mode`         | string      | —                   | v0.6 compatibility only: owner bootstrap mode (auto\|custom\|none)                                                                                                 |
| `--owner-display-name`           | string      | —                   | Desired PocketID owner display name for `--owner-source=local`                                                                                                     |
| `--owner-email`                  | string      | —                   | Desired PocketID owner email for `--owner-source=local`                                                                                                            |
| `--owner-source`                 | string      | —                   | Owner custody source (native standalone: local; v0.6 compatibility: local\|cloud)                                                                                  |
| `--owner-username`               | string      | —                   | Desired PocketID owner username for `--owner-source=local`                                                                                                         |
| `--platform`                     | string      | —                   | Native v2 only: selected-provider platform adapter (install.platform.providerRef, e.g. coolify or komodo)                                                          |
| `--recovery-material-ref`        | string      | —                   | v0.6 compatibility only: reference to orchestrator-owned recovery material; plaintext recovery passphrases are never accepted in stack specs                       |
| `--recovery-passphrase-hash`     | string      | —                   | v0.6 compatibility only: recovery passphrase hash (argon2id PHC); prompts when missing                                                                             |
| `--service-profile`              | string      | —                   | v0.6 compatibility only: BaseKit service profile                                                                                                                   |
| `--use-case`                     | strings     | —                   | Optional kit workloads to enable (e.g. photos,files,vault); v2alpha2 requires explicit alternatives                                                                |
| `--use-case-alternative`         | stringArray | —                   | Native v2alpha2: use-case-id=alternative; include required core workloads                                                                                          |

**Examples**

```bash theme={null}
# Basement Kit for a home server, with the Kit's catalog defaults
mkdir my-homelab && cd my-homelab
stackkit init basement-kit --catalog-defaults --owner-source=local --owner-email you@example.com

# Basement Kit with the optional Photos and Files use cases
stackkit init basement-kit --catalog-defaults --owner-source=local --owner-email you@example.com --use-case photos,files

# Cloud Kit for a public VPS on a kombify.me address
mkdir my-cloud && cd my-cloud
stackkit init cloud-kit --catalog-defaults --owner-source=local --owner-email you@example.com

# Cloud Kit on your own domain, without prompts (for scripts)
stackkit init cloud-kit --catalog-defaults --owner-source=local --owner-email you@example.com --domain example.com --non-interactive

# Pick the core alternative and module profile explicitly instead of catalog defaults
stackkit init basement-kit --owner-source=local --owner-email you@example.com --use-case-alternative basement-core=standalone --module-compute-profile stackkits-basement-core-runtime=standard
```
