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

Uploaded Python 3Windows ARM64

snowdreamtech_unistack-0.1.1-py3-none-win_amd64.whl (13.2 MB view details)

Uploaded Python 3Windows x86-64

snowdreamtech_unistack-0.1.1-py3-none-win32.whl (13.1 MB view details)

Uploaded Python 3Windows x86

snowdreamtech_unistack-0.1.1-py3-none-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unistack-0.1.1-py3-none-macosx_10_9_x86_64.whl (6.7 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 7db4bddc8bf1dc586b533ac40b457c54c5427b36231ac5291aafb97ae5ed2a8d
MD5 4ffa0e3e66b178de46c3199a12cbef50
BLAKE2b-256 d6d8e46a20b6ef0fb2024962d58c3aae4037e3640ae390b4903a3c8ed3e14266

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 17eb7816228e185cac5a089fb2d64f98a21bc7fb2e8e74056ae85057291ab290
MD5 d41aca4b387bf4ee53135fb9a2d409fb
BLAKE2b-256 4d2b87e0ac46e7972df157a804f5cf22128c3f9dadcab9e6446391cb94122fd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 3f14b1fcd88963479971701756ac2d89b3bfb7716e5da0c837dd6cc1866b4451
MD5 9a60192fc1f22624ef5eb0a9e6877340
BLAKE2b-256 d56e458d457f7a6bf5527409c5e0f7d49462a69a718bac7cbaffd0e636ea4525

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a73757e061c3dff861d5e7a6b4496b580e9c0f6c71ccb0c285e805df905caf3
MD5 7cb326ed6f162237b32e7fb715586f28
BLAKE2b-256 f310acc681f0c0ab62c05782767e648375b5d53c9770a0373bf4e68aa60aed99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 eea2f1fd09b65861389530d1d2cb5da8f6d47b495ac1b04029092077eca81d50
MD5 50e17373cf7998fae76ee59be048ca97
BLAKE2b-256 ad9cbcef2ecc87a7bd877b90949a4f4f9a20877b10a0982ba7c29a897c2cc50b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 45994dca835b09a5e6ad8b87b22f1da77567b36ce218e5ff959e1b60259e9992
MD5 88bc510f8ba3c4c6d27e9422a819d524
BLAKE2b-256 debdee299d8c41a671f8540299d77a912ccc3ce0daf90e810e66a950a42519db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 baa6bb3df57e34a2aa65d629ceb01d79192b13cf65810ab79817291ba21fa069
MD5 86325fcf7918ada53120e236a02eb43a
BLAKE2b-256 7fbeb8169643bef63c4bfd1333127c2c2601232d513c57c66ab7f26cb7707894

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 70ec56e5ba02442cc0574b61c22d6c1fc1877f1f243bb66b38311ecb541a2130
MD5 2aef17f761a86fe623ac1dd43c640748
BLAKE2b-256 d7e2bf34d2adb052957b65d70e1d9dad37fc6e00b11d946979382b3cf0481014

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9847d80ff7d9ccd50e029d6a96727c6c3851c8803eff35c5fd67fb15e0ef145f
MD5 4c549bc4ee5c4c31c8b25eb7ce2d9cff
BLAKE2b-256 c0ac110913a99663e47d352a23e24f332d34972dc4a679e14bf5899a2cab5968

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b5b7201546992d698c4ea747d4160ff221d882feb9a761fe99f97e2139616cc
MD5 a137cb35788c08f7e07135b0477f3b15
BLAKE2b-256 25d8d7da44aa5d21aee30e39d977b10c7a612917cc871e3c818d9c547cce314f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.1.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6a67644634b7cbac3117d7826eb782666ad711af85eee89acb8c4a987e837249
MD5 106a95fef04957e3fdb637a315e4a4d1
BLAKE2b-256 4830c3a5865e4861913799657fb805f8d9224d128ddb28d840f78355a9d58a3b

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

11 files

This release

0.1.1 This release

11 files

0.1.0

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