# Command-Line Help for `ordinaryd`
This document contains the help content for the `ordinaryd` command-line program.
**Command Overview:**
* [`ordinaryd`↴](#ordinaryd)
* [`ordinaryd init`↴](#ordinaryd-init)
* [`ordinaryd api`↴](#ordinaryd-api)
* [`ordinaryd app`↴](#ordinaryd-app)
## `ordinaryd`
Ordinary Server
**Usage:** `ordinaryd [OPTIONS] <COMMAND>`
###### **Subcommands:**
* `init` — initialize the environment for an Ordinary API server
* `api` — start the Ordinary API server
* `app` — start an Ordinary Application server
###### **Options:**
* `--data-dir <DATA_DIR>` — specify the data directory
Default value: `~/.ordinary`
* `--stored-logs` — persists JSON formatted log lines to <data-dir>/logs/<domain>/
Default value: `false`
* `--stdio-logs` — logs events to stdio
Default value: `false`
* `--stdio-logs-fmt <STDIO_LOGS_FMT>` — how to format stdio logs
Default value: `json`
Possible values: `concise`, `pretty`, `json`
* `--journald-logs` — logs events to `journald` (only works on Linux distros that use `systemd`)
Default value: `false`
* `--log-level <LOG_LEVEL>` — base log level for every component
Default value: `info`
Possible values: `error`, `warn`, `info`, `debug`, `trace`
* `--log-sizes` — whether storage and certain payload sizes are logged
Default value: `false`
* `--stdio-logs-timing` — whether span timing is logged
Default value: `false`
## `ordinaryd init`
initialize the environment for an Ordinary API server
**Usage:** `ordinaryd init [OPTIONS] --storage-size <STORAGE_SIZE> --api-domain <API_DOMAIN>`
###### **Options:**
* `--environment <ENVIRONMENT>` — environment (e.g production, development, staging)
Default value: `staging`
* `--storage-size <STORAGE_SIZE>` — Storage size in bytes (rounded up to nearest OS page size)
* `--api-domain <API_DOMAIN>` — domain name for API console
* `--password <PASSWORD>` — instance user password
Default value: `password`
* `--mfa-stored` — store the MFA key locally instead of copying a QR code
Default value: `false`
* `--api-contacts <API_CONTACTS>` — contacts for the API domain cert provisioning
* `--app-domains <APP_DOMAINS>` — domains that apps can subdomain off of.
i.e. when `example.com` is passed, `my.example.com` is considered a valid app domain.
* `--privileged-domains <PRIVILEGED_DOMAINS>` — list of applications that have access to API server level commands (i.e. API server invite token generation)
currently intended to enable API server admins to set up a web-based registration portal.
## `ordinaryd api`
start the Ordinary API server
**Usage:** `ordinaryd api [OPTIONS] --storage-size <STORAGE_SIZE>`
###### **Options:**
* `--environment <ENVIRONMENT>` — environment (e.g production, development, staging)
Default value: `staging`
* `--storage-size <STORAGE_SIZE>` — Storage size in bytes (rounded up to nearest OS page size)
* `--provision <PROVISION>` — what mode TLS certs should be provisioned in
Default value: `localhost`
Possible values: `staging`, `production`, `localhost`
* `--port <PORT>` — specify HTTP(s) port for server
* `--redirect-port <REDIRECT_PORT>` — specify HTTP port for server when running in secure mode
* `--insecure` — run without HTTPS
Default value: `false`
* `--insecure-cookies` — run with insecure cookies
Default value: `false`
* `--log-ttl-hours <LOG_TTL_HOURS>` — max period of time logs are stored
Default value: `72`
* `--log-rotation-file-size <LOG_ROTATION_FILE_SIZE>` — max size (in bytes) per log file
Default value: `10000000`
* `--log-rotation-mins <LOG_ROTATION_MINS>` — max amount of time a log file is appended to before being compressed and stored
Default value: `60`
* `--log-headers` — whether HTTP request and response headers are logged
Default value: `false`
* `--log-ips` — whether IP Addresses are logged with HTTP requests
Default value: `false`
* `--redacted-header-hash <REDACTED_HEADER_HASH>` — "none" | "blake2" | "blake3"
Default value: `none`
* `--danger-dns-no-verify` — set to `true` to bypass verification of proxy domain and CNAME DNS TXT records.
**IMPORTANT**: should ONLY be used for local development and testing.
Default value: `false`
* `--dedicated-ports` — give each app its own port
Default value: `false`
* `--swagger` — Storage size in bytes (rounded up to nearest OS page size)
Default value: `false`
## `ordinaryd app`
start an Ordinary Application server
**Usage:** `ordinaryd app [OPTIONS]`
###### **Options:**
* `--provision <PROVISION>` — what mode TLS certs should be provisioned in
Default value: `localhost`
Possible values: `staging`, `production`, `localhost`
* `--port <PORT>` — specify HTTP(s) port for server
* `--redirect-port <REDIRECT_PORT>` — specify HTTP port for server when running in secure mode
* `--insecure` — run without HTTPS
Default value: `false`
* `--insecure-cookies` — run with insecure cookies
Default value: `false`
* `--log-ttl-hours <LOG_TTL_HOURS>` — max period of time logs are stored
Default value: `72`
* `--log-rotation-file-size <LOG_ROTATION_FILE_SIZE>` — max size (in bytes) per log file
Default value: `10000000`
* `--log-rotation-mins <LOG_ROTATION_MINS>` — max amount of time a log file is appended to before being compressed and stored
Default value: `60`
* `--log-headers` — whether HTTP request and response headers are logged
Default value: `false`
* `--log-ips` — whether IP Addresses are logged with HTTP requests
Default value: `false`
* `--redacted-header-hash <REDACTED_HEADER_HASH>` — "none" | "blake2" | "blake3"
Default value: `none`
* `--danger-dns-no-verify` — set to `true` to bypass verification of proxy domain and CNAME DNS TXT records.
**IMPORTANT**: should ONLY be used for local development and testing.
Default value: `false`
* `-p`, `--project <PROJECT>` — for running a standalone project. (project must already be built)
Default value: `.`
* `--domain-override <DOMAIN_OVERRIDE>` — use a different domain than what's in the `ordinary.json`
<hr/>
<small><i>
This document was generated automatically by
<a href="https://crates.io/crates/clap-markdown"><code>clap-markdown</code></a>.
</i></small>