Skip to main content

UIS CLI Reference

The ./uis command manages the UIS provision-host container and all services within it. Commands are organized into host-level (managing the container) and service-level (managing Kubernetes services inside the container).

Container Management

These commands run on the host machine and manage the UIS container.

CommandDescription
./uis startStart the UIS provision-host container
./uis stopStop the container
./uis restartRestart the container
./uis containerShow container status
./uis shellOpen interactive bash shell in the container
./uis exec <command>Execute a command inside the container
./uis logs [--tail N]Show container logs (default: last 50 lines)
./uis buildBuild the container image locally as uis-provision-host:local

Platform Management

UIS targets multiple Kubernetes platforms (Rancher Desktop, Azure AKS, …). The uis platform subcommands surface them all under a single command interface. See Platforms overview for the full mechanic.

CommandDescription
./uis platform list [--offline|--deep]List all platforms and their state. --offline skips reachability probe; --deep adds per-platform extras (e.g. cluster version, cost).
./uis platform use [<name>] [--offline]Switch the active platform — kubectl context + cluster-config.sh flip together. No arg → interactive picker over reachable platforms. --offline allows switching to an unreachable platform (e.g. to clean up stale state).
./uis platform init <provider>Interactive setup wizard for a cloud platform. Writes .uis.secrets/cloud-accounts/<provider>-default.env.
./uis platform up <provider>Provision the cluster end-to-end. Chains bootstrap + tofu apply + post-apply configuration. Auto-flips active platform to the new cluster on success.
./uis platform status <provider>Show cluster state, external IP, and rough cost estimate. Does not target the active platform — reports on the named one.
./uis platform down <provider>Tear down the cluster. Requires typing the cluster name to confirm (irreversible). Auto-resets active platform back to rancher-desktop on success.

platform list — canonical output

$ ./uis platform list
Active: rancher-desktop

PLATFORM STATUS
rancher-desktop ✓ running (active) local k3s
azure-aks · configured, not running (run './uis platform up azure-aks' to start it)

Four possible state values per row: ✓ running, · configured, not running, · not initialized, ✗ unreachable. See Platforms overview for what each means.

platform use — canonical output

$ ./uis platform use rancher-desktop
✓ Switched: azure-aks → rancher-desktop
$ ./uis platform use      # no arg → interactive picker
PLATFORM STATUS
[1] rancher-desktop ✓ running (currently active) local k3s
azure-aks · configured, not running (run './uis platform up azure-aks' to start it)

Pick a platform [1-1]:

Only running platforms get selectable numbers. Switching to a not initialized or unreachable platform doesn't have a meaningful outcome.

./uis deploy, ./uis undeploy, ./uis list, ./uis status, ./uis configure, ./uis expose, ./uis stack install, and ./uis test all all print a one-line banner identifying the active platform before running:

$ ./uis deploy nginx
ℹ Platform: azure-aks (reachable)
(deploy output follows…)

If no platform is active or the active platform is unreachable, the banner aborts the command with a recovery hint. See Platforms overview for all four banner cases.

Network Management

UIS supports two networking providers — Cloudflare (production-grade tunnels with WAF + your own domain) and Tailscale (per-service Funnel for dev sharing on any network). The uis network subcommands manage both under a single command surface. See Networking for the comparison + walkthrough.

CommandDescription
./uis network listList both providers and their state.
./uis network init <provider>Interactive setup wizard. <provider> is cloudflare or tailscale.
./uis network up <provider> [flags]Deploy the provider into the cluster. Tailscale supports --with-cluster-funnel for an opt-in catch-all device.
./uis network down <provider>Tear down the provider's cluster footprint.
./uis network status <provider>Show provider state, tunnel/route state, pod health.
./uis network verify <provider>Run the provider's diagnostics.
./uis network expose tailscale <service> [--yes]Expose a service via a per-service Tailscale Funnel device. Namespace auto-detected. Tailscale-specific — Cloudflare uses cluster-wide HostRegexp routing instead.
./uis network unexpose tailscale <service>Undo per-service Funnel exposure.

Service Management

Discovery

CommandDescription
./uis listList all services with deployment status
./uis list --category <id>Filter by category (e.g., DATABASES, OBSERVABILITY)
./uis list --allShow all services including disabled
./uis statusShow deployed services health and cluster context
./uis categoriesList all service categories

Deploy and Undeploy

CommandDescription
./uis deployDeploy all enabled/autostart services
./uis deploy <service-id>Deploy a specific service (auto-enables it)
./uis undeploy <service-id>Remove a service from the cluster

Autostart Configuration

Services can be marked for automatic deployment.

CommandDescription
./uis enable <service-id>Add service to autostart (deploys on next ./uis deploy)
./uis disable <service-id>Remove from autostart (does not undeploy)
./uis list-enabledShow all services in autostart configuration
./uis syncAuto-enable all currently deployed services

Verification

CommandDescription
./uis verify <service-id>Run service-specific verification checks

Stack Management

Stacks are pre-configured groups of related services deployed together.

CommandDescription
./uis stacksList all available stacks
./uis stack info <stack-id>Show stack details (components, dependencies)
./uis stack install <stack-id>Install all services in a stack in order
./uis stack install <stack-id> --skip-optionalSkip optional services
./uis stack remove <stack-id>Remove all services in a stack

Available stacks: observability, ai-local, analytics

Secrets Management

CommandDescription
./uis secrets initCreate .uis.secrets/ directory with templates
./uis secrets statusShow which secrets are configured vs missing
./uis secrets editOpen secrets config in editor
./uis secrets generateGenerate Kubernetes secrets from templates
./uis secrets applyApply generated secrets to the cluster
./uis secrets validateValidate secrets config and check required values

Testing

CommandDescription
./uis test-allDeploy and undeploy all services (full integration test)
./uis test-all --dry-runShow test plan without executing
./uis test-all --cleanUndeploy everything first, then run tests
./uis test-all --only <svc> [svc...]Test only specified services and their dependencies

Service-Specific Commands

Tailscale and Cloudflare

Tailscale and Cloudflare are managed through the unified uis network family. The legacy uis tailscale <verb> and uis cloudflare <verb> invocations print a redirect stub and exit non-zero.

ArgoCD

CommandDescription
./uis argocd register <name> <repo-url>Register a GitHub repo as ArgoCD application. Name is used as namespace, repo-url must be full HTTPS URL
./uis argocd remove <name>Remove an ArgoCD application and its namespace
./uis argocd listList registered ArgoCD applications with health and sync status
./uis argocd verifyRun ArgoCD health checks

Host Configuration

Manage configurations for different deployment targets.

CommandDescription
./uis host addList available host templates
./uis host add <template-id>Add a host configuration from template
./uis host listList configured hosts with status

Other Commands

CommandDescription
./uis initFirst-time setup wizard (cluster type, domain, project name)
./uis setupInteractive TUI menu for browsing and deploying services
./uis tools listList optional tools with installation status. See Tools.
./uis tools install <tool-id>Install an optional tool (aws-cli, azure-cli, etc.). See Tools.
./uis docs generate [dir]Generate JSON data files for website documentation
./uis versionShow UIS version
./uis helpShow help

Environment Variables

VariablePurposeDefault
UIS_IMAGEOverride container imageghcr.io/helpers-no/uis-provision-host:latest
UIS_KUBECONFIG_DIROverride kubeconfig directory$HOME/.kube