Event Store runs as a server, that clients can connect either over HTTP or using one of the client APIs. You can run both the open source and commercial versions, as either a single node, or a highly available cluster of nodes.
The open source version of Event Store is distributed as a console application. There are separate distributions for Windows on .NET and Linux/macOS on Mono.
Unless passed a database option, Event Store will write to a new database created in the system’s temporary files path each time it is started. For more information on Command Line Arguments read this guide.
A typical command line for running Event Store server on Windows is:
EventStore.ClusterNode.Exe --db .\ESData
Event Store has an HTTP interface and the identity which you want to run Event Store with must have permission to listen to incoming HTTP requests, as detailed here.
To configure an account with permission to listen for incoming HTTP requests, you execute the following in PowerShell, or the Command Prompt, running as administrator (replace
DOMAIN\username with the actual account details, and the port number if you are not using the default port).
netsh http add urlacl url=http://+:2113/ user=DOMAIN\username
There is a known issue with the .NET
HTTPListener class (which Event Store uses) and bad URL ACL registrations which can cause servers to return 503 errors for every request. If you see this, you can issue the following commands:
netsh http show urlacl
Look for an entry on the port you’re trying to use (
2113 unless you’ve specified a custom port). It will probably look something like:
http://+:2113. Then issue:
netsh http delete urlacl <the entry you just found>
netsh http delete urlacl http://+:2113
This should resolve the issue.
A typical command line for running Event Store server on Linux/macOS is:
./run-node.sh --db ./ESData
Although you can run Event Store binary directly, a
run-node we provide a shell script which exports the environment variable
LD_LIBRARY_PATH to include the installation path of Event Store. This is necessary if you are planning to use projections.
Event Store builds for both Linux and macOS have the Mono runtime bundled in, this means that you do not need Mono installed locally to run Event Store.
Event Store is designed to be safe by default and it is expected that it will be shut down using
kill -9. However, it is also possible to initiate a shutdown via the web UI, by clicking on the Shutdown Server button located on the Admin page. This may be useful if you do not have console access to the node, or need to script initiating a shutdown.