Node settings
Where a node's settings live, the values you use often, and the tables generated from each Release's code
This page says where the settings of nodes and apps live, and which values you use often. Every container reads its settings from its own environment variables.
Where the settings live
- Docker uses one env file for the whole site:
/etc/awhere/docker.env. You can set only the values that are in this file. If a value has a$sign, write it as%24. - Apple Container uses one env file per container:
/etc/awhere/<name>.env, where<name>is the container name. A value in this file replaces the one set in the image, and the system reads it literally. It does not expand${...}. - An env file holds passwords. Make it readable only by the account that runs the containers.
- After you edit a file, check it with
awhere preflight(Preflight). A new value takes effect when the container is created again, such as when you runawhere upgrade.
Values that point to a database
DATASTORE_URL,CONTENT_STORE_URL,SESSION_STORE_URLandLOG_STORE_URLare MongoDB connection strings of the formmongodb://<user>:<password>@<hosts>/<database>?authSource=admin. Put the other options, such asauthSource,replicaSet,tlsandmaxPoolSize, in this URL too.- The split variables of v4 no longer work:
<STORE>_HOSTS,_NAME,_USER,_PASS,_MACHANISM,_SSLand_POOL_SIZE, where<STORE>is the prefix, such asDATASTORE. If a URL is also set, the system ignores these variables and Preflight warns you to delete them. If there is no URL, the node will not start. authorization-serverkeeps its sessions inSESSION_STORE_URL. If the MongoDB server announces an internal host name that the container cannot find, putdirectConnection=truein the URL.FILE_STORE_URLmoves the file store out of the content database. Leave it unset unless you have a specific reason.
The broker the nodes talk through
TRANSPORTER (nats://<host>:4222, or TCP if the whole site is on one machine) and NAMESPACE (usually awhere) must be the same on every node. Every node reads these two names. The old names SERVICE_TRANSPORTER and SERVICE_NAMESPACE still work when the new names are not set. Change them to the new names (authorization-server warns once at start). For each node, see All environment variables.
Values that can keep their defaults
| Variable | Node | Default | What it does |
|---|---|---|---|
PORT | Nodes with HTTP | 3000 (set in the image) | The port the node listens on inside the container. |
BASE_PATH | authorization-server | /api/auth/ | The path of the sign-in page. You can change it at run time with no new build. |
THUMBNAIL_MAX_BYTES | file-services | 256 MiB | The largest file the system will make a thumbnail for. It keeps memory use down. |
AUDIT_RETENTION_DAYS | logging-services | 365 | How many days the Audit log is kept. 0 keeps it forever. |
USAGE_TIMEZONE | logging-services | Asia/Bangkok | The time zone that cuts the day in the usage numbers. |
MANUAL_URL | core-services | The public manual | The page the Help button opens. A site with its own manual must set this. |
app-studio and logging fix the path of the app at build time, not at run time. Setting the path in the env file alone is not enough.
Tables generated from the code
- All environment variables: every value each node checks, which are required in production, and what kinds of value you can give.
- All Preflight checks: every check, the message it prints, and how to fix it.