Let's start by installing and configuring the server. To do that, first we need to download the server package
from the downloads page.
RavenDB is cross-platform with support for the following operating systems:
- Windows x64 / x86
- Linux x64
- Raspberry Pi
RavenDB is written in .NET Core so it requires the same set of prerequisites as .NET Core.
We highly recommend updating your Linux OS prior to launching the RavenDB server. Also, check if .NET Core requires any other prerequisites in the Prerequisites for .NET Core on Linux article written by Microsoft.
Installation & Setup
Highly Available Clusters
We recommend setting up your cluster nodes on separate machines so that if one goes down, the others can keep the cluster active.
Set up a server folder on each machine that will host the nodes in your cluster.
You may want to include the node designation (nodes A, B, C...) in the name of each server folder, to prevent future confusion.
Extract the server package into permanent server folders on each machine.
Each folder that contains an extracted server package will become a functional node in your cluster.
If you've set up on separate machines, go to step 3 below.
If you move this folder after installation, the server will not run.
You'll receive a 'System.InvalidOperationException: Unable to start the server.' error because it will look for the file path that is set
when you install. If you must move your folder at a later time, you can reconfigure the certificate file path
If you choose to use only one machine (although this will increase the chances of your cluster going down) you'll need to:
- Set up a parent folder in a permanent location for your installation package and server settings for the next steps.
Set up separate folders in the parent folder for each node and keep it in a safe place for future use.
Extract the downloaded
RavenDB...zip server package into each node folder.
- If you want to install the cluster as a service (it will improve availability because it will automatically run in the background every time your
machine restarts), this simple step will be done after initial secure installation via the Setup Wizard or manually. Read Running as a Service.
- Start the Setup Wizard by running
run.sh in Linux) in PowerShell or disable the 'Setup Wizard' and configuring the server manually.
Running in a Docker container
If you are interested in hosting the server in a Docker container, please read our dedicated article.
Running in a VM
If you are interested in hosting the server on a VM, please refer to
Help Us Improve Prompt
When you first launch RavenDB, you will see this prompt asking if you'd be willing to
anonymously share some Studio usage data with us in order to help us improve RavenDB:
Help Us Improve
Once you respond to this prompt, it should not appear again. However, in some scenarios,
such as running RavenDB embedded, or working without browser cookies, the prompt may
If necessary, you can add this flag to the Studio URL to prevent the prompt from
The RavenDB server uses a settings.json file in each node
Server folder to store the server-wide configuration options.
When starting a server, RavenDB will look for the
settings.json file in the node
Server folder, so it must be located there.
The Setup Wizard places it correctly automatically.
After making changes to this file, a server restart is required for them to be applied.
You can read more about the available configuration options in our dedicated article.
The configuration file included in each RavenDB server distribution package is as follows:
This means that the server will run:
localhost with a
Setup Wizard mode
- Store the data in the
Port in Use
In some cases, the port might be in use. This will prevent the Server from starting with an "address in use" error (
The port can be changed by editing the
ServerUrl value in the
For a list of IPs and ports already in use, run
netstat -a in the command line.
RavenDB requires write permissions to the following locations:
If you intend to run as a service, the write permissions should be granted to the user running the service (e.g. "Local Service").
Our GUI, the RavenDB Management Studio, comes free with every license type:
After installation and setup, the Studio can be accessed via the browser using the
ServerUrl or the
ServerPublicUrl value e.g.
Whenever you run the server folder script
run.ps1 the Studio opens automatically in your browser.
We recommend using the 'Setup Wizard' to easily install RavenDB securely from the very start to prevent potential future vulnerability.
The process in RavenDB only takes a few minutes and is free.
To let a developer start coding an application quickly, RavenDB will run with the following default security mode:
Default Security Mode
As long as the database is used inside the local machine and no outside connections are allowed, you can ignore security concerns
and you require no authentication. Once you set RavenDB to listen to connections outside your local machine,
your database will immediately block this now vulnerable configuration and require the administrator to properly set up the security and
access control to prevent unauthorized access to your data or to explicitly allow the unsecured configuration.
We recommend using the 'Setup Wizard' to easily install RavenDB securely from the very start to prevent potential future vulnerability. The process takes a few minutes and is free.
Read more about security and how to enable authentication here.