Lookup tables for the public CLI, endpoint variables, local settings, and fogstack-owned resources. For a first run, use the Tutorial; for recovery, use the Runbook.
| Command | Contract |
|---|---|
fog init [--force] |
Creates .env from .env.example. Refuses to replace an existing file unless --force is explicit. |
fog up [--profile minimal|full] |
Diagnoses required runtime capabilities; creates or reuses the cluster, registry, and selected services; waits for health; prints endpoints. Defaults to minimal. |
fog demo [--profile minimal|full] |
Starts/reuses the selected stack, builds and pushes the included sample app, deploys it idempotently with Helm, then prints a verified local URL and response. |
fog down |
Stops/removes fogstack runtime resources while preserving named data volumes. |
fog down --volumes --yes |
Permanently deletes fogstack-owned named data volumes as well. --yes is required for non-interactive destructive cleanup. |
fog status [--profile minimal|full] |
Prints one row per component and exits non-zero when unhealthy. Without a flag, uses the last-started profile when available. |
fog endpoints [--profile minimal|full] |
Prints shell-safe KEY=value lines. Without a flag, uses the last-started profile when available. Read-only. |
fog doctor [--profile minimal|full] |
Checks Docker, 8 GB Docker memory, required runtime tools, compatibility, ports, and host isolation. Exits 2 on a blocking failure and provides remediation. |
fog tf-init [--force] <dir> |
Generates <dir>/fogstack_override.tf for the local AWS-compatible endpoint. Refuses to replace an existing file without --force. |
fog version |
Prints the fogstack version. |
Use --verbose where supported to enable shell tracing. Expected unhealthy
states use domain messages and documented exit codes; line-number diagnostics
are reserved for unexpected internal failures.
fog-toolbox, next to fog, builds/runs pinned contributor and client tools.
See the Runbook.
| Capability | Required host commands |
|---|---|
| minimal/full runtime | docker, kind, kubectl, curl |
| sample-app demo | runtime commands plus helm |
| Terraform override/use | terraform (and full runtime for AWS calls) |
| AWS recipes | aws (and full runtime) |
| contributor verification | checks/verify.sh; pinned tools are available through fog-toolbox |
Normal users need compatible client versions, not exact patch equality with repository pins. Strict pin enforcement is reserved for repository development.
| Variable | Profile | Example value |
|---|---|---|
KUBECONFIG |
minimal, full | <repo>/.state/kubeconfig.yaml |
KUBE_CONTEXT |
minimal, full | kind-fogstack |
REGISTRY |
minimal, full | localhost:5001 |
POSTGRES_URL |
minimal, full | postgresql://fogstack:test@localhost:5432/appdb |
REDIS_URL |
minimal, full | redis://localhost:6379/0 |
AWS_ENDPOINT_URL |
full | http://localhost:4566 |
OPENSEARCH_URL |
full | http://localhost:9200 |
DASHBOARDS_URL |
full | http://localhost:5601 |
Preview this output before using eval. Variables apply only to the current
shell and should not be copied into a global shell profile.
Use fog init to create .env, then edit local values if required. An exported
shell value takes precedence where supported.
| Variable | Default | Purpose |
|---|---|---|
FOGSTACK_PROFILE |
minimal |
Default profile before any last-started profile is recorded. |
CLUSTER_NAME |
fogstack |
kind cluster name. |
KUBE_CONTEXT |
kind-fogstack |
Context inside the repo-local kubeconfig. |
REGISTRY_NAME |
fogstack-registry |
Registry container name. |
REGISTRY_HOST / REGISTRY_PORT |
localhost / 5001 |
Registry endpoint. |
POSTGRES_HOST / POSTGRES_PORT |
localhost / 5432 |
Postgres endpoint. |
POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DB |
fogstack / test / appdb |
Development-only database values. |
REDIS_HOST / REDIS_PORT / REDIS_DB |
localhost / 6379 / 0 |
Redis endpoint. |
AWS_ENDPOINT_URL |
http://localhost:4566 |
Full-profile AWS-compatible endpoint. |
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY |
test / test |
Fake local credentials. |
AWS_DEFAULT_REGION |
us-east-1 |
Fake local region. |
OPENSEARCH_URL / DASHBOARDS_URL |
localhost:9200 / localhost:5601 |
Full-profile search endpoints. |
Image versions and client pins live in versions.env; change them only during
an intentional stack upgrade. Never put real credentials in .env.
| Container | Host port | Profile | Role |
|---|---|---|---|
fogstack-control-plane, fogstack-worker* |
— | minimal, full | kind nodes |
fogstack-registry |
127.0.0.1:5001 |
minimal, full | OCI registry |
fogstack-postgres |
127.0.0.1:5432 |
minimal, full | Postgres |
fogstack-redis |
127.0.0.1:6379 |
minimal, full | Redis |
fogstack-emulator |
127.0.0.1:4566, 7001-7099 |
full | AWS-compatible API |
fogstack-opensearch |
127.0.0.1:9200 |
full | OpenSearch |
fogstack-dashboards |
127.0.0.1:5601 |
full | OpenSearch Dashboards |
| cloud-provider-kind LB containers | dynamic localhost ports | minimal, full | one per LoadBalancer service |
Named volumes are fogstack-pgdata, fogstack-redis-data,
fogstack-emulator-data, and fogstack-opensearch-data. fog down preserves
them. Only the acknowledged fog down --volumes --yes removes them.
| File | Purpose |
|---|---|
kubeconfig.yaml |
Repo-local kubeconfig; the only one fogstack commands use. |
aws-config, aws-credentials |
Repo-local AWS files containing fake local values. |
profile |
Last successfully started profile. |
| cloud-provider-kind PID/log files | Runtime process ownership and diagnostics. |
.state/ is disposable runtime configuration. Delete it only while the stack is
down; fog up recreates what it needs.
The full-profile emulator exposes an AWS-compatible API. fog tf-init wires
Terraform services such as S3, SQS, IAM, STS, RDS, and EKS to it; CLI and SDK
clients must receive an explicit endpoint override. Coverage varies by service.
Treat integration wiring as supported and security/network-policy parity as out
of scope. See AWS Recipes and Security.