Getting started

# Installation

Install the gem, run dash init, and you are ready to configure a deploy.

## Requirements

| Where | Requirement |
| --- | --- |
| Your machine | Ruby >= 3.2, Docker (to build images), SSH access to your servers |
| Your servers | Any Linux host you can SSH into — `dash server bootstrap` installs Docker via `curl` if it is missing |
| A registry | Docker Hub, ghcr.io, or any private registry — dash pushes your image there and the servers pull it |

## Install the gem

Standalone:

```shell
gem install dash
```

Or Gemfile-managed, so every collaborator gets the same pinned version:

```shell
bundle add dash
bundle binstubs dash
```

> **Note:** The gem is named `dash` and the executable is `dash`. With binstubs, run it as `bin/dash`.

## Initialize the project

From your app's root:

```shell
dash init
```

This writes two stubs:

- `config/deploy.yml` — the deployment configuration; every key is documented in the [Configuration](https://dash.zoolutions.llc/docs/configuration) reference.
- `.dash/secrets` — where registry passwords and other secrets are read from (dotenv format, command substitution supported).

## Verify

```shell
dash version         # the installed gem version
dash docs            # the full configuration reference, in your terminal
dash doctor          # once configured: diagnose deploy readiness
```

Then head to the [Quick start](https://dash.zoolutions.llc/docs/quick-start) for your first deploy.