--model-id <id> |
IGNIS_MODEL_ID |
qwen3.8-27b |
The loaded model id: what /v1/models reports first (data[0]), what a submission names to be served without a switch, and the catalog entry fetched when no artifact is named. |
--server-bind <addr> |
IGNIS_SERVER_BIND |
127.0.0.1:8000 |
The API listener’s address. |
--model-artifact <path> |
IGNIS_MODEL_ARTIFACT |
unset |
The .ninfer container. Must exist and verify, or the server refuses to start. Unset: the model is looked for under --download-path, and fetched when it is not there. |
--download-enabled <bool> |
IGNIS_DOWNLOAD_ENABLED |
on |
Fetch a missing model at start: only consulted with --model-artifact unset, and only in a --features cuda build. false also refuses POST /v1/models/download, so the server never uses the network. |
--download-path <dir> |
IGNIS_DOWNLOAD_PATH |
./models |
Where a fetched model lands, and where one fetched earlier is found. |
--download-endpoint, --download-token, --download-catalog |
IGNIS_DOWNLOAD_* |
|
Where a model is fetched from, with which token, and an operator catalog (Where the bytes come from: endpoint and token). |
model download / model list |
— |
— |
Fetch catalog entries, or list them (Fetching one: ignis-server model download). |
--download-from-ui <bool> |
IGNIS_DOWNLOAD_FROM_UI |
on |
Let POST /v1/models/download, the Server view’s Download, fetch a catalog entry while the server runs, under the API key; it needs --download-enabled too. false refuses it with 403 download_disabled, and POST /v1/models/remove, the Remove, with 403 removal_disabled; model download still fetches. Not patchable (Downloading from the Server view). |
--download-free-margin <bytes> |
IGNIS_DOWNLOAD_FREE_MARGIN |
1G |
What a download must leave free on the volume of --download-path beyond the entry’s bytes still missing (accepts K/M/G). The Server view’s Download (507 download_no_room), model download and the start’s own fetch are refused before any byte is written when the free space is below the two together, naming both numbers. Not patchable (Room on the disk). |
--server-request-timeout <secs> |
IGNIS_SERVER_REQUEST_TIMEOUT |
2400 (max 3600) |
The deadline of a request answered whole — chat completions and the Responses API without stream, each question of a decision, an image job not streamed, a request’s media acquisition — from its admission (an image job’s from its start). Past it, the reply --server-timeout-reply says (deadlines). 0 is no deadline. Patchable live. |
--server-stream-timeout <secs> |
IGNIS_SERVER_STREAM_TIMEOUT |
2400 (max 3600) |
The deadline of a request that streams — chat completions and the Responses API with stream: true, a Responses WebSocket’s response, a streamed image job — from its admission (a socket’s never from its queue, an image job’s from its start). 0 is no deadline. Patchable live. |
--server-timeout-reply <partial|error> |
IGNIS_SERVER_TIMEOUT_REPLY |
partial |
What a request past its deadline is answered: partial, what it generated as an answer a length limit cut (finish_reason: "length", a response incomplete with max_output_tokens); error, 504 request_timeout or a stream’s error ending. A decision’s question and an image job are an error either way (deadlines). Patchable live. |
--switch-drain-timeout <secs> |
IGNIS_SWITCH_DRAIN_TIMEOUT |
30 (max 3600) |
How long a model switch lets the old model’s running requests finish before it cancels them (0 cancels at once). |
--model-idle-unload <secs> |
IGNIS_MODEL_IDLE_UNLOAD |
300 (max 604800) |
Seconds with no request using the model before it is unloaded, the server staying up; the next request loads it again (Idle unload). 0 never unloads. Patchable live. |
--server-socket-idle-close <secs> |
IGNIS_SERVER_SOCKET_IDLE_CLOSE |
300 (max 604800) |
Seconds a Responses WebSocket may sit idle — nothing running or queued on it, no frame from its client — before the server closes it with a normal close frame saying why; the client’s next request opens another (WebSocket mode). An open socket keeps a Knative pod from scaling down (Run behind Knative). 0 never closes. Patchable live. |
--model-host-margin-bytes <bytes> |
IGNIS_MODEL_HOST_MARGIN_BYTES |
4G |
What a text model’s host plan must leave of the RAM available at load (free plus standby): a load whose pinned lines leave less is refused, naming the line to shrink (Host RAM for Flash-Next, for the 27B). Per family as --qwen38-model-host-margin-bytes and --qwen38flashnext-model-host-margin-bytes; an image-model start, which makes no host plan, takes them for a later switch. (make knob HOST_MARGIN_BYTES.) |
--switch-allow-implicit <true|false> |
IGNIS_SWITCH_ALLOW_IMPLICIT |
true |
A request whose model names another model --switch-known-models lists switches the server to it, then is served on it. false: such a request is a 404 model_not_found, as an unknown model is, and GET /v1/models lists the loaded model alone. POST /v1/models/switch is not affected. |
--switch-known-models <id>=<path> (repeatable) |
IGNIS_SWITCH_KNOWN_MODELS (;-separated pairs) |
the start model only |
A model a request may switch to by naming it, and the artifact it loads from — while that artifact is a file. The model the server starts on is always listed. Any flag replaces the env var whole; an id named twice is refused. |
--config <path> |
IGNIS_CONFIG |
discovered |
The config file (Configuration). |
--profile <name> |
IGNIS_PROFILE |
auto |
The hardware profile (Configuration): auto (the profile of the card’s memory), rtx50-16gb, rtx5090, rtxpro6000, one a config file defines, or none. |
help / -h, --help |
— |
— |
Print the usage and the field list and exit; help --fields prints every field in full. |
version / -V, --version |
— |
— |
Print the version and exit. |