# noust tunnel

Reach an application through a Cloudflare Tunnel: no public address, no open port.

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

Subcommands: [`check`](#noust-tunnel-check), [`create`](#noust-tunnel-create), [`install-cloudflared`](#noust-tunnel-install-cloudflared), [`list`](#noust-tunnel-list), [`remove`](#noust-tunnel-remove), [`repair`](#noust-tunnel-repair), [`route`](#noust-tunnel-route)

## noust tunnel check

Say whether a tunnel can run here, and what is missing.

```bash
noust tunnel check [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the answer 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 tunnel create

Create a tunnel at Cloudflare and run its connector here.

```bash
noust tunnel create [OPTIONS] NAME
```

Arguments: `name`

| Option | What it does | Default |
|---|---|---|
| `--account` | The Cloudflare account of 'noust dns provider' to create it through. |  |
| `--cloudflare-account` | The Cloudflare account id, when the token reaches several. |  |
| `--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 tunnel install-cloudflared

Install cloudflared, the connector a tunnel runs through.

```bash
noust tunnel install-cloudflared [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `--json` | Print what was done 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 tunnel list

List the tunnels, whether their connectors run and what each one carries.

```bash
noust tunnel list [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the tunnels 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 tunnel remove

Stop a tunnel's connector, delete the tunnel at Cloudflare and let go of its records.

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

Arguments: `name`

| Option | What it does | Default |
|---|---|---|
| `-y`, `--yes` | Do not ask. |  |
| `--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 tunnel repair

Finish the creations and removals that were interrupted.

```bash
noust tunnel repair [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `--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 tunnel route

The public names a tunnel carries, and where each one goes.

```bash
noust tunnel route [OPTIONS] COMMAND [ARGS]...
```

Subcommands: [`add`](#noust-tunnel-route-add), [`remove`](#noust-tunnel-route-remove)

## noust tunnel route add

Carry HOSTNAME through TUNNEL.

```bash
noust tunnel route add [OPTIONS] TUNNEL HOSTNAME
```

Arguments: `tunnel`, `hostname`

| Option | What it does | Default |
|---|---|---|
| `--app` | The application it is for: its site is reached. |  |
| `--service` | Where the connector sends it (http://localhost:3000), when it is not an application's site. |  |
| `--no-dns` | Do not make the name's CNAME. |  |
| `--replace-record` | Replace the record in the way: its id, as the conflict named it. |  |
| `--replace-current` | What that record held when you looked. |  |
| `--json` | Print the result 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 tunnel route remove

Stop carrying HOSTNAME, and let go of its record (a record Noust did not make stays).

```bash
noust tunnel route remove [OPTIONS] TUNNEL HOSTNAME
```

Arguments: `tunnel`, `hostname`

| Option | What it does | Default |
|---|---|---|
| `--keep-dns` | Do not touch the name's CNAME. |  |
| `--json` | Print the result 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. |  |

