Configuration overview
Every setting can come from four sources, highest precedence first:
- command-line flag (
--upload-access wot) - process environment (
ALMOND_UPLOAD_ACCESS=wot) - config file (dotenv format, same
ALMOND_*names) - built-in default
bash
almond --config /etc/almond/almond.env --bind-addr 0.0.0.0:3000- Config file:
--config <FILE>(orALMOND_CONFIG) loads a dotenv file; without it,./.envis loaded when present. Values in the file never override real environment variables..env.exampledocuments every setting and is a good starting point. - Name mapping: env name =
ALMOND_+ flag name upper-cased with-→_(--chunk-max-sessions-per-pubkey↔ALMOND_CHUNK_MAX_SESSIONS_PER_PUBKEY), so flags and environment variables can never drift apart. - An empty value (
ALMOND_X=) behaves exactly like an unset one. - Secrets (S3 keys, metrics token) belong in the environment or config file: command-line arguments are visible to other users in
ps. - Strict parsing: unknown enum values, invalid booleans, invalid npubs and bad durations or sizes stop startup instead of falling back to a default.
almond --helplists every flag with its env name and default;almond --versionprints the version.- Logging:
RUST_LOG(e.g.warn,almond=debug; defaultinfo), also honored in the config file.
Where to next:
- Command-line flags — examples and CLI-specific syntax
- Environment variables — value formats, full reference and the pre-0.5 migration table
- FIPS mesh variables —
FIPS_*settings of thealmond-fipsimage
