|
| 1 | +--- |
| 2 | +title: 'spiced' |
| 3 | +sidebar_label: 'spiced' |
| 4 | +description: 'Command-line reference for the spiced runtime binary — flags, defaults, and differences from spice run.' |
| 5 | +keywords: [spice.ai, cli, spiced, runtime, binary, flags] |
| 6 | +pagination_prev: null |
| 7 | +pagination_next: null |
| 8 | +--- |
| 9 | + |
| 10 | +`spiced` is the Spice.ai runtime binary. It hosts the HTTP and Flight servers, loads a Spicepod, and serves queries. |
| 11 | + |
| 12 | +Most users invoke `spiced` indirectly via [`spice run`](./run), which installs the runtime, applies developer-friendly defaults, and forwards CLI arguments. This page documents `spiced` itself for operators who run the binary directly (for example in containers, systemd units, or CI). |
| 13 | + |
| 14 | +### Usage |
| 15 | + |
| 16 | +```shell |
| 17 | +spiced [flags] [SPICEPOD_PATH] |
| 18 | +``` |
| 19 | + |
| 20 | +If `SPICEPOD_PATH` is omitted, `spiced` uses the current working directory. |
| 21 | + |
| 22 | +### Runtime flags |
| 23 | + |
| 24 | +- `--http <BIND_ADDRESS>` — HTTP server bind address. Default: `127.0.0.1:8090`. |
| 25 | +- `--flight <FLIGHT_BIND_ADDRESS>` — Arrow Flight server bind address. Default: `127.0.0.1:50051`. |
| 26 | +- `--metrics <BIND_ADDRESS>` — Enable the Prometheus scrape endpoint on the given address. Disabled by default. |
| 27 | +- `--pods-watcher-enabled` — Watch the Spicepod directory for changes and hot-reload. Disabled by default. |
| 28 | +- `--telemetry-enabled <true|false>` — Override anonymous telemetry collection. When unset, the value is taken from `runtime.telemetry.enabled` in the Spicepod. |
| 29 | +- `--version` — Print the runtime version and exit. |
| 30 | +- `-v`, `--verbose` — Increase log verbosity. Repeat (`-vv`) for debug output. |
| 31 | +- `--very-verbose` — Equivalent to `-vv`. |
| 32 | +- `--set-runtime <key.subkey=value>` — Override a runtime configuration value. Can be repeated; see [examples in `spice run`](./run#--set-runtime). |
| 33 | + |
| 34 | +### TLS flags |
| 35 | + |
| 36 | +These configure TLS for the HTTP and Flight servers. |
| 37 | + |
| 38 | +- `--tls-enabled` — Enable TLS. Default: `false`. |
| 39 | +- `--tls-certificate <PEM>` — TLS certificate as an inline PEM string. |
| 40 | +- `--tls-certificate-file <PATH>` — Path to a PEM-encoded certificate file. |
| 41 | +- `--tls-key <PEM>` — TLS private key as an inline PEM string. |
| 42 | +- `--tls-key-file <PATH>` — Path to a PEM-encoded private key file. |
| 43 | + |
| 44 | +### Cluster flags |
| 45 | + |
| 46 | +Used when running `spiced` as part of a [distributed cluster](../../features/distributed-query). Omit these for standalone operation. |
| 47 | + |
| 48 | +- `--role <scheduler|executor>` — Explicit cluster role. If omitted but `--scheduler-address` is set, the role defaults to `executor`. |
| 49 | +- `--scheduler-address <URL>` — URL of the scheduler service. Required on executors. |
| 50 | +- `--node-bind-address <BIND_ADDRESS>` — Bind address for the internal cluster gRPC service. Default: `0.0.0.0:50052`. |
| 51 | +- `--node-advertise-address <HOST_OR_IP>` — Hostname or IP this node advertises to the rest of the cluster. |
| 52 | +- `--node-mtls-ca-certificate-file <PATH>` — CA certificate used to validate peer node identities. |
| 53 | +- `--node-mtls-certificate-file <PATH>` — Certificate file used for both server TLS and client mTLS on the node port. |
| 54 | +- `--node-mtls-key-file <PATH>` — Private key file for the node certificate. |
| 55 | +- `--allow-insecure-connections` — Allow cluster communication without mTLS. Use only in development or testing environments. |
| 56 | + |
| 57 | +### SQL REPL flags |
| 58 | + |
| 59 | +- `--repl` — Start a SQL REPL against the runtime's Flight endpoint instead of serving requests. |
| 60 | +- `--repl-flight-endpoint <HTTP_ENDPOINT>` — Flight endpoint the REPL connects to. Default: `http://localhost:50051`. |
| 61 | +- `--http-endpoint <HTTP_ENDPOINT>` — HTTP endpoint the REPL connects to. Default: `http://localhost:8090`. |
| 62 | +- `--tls-root-certificate-file <PATH>` — Root certificate used to verify the runtime's TLS certificate. |
| 63 | +- `--client-tls-certificate-file <PATH>` — Client certificate for mTLS authentication. Must be used with `--client-tls-key-file`. |
| 64 | + |
| 65 | +### Differences from `spice run` |
| 66 | + |
| 67 | +`spice run` is a thin launcher around `spiced`. When it spawns the runtime, it adds a few flags automatically that `spiced` does **not** apply when invoked directly: |
| 68 | + |
| 69 | +| Behavior | `spice run` | `spiced` | |
| 70 | +| --------------------------- | ----------------------------------------------------------- | --------------------------------------------------- | |
| 71 | +| Runtime installation | Auto-installs `spiced` if missing | Must already be installed | |
| 72 | +| Pods watcher | Enabled (`--pods-watcher-enabled`) | Disabled by default | |
| 73 | +| Task history captured output | Forced to `truncated` via `--set-runtime` | Uses the Spicepod value (default: `full`) | |
| 74 | +| `--endpoint` scheme routing | Supported — `http://…` sets HTTP, `grpc://…` sets Flight | Not supported — use `--http` and `--flight` directly | |
| 75 | + |
| 76 | +Operators running `spiced` directly who want `spice run`-equivalent behavior should pass `--pods-watcher-enabled` and, if desired, `--set-runtime task_history.captured_output=truncated`. |
| 77 | + |
| 78 | +### Examples |
| 79 | + |
| 80 | +#### Start the runtime with a Spicepod in the current directory |
| 81 | + |
| 82 | +```shell |
| 83 | +spiced |
| 84 | +``` |
| 85 | + |
| 86 | +#### Bind the HTTP and Flight servers to all interfaces |
| 87 | + |
| 88 | +```shell |
| 89 | +spiced --http 0.0.0.0:8090 --flight 0.0.0.0:50051 |
| 90 | +``` |
| 91 | + |
| 92 | +#### Enable Prometheus metrics |
| 93 | + |
| 94 | +```shell |
| 95 | +spiced --metrics 0.0.0.0:9090 |
| 96 | +``` |
| 97 | + |
| 98 | +#### Enable TLS |
| 99 | + |
| 100 | +```shell |
| 101 | +spiced --tls-enabled \ |
| 102 | + --tls-certificate-file /path/to/cert.pem \ |
| 103 | + --tls-key-file /path/to/key.pem |
| 104 | +``` |
| 105 | + |
| 106 | +#### Run as a cluster executor |
| 107 | + |
| 108 | +```shell |
| 109 | +spiced --role executor \ |
| 110 | + --scheduler-address https://scheduler.example.internal:50052 \ |
| 111 | + --node-advertise-address executor-1.example.internal \ |
| 112 | + --node-mtls-ca-certificate-file /etc/spice/ca.pem \ |
| 113 | + --node-mtls-certificate-file /etc/spice/node.pem \ |
| 114 | + --node-mtls-key-file /etc/spice/node.key |
| 115 | +``` |
| 116 | + |
| 117 | +#### Override runtime configuration at launch |
| 118 | + |
| 119 | +```shell |
| 120 | +spiced --set-runtime task_history.captured_output=none \ |
| 121 | + --set-runtime results_cache.enabled=false |
| 122 | +``` |
0 commit comments