# noust recipe

The recipe catalogue: browse it, install from it and keep what you installed up to date.

```bash
noust recipe [OPTIONS] COMMAND [ARGS]...
```

Subcommands: [`add`](#noust-recipe-add), [`catalog`](#noust-recipe-catalog), [`check`](#noust-recipe-check), [`install`](#noust-recipe-install), [`list`](#noust-recipe-list), [`outdated`](#noust-recipe-outdated), [`remove`](#noust-recipe-remove), [`requirements`](#noust-recipe-requirements), [`show`](#noust-recipe-show), [`update`](#noust-recipe-update)

## noust recipe add

Add your own recipe to the catalogue.

```bash
noust recipe add [OPTIONS] PATH
```

Arguments: `path`

| Option | What it does | Default |
|---|---|---|
| `--replace` | Overwrite a recipe of yours with the same name. |  |
| `-v`, `--verbose` | Show the detail of each step. |  |
| `--dry-run` | Rehearse without changing anything. Read-only checks still run. |  |
| `--no-color` | Never emit colour. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe catalog

The signed packages of recipes that grow the catalogue between releases.

```bash
noust recipe catalog [OPTIONS] COMMAND [ARGS]...
```

Subcommands: [`fetch`](#noust-recipe-catalog-fetch), [`import`](#noust-recipe-catalog-import), [`remove`](#noust-recipe-catalog-remove), [`show`](#noust-recipe-catalog-show), [`trust`](#noust-recipe-catalog-trust)

## noust recipe catalog fetch

Download a signed package over https and import it, with every check import has.

```bash
noust recipe catalog fetch [OPTIONS] URL
```

Arguments: `url`

| Option | What it does | Default |
|---|---|---|
| `--force` | Accept a package whose serial is not higher. |  |
| `-v`, `--verbose` | Show the detail of each step. |  |
| `--dry-run` | Rehearse without changing anything. Read-only checks still run. |  |
| `--no-color` | Never emit colour. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe catalog import

Import a signed package of recipes.

```bash
noust recipe catalog import [OPTIONS] PACKAGE
```

Arguments: `package`

| Option | What it does | Default |
|---|---|---|
| `--force` | Accept a package whose serial is not higher. |  |
| `-v`, `--verbose` | Show the detail of each step. |  |
| `--dry-run` | Rehearse without changing anything. Read-only checks still run. |  |
| `--no-color` | Never emit colour. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe catalog remove

Go back to the recipes this release ships.

```bash
noust recipe catalog remove [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `-v`, `--verbose` | Show the detail of each step. |  |
| `--dry-run` | Rehearse without changing anything. Read-only checks still run. |  |
| `--no-color` | Never emit colour. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe catalog show

Say which package is in place, who signed it, and whose keys are trusted.

```bash
noust recipe catalog show [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the package as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe catalog trust

Trust a key to sign packages: NAME is yours to choose, PUBLIC_KEY is 64 hex digits.

```bash
noust recipe catalog trust [OPTIONS] NAME PUBLIC_KEY
```

Arguments: `name`, `public_key`

| Option | What it does | Default |
|---|---|---|
| `-v`, `--verbose` | Show the detail of each step. |  |
| `--dry-run` | Rehearse without changing anything. Read-only checks still run. |  |
| `--no-color` | Never emit colour. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe check

Check a recipe file, or a folder of them, without adding anything.

```bash
noust recipe check [OPTIONS] PATH
```

Arguments: `path`

| Option | What it does | Default |
|---|---|---|
| `--json` | Print what was checked as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe install

Install a recipe on a domain.

```bash
noust recipe install [OPTIONS] NAME
```

Arguments: `name`

| Option | What it does | Default |
|---|---|---|
| `-d`, `--domain` | The domain to serve it on. |  |
| `--var` | Give a variable a value: the ones the recipe requires, or any it sets. Repeat for several. |  |
| `--var-file` | A file of NAME=VALUE lines, under --var. |  |
| `--port` | The port to listen on; a free one is chosen when omitted. |  |
| `--no-ssl` | Do not request a certificate. |  |
| `--www` | Also answer on www.<domain>, as a redirect. |  |
| `--force` | Deploy into an application directory that already holds files. |  |
| `--no-backups` | Do not schedule the daily backups an installed application starts with. |  |
| `--install-requirements` | Install the language runtime and the database engines the recipe needs and this server lacks, instead of stopping. |  |
| `--database` | The SQL engine to run it on, for a recipe that offers a choice (WordPress runs on either). |  |
| `--accept-root-equivalent` | Confirm that you accept a recipe that is root on this server (one that controls Docker): it is refused without it. |  |
| `-v`, `--verbose` | Show the detail of each step. |  |
| `--dry-run` | Rehearse without changing anything. Read-only checks still run. |  |
| `--no-color` | Never emit colour. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe list

List the recipes, the ones this release can deploy first.

```bash
noust recipe list [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `-q`, `--query` | Words to look for in the name, title, slogan and tags. |  |
| `--category` | Only the recipes of this category. |  |
| `--tag` | Only the recipes with this tag. |  |
| `--kind` | Only native or only compose recipes. |  |
| `--unavailable` | Only the recipes that are listed and cannot be installed, with the reason of each. |  |
| `--tested`, `--untested` | Only the recipes that were started for real in the harness, or only the others. |  |
| `--reason` | Only the listed recipes left out for this reason. |  |
| `--origin` | Only the package's recipes (shipped), a catalogue package's (catalog) or yours (operator). |  |
| `--json` | Print the recipes as JSON. |  |

## noust recipe outdated

Say which installed recipes the catalogue has a newer version of.

```bash
noust recipe outdated [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `--all` | Also list the ones that are up to date. |  |
| `--json` | Print the statuses as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe remove

Remove one of your own recipes.

```bash
noust recipe remove [OPTIONS] NAME
```

Arguments: `name`

| Option | What it does | Default |
|---|---|---|
| `-v`, `--verbose` | Show the detail of each step. |  |
| `--dry-run` | Rehearse without changing anything. Read-only checks still run. |  |
| `--no-color` | Never emit colour. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe requirements

Show what a recipe needs from this server and whether it has it.

```bash
noust recipe requirements [OPTIONS] NAME
```

Arguments: `name`

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the requirements as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe show

Describe one recipe: what it deploys, from where, and what it needs.

```bash
noust recipe show [OPTIONS] NAME
```

Arguments: `name`

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the recipe as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust recipe update

Update an installed recipe to the catalogue's version.

```bash
noust recipe update [OPTIONS] DOMAIN
```

Arguments: `domain`

| Option | What it does | Default |
|---|---|---|
| `--var` | A value for a variable the new version asks for. Repeat for several. |  |
| `--force` | Deploy the catalogue's version even if it is installed. |  |
| `-v`, `--verbose` | Show the detail of each step. |  |
| `--dry-run` | Rehearse without changing anything. Read-only checks still run. |  |
| `--no-color` | Never emit colour. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

