StackPanel

apps

Configuration options for stackpanel.apps

Apps Options

appModules

Additional modules to extend app configuration options.

This allows other modules to add functionality to each app, such as scaffolding, IDE support, deployment settings, etc.

These modules are applied to each app under stackpanel.apps.<appName>.<module>.

PropertyValue
Typelist of module
Default[ ]

apps

Stackpanel apps

Configuration options for defining and managing applications within the Stackpanel environment. This module allows you to declare app-specific settings, dependencies, and runtime configurations that integrate with the Stackpanel orchestration system.

Core configuration options are defined here. These options are extended by other modules to add functionality such as scaffolding, IDE support, and deployment settings. These are typically configured at stackpanel.apps.<appName>.<module>.

A core stackpanel feature and convention is that each app is assigned a stable, deterministic port based on the repo (organization/repo) and app/service name. This allows the port to be known ahead of time without having to pass it around manually.

This key will also be used as the default value by other modules lke Caddy to create virtual hosts for the app.

If you encounter a collision in the port calculation, you can set <appName> to a different name to get a different port range.

PropertyValue
Typeattribute set of (submodule)
Default{ }

Example:

{
  web = {
    name = "web";
    path = "apps/web";
    tls = true;
    # Go app example - enable go features
    go = {
      enable = true;
      # Watch directories for live reload
      watchDirs = [ "cmd" "pkg" "internal" ];
      # tools.go will be automatically created, add dev tools here
      tools = [
        "github.com/golangci/golangci-lint/cmd/golangci-lint"
      ];
      # By default, turborepo integration (package.json), air live reload (.air.toml),
      # tools.go is all scaffolded automatically, but can be suppressed here
      generateFiles = true;
    };
  };
  server = { offset = 1; };
  docs = { domain = "docs"; };
  api = { domain = "api"; tls = true; };
}

apps.<name>.deploy

Colmena deployment mapping for this app

PropertyValue
Typesubmodule
Default{ }

apps.<name>.deploy.enable

Enable deployment mapping for this app

PropertyValue
Typeboolean
Defaultfalse

apps.<name>.deploy.nixos-modules

Extra NixOS modules to import for this app

PropertyValue
Typelist of string
Default[ ]

apps.<name>.deploy.role

Deployment role label for this app

PropertyValue
Typenull or string
Defaultnull

apps.<name>.deploy.secrets

Secret references required by this app during deploy

PropertyValue
Typelist of string
Default[ ]

apps.<name>.deploy.system

Target system/architecture (e.g., x86_64-linux)

PropertyValue
Typenull or string
Defaultnull

apps.<name>.deploy.targets

Target machine ids or tag selectors

PropertyValue
Typelist of string
Default[ ]

apps.<name>.deployment.bindings

Environment variable names to bind to the deployed app. Each name is read from process.env at deploy time. Mark sensitive ones in secrets.

PropertyValue
Typelist of string
Default[ ]

Example:

[
  "DATABASE_URL"
  "CORS_ORIGIN"
  "BETTER_AUTH_SECRET"
]

apps.<name>.deployment.enable

Whether to enable deployment for this app.

PropertyValue
Typeboolean
Defaultfalse

Example:

true


apps.<name>.deployment.host

Deployment host/platform. Combined with framework to determine the alchemy resource type:

framework × host → alchemy resource tanstack-start × cloudflare → TanStackStart nextjs × cloudflare → Nextjs vite × cloudflare → cloudflare.Vite hono × cloudflare → cloudflare.Worker

PropertyValue
Typenull or one of "cloudflare", "fly", "vercel", "aws"
Defaultnull

Example:

"cloudflare"


apps.<name>.deployment.secrets

Subset of bindings that contain sensitive values. These are wrapped with alchemy.secret() at deploy time.

PropertyValue
Typelist of string
Default[ ]

Example:

[
  "DATABASE_URL"
  "BETTER_AUTH_SECRET"
]

apps.<name>.description

Description of the app

PropertyValue
Typenull or string
Defaultnull

apps.<name>.domain

Local development domain

PropertyValue
Typenull or string
Defaultnull

apps.<name>.environments

Environment configurations (key = environment name like "dev", "prod").

PropertyValue
Typeattribute set of (submodule)
Default{ }

apps.<name>.environments.<name>.description

(optional) Description of the environment

PropertyValue
Typenull or string
Defaultnull

