Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: "wheels deploy accessory boot"
description: First-time install and run of a named accessory container.
type: reference
sidebar:
label: "boot"
order: 1
---

`docker run` the named accessory container on its pinned host(s).

## Synopsis

```
wheels deploy accessory boot --name=<name|all> [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--name=<name>` | **Required.** Accessory name, or `all`. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print commands without executing. |

## Behavior

For each targeted accessory, emits `docker run` with the image, env, volumes, and `files:` uploads declared in `deploy.yml`. Container named `<service>-<accessory>`.

## Example

```bash
wheels deploy accessory boot --name=db
wheels deploy accessory boot --name=all
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: "wheels deploy accessory details"
description: docker ps filtered to the named accessory container.
type: reference
sidebar:
label: "details"
order: 6
---

`docker ps --filter name=<service>-<name>` on each of the accessory's hosts. Confirms it's up and shows uptime.

## Synopsis

```
wheels deploy accessory details --name=<name|all> [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--name=<name>` | **Required.** Accessory name, or `all`. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print commands without executing. |

## Example

```bash
wheels deploy accessory details --name=db
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: "wheels deploy accessory"
description: Sidecar container lifecycle — mirrors app verbs, scoped to a named accessory.
type: reference
sidebar:
label: "accessory"
order: 40
---

Sidecar container lifecycle. Every accessory verb takes a `--name` (or `all` for fan-out) and targets the pinned host(s) for that accessory.

## Verbs

| Verb | Purpose |
|------|---------|
| [`boot`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/boot/) | First-time install + run. |
| [`reboot`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/reboot/) | Stop, remove, re-install. |
| [`start`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/start/) | `docker start`. |
| [`stop`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/stop/) | `docker stop`. |
| [`restart`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/restart/) | `docker restart`. |
| [`details`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/details/) | `docker ps --filter`. |
| [`logs`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/logs/) | Tail accessory logs. |
| [`remove`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/remove/) | Stop + remove the container. |

## Common flags

| Flag | Description |
|------|-------------|
| `--name=<name>` | **Required.** Accessory name, or `all` to fan out. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print commands without executing. |

Missing `--name` throws `DeployAccessoryCli.MissingName`.

## Relationship to `wheels deploy`

Accessory verbs are **not** part of the rolling app deploy. `wheels deploy` leaves accessories alone — that's deliberate, so routine rollouts can't accidentally bounce your database. See [Accessories](/v4-0-0-snapshot/deployment/accessories/).
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
title: "wheels deploy accessory logs"
description: Tail the named accessory's container logs.
type: reference
sidebar:
label: "logs"
order: 7
---

`docker logs` on the named accessory, on every host it's pinned to.

## Synopsis

```
wheels deploy accessory logs --name=<name|all> [--tail=<N>] [--follow] [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--name=<name>` | **Required.** Accessory name, or `all`. |
| `--tail=<N>` | Trailing lines per host. Default 100. |
| `--follow` | Stream logs continuously. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print commands without executing. |

## Example

```bash
wheels deploy accessory logs --name=db --tail=500
wheels deploy accessory logs --name=redis --follow
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: "wheels deploy accessory reboot"
description: Stop, remove, and re-run the named accessory container.
type: reference
sidebar:
label: "reboot"
order: 2
---

Stop, remove, and re-run the named accessory container. Useful after bumping the image tag in `deploy.yml`.

## Synopsis

```
wheels deploy accessory reboot --name=<name|all> [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--name=<name>` | **Required.** Accessory name, or `all`. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print commands without executing. |

## Behavior

Per accessory: `docker stop <service>-<name>`, `docker rm <service>-<name>`, then the same `docker run` as [`accessory boot`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/boot/). Downtime lasts until the new container passes its health check (if declared).

## Example

```bash
wheels deploy accessory reboot --name=redis
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: "wheels deploy accessory remove"
description: Stop and remove the named accessory container. Volumes persist.
type: reference
sidebar:
label: "remove"
order: 8
---

import { Aside } from '@astrojs/starlight/components';

Stop and remove the named accessory container. Does not touch attached volumes.

<Aside type="caution">
Volumes persist after `accessory remove`. Data survives. If you want a truly clean slate, follow up with `docker volume rm` on the host.
</Aside>

## Synopsis

```
wheels deploy accessory remove --name=<name|all> [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--name=<name>` | **Required.** Accessory name, or `all`. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print commands without executing. |

## Example

```bash
wheels deploy accessory remove --name=redis
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: "wheels deploy accessory restart"
description: docker restart the named accessory container.
type: reference
sidebar:
label: "restart"
order: 5
---

`docker restart <service>-<name>`. Briefly interrupts the accessory.

## Synopsis

```
wheels deploy accessory restart --name=<name|all> [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--name=<name>` | **Required.** Accessory name, or `all`. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print commands without executing. |

## Example

```bash
wheels deploy accessory restart --name=redis
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: "wheels deploy accessory start"
description: docker start the named accessory container.
type: reference
sidebar:
label: "start"
order: 3
---

`docker start <service>-<name>` on the accessory's pinned host(s). Fails if the container doesn't exist — use [`accessory boot`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/boot/) for first-time install.

## Synopsis

```
wheels deploy accessory start --name=<name|all> [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--name=<name>` | **Required.** Accessory name, or `all`. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print commands without executing. |

## Example

```bash
wheels deploy accessory start --name=db
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: "wheels deploy accessory stop"
description: docker stop the named accessory container.
type: reference
sidebar:
label: "stop"
order: 4
---

`docker stop <service>-<name>`. Container remains on disk — use [`accessory remove`](/v4-0-0-snapshot/command-line-tools/commands/deploy/accessory/remove/) to delete.

## Synopsis

```
wheels deploy accessory stop --name=<name|all> [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--name=<name>` | **Required.** Accessory name, or `all`. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print commands without executing. |

## Example

```bash
wheels deploy accessory stop --name=db
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: "wheels deploy app boot"
description: Run new app containers for the given version on every host in every role.
type: reference
sidebar:
label: "boot"
order: 1
---

`docker run` new containers for the given version, on every host in every role.

## Synopsis

```
wheels deploy app boot --version=<v> [--role=<name>] [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--version=<v>` | **Required.** Version to boot. Throws `DeployAppCli.MissingVersion` if absent. |
| `--role=<name>` | Limit to one role. Default: every role. |
| `--destination=<name>` | Overlay `deploy.<name>.yml`. |
| `--dry-run` | Print the `docker run` commands without executing. |

## Behavior

For each host in each role, emits:

```
docker run --detach --restart unless-stopped \
--name <service>-<role>-<version> \
--network kamal \
--label service=<service> --label role=<role> --label destination=<dest> --label version=<v> \
-e KEY=VALUE ... \
<image>:<version>
```

`boot` does **not** ask the proxy to cut traffic — that's what `wheels deploy` does. Use `boot` for a stand-alone container bring-up; use `wheels deploy` for a full zero-downtime rollout.

## Example

```bash
wheels deploy app boot --version=abc1234
wheels deploy app boot --version=abc1234 --role=job
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: "wheels deploy app containers"
description: docker ps filtered by the service label — lists every version's container on every host.
type: reference
sidebar:
label: "containers"
order: 5
---

`docker ps` filtered by the service label. Shows every container for the service on every host, across every version. Useful for confirming retained containers before a rollback.

## Synopsis

```
wheels deploy app containers [--role=<name>] [--destination=<name>] [--dry-run]
```

## Flags

| Flag | Description |
|------|-------------|
| `--role=<name>` | Limit to one role. |
| `--destination=<name>` | Overlay destination config. |
| `--dry-run` | Print the command without executing. |

Unlike most `app` verbs, `--version` is **not** required — this verb enumerates every version.

## Behavior

Emits `docker ps --filter label=service=<service>` on every host in the targeted role(s). Running *and* stopped containers are returned.

## Example

```bash
wheels deploy app containers
wheels deploy app containers --role=web
```
Loading
Loading