All the configuration options detailed below are defined in the section of your config file as separate values. When running RavenDB as a website (through IIS, or in Embedded mode), the config file is web.config; otherwise it is the Raven.Server.exe.config file.
Changes to the config file or additions / removal from the Plugins directory will not be picked up automatically by the RavenDB service. For your changes to be recognized you will need to restart the service. You can do so calling: Raven.Server.exe /restart.
If you are running in Embedded mode, or RavenDB is running as an IIS application, touching the web.config file will cause IIS to automatically restart RavenDB.
Sample configurations file
This is the standard app.config XML file. The appSettings section is where the global configuration options go, also for web applications which have a web.config file instead.
The maximum page size that can be specified on this server. Default: 1024 Minimum: 10
The expiration value for documents in the internal document cache. Value is in seconds. Default: 5 minutes
The max size in MB for the internal document cache inside RavenDB server. Default: 50% of the total system memory minus the size of the Esent cache.
The percentage of memory that the internal document cache inside RavenDB server will use. Default: 0 (auto)
The internal for checking that the internal document cache inside RavenDB server will be cleaned. Format: HH:MM:SS Default: depends on system polling interval
The path for the indexes on disk. Useful if you want to store the indexes on another HDD for performance reasons. Default: ~/Data/Indexes
The number of indexing tasks that can be run in parallel. There is usually one or two indexing tasks for each index. Default: the number of processors in the current machine
The max number of items that will be indexed in a single batch. Larger batch size result in faster indexing, but higher memory usage. Default: 128 * 1024 for 64-bit and 64 * 1024 for 32-bit Minimum: 128
The number of items that will be indexed in a single batch. Larger batch size result in faster indexing, but higher memory usage. Default: 512 for 64-bit and 256 for 32-bit
The minimum amount of memory available for us to double the size of InitialNumberOfItemsToIndexInSingleBatch if we need to. Default: 50% of total system memory Minimum: 768
When the database is shut down rudely, determine whatever to reset the index or to check it. Note that checking the index may take some time on large databases. Default: false
What is the suggested max latency for a single indexing run that allows the database to increase the indexing batch size. Default: 5 minutes
The TaskScheduler type to use for executing indexing.
The number of times a temporary index has to be queried during the promotion threshold to become a permanent auto index. Default: 100 Minimum: 1
The promotion threshold for promoting a temporary dynamic index into a permanent auto index. The value is in second and refer to the length of time that the index have to get to the minimum query count value. Default: 60000 (once per minute)
How often will temp dynamic indexes be purged from the system. The value is in seconds. Default: 600 (10 minutes)
How long does a temporary index hang around if there are no queries made to it. The value is in seconds. Default: 1200 (20 minutes)
The max size in MB of a temporary index held in memory. When a temporary dynamic index exceeds that value, it will be using on disk indexing, rather then RAM indexing. Default: 25 MB Minimum: 1 MB
Whatever we allow creation of temporary indexes on dynamic queries. Default: true
Control whatever the Studio default indexes will be created or not. These default indexes are only used by the UI, and are not required for RavenDB to operate. Default: false
Control whatever RavenDB limits what the indexes can do (to avoid potentially destabilizing operations). Default: false
Whatever the database should run purely in memory. When running in memory, nothing is written to disk and if the server is restarted all data will be lost. This is mostly useful for testing. Default: false
The path for the database directory. Can use ~\ as the root, in which case the path will start from the server base directory. Default: ~\Data
What storage type to use (see: RavenDB Storage engines) Allowed values: esent, munin Default: esent
What transaction mode to use. Safe transaction mode ensures data consistency, but is slower. Lazy is faster, but may result in a data loss if the server crashes. Allowed values: Lazy, Safe Default: Safe
The hostname to bind the embedded http server to, if we want to bind to a specific hostname, rather than all. Default: none, binds to all host names
The port to use when creating the http listener.
Allowed: 1 - 65,536 or * (find first available port from 8080 and upward) Default: 8080
The virtual directory for the RavenDB server. Default: /
Whatever http compression is enabled. Default: true
Configures the server to send Access-Control-Allow-Origin header with the specified value. If this value isn't specified, all the access control settings are ignored. Allowed values: null (don't send the header), *, http://example.org, Default: none
Configures the server to send Access-Control-Max-Age header with the specified value. Default: 1728000 (20 days)
Configures the server to send Access-Control-Allow-Methods header with the specified value. Default: PUT, PATCH, GET, DELETE, POST.
Configures the server to send Access-Control-Request-Headers header with the specified value. Default: none
The full license string for RavenDB. If Raven/License is specified, it overrides the Raven/LicensePath configuration.
The path to the license file for RavenDB. Default: ~\license.xml
Semicolon separated list of bundles names, such as: 'Replication;Versioning'. If the value is not specified, none of the bundles are installed. Default: none
Allow to limit the loaded plugins by specifying a search pattern, such as Raven.*.dll. Multiple values can be specified, separated by a semicolon (;).
The location of the plugins directory for this database. Default: ~\Plugins
The location of the web directory for known files that makes up the RavenDB internal website. Default: ~/Raven/WebUI
The url to redirect the user to when then try to access the local studio.
The size in MB of the Esent page cache, which is the default storage engine. Default: 256 for 32-bit and 25% of total system memory for 64-bit Minimum: 256 for 32-bit and 1024 for 64-bit
The maximum size of version store (in memory modified data) available. The value is in megabytes. Default: 512
The size that the database file will be enlarged with when the file is full. The value is in megabytes. Lower values will result in smaller file size, but slower performance. Default: 8
The size of the database log file. The value is in megabytes. Default: 64
The size of the in memory buffer for transaction log. Default: 16
The maximum number of cursors allowed concurrently. Default: 2048
The path for the esent logs. Useful if you want to store the indexes on another HDD for performance reasons. Default: ~/Data/Logs
Whatever circular logs will be used, defaults to true. If you want to use incremental backups, you need to turn this off, but logs will only be truncated on backup. Default: true
The time in seconds to allow a tenant database to be idle. Value is in seconds. Default: 900
The time in seconds to check for an idle tenant database. Value is in seconds. Default: 60
The hard limit after which we refuse any additional writes. Default: none
The soft limit before which we will warn about the quota. Default: 1024
Determines what actions an anonymous user can do. Get - read only, All - read & write, None - allows access to only authenticated users, Admin - all (including administrative actions). Default: Get
Admin should only be used for testing and development, since it grants to ANY user administrative rights.
The url clients should use for authenticating when using OAuth mode. Default: http://RavenDB-Server-Url/OAuth/AccessToken - the internal OAuth server.
The path to the OAuth certificate. Default: none. If no certificate is specified, one will be automatically created.
The password for the OAuth certificate. Default: none
Raven/Encryption/Algorithm AssemblyQualifiedName value. Additionaly provided type must be a subclass of SymmetricAlgorithm from System.Security.Cryptography namespace and must not be an abstract class. Default: "System.Security.Cryptography.AesManaged, System.Core, Version=184.108.40.206, Culture=neutral, PublicKeyToken=b77a5c561934e089"
Key used for encryption purposes with minimum length of 8 characters, base64 encoded.
Boolean value indicating if the indexes should be encrypted. Default: True
Availability of configuration options
Many of the configuration options described in section above can be used both in global and per database context. If you want to set configuration per database, please refer to this page.
Raven/ActiveBundles can be changed after database has been created, but any changes may cause unexpected stability issues and are HIGHLY unrecommended. Please activate bundles only when creating new database.
Raven/Encryption settings can only be provided when database is being created. Changing them later will cause DB malfunction. More about Encryption bundle can be found here.
Raven/Authorization/Windows/RequiredGroups and Raven/Authorization/Windows/RequiredUsers has been removed. You should create a document with the ID Raven/Authorization/WindowsSettings in order to configure windows authentication.