Overrides configuration keys from environment variables: CELL_BACKEND__SERVER__PORT=8080 sets
cell.server.port of the backend. Segments are separated by __ and matched against existing
keys ignoring case, _ and - (ORM_CONFIG matches ormConfig, SERVE_STATIC matches
serve-static); array items are addressed by canonical index. The first key is looked up at the
top level, then under cell, so SERVER__PORT is short for CELL__SERVER__PORT unless the
project has a top-level server of its own; CELL__... always means cell.
Only existing keys can be overridden, so a misspelled variable is reported instead of silently
ignored. Each key is set by one variable at most: variables that set the same key, or a key and
one inside it, are all reported and none applies, whatever their order. The value is converted to
the type of the value it replaces (a finite number in JSON syntax, true / false, JSON for
objects and arrays, JSON or text where cell.yml has null, text for strings); a value that is one
${...} expression is kept and evaluated like cell.yml. Overrides land before ${...}
expressions are evaluated, so references such as ${cell.server.port} see the new value. The
backend applies its variables at startup; the frontend applies them when it is built.
Overrides configuration keys from environment variables:
CELL_BACKEND__SERVER__PORT=8080setscell.server.portof the backend. Segments are separated by__and matched against existing keys ignoring case,_and-(ORM_CONFIGmatchesormConfig,SERVE_STATICmatchesserve-static); array items are addressed by canonical index. The first key is looked up at the top level, then undercell, soSERVER__PORTis short forCELL__SERVER__PORTunless the project has a top-levelserverof its own;CELL__...always meanscell.Only existing keys can be overridden, so a misspelled variable is reported instead of silently ignored. Each key is set by one variable at most: variables that set the same key, or a key and one inside it, are all reported and none applies, whatever their order. The value is converted to the type of the value it replaces (a finite number in JSON syntax,
true/false, JSON for objects and arrays, JSON or text where cell.yml hasnull, text for strings); a value that is one${...}expression is kept and evaluated like cell.yml. Overrides land before${...}expressions are evaluated, so references such as${cell.server.port}see the new value. The backend applies its variables at startup; the frontend applies them when it is built.