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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

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

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unistack-0.2.0-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.2.0-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 beca097e3a81ea3056fccef7cd5e1bdd80e56964332aa248f6e40be9c8476271
MD5 31a9b7960b284af08ee8956d8c3c3760
BLAKE2b-256 a24f723f274f960f1fc4a70d876a8b819fd6acd139603266b5e844cea81cd8cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 53ecf4dabdafa31d4e16a16bd4ed9cc26413957f3768e26c9f29befdab5d2157
MD5 42c9321dcc73900d770dcc337cd973ca
BLAKE2b-256 54c467252d3191d342206191132d514303e1e09e83ce5b6230ff5450bf001816

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 2cf2b69f5beae45c85bc20db30fb459e9b1530f658501a9861742ba7d74333b3
MD5 3a3309345cd368da964d77b53e883aaa
BLAKE2b-256 7bfe797140ce12184b0bbb077b2d70c69320f6fc745642fbfddfb36c294fd64e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a7f7380230266be533f78da67824e957bae4671fca0b923cb8925f14b1f5fda
MD5 a45c395b6e07dfc06e1122e40c620285
BLAKE2b-256 c8be3ebd381d93cf88d36f259cf02fc3f3fddf5f73d68a5b38633c6114da3d07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 6db6bd0c52227e3f26e658b7328be2d01e9e89555094d46a7d23f6304891e4a0
MD5 ef76b13b5483f6bfef77251010dc6b2b
BLAKE2b-256 21374a11a1a86685184b73cbd22b67c5ff369c03625e916a4168423d24747abf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6619eb9812a1ffe50a7652c3bec974a7b00e7a725488ebe774bbd2eea4cfa784
MD5 eeb668d63b21978274ee028ae8330638
BLAKE2b-256 607d56f61ec3662d4fb7ed1d59e5779faa22ad6ef47b72af233a0bc8c079c9cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a9c0e71a2bf5e496cf207480c7877b09c45e37a1cdf7acb8f72ab295fd6c8449
MD5 868438073bb82ff46440e7ce8c6e579b
BLAKE2b-256 ef6330132ebd5b669a1eaae92e4d79f76d1ce1d3a1e120f90e5885cd876b6679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f21a3f1fc1c1a42065784e38b56c9b4d7b7039ab6be0d4b789557f63ee7c6c33
MD5 695cbf6e0ceefd1a0af2672756249042
BLAKE2b-256 015f9887c8b903dab9b0cdd0a33cbf56c721a67c1046cdb66f89c05d4e938b3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 06c35833751d36f2103e470b56d2b09e2423b2c8c67740ceb5025e681733a110
MD5 03b5194cc3e1ea6660f279f630c47ec0
BLAKE2b-256 38cd7bda7ad7962f6087d0239a09dcb4c754d10a18161d11d3c3e55fc1b785e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 339c1b8f41aaa6ef88e27577bde31f09bf92730a4b446c751a962f02ea5fb67e
MD5 0472e796c49acf235fa188bfd6ebd27d
BLAKE2b-256 3000734de751bc8910cbfec0ccdbe28c002e81bd25039267f25305a98991d256

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.2.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 02d522138779d28937af2de10b47c4e909730895019ca7dd53aa804f294b65ff
MD5 039855369d587d8b0527348888673fe8
BLAKE2b-256 5d6626fc28e89895ad68b3999c5bf36d9099a823496cd3256931a55ae64dca03

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

11 files

0.1.1

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