# Command-Line Help for `ordinary`
This document contains the help content for the `ordinary` command-line program.
**Command Overview:**
* [`ordinary`↴](#ordinary)
* [`ordinary app`↴](#ordinary-app)
* [`ordinary app new`↴](#ordinary-app-new)
* [`ordinary app build`↴](#ordinary-app-build)
* [`ordinary app start`↴](#ordinary-app-start)
* [`ordinary app publish`↴](#ordinary-app-publish)
* [`ordinary app deploy`↴](#ordinary-app-deploy)
* [`ordinary app kill`↴](#ordinary-app-kill)
* [`ordinary app restart`↴](#ordinary-app-restart)
* [`ordinary app erase`↴](#ordinary-app-erase)
* [`ordinary app logs`↴](#ordinary-app-logs)
* [`ordinary app logs sync`↴](#ordinary-app-logs-sync)
* [`ordinary app logs sync info`↴](#ordinary-app-logs-sync-info)
* [`ordinary app logs sync file`↴](#ordinary-app-logs-sync-file)
* [`ordinary app logs sync all`↴](#ordinary-app-logs-sync-all)
* [`ordinary app logs list`↴](#ordinary-app-logs-list)
* [`ordinary app logs read`↴](#ordinary-app-logs-read)
* [`ordinary app logs query`↴](#ordinary-app-logs-query)
* [`ordinary app logs search`↴](#ordinary-app-logs-search)
* [`ordinary app assets`↴](#ordinary-app-assets)
* [`ordinary app assets write`↴](#ordinary-app-assets-write)
* [`ordinary app assets prune`↴](#ordinary-app-assets-prune)
* [`ordinary app assets delete`↴](#ordinary-app-assets-delete)
* [`ordinary app accounts`↴](#ordinary-app-accounts)
* [`ordinary app accounts list`↴](#ordinary-app-accounts-list)
* [`ordinary app functions`↴](#ordinary-app-functions)
* [`ordinary app functions add`↴](#ordinary-app-functions-add)
* [`ordinary app functions build`↴](#ordinary-app-functions-build)
* [`ordinary app functions upload`↴](#ordinary-app-functions-upload)
* [`ordinary app database`↴](#ordinary-app-database)
* [`ordinary app database seed`↴](#ordinary-app-database-seed)
* [`ordinary app database models`↴](#ordinary-app-database-models)
* [`ordinary app database models add`↴](#ordinary-app-database-models-add)
* [`ordinary app database items`↴](#ordinary-app-database-items)
* [`ordinary app database items list`↴](#ordinary-app-database-items-list)
* [`ordinary app secrets`↴](#ordinary-app-secrets)
* [`ordinary app secrets store`↴](#ordinary-app-secrets-store)
* [`ordinary app config`↴](#ordinary-app-config)
* [`ordinary app config view`↴](#ordinary-app-config-view)
* [`ordinary app config validate`↴](#ordinary-app-config-validate)
* [`ordinary app routes`↴](#ordinary-app-routes)
* [`ordinary ssg`↴](#ordinary-ssg)
* [`ordinary ssg new`↴](#ordinary-ssg-new)
* [`ordinary host`↴](#ordinary-host)
* [`ordinary host info`↴](#ordinary-host-info)
* [`ordinary host metrics`↴](#ordinary-host-metrics)
* [`ordinary host logs`↴](#ordinary-host-logs)
* [`ordinary host logs sync`↴](#ordinary-host-logs-sync)
* [`ordinary host logs sync info`↴](#ordinary-host-logs-sync-info)
* [`ordinary host logs sync file`↴](#ordinary-host-logs-sync-file)
* [`ordinary host logs sync all`↴](#ordinary-host-logs-sync-all)
* [`ordinary host logs list`↴](#ordinary-host-logs-list)
* [`ordinary host logs read`↴](#ordinary-host-logs-read)
* [`ordinary host logs query`↴](#ordinary-host-logs-query)
* [`ordinary host logs search`↴](#ordinary-host-logs-search)
* [`ordinary host accounts`↴](#ordinary-host-accounts)
* [`ordinary host accounts register`↴](#ordinary-host-accounts-register)
* [`ordinary host accounts login`↴](#ordinary-host-accounts-login)
* [`ordinary host accounts logout`↴](#ordinary-host-accounts-logout)
* [`ordinary host accounts access`↴](#ordinary-host-accounts-access)
* [`ordinary host accounts access get`↴](#ordinary-host-accounts-access-get)
* [`ordinary host accounts password`↴](#ordinary-host-accounts-password)
* [`ordinary host accounts password reset`↴](#ordinary-host-accounts-password-reset)
* [`ordinary host accounts password forgot`↴](#ordinary-host-accounts-password-forgot)
* [`ordinary host accounts mfa`↴](#ordinary-host-accounts-mfa)
* [`ordinary host accounts mfa reset`↴](#ordinary-host-accounts-mfa-reset)
* [`ordinary host accounts mfa lost`↴](#ordinary-host-accounts-mfa-lost)
* [`ordinary host accounts recovery-codes`↴](#ordinary-host-accounts-recovery-codes)
* [`ordinary host accounts recovery-codes reset`↴](#ordinary-host-accounts-recovery-codes-reset)
* [`ordinary host accounts delete`↴](#ordinary-host-accounts-delete)
* [`ordinary host accounts invite`↴](#ordinary-host-accounts-invite)
* [`ordinary host accounts current`↴](#ordinary-host-accounts-current)
* [`ordinary host accounts list`↴](#ordinary-host-accounts-list)
* [`ordinary host accounts switch`↴](#ordinary-host-accounts-switch)
* [`ordinary host moderation`↴](#ordinary-host-moderation)
* [`ordinary host moderation lock`↴](#ordinary-host-moderation-lock)
* [`ordinary host moderation unlock`↴](#ordinary-host-moderation-unlock)
* [`ordinary doctor`↴](#ordinary-doctor)
* [`ordinary utils`↴](#ordinary-utils)
* [`ordinary utils uuid`↴](#ordinary-utils-uuid)
* [`ordinary utils timestamp`↴](#ordinary-utils-timestamp)
* [`ordinary utils html`↴](#ordinary-utils-html)
* [`ordinary utils html minify`↴](#ordinary-utils-html-minify)
* [`ordinary utils html csp-hashes`↴](#ordinary-utils-html-csp-hashes)
* [`ordinary utils css`↴](#ordinary-utils-css)
* [`ordinary utils css minify`↴](#ordinary-utils-css-minify)
* [`ordinary utils js`↴](#ordinary-utils-js)
* [`ordinary utils js minify`↴](#ordinary-utils-js-minify)
* [`ordinary utils markdown`↴](#ordinary-utils-markdown)
* [`ordinary utils markdown to-html`↴](#ordinary-utils-markdown-to-html)
* [`ordinary utils exif`↴](#ordinary-utils-exif)
* [`ordinary utils exif tool`↴](#ordinary-utils-exif-tool)
* [`ordinary utils qr-code`↴](#ordinary-utils-qr-code)
## `ordinary`
Ordinary CLI
**Usage:** `ordinary [OPTIONS] <COMMAND>`
###### **Subcommands:**
* `app` — manage applications running on `ordinaryd`
* `ssg` — manage static site configuration
* `host` — manage an `ordinaryd` instance
* `doctor` — ensure that all the correct system components are installed
* `utils` — utility functions for aiding project development
###### **Options:**
* `-v`, `--verbose` — Increase logging verbosity
* `-q`, `--quiet` — Decrease logging verbosity
* `--pretty` — whether to pretty print events to stdio
Default value: `false`
## `ordinary app`
manage applications running on `ordinaryd`
**Usage:** `ordinary app <COMMAND>`
###### **Subcommands:**
* `new` — create a new Ordinary project
* `build` — build your Ordinary app
* `start` — start the app, locally
* `publish` — combines `build`, `deploy`, `assets write`, and `functions upload`
* `deploy` — deploy a changes to ordinary.json
* `kill` — kill a running instance of the application
* `restart` — restart a deployed/running instance of the application on `ordinaryd`
* `erase` — fully erase all content of the application from the host
* `logs` — query application logs
* `assets` — manage assets in your Ordinary project
* `accounts` — manage application accounts
* `functions` — manage functions on your Ordinary app
* `database` — manage database models in your Ordinary app
* `secrets` — manage secrets in your Ordinary application
* `config` — view and validate the app config
* `routes` — list all HTTP routes
## `ordinary app new`
create a new Ordinary project
**Usage:** `ordinary app new [OPTIONS] <DOMAIN>`
**Command Aliases:** `create`, `init`
###### **Arguments:**
* `<DOMAIN>` — project domain
###### **Options:**
* `--path <PATH>` — project path
Default value: `.`
## `ordinary app build`
build your Ordinary app
Note: will load environment variables from `.env`
**Usage:** `ordinary app build [OPTIONS]`
###### **Options:**
* `-f`, `--force` — build project without checking the cache
Default value: `false`
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app start`
start the app, locally
**Usage:** `ordinary app start [OPTIONS]`
**Command Aliases:** `run`, `preview`
###### **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`
* `--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`
* `-d`, `--disable-defaults` — disables these defaults set for development: `--stdio-logs` `--stdio-logs-fmt concise` `--insecure` `--insecure-cookies`
Default value: `false`
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app publish`
combines `build`, `deploy`, `assets write`, and `functions upload`
**Usage:** `ordinary app publish [OPTIONS]`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `-t`, `--tls-staging` — overrides if mode=production. does nothing if mode is localhost or staging
useful for when you're validating that your DNS is configured properly, and you want to avoid the Let's Encrypt rate limit for production mode <https://letsencrypt.org/docs/rate-limits/>
Default value: `false`
* `--no-seed` — if `true`, will not seed the app database on publish
Default value: `false`
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app deploy`
deploy a changes to ordinary.json
**Usage:** `ordinary app deploy [OPTIONS]`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `-j`, `--json-to-stdout` — whether the result of the operation should be printed to stdout formatted as JSON
Default value: `false`
* `-t`, `--tls-staging` — overrides if mode=production. does nothing if mode is localhost or staging
useful for when you're validating that your DNS is configured properly, and you want to avoid the Let's Encrypt rate limit for production mode <https://letsencrypt.org/docs/rate-limits/>
Default value: `false`
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app kill`
kill a running instance of the application
**Usage:** `ordinary app kill [OPTIONS]`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app restart`
restart a deployed/running instance of the application on `ordinaryd`
**Usage:** `ordinary app restart [OPTIONS]`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `-j`, `--json-to-stdout` — whether the result of the operation should be printed to stdout formatted as JSON
Default value: `false`
* `-t`, `--tls-staging` — overrides if mode=production. does nothing if mode is localhost or staging
useful for when you're validating that your DNS is configured properly, and you want to avoid the Let's Encrypt rate limit for production mode <https://letsencrypt.org/docs/rate-limits/>
Default value: `false`
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app erase`
fully erase all content of the application from the host
**Usage:** `ordinary app erase [OPTIONS]`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app logs`
query application logs
**Usage:** `ordinary app logs [OPTIONS] <COMMAND>`
###### **Subcommands:**
* `sync` — sync files, indexes and tables
* `list` — list all log files
* `read` — read one or all files to stdout
* `query` — query logs with SQL
* `search` — search the tantivy index
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app logs sync`
sync files, indexes and tables
**Usage:** `ordinary app logs sync <COMMAND>`
###### **Subcommands:**
* `info` — get information about remote and local log files
* `file` — sync a single file
* `all` — repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)
## `ordinary app logs sync info`
get information about remote and local log files.
- "✅" remote and local are synced - "❌" not found on remote *or* local - "⚠️" present on both but local is out of sync
**Usage:** `ordinary app logs sync info`
## `ordinary app logs sync file`
sync a single file
**Usage:** `ordinary app logs sync file <NAME>`
###### **Arguments:**
* `<NAME>` — file name
## `ordinary app logs sync all`
repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)
**Usage:** `ordinary app logs sync all [OPTIONS]`
###### **Options:**
* `-f`, `--force <FORCE>` — download all files from the server, overwriting everything you have locally.
Note: will preserve the state of any files the server no longer has a record of.
Possible values: `true`, `false`
## `ordinary app logs list`
list all log files
**Usage:** `ordinary app logs list`
**Command Alias:** `ls`
## `ordinary app logs read`
read one or all files to stdout
**Usage:** `ordinary app logs read [OPTIONS]`
###### **Options:**
* `-n`, `--name <NAME>` — name of the log file to read
## `ordinary app logs query`
query logs with SQL
stored in a `SQLite` file located at `~/.ordinary/logs/<your-domain>/events.sqlite`.
results are logged to stdout as JSON lines.
**Usage:** `ordinary app logs query [OPTIONS] <QUERY>`
###### **Arguments:**
* `<QUERY>` — [reference](https://sqlite.org/lang.html)
schema:
```sql CREATE TABLE IF NOT EXISTS events ( id TEXT PRIMARY KEY, -- string formatted UUID ts TEXT NOT NULL, -- timestamp (2026-06-28T14:19:54.937575Z) lvl TEXT NOT NULL, -- level string (TRACE | DEBUG | INFO | WARN | ERROR) spn BLOB, -- JSONB formatted spans fld BLOB, -- JSONB formatted fields file TEXT NOT NULL -- file name the event was pulled from ); ```
query:
```sql SELECT file, id, ts, lvl, json(spn), json(fld) FROM events; ```
###### **Options:**
* `-j`, `--json-columns <JSON_COLUMNS>` — which columns should be nested as JSON
i.e.
```sh ordinary app logs query \ 'SELECT file, id, ts, lvl, json(spn) as spn, json(fld) as fld FROM events' \ --json-columns spn,fld ```
* `-s`, `--sync <SYNC>` — whether to sync from remote
Possible values: `true`, `false`
## `ordinary app logs search`
search the tantivy index
**Usage:** `ordinary app logs search [OPTIONS] <FORMAT> <QUERY>`
###### **Arguments:**
* `<FORMAT>` — format
Possible values: `all`, `top`, `count`
* `<QUERY>` — [reference](https://quickwit.io/docs/reference/query-language)
###### **Options:**
* `--limit <LIMIT>` — limit (when using 'top' format)
* `-s`, `--sync <SYNC>` — whether to sync from remote
Possible values: `true`, `false`
## `ordinary app assets`
manage assets in your Ordinary project
**Usage:** `ordinary app assets [OPTIONS] <COMMAND>`
###### **Subcommands:**
* `write` — write assets to application running on `ordinaryd` instance
* `prune` — prune all assets on the server that are not known locally
* `delete` — deletes assets on the server
###### **Options:**
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app assets write`
write assets to application running on `ordinaryd` instance
**Usage:** `ordinary app assets write [OPTIONS]`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `-n`, `--name <NAME>` — name of a specific asset to write (optional). will write all when the `--name` flag is not passed
## `ordinary app assets prune`
prune all assets on the server that are not known locally
**Usage:** `ordinary app assets prune [OPTIONS]`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
## `ordinary app assets delete`
deletes assets on the server
when no flags are passed, all assets are deleted.
**Usage:** `ordinary app assets delete [OPTIONS]`
**Command Alias:** `del`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `--skip <SKIP>` — which items to skip when deleting all
## `ordinary app accounts`
manage application accounts
**Usage:** `ordinary app accounts [OPTIONS] <COMMAND>`
**Command Aliases:** `account`, `accts`, `acct`
###### **Subcommands:**
* `list` — list application accounts
###### **Options:**
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app accounts list`
list application accounts
**Usage:** `ordinary app accounts list [OPTIONS]`
**Command Alias:** `ls`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
## `ordinary app functions`
manage functions on your Ordinary app
**Usage:** `ordinary app functions [OPTIONS] <COMMAND>`
**Command Aliases:** `fns`, `fn`, `function`
###### **Subcommands:**
* `add` — add a new function to your Ordinary project
* `build` — build just the functions
* `upload` — upload functions to application running on `ordinaryd` instance
###### **Options:**
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app functions add`
add a new function to your Ordinary project
**Usage:** `ordinary app functions add [OPTIONS] <NAME>`
**Command Aliases:** `create`, `new`
###### **Arguments:**
* `<NAME>` — function name
###### **Options:**
* `-t`, `--toolchain <TOOLCHAIN>` — language the function runs
Default value: `rust`
Possible values: `rust`, `c`, `go`, `js`, `ts`
## `ordinary app functions build`
build just the functions
Note: will load environment variables from `.env`
**Usage:** `ordinary app functions build [OPTIONS]`
###### **Options:**
* `-n`, `--name <NAME>` — name of a specific function to build (optional). will install all when the `--name` flag is not passed
* `-f`, `--force` — build functions without checking the cache
Default value: `false`
## `ordinary app functions upload`
upload functions to application running on `ordinaryd` instance
**Usage:** `ordinary app functions upload [OPTIONS]`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `-n`, `--name <NAME>` — name of a specific function to upload (optional). will upload all when the `--name` flag is not passed
## `ordinary app database`
manage database models in your Ordinary app
**Usage:** `ordinary app database [OPTIONS] <COMMAND>`
**Command Alias:** `db`
###### **Subcommands:**
* `seed` — seed the database if the `seed_path` is set
* `models` —
* `items` — manage model items for the application running on an `ordinaryd` instance
###### **Options:**
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app database seed`
seed the database if the `seed_path` is set
**Usage:** `ordinary app database seed [OPTIONS]`
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
## `ordinary app database models`
**Usage:** `ordinary app database models <COMMAND>`
###### **Subcommands:**
* `add` — add a new model to your Ordinary project
## `ordinary app database models add`
add a new model to your Ordinary project
**Usage:** `ordinary app database models add <NAME> [UUID_VERSION]`
###### **Arguments:**
* `<NAME>` — name of the model
* `<UUID_VERSION>` — UUID version
Possible values: `v4`, `v7`
## `ordinary app database items`
manage model items for the application running on an `ordinaryd` instance
**Usage:** `ordinary app database items <COMMAND>`
###### **Subcommands:**
* `list` — list model items for the application running on an `ordinaryd` instance
## `ordinary app database items list`
list model items for the application running on an `ordinaryd` instance
**Usage:** `ordinary app database items list [OPTIONS] <NAME>`
**Command Alias:** `ls`
###### **Arguments:**
* `<NAME>` — name of the model
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
* `--json` — for applications that need to consume stdio or pipe to `jq`
Default value: `false`
## `ordinary app secrets`
manage secrets in your Ordinary application
**Usage:** `ordinary app secrets [OPTIONS] <COMMAND>`
###### **Subcommands:**
* `store` — store an application secret
###### **Options:**
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app secrets store`
store an application secret
Note: currently requires a restart via `ordinary app restart` after being stored.
**Usage:** `ordinary app secrets store [OPTIONS] <NAME> <SECRET>`
###### **Arguments:**
* `<NAME>` — secret name
* `<SECRET>` — secret value
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
## `ordinary app config`
view and validate the app config
**Usage:** `ordinary app config [OPTIONS] <COMMAND>`
###### **Subcommands:**
* `view` — view the config that will be produced and used by operations that depend on its assembled state
* `validate` — validate the existing config in an assembled state
###### **Options:**
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary app config view`
view the config that will be produced and used by operations that depend on its assembled state
**Usage:** `ordinary app config view [OPTIONS]`
###### **Options:**
* `-f`, `--for <FOR>`
Default value: `build`
Possible values: `build`, `deploy`
## `ordinary app config validate`
validate the existing config in an assembled state
**Usage:** `ordinary app config validate [OPTIONS]`
###### **Options:**
* `-f`, `--for <FOR>`
Default value: `build`
Possible values: `build`, `deploy`
## `ordinary app routes`
list all HTTP routes
**Usage:** `ordinary app routes [OPTIONS]`
###### **Options:**
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary ssg`
manage static site configuration
**Usage:** `ordinary ssg [OPTIONS] <COMMAND>`
###### **Subcommands:**
* `new` — generate an `ordinary.json` config to deploy your SSG to a running instance of `ordinaryd`
###### **Options:**
* `-p`, `--project <PROJECT>` — project path
Default value: `.`
## `ordinary ssg new`
generate an `ordinary.json` config to deploy your SSG to a running instance of `ordinaryd`
**Usage:** `ordinary ssg new [OPTIONS] <DOMAIN> <DIR_PATH>`
**Command Aliases:** `create`, `init`
###### **Arguments:**
* `<DOMAIN>` — project domain
* `<DIR_PATH>` — assets `dir_path`
###### **Options:**
* `-c`, `--contacts <CONTACTS>` — contacts for Let's Encrypt (auto-TLS) [source](https://docs.rs/rustls-acme/latest/rustls_acme/struct.AcmeConfig.html#method.contact_push)
* `-e`, `--error-page` — include generated 404.html as error page
Default value: `false`
* `-s`, `--inline-styles` — accommodate inline styles in the generated files
Default value: `false`
* `-r`, `--inline-scripts` — accommodate inline scripts in the generated files
Default value: `false`
* `-m`, `--inline-images` — accommodate inline images in the generated files
Default value: `false`
## `ordinary host`
manage an `ordinaryd` instance
**Usage:** `ordinary host [OPTIONS] <COMMAND>`
###### **Subcommands:**
* `info` — get system and process info for the Ordinary API server
* `metrics` — get proxied service metrics
* `logs` — query system and application logs
* `accounts` — manage accounts connected to `ordinaryd`
* `moderation` — tools for moderation
###### **Options:**
* `--host-domain <HOST_DOMAIN>` — should only be necessary with localhost or when addressing by IP
* `--insecure` — use HTTP instead of HTTPS
Default value: `false`
* `--danger-accept-invalid-certs` — DANGER: only use when working with self-signed localhost certs
Default value: `false`
## `ordinary host info`
get system and process info for the Ordinary API server
**Usage:** `ordinary host info`
## `ordinary host metrics`
get proxied service metrics
**Usage:** `ordinary host metrics --service <SERVICE>`
###### **Options:**
* `-s`, `--service <SERVICE>` — name of the service that you'd like to retrieve metrics for
## `ordinary host logs`
query system and application logs
**Usage:** `ordinary host logs <COMMAND>`
###### **Subcommands:**
* `sync` — sync files, indexes and tables
* `list` — list all log files
* `read` — read one or all files to stdout
* `query` — query logs with SQL
* `search` — search the tantivy index
## `ordinary host logs sync`
sync files, indexes and tables
**Usage:** `ordinary host logs sync <COMMAND>`
###### **Subcommands:**
* `info` — get information about remote and local log files
* `file` — sync a single file
* `all` — repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)
## `ordinary host logs sync info`
get information about remote and local log files.
- "✅" remote and local are synced - "❌" not found on remote *or* local - "⚠️" present on both but local is out of sync
**Usage:** `ordinary host logs sync info`
## `ordinary host logs sync file`
sync a single file
**Usage:** `ordinary host logs sync file <NAME>`
###### **Arguments:**
* `<NAME>` — file name
## `ordinary host logs sync all`
repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)
**Usage:** `ordinary host logs sync all [OPTIONS]`
###### **Options:**
* `-f`, `--force <FORCE>` — download all files from the server, overwriting everything you have locally.
Note: will preserve the state of any files the server no longer has a record of.
Possible values: `true`, `false`
## `ordinary host logs list`
list all log files
**Usage:** `ordinary host logs list`
**Command Alias:** `ls`
## `ordinary host logs read`
read one or all files to stdout
**Usage:** `ordinary host logs read [OPTIONS]`
###### **Options:**
* `-n`, `--name <NAME>` — name of the log file to read
## `ordinary host logs query`
query logs with SQL
stored in a `SQLite` file located at `~/.ordinary/logs/<your-domain>/events.sqlite`.
results are logged to stdout as JSON lines.
**Usage:** `ordinary host logs query [OPTIONS] <QUERY>`
###### **Arguments:**
* `<QUERY>` — [reference](https://sqlite.org/lang.html)
schema:
```sql CREATE TABLE IF NOT EXISTS events ( id TEXT PRIMARY KEY, -- string formatted UUID ts TEXT NOT NULL, -- timestamp (2026-06-28T14:19:54.937575Z) lvl TEXT NOT NULL, -- level string (TRACE | DEBUG | INFO | WARN | ERROR) spn BLOB, -- JSONB formatted spans fld BLOB, -- JSONB formatted fields file TEXT NOT NULL -- file name the event was pulled from ); ```
query:
```sql SELECT file, id, ts, lvl, json(spn), json(fld) FROM events; ```
###### **Options:**
* `-j`, `--json-columns <JSON_COLUMNS>` — which columns should be nested as JSON
i.e.
```sh ordinary app logs query \ 'SELECT file, id, ts, lvl, json(spn) as spn, json(fld) as fld FROM events' \ --json-columns spn,fld ```
* `-s`, `--sync <SYNC>` — whether to sync from remote
Possible values: `true`, `false`
## `ordinary host logs search`
search the tantivy index
**Usage:** `ordinary host logs search [OPTIONS] <FORMAT> <QUERY>`
###### **Arguments:**
* `<FORMAT>` — format
Possible values: `all`, `top`, `count`
* `<QUERY>` — [reference](https://quickwit.io/docs/reference/query-language)
###### **Options:**
* `--limit <LIMIT>` — limit (when using 'top' format)
* `-s`, `--sync <SYNC>` — whether to sync from remote
Possible values: `true`, `false`
## `ordinary host accounts`
manage accounts connected to `ordinaryd`
**Usage:** `ordinary host accounts <COMMAND>`
**Command Aliases:** `account`, `accts`, `acct`
###### **Subcommands:**
* `register` — register a new account
* `login` — log in to an existing account
* `logout` — log out of a logged in account
* `access` — access management subcommands
* `password` — password management
* `mfa` — MFA management
* `recovery-codes` — recovery code management
* `delete` — delete account
* `invite` — invite another user to a project
* `current` — display info for current account
* `list` — list all logged in accounts
* `switch` — switch to a different logged in account
## `ordinary host accounts register`
register a new account
**Usage:** `ordinary host accounts register [OPTIONS] <HOST> <ACCOUNT>`
###### **Arguments:**
* `<HOST>` — url where `orindaryd` is running
* `<ACCOUNT>` — name of your account with the host
###### **Options:**
* `--password <PASSWORD>` — password for your new account
* `--invite <INVITE>` — base64 encoded invite token
## `ordinary host accounts login`
log in to an existing account
**Usage:** `ordinary host accounts login [OPTIONS] <HOST> <ACCOUNT>`
###### **Arguments:**
* `<HOST>` — url where `orindaryd` is running
* `<ACCOUNT>` — name of your account with the host
###### **Options:**
* `--password <PASSWORD>` — password for your existing account
* `--mfa <MFA>` — 6 digit TOTP MFA code
## `ordinary host accounts logout`
log out of a logged in account
**Usage:** `ordinary host accounts logout`
## `ordinary host accounts access`
access management subcommands
**Usage:** `ordinary host accounts access <COMMAND>`
###### **Subcommands:**
* `get` — get access
## `ordinary host accounts access get`
get access
**Usage:** `ordinary host accounts access get [OPTIONS]`
###### **Options:**
* `-m`, `--min <MIN>` — how long the client signature is valid for
## `ordinary host accounts password`
password management
**Usage:** `ordinary host accounts password <COMMAND>`
###### **Subcommands:**
* `reset` — reset your password
* `forgot` — recover your password
## `ordinary host accounts password reset`
reset your password
**Usage:** `ordinary host accounts password reset [OPTIONS]`
###### **Options:**
* `--password <PASSWORD>` — existing password
* `--new-password <NEW_PASSWORD>` — new password to be set
* `--mfa <MFA>` — 6 digit TOTP MFA code
## `ordinary host accounts password forgot`
recover your password
**Usage:** `ordinary host accounts password forgot [OPTIONS]`
###### **Options:**
* `--new-password <NEW_PASSWORD>` — new password to be set
* `--recovery-code <RECOVERY_CODE>` — 11 character recovery code
## `ordinary host accounts mfa`
MFA management
**Usage:** `ordinary host accounts mfa <COMMAND>`
###### **Subcommands:**
* `reset` — reset MFA TOTP secret
* `lost` — recovery MFA TOTP secret
## `ordinary host accounts mfa reset`
reset MFA TOTP secret
**Usage:** `ordinary host accounts mfa reset [OPTIONS]`
###### **Options:**
* `--password <PASSWORD>` — account password
* `--mfa <MFA>` — 6 digit TOTP MFA code
## `ordinary host accounts mfa lost`
recovery MFA TOTP secret
**Usage:** `ordinary host accounts mfa lost [OPTIONS]`
###### **Options:**
* `--password <PASSWORD>` — account password
* `--recovery-code <RECOVERY_CODE>` — 11 character recovery code
## `ordinary host accounts recovery-codes`
recovery code management
**Usage:** `ordinary host accounts recovery-codes <COMMAND>`
###### **Subcommands:**
* `reset` — reset recovery codes
## `ordinary host accounts recovery-codes reset`
reset recovery codes
**Usage:** `ordinary host accounts recovery-codes reset [OPTIONS]`
###### **Options:**
* `--password <PASSWORD>` — account password
* `--mfa <MFA>` — 6 digit TOTP MFA code
## `ordinary host accounts delete`
delete account
**Usage:** `ordinary host accounts delete [OPTIONS] <HOST> <ACCOUNT>`
###### **Arguments:**
* `<HOST>` — url where `orindaryd` is running
* `<ACCOUNT>` — name of your account with the host
###### **Options:**
* `--password <PASSWORD>` — password for your existing account
* `--mfa <MFA>` — 6 digit TOTP MFA code
## `ordinary host accounts invite`
invite another user to a project
**Usage:** `ordinary host accounts invite <ACCOUNT> <DOMAIN> [PERMISSIONS]...`
###### **Arguments:**
* `<ACCOUNT>` — name of the account to be invited & registered
* `<DOMAIN>` — domain for the invited application
* `<PERMISSIONS>` — which permissions to include in their set
Possible values: `admin`, `read`, `write`, `update`, `functions`, `deploy`, `bridge`, `kill`, `erase`
## `ordinary host accounts current`
display info for current account
format: <host> <account> <project> <permissions> <session exp>
**Usage:** `ordinary host accounts current`
## `ordinary host accounts list`
list all logged in accounts
**Usage:** `ordinary host accounts list`
## `ordinary host accounts switch`
switch to a different logged in account
**Usage:** `ordinary host accounts switch <DOMAIN> <ACCOUNT>`
###### **Arguments:**
* `<DOMAIN>` — API domain where `orindaryd` is running
* `<ACCOUNT>` — name of the account you'd like to switch to
## `ordinary host moderation`
tools for moderation
**Usage:** `ordinary host moderation <COMMAND>`
###### **Subcommands:**
* `lock` — lock resources to prevent abuse
* `unlock` — unlock resources upon resolution
## `ordinary host moderation lock`
lock resources to prevent abuse
**Usage:** `ordinary host moderation lock --account <ACCOUNT>`
###### **Options:**
* `-a`, `--account <ACCOUNT>` — account to be locked
## `ordinary host moderation unlock`
unlock resources upon resolution
**Usage:** `ordinary host moderation unlock --account <ACCOUNT>`
###### **Options:**
* `-a`, `--account <ACCOUNT>` — account to be unlocked
## `ordinary doctor`
ensure that all the correct system components are installed
**Usage:** `ordinary doctor [OPTIONS]`
**Command Alias:** `dr`
###### **Options:**
* `-f`, `--fix <FIX>` — auto fix installs
Possible values: `all`, `rust`, `wasm`, `c`, `go`, `js`, `exiftool`
## `ordinary utils`
utility functions for aiding project development
**Usage:** `ordinary utils <COMMAND>`
###### **Subcommands:**
* `uuid` — generate a UUID
* `timestamp` — generate a UNIX timestamp for the current time (i.e. `date +%s`)
* `html` — utilities for managing HTML files
* `css` — utilities for managing CSS files
* `js` — utilities for managing JavaScript/TypeScript files
* `markdown` — utilities for manipulating Markdown files
* `exif` — utilities for manipulating exif data
* `qr-code` — tool for generating QR codes
## `ordinary utils uuid`
generate a UUID
**Usage:** `ordinary utils uuid [OPTIONS]`
###### **Options:**
* `--v <V>` — uuid version
Default value: `4`
Possible values: `4`
## `ordinary utils timestamp`
generate a UNIX timestamp for the current time (i.e. `date +%s`)
**Usage:** `ordinary utils timestamp [OPTIONS]`
**Command Alias:** `ts`
###### **Options:**
* `-u`, `--unit <UNIT>` — unit of time
Default value: `seconds`
Possible values: `seconds`, `millis`, `micros`, `nanos`
* `-f`, `--fmt <FMT>` — formatting (uses `time` crate <https://time-rs.github.io/book/api/format-description.html>)
i.e. `"[year]/[month]/[day] [hour]:[minute]:[second]"`
## `ordinary utils html`
utilities for managing HTML files
**Usage:** `ordinary utils html <COMMAND>`
###### **Subcommands:**
* `minify` — minify HTML files
* `csp-hashes` — generate hashes for a Content-Security-Policy based on an HTML file and its inlined scripts/styles
## `ordinary utils html minify`
minify HTML files
**Usage:** `ordinary utils html minify [OPTIONS] <PATH>`
**Command Alias:** `min`
###### **Arguments:**
* `<PATH>` — path to the HTML file
###### **Options:**
* `-o`, `--out <OUT>` — destination file for output
* `-i`, `--in-place` — whether it should overwrite the existing file
Default value: `false`
## `ordinary utils html csp-hashes`
generate hashes for a Content-Security-Policy based on an HTML file and its inlined scripts/styles
**Usage:** `ordinary utils html csp-hashes <PATH>`
###### **Arguments:**
* `<PATH>` — path to the HTML file
## `ordinary utils css`
utilities for managing CSS files
**Usage:** `ordinary utils css <COMMAND>`
###### **Subcommands:**
* `minify` — minify CSS files
## `ordinary utils css minify`
minify CSS files
**Usage:** `ordinary utils css minify [OPTIONS] <PATH>`
**Command Alias:** `min`
###### **Arguments:**
* `<PATH>` — path to the CSS file
###### **Options:**
* `-o`, `--out <OUT>` — destination file for output
* `-i`, `--in-place` — whether it should overwrite the existing file
Default value: `false`
## `ordinary utils js`
utilities for managing JavaScript/TypeScript files
**Usage:** `ordinary utils js <COMMAND>`
###### **Subcommands:**
* `minify` — minify JavaScript files
## `ordinary utils js minify`
minify JavaScript files
**Usage:** `ordinary utils js minify [OPTIONS] <PATH>`
**Command Alias:** `min`
###### **Arguments:**
* `<PATH>` — path to the JavaScript file
###### **Options:**
* `-o`, `--out <OUT>` — destination file for output
* `-i`, `--in-place` — whether it should overwrite the existing file
Default value: `false`
## `ordinary utils markdown`
utilities for manipulating Markdown files
**Usage:** `ordinary utils markdown <COMMAND>`
**Command Alias:** `md`
###### **Subcommands:**
* `to-html` — process and place an .html file next to the referenced .md file
## `ordinary utils markdown to-html`
process and place an .html file next to the referenced .md file
**Usage:** `ordinary utils markdown to-html [OPTIONS] <PATH>`
###### **Arguments:**
* `<PATH>` — path to the Markdown file
###### **Options:**
* `-s`, `--safe` — if `true` escape all HTML in the Markdown file
Default value: `false`
## `ordinary utils exif`
utilities for manipulating exif data
**Usage:** `ordinary utils exif <COMMAND>`
###### **Subcommands:**
* `tool` — [`exiftool`](https://exiftool.org) command
## `ordinary utils exif tool`
[`exiftool`](https://exiftool.org) command
**Usage:** `ordinary utils exif tool [ARGS]...`
###### **Arguments:**
* `<ARGS>` — `exiftool` args: <https://exiftool.org/exiftool_pod.html>
## `ordinary utils qr-code`
tool for generating QR codes
**Usage:** `ordinary utils qr-code [OPTIONS] <URL>`
**Command Alias:** `qr`
###### **Arguments:**
* `<URL>` — URL the QR code will represent
###### **Options:**
* `-o`, `--out <OUT>` — where the file should be saved.
if empty, will log to stdout.
* `--fmt <FMT>` — format of the output file.
if none is passed and `--out` is set, defaults to SVG.
Possible values: `svg`
* `--dark` — will make the background black and code color white
Default value: `false`
<hr/>
<small><i>
This document was generated automatically by
<a href="https://crates.io/crates/clap-markdown"><code>clap-markdown</code></a>.
</i></small>