Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Runsite

Runsite CLI

Deploy and manage your Runsite services from the terminal — web services, deployments, logs and environment variables, scriptable from any CI.

runsite.app · Documentation · CLI Docs · API Reference

Rust Platforms MIT


What is the Runsite CLI?

runsite is a single static binary that talks to the Runsite public API. It lets you trigger deployments, tail logs, manage environment variables and switch between projects without leaving your shell — interactively on your machine, or non-interactively in a CI pipeline with an API token.

Install

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/runsite-platform/runsite-cli/main/install/install.sh | sh

Windows (PowerShell):

irm https://raw.githubusercontent.com/runsite-platform/runsite-cli/main/install/install.ps1 | iex

The scripts detect your OS and architecture, download the matching binary from GitHub Releases, verify its SHA-256 checksum, and install it (~/.local/bin/runsite on Unix, %LOCALAPPDATA%\runsite\bin\runsite.exe on Windows).

Variable Purpose
RUNSITE_VERSION Pin a release, e.g. v0.1.0 (default: latest)
RUNSITE_INSTALL_DIR Override the install directory
RUNSITE_REPO Override the source repository

Prebuilt targets: x86_64/aarch64 Linux (musl, static), x86_64/aarch64 macOS, x86_64 Windows.

Authenticate

runsite login                          # email + password, mints an API key
runsite login --token ak_live_...      # use a key created in the dashboard

--token is the path for accounts that sign in with Google or GitHub and have no password. In CI, skip login entirely and set RUNSITE_API_TOKEN=ak_live_....

Commands

Group Commands
Auth login [--token] · logout · whoami
Services service list · service status · service start|stop|restart
Deploys deploy [service] — trigger a deployment
Logs logs [service] [--tail 100] — recent container logs
Env vars env list · env set KEY=VALUE ... · env delete KEY
Projects project list · project use [name|id]
Context context show · context set-url https://api.runsite.app
Shell completions bash|zsh|fish
runsite service list
runsite deploy api --output json
runsite env set api DATABASE_URL=postgres://... LOG_LEVEL=debug
runsite logs api --tail 200

Every data command accepts --output json for scripting. The service argument is optional: with a single service (or a single service in the selected project) the CLI resolves it automatically.

Not in this release

runsite shell, runsite run and runsite deploy --watch need a live WebSocket, which the public API does not expose to API keys yet. The commands exist and point you to the dashboard instead.

Configuration

Config lives at ~/.config/runsite/config.toml (%APPDATA%\runsite on Windows) and holds one entry per profile:

current_profile = "default"

[profiles.default]
api_url = "https://api.runsite.app"
api_key = "ak_live_..."
current_project_id = "..."

Select a profile with --profile staging or RUNSITE_PROFILE=staging. RUNSITE_API_TOKEN overrides the stored key.

Repository layout

.
├── src/
│   ├── main.rs         # entry point
│   ├── cli.rs          # clap command definitions
│   ├── commands/       # one module per command group
│   ├── api/            # public API client + response types
│   ├── config/         # profile config file handling
│   ├── output/         # table / JSON formatting
│   └── ws/             # WebSocket transports (logs, shell)
├── install/            # install.sh and install.ps1
└── .github/workflows/  # CI and multi-target release builds

Build

Requirements: Rust 1.75+ — install via rustup.rs

cargo build              # dev build
cargo build --release    # optimized (~4.5 MB binary)
# binary: target/release/runsite

Cross-compile

Install cross (requires Docker):

cargo install cross --git https://github.com/cross-rs/cross
cross build --release --target x86_64-unknown-linux-musl
cross build --release --target aarch64-unknown-linux-musl

Release

Tag the repository; the Release workflow builds all five targets, generates SHA256SUMS.txt and publishes a GitHub Release:

cargo set-version 0.2.0   # or edit Cargo.toml
git tag v0.2.0 && git push origin v0.2.0

Documentation

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages