# noust create

Deploy a web application and put it online.

```bash
noust create [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `-d`, `--domain` | Domain the application is served on. |  |
| `--temporary` | Instead of a domain, a temporary address made of this server's address and the application's name (shop.203-0-113-10.sslip.io), to try it before a domain points here. A certificate is tried for it and the application stays on HTTP if it is refused. |  |
| `-s`, `--source` | Git URL, archive URL or directory to deploy from. Not with --recipe. |  |
| `--recipe` | Deploy a known application from its recipe (see 'noust recipe list'): its source, type, database and settings come from the recipe. |  |
| `--env` | Set a variable of the application environment, over --env-file and a recipe's own. Repeat for several. |  |
| `-t`, `--type` | Application type. Detected from the source when left on auto. | `auto` |
| `-p`, `--port` | Port the application listens on. A free one is chosen when omitted. |  |
| `-w`, `--webserver` | Web server that fronts the application. | `nginx` |
| `-b`, `--branch` | Git branch to deploy. |  |
| `--follow-tags` | Deploy the newest git tag that matches this glob (such as 'v*') and keep deploying new ones, from a release or a tag push, instead of following a branch. |  |
| `--no-ssl` | Serve over plain HTTP, without a certificate. |  |
| `--www` | Also answer on www.<domain>, redirecting it to the domain (see 'noust domain'). |  |
| `--env-file` | File of KEY=value lines to install as the application environment. |  |
| `--package-manager`, `--pm` | Node package manager. Detected from the lockfile when left on auto. | `auto` |
| `--subdomains` | Serve a monorepo app on this subdomain. Repeat once per app. |  |
| `--workspaces` | Deploy only this monorepo workspace. Repeat to select several. |  |
| `--no-database` | Skip database provisioning for a monorepo. |  |
| `--database` | Create a database for the application before its first build, owned by an account of its own, with its connection string in the environment (DATABASE_URL, REDIS_URL for Redis). NAME defaults to one derived from the domain. Not with --recipe. |  |
| `--database-version` | The version of the --database engine, such as 17 or 11.4. The installed one when omitted; one the server does not run is refused with what it runs. |  |
| `--install-database` | Install the --database engine, in --database-version, when it is not installed. Installs packages: the same as 'noust db install'. |  |
| `--database-instance` | Make the --database on this instance Noust runs ('noust db instance list') instead of the host's engine. One is also chosen by itself when --database-version is what an instance runs and the host does not. |  |
| `--compose-file` | Compose file to use, relative to the project. Detected when omitted. |  |
| `--compose-profiles` | Activate this Docker Compose profile. Repeat to activate several. |  |
| `--layout` | Build every deploy as a release behind a health gate, or in place. Defaults to the server's deploy.layout. |  |
| `--persist` | Keep this path, relative to the app, in shared/ across releases. Repeat for several. |  |
| `--build-file` | A YAML file holding 'build:' (base_directory, install, build, start, publish_directory, runtime): the operator's block for this application, which replaces the repository's noust.yaml and is kept for every update. How several applications are deployed from one repository: see docs/build.md. |  |
| `--force` | Deploy into an app directory that already holds files: in place a git checkout is brought up to date, keeping what git does not track (.env, data), and anything else is refused, never emptied; on releases a release is added beside them. |  |
| `--no-cache` | Build the first deployment without any cache: images without their layer cache. |  |
| `--registry` | A registry account (noust registry add) to pull private images with, for a Docker Compose or container application. Repeat it for several. |  |
| `--image` | Deploy this image from a registry: name[:tag][@sha256:digest]. Needs no source. |  |
| `--builder` | How a repository becomes an image: its Dockerfile, or Railpack, which needs none (noust setup railpack). |  |
| `--dockerfile` | The Dockerfile, relative to the repository. Default: Dockerfile or Containerfile in the context. |  |
| `--context` | The build context, relative to the repository. Default: its root. |  |
| `--target` | The stage of a multi-stage Dockerfile to build. |  |
| `--build-arg` | A build argument (not a secret: it is written into the image). Repeat for several. |  |
| `--build-secret` | A secret the build mounts, read from FILE and kept in the secret store; never an argument of the build. Repeat for several. |  |
| `--container-port` | Where the process listens inside the container. Default: what the Dockerfile or the image exposes. |  |
| `--volume` | A path in the container whose data survives every deployment, such as /data. Repeat for several. |  |
| `--restart` | Docker's restart policy: no, always, unless-stopped (default) or on-failure. |  |
| `--entrypoint` | Run this program instead of the image's ENTRYPOINT: the line is split into words the way a shell would, and no shell runs it. An empty line clears the image's entrypoint (its CMD is then the program). Setting one drops the image's CMD: give --command too if it should still apply. |  |
| `--command` | Give the entrypoint these arguments instead of the image's CMD (split into words, no shell). Docker cannot clear a CMD: an empty line is refused; --clear command goes back to the image's. |  |
| `--registry-server` | The registry the account is for. Default: the image's own. |  |
| `--registry-user` | The account of a private registry. |  |
| `--registry-password-stdin` | Read the account's password from standard input. |  |
| `--team` | The team it belongs to (default: the default team). |  |
| `--project` | The project it belongs to (default: the team's default). |  |
| `--environment` | The environment it belongs to (default: production). |  |
| `-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. |  |

