# laconic-so Sub-commands and flags ## setup-repositories Clone a single repository: ``` $ laconic-so setup-repositories --include github.com/cerc-io/go-ethereum ``` Clone the repositories for a stack: ``` $ laconic-so --stack fixturenet-eth setup-repositories ``` Pull latest commits from origin: ``` $ laconic-so --stack fixturenet-eth setup-repositories --pull ``` Use SSH rather than https: ``` $ laconic-so --stack fixturenet-eth setup-repositories --git-ssh ``` ## build-containers Build a single container: ``` $ laconic-so build-containers --include ``` e.g. ``` $ laconic-so build-containers --include cerc/go-ethereum ``` Build the containers for a stack: ``` $ laconic-so --stack build-containers ``` e.g. ``` $ laconic-so --stack fixturenet-eth build-containers ``` Force full rebuild of container images: ``` $ laconic-so build-containers --include --force-rebuild ``` ## build-npms Build a single package: ``` $ laconic-so build-npms --include ``` e.g. ``` $ laconic-so build-npms --include registry-sdk ``` Build the packages for a stack: ``` $ laconic-so --stack build-npms ``` e.g. ``` $ laconic-so --stack fixturenet-laconicd build-npms ``` Force full rebuild of packages: ``` $ laconic-so build-npms --include --force-rebuild ``` ## deploy The `deploy` command group manages persistent deployments. The general workflow is `deploy init` to generate a spec file, then `deploy create` to create a deployment directory from the spec, then runtime commands like `deployment start` and `deployment stop`. ### deploy init Generate a deployment spec file from a stack definition: ``` $ laconic-so --stack deploy init --output ``` Options: - `--output` (required): write spec file here - `--config`: provide config variables for the deployment - `--config-file`: provide config variables in a file - `--kube-config`: provide a config file for a k8s deployment - `--image-registry`: provide a container image registry url for this k8s cluster - `--map-ports-to-host`: map ports to the host (`any-variable-random`, `localhost-same`, `any-same`, `localhost-fixed-random`, `any-fixed-random`) ### deploy create Create a deployment directory from a spec file: ``` $ laconic-so --stack deploy create --spec-file --deployment-dir ``` Update an existing deployment in-place (preserving data volumes and env file): ``` $ laconic-so --stack deploy create --spec-file --deployment-dir --update ``` Options: - `--spec-file` (required): spec file to use - `--deployment-dir`: target directory for deployment files - `--update`: update an existing deployment directory, preserving data volumes and env file. Changed files are backed up with a `.bak` suffix. The deployment's `config.env` and `deployment.yml` are also preserved. - `--helm-chart`: generate Helm chart instead of deploying (k8s only) - `--network-dir`: network configuration supplied in this directory - `--initial-peers`: initial set of persistent peers ## deployment Runtime commands for managing a created deployment. Use `--dir` to specify the deployment directory. ### deployment start Start a deployment (`up` is a legacy alias): ``` $ laconic-so deployment --dir start ``` Options: - `--stay-attached` / `--detatch-terminal`: attach to container stdout (default: detach) - `--skip-cluster-management` / `--perform-cluster-management`: skip kind cluster creation/teardown (default: perform management). Only affects k8s-kind deployments. Use this when multiple stacks share a single cluster. ### deployment stop Stop a deployment (`down` is a legacy alias): ``` $ laconic-so deployment --dir stop ``` Options: - `--delete-volumes` / `--preserve-volumes`: delete data volumes on stop (default: preserve) - `--skip-cluster-management` / `--perform-cluster-management`: skip kind cluster teardown (default: perform management). Use this to stop a single deployment without destroying a shared cluster. ### deployment restart Restart a deployment with GitOps-aware workflow. Pulls latest stack code, syncs the deployment directory from the git-tracked spec, and restarts services: ``` $ laconic-so deployment --dir restart ``` See [deployment_patterns.md](deployment_patterns.md) for the recommended GitOps workflow. ### deployment ps Show running services: ``` $ laconic-so deployment --dir ps ``` ### deployment logs View service logs: ``` $ laconic-so deployment --dir logs ``` Use `-f` to follow and `-n ` to tail. ### deployment exec Execute a command in a running service container: ``` $ laconic-so deployment --dir exec "" ``` ### deployment status Show deployment status: ``` $ laconic-so deployment --dir status ``` ### deployment port Show mapped ports for a service: ``` $ laconic-so deployment --dir port ``` ### deployment push-images Push deployment images to a registry: ``` $ laconic-so deployment --dir push-images ``` ### deployment run-job Run a one-time job in the deployment: ``` $ laconic-so deployment --dir run-job ```