SolidOps.SubZero.Tool 1.2.3

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global SolidOps.SubZero.Tool --version 1.2.3
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local SolidOps.SubZero.Tool --version 1.2.3
                    
This package contains a .NET tool you can call from the shell/command line.
#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}}.


Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.3.1 42 6/10/2026
1.3.0 39 6/10/2026
1.2.4 53 6/10/2026
1.2.3 42 6/10/2026
1.2.2 92 6/3/2026
1.2.1 85 6/3/2026
1.2.0 88 6/3/2026