Skip to main content

UniStack

CI Pipeline CD Pipeline GitHub Pages CodeQL Multi-OS Verified Security Audit SBOM Available License: MIT Release Dependabot Enabled pre-commit GitHub Stars GitHub Issues Code Size

English | 简体中文

UniStack is a single-binary, cross-platform orchestrator that brings a Docker Compose-like experience to both containerized and native infrastructure deployments.

🌟 Features

  • Modern CLI Architecture: Built with Go 1.24+ and Cobra, providing a structured and extensible command-line application framework.
  • Beautiful Output: Utilizes pterm for rich, colorful, and interactive terminal output.
  • Structured Logging: Built-in support for Go's standard slog package for high-performance structured logging.
  • Robust Tooling: Includes built-in commands like doctor, self-update, cache, config, and license.
  • Triple Guarantee Quality: 100% code purity enforced through IDE checks, Pre-commit hooks, and GitHub Actions integrated quality gates.
  • Cross-Platform Ready: Runs seamlessly on macOS, Linux, and Windows.

🏗️ Architecture & Design

Overview

UniStack is engineered to solve the boilerplate problem when starting new Go CLI projects. It standardizes the development environment, architectural patterns, and automation pipelines out of the box.

Core Components

  • CLI Framework: Utilizes spf13/cobra and spf13/viper for powerful command parsing and configuration management.
  • UI & Logging: Integrated pterm for UI components and slog for structured event logging.
  • Database & Caching: SQLite-backed (via modernc.org/sqlite) local caching and transactional data storage.
  • Task Orchestration: Configured with UniRTM for managing local development workflows (lint, test, verify).

📖 Usage Guide

Prerequisites

  • Runtime: Go (>= 1.24).
  • Git: Global git installation required.
  • UniRTM: Required for task execution and orchestration.

Installation

Via NPM:

npm install -g @snowdreamtech/unistack

Via PyPI:

pip install snowdreamtech-unistack

Quick Start

  1. Install UniRTM: Ensure unirtm is installed on your system.
  2. Initialize: unirtm run setup (bootstraps core dependencies and hooks).
  3. Install: unirtm run install (installs project dependencies).
  4. Verify: unirtm run verify (ensures everything is green).
  5. Build: go build -o unistack main.go

Available Commands

  • unistack version: Print the version number
  • unistack doctor: Check system health and diagnose issues
  • unistack self-update: Update to the latest version
  • unistack cache: Manage local cache
  • unistack config: Manage configuration
  • unistack license: Manage copyright license headers

🛠️ Operations Guide

Pre-deployment Checklist

  1. Run unirtm run verify to ensure all quality gates are green (runs formatters, linters, tests, and security audits).
  2. Ensure CHANGELOG.md is updated.

Troubleshooting

  • Problem: unirtm run verify fails with test errors.
    • Solution: Ensure your code passes all Go unit tests. UniStack enforces strict coverage and race condition checks.
  • Problem: Pre-commit hooks fail.
    • Solution: The hooks often auto-fix issues (like formatting). Stage the modified files and commit again.

🔒 Security Considerations

Security Model

  • Audit Logging: All critical operations and security scans are executed during the verify task using tools like trivy, gitleaks, and govulncheck.
  • Dependency Management: Powered by Dependabot to ensure all dependencies are kept up-to-date and secure.

🧑‍💻 Development Guide

Local Development Setup

git clone https://github.com/snowdreamtech/UniStack.git
cd UniStack
unirtm run setup
unirtm run install

🚀 Proxy Usage Scenarios

The GITHUB_PROXY (default: https://gh-proxy.sn0wdr1am.com/) is optimized for specific network acceleration scenarios. Misusing it for unsupported protocols (like Git) will result in errors.

Scenario Supported? Example / Note
Release Files ✅ Yes .../releases/download/v1.0/tool.zip
Source Archives ✅ Yes .../archive/master.zip or .tar.gz
Direct File Links ✅ Yes .../blob/master/filename
Git Clone No Do not use for git clone or insteadOf configs.
Project Folders No Browsing/cloning via proxy is not supported.

[!IMPORTANT] To prevent breaking toolchains (like unirtm), this template explicitly disables Git redirection via this proxy. Use it only for direct HTTP downloads in scripts.

📄 License

This project is licensed under the MIT License. Copyright (c) 2026-present SnowdreamTech Inc. See the LICENSE file for the full license text.

Star History

Star History Chart

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

snowdreamtech_unistack-0.1.0-py3-none-win_arm64.whl (12.2 MB view details)

Uploaded Python 3Windows ARM64

snowdreamtech_unistack-0.1.0-py3-none-win_amd64.whl (12.7 MB view details)

Uploaded Python 3Windows x86-64

snowdreamtech_unistack-0.1.0-py3-none-win32.whl (12.6 MB view details)

Uploaded Python 3Windows x86

snowdreamtech_unistack-0.1.0-py3-none-macosx_11_0_arm64.whl (6.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unistack-0.1.0-py3-none-macosx_10_9_x86_64.whl (6.4 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 79f779f57d685cef556c72f474c0746cec7f24981117801df1e85d97df938a06
MD5 9e32e59bdb661d48abedd974ac565411
BLAKE2b-256 c16c8949ceb0951206cfdfedfa77e7bb14f8d9ea4d74764d666fb6bebfb0c9ed

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 077e45337f538c464d8b6b3a565c8e9e88eae72bc869a4f8d68eac3495350240
MD5 083a1354d0b08860e4acbc673682c096
BLAKE2b-256 8098a140eb05c578ee1dd3badc6bcc3aa9c98f388cd02be98fa0edccb38ba5fe

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-win32.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 ce8d53358494844f1fd4430f1d7e87e1b8aed7bbbeff17e55cd06a02ffad1e02
MD5 583796d78d517faec3a2e44724127c48
BLAKE2b-256 3d693f0cb48e7d3f7db50ffeaa73080ce461edf88f627b7bf0492d9011d66fe3

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a1d39d0c157f943f29fc7aafe4dfb4e3c65142283b6e70dc610beeb849c5b0f
MD5 a3d5900e77141fddd703d88ed8428bb3
BLAKE2b-256 771820c66ed5c38f86547bbe47ea1ebac77ebee7733af5cd42cb7fe0412f6688

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 619e3ecf2b5ebb71234dfa9abac4fc62ce44b80473a377da6d6df3082e85f0da
MD5 9bcc134e5bc9e5b92e2b6b6eb6415342
BLAKE2b-256 2be9aac66007e23cdac44b5da5c5cff6c5baaeb37cec365a65e7daed432663ad

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 154e5567720de62b62bcb33730e4b0ce082f679c621f01893fc65ac6cb6c0ed0
MD5 acfb56e87d67b406ec685412ace80ec9
BLAKE2b-256 25231b094bcebac1b32de177b42f2c48764b24d3120cc70f1719ebca4b7b966d

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_i686.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 20807cc712c91ce7856515b7a880ffb442f8f7cee895909bc28e6e89422751a9
MD5 914b9fd2c840f87059a74a87f4c2b5b8
BLAKE2b-256 91eb7a4a4ae1eff513c39e0cfa523150266f28452f72cf670daabce6d7bad7bb

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 fb50b2b9fc1eee68b5b26b3b6c73a83e820c20336722265308961032e4aa5f4a
MD5 429921126febc581ff10a68e9e83a3a2
BLAKE2b-256 047cda7c5d6364e3a293fe80d18bf8595941c7486d10bf5ee8212f081e251d8b

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e8ee88fd737f4837351a00c5c91ef482a14019a33822fb36b93355ec482f1094
MD5 c7ede56b9944426cb2ea5bd6951993eb
BLAKE2b-256 d1680b3fa1b36995e15a027916955107a04cb6aeac0e5062a47aeb030741c545

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c7ea696446342f3204c5c8f36672ce0b59d0e34df09d5daf09d12da51973fb8
MD5 50d293a81babf4acf77ee0e25a921fa6
BLAKE2b-256 ae6f098637a82af6692d3c25071195efc38a0fbc732835430bb8bd7d894c12ae

See more details on using hashes here.

File details

Details for the file snowdreamtech_unistack-0.1.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 31ff8dba2a4325d11657bfef64e5d3bc9439b7d7eb01b98edf3f195f1572a03a
MD5 cc06bdb306a608d497291ce3b60de99b
BLAKE2b-256 a57b3cb9bd2b71c6ec05d94a2a730025228a1620b8dbe674219f51e549f2f191

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

11 files

0.1.1

11 files

This release

0.1.0 This release

11 files

0.0.10

11 files

0.0.6

11 files

0.0.5

11 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page