SolidOps.SubZero.Tool
1.2.4
See the version list below for details.
dotnet tool install --global SolidOps.SubZero.Tool --version 1.2.4
dotnet new tool-manifest
dotnet tool install --local SolidOps.SubZero.Tool --version 1.2.4
#tool dotnet:?package=SolidOps.SubZero.Tool&version=1.2.4
nuke :add-package SolidOps.SubZero.Tool --version 1.2.4
SubZero.Tool (sub-zero)
A unified .NET CLI tooling suite for Burgr projects: scaffolding, managing dependencies/versions, 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.
- Provision a hardened Debian/Ubuntu server (Docker, nginx-proxy + Let's Encrypt, monitoring, firewall) and deploy containerised apps over SSH.
- Manage dependencies and versions 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. |
publish [init-server \| init-app] |
Provision a self-hosted server and deploy containerised apps over SSH. |
update [deps] |
Download/refresh dependencies and update dotnet tools / NuGet references. |
version check |
Verify the version in config.json matches the build output. |
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.
Publish — publish
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
The former package/app publishing subcommands (
package,app,local-package,ts,service,web,old) have been archived toSubZero.Tool.Archiveand are no longer part of the CLI.
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 version check # verify config.json version vs build output
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.