Playbook-based deployment tool with concurrent execution, built-in secrets management, and a single binary with zero dependencies.
Deployment should be simple. Spot makes it that way.
Download one file. No runtime, no dependencies. Works on Linux, macOS, and Windows.
Pure SSH. No daemons to install or manage on remote hosts. If you can SSH, you can deploy.
Plain YAML or TOML. No complex DSL to learn. If you know YAML, you already know Spot.
Focused toolset for real-world deployments. No bloat, no learning curve, no surprises.
Everything you need for reliable deployments, nothing you don't.
Define tasks in simple YAML or TOML. No complex DSL to learn, just straightforward configuration.
Execute tasks on multiple hosts simultaneously with configurable parallelism.
Built-in encrypted secrets with multiple providers: SQLite, Vault, AWS, Ansible Vault.
Preview exactly what will happen before executing. See all commands without changes.
Run quick one-off commands across multiple hosts without creating a playbook.
Organize hosts into groups with tags. Load inventory from files or URLs.
Three simple steps to deploy your application.
Create a YAML file with your tasks and commands.
user: deploy
ssh_key: ~/.ssh/id_rsa
targets:
prod:
hosts:
- host: prod1.example.com
- host: prod2.example.com
tasks:
- name: deploy-app
commands:
- name: copy config
copy: {src: "app.conf", dst: "/etc/app/"}
Organize your hosts into groups with optional tags.
groups:
web:
- host: web1.example.com
name: web1
- host: web2.example.com
name: web2
db:
- host: db1.example.com
tags: [primary, us-east]
Run your playbook with optional concurrency.
# Run on production targets
$ spot -p deploy.yml -t prod
# Run with 4 concurrent hosts
$ spot -p deploy.yml -t prod -c 4
# Dry run to preview changes
$ spot -p deploy.yml -t prod --dry
# Run specific task only
$ spot -p deploy.yml -t prod -n deploy-app
Built-in commands for common deployment operations.
Execute shell scripts on remote hosts with environment variables.
Copy files with glob patterns, mkdir support, push/pull directions.
Synchronize directories with delete option and exclusion patterns.
Remove files or directories with optional recursive deletion.
Wait for a condition with configurable timeout and intervals.
Manipulate config file lines with regex patterns.
Get started in seconds with your preferred method.
brew tap umputun/apps
brew install umputun/apps/spot
go install github.com/umputun/spot/cmd/spot@latest
go install github.com/umputun/spot/cmd/spot-secrets@latest
# Download from releases page
github.com/umputun/spot/releases