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.0.6-py3-none-win_arm64.whl (12.2 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

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

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unistack-0.0.6-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.0.6-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 b872e6ca9e34eb3c016178764c8dd1c7bd2d8cc5c79d57c9d565a4a89026928d
MD5 eb9bad7c3a8da22592b24803c2b79c15
BLAKE2b-256 460988d4590b50ef0ec655e02c7bdc9b9ea60f69f04b3d4b8f001150172117c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 650530b76146df10599bf4a2c673db0dbe0021a89086017ddd5400941ba38478
MD5 d102793324a50fe67c0b20e04a9e037a
BLAKE2b-256 64e530741466c52c238c61f482a02352e39fb2f4dae8dce4da0e659f5e7896c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-win32.whl
Algorithm Hash digest
SHA256 8f3af03aef9ca390d7cc9c8ad5e5591a317f2ceaa73131e721484bf7feafc793
MD5 de3bba27d9e411e3d9109e260cc8557e
BLAKE2b-256 1e1a185bcd46f996b1897db91bbd69749a4f0fdb2db8280c17ee0075a8b0edd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33a087c8d6ec1b752fa0ff270e74a4cb27efce08e8b0eb2dae47915971b33257
MD5 85e0e2f1fb297cd345d4535e7c9c0e62
BLAKE2b-256 1fe462aea17e7b274de3c8c8c1b0da597c84651ca4459908596cc1e8ff78813b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 06bd619a742e9bd3df9f7ec926e35ada3d6b809934af3b84e2f9cc38566b8b2d
MD5 a5db7c5c02d4e1f769789fd32da1d3d5
BLAKE2b-256 3d5f33a9963684260bd2e57923a3b12d20be577b73dbe51c6b96d92836d44c4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4239bf6950563b7764eb6bd7858b21b211380d91a542e8de830b3af42edbe8b8
MD5 94e74268bb9b0101f349f95e517131ad
BLAKE2b-256 7b7dccda76199727b8e3801e3d6ac1423dc012708f24c64d4d793235d59ca796

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8b1c5b20d40b6afff5a5d8a3a6bb88a47bcd65c55ca34457b22120c1b3a83123
MD5 faadf3885f660c72892dd2f90da43f1a
BLAKE2b-256 f9dfde03585fac85dbcdc3378d761834b69d3ad542eaaf4b1f16acc0b89caa16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 128016dc276918a7ece2d5d526c1fbe2938393f038f94c8dbe332ebe6e35cf5f
MD5 f21793e0dcdabd819a13839561eb0b40
BLAKE2b-256 975aac9a10c1ebc92416025365eb79b005814f786c67af372622018e218c458a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c52b3b5d6be1ac4b116fd73bb3e8ef3aac7ae55d35246e05efe1365a53696609
MD5 1d2794e83c8b9a31f7cc6a745009e046
BLAKE2b-256 2a4315403e108e9e408349c43f7e34f01623a61a0461a0f686d6c4e5c68c131f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2536da9f28ad6291d2fcc20e45cfd35d148f537986cd5761a6c476acc5498186
MD5 10365377f708cad61a38c9c47466298c
BLAKE2b-256 6741b24a36dc195637d04f3e11d705e22ae1d90a2ecc70f9c59db72d643e76c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.6-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 78286ca5f50161534d4b7cd2cc103bfd0c4b1ac079d14096fa58e4144e5bbf64
MD5 1206dd74c3b414607174ca86cd532822
BLAKE2b-256 b5a83eb3609346e4803a11bfee9e3c0fb88a1c4c614d6a38a2e0a836b3875298

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

11 files

0.1.1

11 files

0.1.0

11 files

0.0.10

11 files

This release

0.0.6 This release

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