Skip to content

Commit a499b23

Browse files
committed
docs(config): add user-facing deployment documentation for wheels deploy
1 parent 902f9c5 commit a499b23

77 files changed

Lines changed: 3347 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/src/SUMMARY.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,77 @@
110110
* [wheels jobs retry](command-line-tools/commands/jobs/jobs-retry.md)
111111
* [wheels jobs purge](command-line-tools/commands/jobs/jobs-purge.md)
112112
* [wheels jobs monitor](command-line-tools/commands/jobs/jobs-monitor.md)
113+
* Deploy Commands
114+
* [wheels deploy](command-line-tools/commands/deploy/index.md)
115+
* Top-level verbs
116+
* [deploy](command-line-tools/commands/deploy/deploy.md)
117+
* [redeploy](command-line-tools/commands/deploy/redeploy.md)
118+
* [rollback](command-line-tools/commands/deploy/rollback.md)
119+
* [setup](command-line-tools/commands/deploy/setup.md)
120+
* [init](command-line-tools/commands/deploy/init.md)
121+
* [config](command-line-tools/commands/deploy/config.md)
122+
* [version](command-line-tools/commands/deploy/version.md)
123+
* [audit](command-line-tools/commands/deploy/audit.md)
124+
* [details](command-line-tools/commands/deploy/details.md)
125+
* [docs](command-line-tools/commands/deploy/docs.md)
126+
* [remove](command-line-tools/commands/deploy/remove.md)
127+
* [app](command-line-tools/commands/deploy/app/index.md)
128+
* [app boot](command-line-tools/commands/deploy/app/boot.md)
129+
* [app start](command-line-tools/commands/deploy/app/start.md)
130+
* [app stop](command-line-tools/commands/deploy/app/stop.md)
131+
* [app details](command-line-tools/commands/deploy/app/details.md)
132+
* [app containers](command-line-tools/commands/deploy/app/containers.md)
133+
* [app images](command-line-tools/commands/deploy/app/images.md)
134+
* [app logs](command-line-tools/commands/deploy/app/logs.md)
135+
* [app live](command-line-tools/commands/deploy/app/live.md)
136+
* [app maintenance](command-line-tools/commands/deploy/app/maintenance.md)
137+
* [app remove](command-line-tools/commands/deploy/app/remove.md)
138+
* [proxy](command-line-tools/commands/deploy/proxy/index.md)
139+
* [proxy boot](command-line-tools/commands/deploy/proxy/boot.md)
140+
* [proxy reboot](command-line-tools/commands/deploy/proxy/reboot.md)
141+
* [proxy start](command-line-tools/commands/deploy/proxy/start.md)
142+
* [proxy stop](command-line-tools/commands/deploy/proxy/stop.md)
143+
* [proxy restart](command-line-tools/commands/deploy/proxy/restart.md)
144+
* [proxy details](command-line-tools/commands/deploy/proxy/details.md)
145+
* [proxy logs](command-line-tools/commands/deploy/proxy/logs.md)
146+
* [proxy remove](command-line-tools/commands/deploy/proxy/remove.md)
147+
* [accessory](command-line-tools/commands/deploy/accessory/index.md)
148+
* [accessory boot](command-line-tools/commands/deploy/accessory/boot.md)
149+
* [accessory reboot](command-line-tools/commands/deploy/accessory/reboot.md)
150+
* [accessory start](command-line-tools/commands/deploy/accessory/start.md)
151+
* [accessory stop](command-line-tools/commands/deploy/accessory/stop.md)
152+
* [accessory restart](command-line-tools/commands/deploy/accessory/restart.md)
153+
* [accessory details](command-line-tools/commands/deploy/accessory/details.md)
154+
* [accessory logs](command-line-tools/commands/deploy/accessory/logs.md)
155+
* [accessory remove](command-line-tools/commands/deploy/accessory/remove.md)
156+
* [build](command-line-tools/commands/deploy/build/index.md)
157+
* [build deliver](command-line-tools/commands/deploy/build/deliver.md)
158+
* [build push](command-line-tools/commands/deploy/build/push.md)
159+
* [build pull](command-line-tools/commands/deploy/build/pull.md)
160+
* [build create](command-line-tools/commands/deploy/build/create.md)
161+
* [build remove](command-line-tools/commands/deploy/build/remove.md)
162+
* [build details](command-line-tools/commands/deploy/build/details.md)
163+
* [build dev](command-line-tools/commands/deploy/build/dev.md)
164+
* [registry](command-line-tools/commands/deploy/registry/index.md)
165+
* [registry setup](command-line-tools/commands/deploy/registry/setup.md)
166+
* [registry login](command-line-tools/commands/deploy/registry/login.md)
167+
* [registry logout](command-line-tools/commands/deploy/registry/logout.md)
168+
* [registry remove](command-line-tools/commands/deploy/registry/remove.md)
169+
* [server](command-line-tools/commands/deploy/server/index.md)
170+
* [server exec](command-line-tools/commands/deploy/server/exec.md)
171+
* [server bootstrap](command-line-tools/commands/deploy/server/bootstrap.md)
172+
* [prune](command-line-tools/commands/deploy/prune/index.md)
173+
* [prune all](command-line-tools/commands/deploy/prune/all.md)
174+
* [prune images](command-line-tools/commands/deploy/prune/images.md)
175+
* [prune containers](command-line-tools/commands/deploy/prune/containers.md)
176+
* [lock](command-line-tools/commands/deploy/lock/index.md)
177+
* [lock acquire](command-line-tools/commands/deploy/lock/acquire.md)
178+
* [lock release](command-line-tools/commands/deploy/lock/release.md)
179+
* [lock status](command-line-tools/commands/deploy/lock/status.md)
180+
* [secrets](command-line-tools/commands/deploy/secrets/index.md)
181+
* [secrets fetch](command-line-tools/commands/deploy/secrets/fetch.md)
182+
* [secrets extract](command-line-tools/commands/deploy/secrets/extract.md)
183+
* [secrets print](command-line-tools/commands/deploy/secrets/print.md)
113184
* CLI Development Guides
114185
* [Configuration Management](command-line-tools/configuration.md)
115186
* [Creating Commands](command-line-tools/cli-guides/creating-commands.md)
@@ -135,6 +206,13 @@
135206
* [Contributing to Wheels macOS Installer](working-with-wheels/contributing-to-wheels-macos-installer.md)
136207
* [Background Jobs](working-with-wheels/background-jobs.md)
137208
* [Dependency Injection](working-with-wheels/dependency-injection.md)
209+
* [Deployment](working-with-wheels/deployment/index.md)
210+
* [Your First Deploy](working-with-wheels/deployment/first-deploy.md)
211+
* [deploy.yml Reference](working-with-wheels/deployment/config-reference.md)
212+
* [Accessories](working-with-wheels/deployment/accessories.md)
213+
* [Secrets](working-with-wheels/deployment/secrets.md)
214+
* [Hooks](working-with-wheels/deployment/hooks.md)
215+
* [Migrating from Kamal](working-with-wheels/deployment/migrating-from-kamal.md)
138216
* [Submitting Pull Requests](working-with-wheels/submitting-pull-requests.md)
139217
* [Documenting your Code](working-with-wheels/documenting-your-code.md)
140218

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# `wheels deploy accessory boot`
2+
3+
First-time install of one (or all) sidecar container.
4+
5+
## Synopsis
6+
7+
```bash
8+
wheels deploy accessory boot <name|all> [--destination=<name>] [--dry-run]
9+
```
10+
11+
## Description
12+
13+
Runs `docker run` for the accessory — creates the container, mounts its volumes and files, sets env, and attaches it to the `kamal` Docker network. Pass `all` to boot every accessory defined in `deploy.yml`.
14+
15+
Idempotent on the container name — calling `boot` when the accessory is already running is a no-op.
16+
17+
## Flags
18+
19+
| Flag | Description |
20+
|------|-------------|
21+
| `--destination=<name>` | Per-destination overlay. |
22+
| `--dry-run` | Print, don't execute. |
23+
24+
## Examples
25+
26+
```bash
27+
wheels deploy accessory boot db
28+
wheels deploy accessory boot redis
29+
wheels deploy accessory boot all
30+
```
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# `wheels deploy accessory details`
2+
3+
Show status for a sidecar container.
4+
5+
## Synopsis
6+
7+
```bash
8+
wheels deploy accessory details <name|all> [--destination=<name>] [--dry-run]
9+
```
10+
11+
## Description
12+
13+
Runs `docker ps` filtered to the accessory's container name. With `all`, shows every accessory across every host.
14+
15+
## Flags
16+
17+
| Flag | Description |
18+
|------|-------------|
19+
| `--destination=<name>` | Per-destination overlay. |
20+
| `--dry-run` | Print, don't execute. |
21+
22+
## Examples
23+
24+
```bash
25+
wheels deploy accessory details db
26+
wheels deploy accessory details all
27+
```
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# `wheels deploy accessory`
2+
3+
Lifecycle commands for sidecar containers (databases, caches, queues).
4+
5+
## Verbs
6+
7+
| Verb | Summary |
8+
|------|---------|
9+
| [`boot`](./boot.md) | First-time install of the accessory. |
10+
| [`reboot`](./reboot.md) | Stop, remove, and re-install. |
11+
| [`start`](./start.md) | Start a stopped accessory. |
12+
| [`stop`](./stop.md) | Stop a running accessory. |
13+
| [`restart`](./restart.md) | Stop then start. |
14+
| [`details`](./details.md) | `docker ps` for the accessory. |
15+
| [`logs`](./logs.md) | Tail accessory logs. |
16+
| [`remove`](./remove.md) | Tear down the accessory container. |
17+
18+
Every verb takes a positional accessory name — one of the keys under `accessories:` in `deploy.yml`, or the literal `all` to fan out across every accessory.
19+
20+
Accessories are decoupled from the main deploy rhythm — they run their own lifecycle, on their own hosts, with their own volumes. See the [accessories guide](../../../../working-with-wheels/deployment/accessories.md) for when to use them (and when to reach for managed infrastructure instead).
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# `wheels deploy accessory logs`
2+
3+
Tail logs from a sidecar container.
4+
5+
## Synopsis
6+
7+
```bash
8+
wheels deploy accessory logs <name|all> [--tail=<N>] [--follow] [--destination=<name>]
9+
```
10+
11+
## Description
12+
13+
Runs `docker logs` on the accessory container. With `all`, logs every accessory in sequence.
14+
15+
## Flags
16+
17+
| Flag | Description |
18+
|------|-------------|
19+
| `--tail=<N>` | Lines. Defaults to 100. |
20+
| `--follow` | Stream logs (long-lived SSH connection). |
21+
| `--destination=<name>` | Per-destination overlay. |
22+
| `--dry-run` | Print, don't execute. |
23+
24+
## Examples
25+
26+
```bash
27+
wheels deploy accessory logs db --tail=500
28+
wheels deploy accessory logs redis --follow
29+
```
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# `wheels deploy accessory reboot`
2+
3+
Stop, remove, and re-install a sidecar container.
4+
5+
## Synopsis
6+
7+
```bash
8+
wheels deploy accessory reboot <name|all> [--destination=<name>] [--dry-run]
9+
```
10+
11+
## Description
12+
13+
Recreates the accessory from the current `deploy.yml` definition. Useful after bumping an image tag or changing env/volumes. **Named volumes persist** — data isn't touched. Bind mounts also persist (they are on the host filesystem).
14+
15+
For an image upgrade of Postgres, you generally don't want `reboot` — run a tested upgrade path. For Redis and stateless caches, `reboot` is typically safe.
16+
17+
## Flags
18+
19+
| Flag | Description |
20+
|------|-------------|
21+
| `--destination=<name>` | Per-destination overlay. |
22+
| `--dry-run` | Print, don't execute. |
23+
24+
## Examples
25+
26+
```bash
27+
wheels deploy accessory reboot redis
28+
```
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# `wheels deploy accessory remove`
2+
3+
Tear down a sidecar container.
4+
5+
## Synopsis
6+
7+
```bash
8+
wheels deploy accessory remove <name|all> [--destination=<name>] [--dry-run]
9+
```
10+
11+
## Description
12+
13+
Runs `docker rm -f` on the accessory container. **Named volumes are preserved** — accessory data stored in a named Docker volume survives a `remove` and will be re-attached on the next `boot`. Anonymous volumes are gone.
14+
15+
To delete accessory data too, `ssh` to the host and `docker volume rm <volume-name>` explicitly.
16+
17+
## Flags
18+
19+
| Flag | Description |
20+
|------|-------------|
21+
| `--destination=<name>` | Per-destination overlay. |
22+
| `--dry-run` | Print, don't execute. |
23+
24+
## Examples
25+
26+
```bash
27+
wheels deploy accessory remove redis
28+
wheels deploy accessory remove all
29+
```
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# `wheels deploy accessory restart`
2+
3+
Stop then start a sidecar container.
4+
5+
## Synopsis
6+
7+
```bash
8+
wheels deploy accessory restart <name|all> [--destination=<name>] [--dry-run]
9+
```
10+
11+
## Description
12+
13+
Graceful `docker restart` of the accessory. The container identity, volumes, and env are preserved. Use to pick up changes delivered via a `SIGHUP`-style config reload.
14+
15+
## Flags
16+
17+
| Flag | Description |
18+
|------|-------------|
19+
| `--destination=<name>` | Per-destination overlay. |
20+
| `--dry-run` | Print, don't execute. |
21+
22+
## Examples
23+
24+
```bash
25+
wheels deploy accessory restart redis
26+
```
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# `wheels deploy accessory start`
2+
3+
Start a stopped sidecar container.
4+
5+
## Synopsis
6+
7+
```bash
8+
wheels deploy accessory start <name|all> [--destination=<name>] [--dry-run]
9+
```
10+
11+
## Description
12+
13+
Runs `docker start` on the accessory container. The container must already exist — use `boot` to create one.
14+
15+
## Flags
16+
17+
| Flag | Description |
18+
|------|-------------|
19+
| `--destination=<name>` | Per-destination overlay. |
20+
| `--dry-run` | Print, don't execute. |
21+
22+
## Examples
23+
24+
```bash
25+
wheels deploy accessory start db
26+
```
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# `wheels deploy accessory stop`
2+
3+
Stop a running sidecar container.
4+
5+
## Synopsis
6+
7+
```bash
8+
wheels deploy accessory stop <name|all> [--destination=<name>] [--dry-run]
9+
```
10+
11+
## Description
12+
13+
Runs `docker stop` on the accessory container. Data in volumes is preserved. If the app depends on the accessory, the app will begin erroring immediately — use for maintenance windows, not hotfixes.
14+
15+
## Flags
16+
17+
| Flag | Description |
18+
|------|-------------|
19+
| `--destination=<name>` | Per-destination overlay. |
20+
| `--dry-run` | Print, don't execute. |
21+
22+
## Examples
23+
24+
```bash
25+
wheels deploy accessory stop redis
26+
```

0 commit comments

Comments
 (0)