This page shows which environment variables and command-line flags each SurrealDB release had, from 1.0.0 in September 2023 to 3.3.0. Use it to check whether a setting exists in the version you run, to find what changed between two versions before an upgrade, or to see when a default changed. The environment variables page and the CLI command pages describe each setting in the current release.
Environment variables and flags
Each row is one environment variable or flag, marking the releases that had it, with the newest release on the left. Filter by name, such as ROCKSDB or mcp, and hover a row for its help text, its exact first and last versions, and the flag or environment variable it pairs with.
Release contents
Select a release to list every environment variable and flag it has, with defaults and help text. Select a second release under Compare with to list only what is added, removed or given a new default when moving from the first release to the second. Pick the version you run first and the target version second, so that the list matches an upgrade or a downgrade.
Scope
The lists on this page are read from the SurrealDB source code at each release tag, so they include settings that are not described elsewhere in the documentation. They cover every final release from 1.0.0 onwards, and the alpha, beta and release candidate tags of each release after 1.0.0. The 1.0.0 pre-releases are left out. Dates are the publication dates of the GitHub releases.
Environment variables are the
SURREAL_names that the server reads, including those that set a command-line flag.Flags and arguments are those of the
surrealcommand and each of its subcommands. A flag declared once on thesurrealcommand and accepted by every subcommand, such as--logfrom 2.2.0, counts as present on each subcommand.Defaults are shown as they are written in the source code. A default that the server works out when it starts, such as a buffer size based on the available memory, is shown as computed at run time.
Maintenance releases of an older line, such as 1.5.6 after the 2.0.0 pre-releases, do not count as removing anything that the newer line added.
Environment variable names that the server builds while it runs, and variables set only in Docker images or deployment files, are not listed.
Counts by release
| Release | Published | Environment variables | Flags and arguments |
|---|---|---|---|
| 1.0.0 | 2023-09-13 | 33 | 58 |
| 1.1.0 | 2024-01-09 | 65 | 83 |
| 1.2.0 | 2024-02-13 | 68 | 83 |
| 1.3.0 | 2024-03-12 | 69 | 77 |
| 1.4.0 | 2024-04-09 | 69 | 77 |
| 1.5.0 | 2024-05-14 | 71 | 78 |
| 2.0.0 | 2024-09-17 | 89 | 89 |
| 2.1.0 | 2024-11-21 | 104 | 94 |
| 2.2.0 | 2025-02-11 | 131 | 99 |
| 2.3.0 | 2025-05-01 | 135 | 126 |
| 2.4.0 | 2025-11-24 | 168 | 138 |
| 2.5.0 | 2026-01-22 | 170 | 142 |
| 2.6.0 | 2026-01-27 | 170 | 143 |
| 2.7.0 | 2026-09-28 | 171 | 145 |
| 3.0.0 | 2026-02-17 | 192 | 155 |
| 3.1.0 | 2026-06-05 | 249 | 213 |
| 3.2.0 | 2026-07-06 | 268 | 222 |
| 3.3.0 | 2026-09-28 | 298 | 227 |
Across all releases from 1.0.0, 352 environment variables and 246 flags and arguments have existed. Of these, 54 environment variables and 19 flags and arguments are no longer present in 3.3.0. The 2.x releases from 2.3.0 onwards were published alongside the 3.0.0 pre-releases and 3.x, so their dates overlap with the 3.x releases.
From 3.1.0, part of the count is settings read from the configuration map rather than declared one by one: 45 in 3.1.0, 53 in 3.2.0 and 63 in 3.3.0. Each of them can be set with an environment variable whose name is the setting's key in capitals with a SURREAL_ prefix, such as SURREAL_ROCKSDB_MEMTABLE_PREFIX_BLOOM_RATIO for rocksdb_memtable_prefix_bloom_ratio.