apps.<name>.environments.<name>.env

Environment variables for this environment. Key: Environment variable name (e.g., DATABASE_URL) Value: Literal string or vals reference (e.g., ref+sops://...)

PropertyValue
Typeattribute set of string
Default{ }

apps.<name>.environments.<name>.name

Name of the environment

PropertyValue
Typestring
Default""

apps.<name>.framework.astro.enable

Whether to enable Astro (static/SSR).

PropertyValue
Typeboolean
Defaultfalse

Example:

true


apps.<name>.framework.hono.enable

Whether to enable Hono API server.

PropertyValue
Typeboolean
Defaultfalse

Example:

true


apps.<name>.framework.hono.entrypoint

Entrypoint file for the Hono worker.

PropertyValue
Typestring
Default"src/index.ts"

apps.<name>.framework.nextjs.enable

Whether to enable Next.js (App Router or Pages).

PropertyValue
Typeboolean
Defaultfalse

Example:

true


apps.<name>.framework.nextjs.output

Next.js output mode.

PropertyValue
Typeone of "standalone", "export"
Default"standalone"

apps.<name>.framework.nuxt.enable

Whether to enable Nuxt.

PropertyValue
Typeboolean
Defaultfalse

Example:

true


apps.<name>.framework.remix.enable

Whether to enable Remix.

PropertyValue
Typeboolean
Defaultfalse

Example:

true


apps.<name>.framework.tanstack-start.enable

Whether to enable TanStack Start (full-stack SSR with TanStack Router + Nitro).

PropertyValue
Typeboolean
Defaultfalse

Example:

true


apps.<name>.framework.vite.assets-dir

Output directory for built assets.

PropertyValue
Typestring
Default"dist"

apps.<name>.framework.vite.enable

Whether to enable Vite SPA (React, Vue, Svelte, etc.).

PropertyValue
Typeboolean
Defaultfalse

Example:

true


apps.<name>.framework.vite.ssr

Enable Vite SSR mode.

PropertyValue
Typeboolean
Defaultfalse

apps.<name>.name

Display name of the app

PropertyValue
Typestring
Default""

apps.<name>.offset

Port offset from base port. If null, offset is determined by position in apps attrset.

PropertyValue
Typenull or signed integer
Defaultnull

Example:

5


apps.<name>.packageName

NPM package name for turbo filter (e.g., "@stackpanel/web"). If null, defaults to the app name.

PropertyValue
Typenull or string
Defaultnull

Example:

"@myorg/web"


apps.<name>.path

Relative path to the app directory

PropertyValue
Typestring
Default""

apps.<name>.port

Development server port

PropertyValue
Typenull or signed integer
Defaultnull

apps.<name>.tls

Enable TLS for the vhost (requires Step CA)

PropertyValue
Typeboolean
Defaultfalse

apps.<name>.tooling.build

Build tool definition (wrapped).

PropertyValue
Typenull or (submodule)
Defaultnull

apps.<name>.tooling.build-steps

Additional build steps (wrapped).

PropertyValue
Typelist of (submodule)
Default[ ]

apps.<name>.tooling.build-steps.*.args

Arguments passed to the tool.

PropertyValue
Typelist of string
Default[ ]

apps.<name>.tooling.build-steps.*.bin

Optional binary name if the package provides multiple executables.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.build-steps.*.configArg

Argument prefix inserted before configPath (e.g. ["--config"]).

PropertyValue
Typenull or (list of string)
Defaultnull

apps.<name>.tooling.build-steps.*.configPath

Repo-relative config file path for the tool.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.build-steps.*.cwd

Override working directory (repo-relative). Defaults to app path.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.build-steps.*.env

Environment variables for the tool.

PropertyValue
Typeattribute set of string
Default{ }

apps.<name>.tooling.build-steps.*.package

Package that provides the tool binary.

PropertyValue
Typepackage
Defaultnone

apps.<name>.tooling.build.args

Arguments passed to the tool.

PropertyValue
Typelist of string
Default[ ]

apps.<name>.tooling.build.bin

Optional binary name if the package provides multiple executables.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.build.configArg

Argument prefix inserted before configPath (e.g. ["--config"]).

PropertyValue
Typenull or (list of string)
Defaultnull

apps.<name>.tooling.build.configPath

Repo-relative config file path for the tool.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.build.cwd

Override working directory (repo-relative). Defaults to app path.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.build.env

Environment variables for the tool.

PropertyValue
Typeattribute set of string
Default{ }

apps.<name>.tooling.build.package

Package that provides the tool binary.

PropertyValue
Typepackage
Defaultnone

apps.<name>.tooling.dev

Dev tool definition (wrapped).

PropertyValue
Typenull or (submodule)
Defaultnull

apps.<name>.tooling.dev.args

Arguments passed to the tool.

PropertyValue
Typelist of string
Default[ ]

apps.<name>.tooling.dev.bin

Optional binary name if the package provides multiple executables.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.dev.configArg

Argument prefix inserted before configPath (e.g. ["--config"]).

PropertyValue
Typenull or (list of string)
Defaultnull

apps.<name>.tooling.dev.configPath

Repo-relative config file path for the tool.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.dev.cwd

Override working directory (repo-relative). Defaults to app path.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.dev.env

Environment variables for the tool.

PropertyValue
Typeattribute set of string
Default{ }

apps.<name>.tooling.dev.package

Package that provides the tool binary.

PropertyValue
Typepackage
Defaultnone

apps.<name>.tooling.formatters

Formatter definitions (wrapped).

PropertyValue
Typelist of (submodule)
Default[ ]

apps.<name>.tooling.formatters.*.args

Arguments passed to the tool.

PropertyValue
Typelist of string
Default[ ]

apps.<name>.tooling.formatters.*.bin

Optional binary name if the package provides multiple executables.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.formatters.*.configArg

Argument prefix inserted before configPath (e.g. ["--config"]).

PropertyValue
Typenull or (list of string)
Defaultnull

apps.<name>.tooling.formatters.*.configPath

Repo-relative config file path for the tool.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.formatters.*.cwd

Override working directory (repo-relative). Defaults to app path.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.formatters.*.env

Environment variables for the tool.

PropertyValue
Typeattribute set of string
Default{ }

apps.<name>.tooling.formatters.*.package

Package that provides the tool binary.

PropertyValue
Typepackage
Defaultnone

apps.<name>.tooling.install

Install tool definition (wrapped).

PropertyValue
Typenull or (submodule)
Defaultnull

apps.<name>.tooling.install.args

Arguments passed to the tool.

PropertyValue
Typelist of string
Default[ ]

apps.<name>.tooling.install.bin

Optional binary name if the package provides multiple executables.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.install.configArg

Argument prefix inserted before configPath (e.g. ["--config"]).

PropertyValue
Typenull or (list of string)
Defaultnull

apps.<name>.tooling.install.configPath

Repo-relative config file path for the tool.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.install.cwd

Override working directory (repo-relative). Defaults to app path.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.install.env

Environment variables for the tool.

PropertyValue
Typeattribute set of string
Default{ }

apps.<name>.tooling.install.package

Package that provides the tool binary.

PropertyValue
Typepackage
Defaultnone

apps.<name>.tooling.linters

Linter definitions (wrapped).

PropertyValue
Typelist of (submodule)
Default[ ]

apps.<name>.tooling.linters.*.args

Arguments passed to the tool.

PropertyValue
Typelist of string
Default[ ]

apps.<name>.tooling.linters.*.bin

Optional binary name if the package provides multiple executables.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.linters.*.configArg

Argument prefix inserted before configPath (e.g. ["--config"]).

PropertyValue
Typenull or (list of string)
Defaultnull

apps.<name>.tooling.linters.*.configPath

Repo-relative config file path for the tool.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.linters.*.cwd

Override working directory (repo-relative). Defaults to app path.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.linters.*.env

Environment variables for the tool.

PropertyValue
Typeattribute set of string
Default{ }

apps.<name>.tooling.linters.*.package

Package that provides the tool binary.

PropertyValue
Typepackage
Defaultnone

apps.<name>.tooling.test

Test tool definition (wrapped).

PropertyValue
Typenull or (submodule)
Defaultnull

apps.<name>.tooling.test.args

Arguments passed to the tool.

PropertyValue
Typelist of string
Default[ ]

apps.<name>.tooling.test.bin

Optional binary name if the package provides multiple executables.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.test.configArg

Argument prefix inserted before configPath (e.g. ["--config"]).

PropertyValue
Typenull or (list of string)
Defaultnull

apps.<name>.tooling.test.configPath

Repo-relative config file path for the tool.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.test.cwd

Override working directory (repo-relative). Defaults to app path.

PropertyValue
Typenull or string
Defaultnull

apps.<name>.tooling.test.env

Environment variables for the tool.

PropertyValue
Typeattribute set of string
Default{ }

apps.<name>.tooling.test.package

Package that provides the tool binary.

PropertyValue
Typepackage
Defaultnone

apps.<name>.type

App type/runtime (bun, go, python, rust, etc.)

PropertyValue
Typenull or string
Defaultnull

appsComputed

Computed app configurations with ports and URLs.

When pkgs is available, includes wrappedTooling derivations. When pkgs is not available (e.g., flake-parts top-level), wrappedTooling is null.

PropertyValue
Typeattribute set of attribute set of unspecified value
Defaultnone
Read Onlytrue

On this page

Apps OptionsappModulesappsapps.<name>.deployapps.<name>.deploy.enableapps.<name>.deploy.nixos-modulesapps.<name>.deploy.roleapps.<name>.deploy.secretsapps.<name>.deploy.systemapps.<name>.deploy.targetsapps.<name>.deployment.bindingsapps.<name>.deployment.enableapps.<name>.deployment.hostapps.<name>.deployment.secretsapps.<name>.descriptionapps.<name>.domainapps.<name>.environmentsapps.<name>.environments.<name>.descriptionapps.<name>.environments.<name>.envapps.<name>.environments.<name>.nameapps.<name>.framework.astro.enableapps.<name>.framework.hono.enableapps.<name>.framework.hono.entrypointapps.<name>.framework.nextjs.enableapps.<name>.framework.nextjs.outputapps.<name>.framework.nuxt.enableapps.<name>.framework.remix.enableapps.<name>.framework.tanstack-start.enableapps.<name>.framework.vite.assets-dirapps.<name>.framework.vite.enableapps.<name>.framework.vite.ssrapps.<name>.nameapps.<name>.offsetapps.<name>.packageNameapps.<name>.pathapps.<name>.portapps.<name>.tlsapps.<name>.tooling.buildapps.<name>.tooling.build-stepsapps.<name>.tooling.build-steps.*.argsapps.<name>.tooling.build-steps.*.binapps.<name>.tooling.build-steps.*.configArgapps.<name>.tooling.build-steps.*.configPathapps.<name>.tooling.build-steps.*.cwdapps.<name>.tooling.build-steps.*.envapps.<name>.tooling.build-steps.*.packageapps.<name>.tooling.build.argsapps.<name>.tooling.build.binapps.<name>.tooling.build.configArgapps.<name>.tooling.build.configPathapps.<name>.tooling.build.cwdapps.<name>.tooling.build.envapps.<name>.tooling.build.packageapps.<name>.tooling.devapps.<name>.tooling.dev.argsapps.<name>.tooling.dev.binapps.<name>.tooling.dev.configArgapps.<name>.tooling.dev.configPathapps.<name>.tooling.dev.cwdapps.<name>.tooling.dev.envapps.<name>.tooling.dev.packageapps.<name>.tooling.formattersapps.<name>.tooling.formatters.*.argsapps.<name>.tooling.formatters.*.binapps.<name>.tooling.formatters.*.configArgapps.<name>.tooling.formatters.*.configPathapps.<name>.tooling.formatters.*.cwdapps.<name>.tooling.formatters.*.envapps.<name>.tooling.formatters.*.packageapps.<name>.tooling.installapps.<name>.tooling.install.argsapps.<name>.tooling.install.binapps.<name>.tooling.install.configArgapps.<name>.tooling.install.configPathapps.<name>.tooling.install.cwdapps.<name>.tooling.install.envapps.<name>.tooling.install.packageapps.<name>.tooling.lintersapps.<name>.tooling.linters.*.argsapps.<name>.tooling.linters.*.binapps.<name>.tooling.linters.*.configArgapps.<name>.tooling.linters.*.configPathapps.<name>.tooling.linters.*.cwdapps.<name>.tooling.linters.*.envapps.<name>.tooling.linters.*.packageapps.<name>.tooling.testapps.<name>.tooling.test.argsapps.<name>.tooling.test.binapps.<name>.tooling.test.configArgapps.<name>.tooling.test.configPathapps.<name>.tooling.test.cwdapps.<name>.tooling.test.envapps.<name>.tooling.test.packageapps.<name>.typeappsComputed