Skip to content

Repository files navigation

Stratus wordmark

A multi-cloud gateway to your virtual machines. Authenticate once, see all your VMs across AWS, Azure and GCP according to your permissions, and connect in a single click.

status go wails license Go Report Card Release


Overview

Modern environments are spread across several clouds. Connecting to a virtual machine today means knowing where it lives, finding the right credentials, opening the right console and managing your keys. Stratus removes that friction: a single sign-on, an inventory aggregated and filtered by your permissions, and a one-click connection through each provider's native method.

Stratus is a desktop application (Linux, macOS, Windows) shipped as a single binary, paired with a command-line interface for automation.

Features

  • Single sign-on (SSO) to AWS, Azure and GCP through the system browser (RFC 8252).
  • Aggregated VM inventory, filtered by each platform's RBAC: you only see what you are allowed to see.
  • One-click connection, no SSH key to manage: SSM Session Manager (AWS), Bastion or SSH (Azure), IAP (GCP).
  • Filtering and search by provider, region, state and tag.
  • Local audit log of launched connections.
  • Command-line mode for scripts and automation.

Architecture

Stratus separates a UI-independent core, connectors (one per provider, each implementing a common CloudProvider interface), and two frontends: the Wails graphical interface and the CLI. VM discovery goes through the official cloud SDKs; connection is delegated to the providers' native CLIs. The full detail is in docs/requirements-specification.md.

Prerequisites

Go 1.25+, Node.js 20+, Git, the Wails CLI. The full procedure is in docs/getting-started.md.

Quick start

Clone the repository

git clone https://github.com/muhamm-ad/stratus.git
cd stratus

Install dependencies

go mod tidy

Using the TUI

# From the Stratus repo root
go run cmd/tui/main.go

Using the Application

Frontend submodule

The React UI lives in a separate repository and is linked into this project as a Git submodule at frontend/. It tracks the master branch of Stratus-FrontEnd.

Initialize after clone

# From the Stratus repo root
git submodule update --init --recursive

Clone with submodules

git clone --recurse-submodules https://github.com/muhamm-ad/stratus.git

Update to the latest master

git submodule update --remote frontend
git add frontend
git commit -m "chore(frontend): bump submodule"

Install frontend dependencies before running or building the desktop app:

cd frontend && npm install && cd ..

Run in development mode (hot reload)

wails dev

To build the production binary: wails build (or task build).

Repository structure

├── cmd/           # command-line interface
├── configs/       # configuration files
├── internal/      # Go module
├── scripts/       # scripts
├── frontend/      # React + TypeScript interface (submodule)
├── docs/          # documentation
├── website/       # website (submodule in progress)
└── README.md      # this file

Contributing

We welcome contributions! Please read the contribution guidelines before submitting a pull request.

Contact

If you have any questions or feedback, please open an issue.

Releases

Used by

Contributors

Languages