SolidOps.SubZero.Tool
1.2.3
See the version list below for details.
dotnet tool install --global SolidOps.SubZero.Tool --version 1.2.3
dotnet new tool-manifest
dotnet tool install --local SolidOps.SubZero.Tool --version 1.2.3
#tool dotnet:?package=SolidOps.SubZero.Tool&version=1.2.3
nuke :add-package SolidOps.SubZero.Tool --version 1.2.3
SubZero.Tool (sub-zero)
A unified .NET CLI tooling suite for Burgr projects: scaffolding, building, deploying, publishing NuGet/zip packages and applications, and setting up self-hosted servers.
dotnet tool install --global SolidOps.SubZero.Tool
sub-zero --help
Requires the .NET 10 SDK.
What it does
sub-zero automates the full lifecycle of a Burgr project from a single CLI:
- Scaffold a complete DDD-layered project (Angular + .NET host + DDD layers + burgr YAML models) from embedded templates.
- Build TypeScript bundles and .NET solutions.
- Deploy compiled output to local release repositories and remote servers over SFTP.
- Publish NuGet/zip packages, applications, and web/service assets — driven by
config.json. - Provision a hardened Debian/Ubuntu server (Docker, nginx-proxy + Let's Encrypt, monitoring, firewall) and deploy containerised apps over SSH.
- Manage dependencies, versions, and NuGet packaging across a multi-project solution.
Most commands read a config.json from the working directory for the solution name, version, debug/local flags, project list, dependencies, and outputs. Commands that take parameters directly accept them as options.
Commands
| Command | Description |
|---|---|
init-repo [path] |
Scaffold a full DDD-layered Burgr project from embedded templates. |
build ts \| all-ts \| solutions |
Build a single TypeScript project, all TypeScript projects, or every .sln. |
deploy [local \| sql \| zip \| zip-full \| ts \| git \| dotnet-host] |
Copy output files to local and/or remote release repositories. |
publish [package \| app \| local-package \| ts \| service \| web \| old \| init-server \| init-app] |
Publish packages/apps, or provision and deploy to a self-hosted server. |
extract [internal-libs] |
Unpack dependency archives from dependencies/. |
update [deps] |
Download/refresh dependencies and update dotnet tools / NuGet references. |
version check |
Verify the version in config.json matches the build output. |
nuget |
Pack and push NuGet packages for outputs declared in config.json. |
clean |
Remove previously deployed files from the local release repository. |
model-to-yaml |
Convert a legacy C# model to the new burgr YAML model. |
Run sub-zero <command> --help for the full option list of any command.
Scaffolding — init-repo
sub-zero init-repo ./my-app --project Mpc
sub-zero init-repo ./my-app --project Mpc --module Recipes --namespace Acme
| Option | Description |
|---|---|
path |
Target directory (created if missing; defaults to the current directory). |
--project, -p |
Project name in PascalCase. Defaults to the target folder name. |
--module, -m |
Optional bounded-context namespace. Names become <Project>.<Module>.<Layer> and YAML stubs go into src/models/<Module>/. Re-run to add another bounded context. |
--namespace, -n |
Root namespace prefix (defaults to SolidOps). |
--force, -f |
Overwrite existing files (without it, existing files are skipped, so re-runs are safe). |
Generates an Angular workspace (app + library), a .NET host, the DDD layer projects (Domain, Application, Contracts, Infrastructure, Presentation, Tests), burgr YAML model stubs, and the devops files (Dockerfile, docker-compose.yml, init-server.sh, deploy scripts) used by the publish server commands.
Build — build
sub-zero build ts # compile one TS project → concatenated JS/CSS bundle
sub-zero build all-ts # build every project whose config Task is "DeployTS"
sub-zero build solutions # dotnet publish every *.sln (Debug/Release per config.json)
Deploy — deploy
Copies compiled output to the release path
<workspace>/../solid-ops/releases/<solution>/<env>/<version>/. With no subcommand, runs both local and remote (SFTP) deployment.
sub-zero deploy --solution MyProject --version 1.2.3 --env production
sub-zero deploy local --solution MyProject --version 1.2.3
sub-zero deploy zip --solution MyProject --version 1.2.3 --output ./dist --file app
Subcommands: local, sql, zip, zip-full, ts, git, dotnet-host.
Publish — publish
The publish group covers two concerns:
Package / app publishing — build and release from projects listed in config.json:
sub-zero publish package # build + publish a NuGet/zip package
sub-zero publish app --env production # same pipeline, including the Angular app build
sub-zero publish local-package # stage locally only, no remote upload
Filter with --category and --env. Other subcommands: ts, service, web, old.
Server setup — provision a self-hosted server and deploy containerised apps over SSH (files generated by init-repo under src/devops/subzero/):
# Provision a hardened server.
sub-zero publish init-server --host 1.2.3.4 --user admin
# Build a Docker image and deploy a containerised app (docker save | ssh docker load).
sub-zero publish init-app myapp
Dependencies & versioning
sub-zero update # download/refresh dependency archives into dependencies/
sub-zero update deps # update dotnet tools and NuGet references across *.csproj
sub-zero extract # unpack dependency archives into packages/
sub-zero extract internal-libs
sub-zero version check # verify config.json version vs build output
sub-zero nuget # pack + push NuGet packages declared in config.json
sub-zero clean # remove deployed files from the local release repository
Token replacement in templates
init-repo expands {{TOKEN}} placeholders in embedded templates. Common tokens: {{PROJECT}}, {{project}} (lowercase), {{MODULE}}, {{NAMESPACE}}, {{PREFIX}}, {{USER}}, {{DOMAIN}}.
Links
- Repository: https://github.com/SolidOps/burgr
- Author: Damien Lechat — Solid Ops
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.