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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

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

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unistack-0.0.10-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.10-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 09f090b892a5290319f5ab1dda8dc0643b2b7233a6cd86295ca5ad607eb857c9
MD5 550f68817628b98f15d21228c27f5d86
BLAKE2b-256 3f54331fb94825ef62c2b705586a537d98fb5dc56aeed527c41d3e2ff8253031

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 83d62969bf957c0fe34c68f5deadd23d57cbb49f6b940187188a407ad2eb381b
MD5 7ba4946e71393fe97c8772c9a3021efe
BLAKE2b-256 b0dd06a8ce5ea41be889f618ba8500f60af2d0dfc85c7ab3035f2bf71f3f1409

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-win32.whl
Algorithm Hash digest
SHA256 63fd5a75abd5e627880e34a4d00af43daf45753b05d80eadce7b8f5efd3578d5
MD5 679205fbc337f9dab1c7bbbaec29b16a
BLAKE2b-256 44ccf3d53a372ab0d7a80e780cf6d58720603b82ca1c5b2f3f11f77acf77e8ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 62f202aadfff1292f55e499bd1c28ae00511b5efcdb45c82a9263d7e8554c806
MD5 af162979c379e791e20ad9ad072c159a
BLAKE2b-256 59d71682e3f64208f82b4ecc975c0fc4d961b1b1a8b8073770fb38856f31d347

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7b7f8d3f7f547dc03b6400810cb1282c2d5b124d2a27a50c329068e5a790f502
MD5 7df60afa7a1d39405e673bf1d22dae95
BLAKE2b-256 20d311efb7d7c380827a2ce89e9bcb382eece67839aada78e64003d730b78f01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 cfd92502322b452e3aca487d8effc83c58860e366eaa6b3066f479e9735222d0
MD5 eeca163634403e7bbad367f65232a19c
BLAKE2b-256 a692f6fc0daa2496d8648433a802bf66ed3663111193779ec04570ad6919194e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 07267a553547b32c01ee763120808bcc7a66cffb8dccd11a1efa85aba7061358
MD5 4e864254363c1baac1c0f4b85f57198d
BLAKE2b-256 3c1a2dd3989d6b2079e96974428e550229e79573031a664bd79bab22218b4c9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0007a348e91bff8a62b2d6618379ffeb652bcefc199b95e6bd8b0f71407823a7
MD5 66d190e8bc87999ace0c91e3e802f821
BLAKE2b-256 d22376fe01cada3a9a470ae55a9abe66ad14f54b7403039147beafc946e41966

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a0537e14ce8cf0efd02ad59d7b2765a6b601d8d655551b3af0259124b4dc2b5d
MD5 98a40400aab415671aec9e1283ea5d00
BLAKE2b-256 39bdb960b2eaac37401e1de8df2f8441f93a90a00f45f9ee49d086e9e1f33a80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab078584784dbf5a9adf1a0b920d006cc7f33a7f447770f275e2a4e951d316b8
MD5 46f2d7eb7ccc64e1aebecca7695ef258
BLAKE2b-256 cabcd2bb787259e73f19009065c8c512fca5d2dc38a84419bfcd14c9bdc0da2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unistack-0.0.10-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7a5085f5b2b84932fab170fdca0cd27d4613da4c48380eb0492297b32161cd19
MD5 34a54fab872a42e13a31435952fe77a9
BLAKE2b-256 b9ab08affc1fb9bda7da2f0fd4c8c7125964ebb41dd21d3253dfe3bb031c1f21

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

This release

0.0.10 This release

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