Event Store logo



Show Table of Contents

Command Line Arguments

The Event Store supports many configuration points. There are three distinct ways to set any parameter in the system. Items can be set via command line, environment variables, or put into YAML files. Each of these configuration options has its own trade offs.

To pass a configuration value over the command line you just add the configuration to the line executing the Event Store e.g. EventStore.ClusterNode.exe --log ~/logs

While command line arguments tend to be very useful in development scenarios, they are often not the preferred way to handle configuration in a production system.

All arguments can also be set as environment variables. This mechanism is often used in UNIX based systems.

The last way that arguments can be set is to put them into one or more config files. To tell the Event Store to use a config file you pass the files on the command line with --config=filename. The basic format of the YAML config file is as follows:

Log: "/home/Ouro/logs"
IntHttpPort: 2111

Files can be much nicer for large installations as they can easily be distributed/managed centrally, or generated by a configuration management system such as Puppet.

The order of precedence between the multiple config sources is also important as you could feasibly set them in multiple ways. The command line is the highest priority followed by environment variables. Files are the lowest precedence and are processed in the order they are given on the command line. When starting up the Event Store the major parameters are listed in the log (including where they were set from).

ES VERSION:               1.0.3 (dev/5488fa34228e283bad985966b700e1fc48a0780a, Tue, 2 Jul 2013 12:39:02 +0300)
OS:                       Linux (Unix
RUNTIME:                  3.0.10 (master/1166156 Tue Apr 23 14:56:42 EEST 2013) (EventStore build) (64-bit)
GC:                       2 GENERATIONS
LOGS:                     /home/greg/foo

SHOW HELP:                False (<DEFAULT>)
SHOW VERSION:             False (<DEFAULT>)
LOGS DIR:                 /home/greg/foo (--logsdir from command line)
CONFIGS:                  <empty> (<DEFAULT>)
DEFINES:                  <empty> (<DEFAULT>)
IP:              (<DEFAULT>)
TCP PORT:                 1113 (<DEFAULT>)
HTTP PORT:                2113 (<DEFAULT>)
CACHED CHUNKS:            -1 (<DEFAULT>)
CHUNKS CACHE SIZE:        536871424 (<DEFAULT>)
DB PATH:                  /tmp/foo (--db from command line)
SKIP DB VERIFY:           False (<DEFAULT>)
HTTP PREFIXES:            <empty> (<DEFAULT>)
CERTIFICATE NAME:         <empty> (<DEFAULT>)
CERTIFICATE FILE:         <empty> (<DEFAULT>)

User projections are not enabled by default, however the projections engine is used internally for account management. If you want to run user projections, it is necessary to start using the --run-projections=all command line parameter.

Projections are still experimental and as such we have not yet documented them here. However, there are two series of blog posts about how they can be used listed on the docs homepage.

The following parameters are supported by the Event Store:

Application Options

Parameter Environment (all prefixed with EVENTSTORE_) Yaml Description
HELP Help Show help. (Default: False)
VERSION Version Show version. (Default: False)
LOG Log Path where to keep log files.
CONFIG Config Configuration files.
DEFINES Defines Run-time conditionals. (Default: n/a)
WHATIF WhatIf Print effective configuration to console and then exit. (Default: False)
FORCE Force Force the Event Store to run in possibly harmful environments such as with Boehm GC. (Default: False)
STATSPERIODSEC StatsPeriodSec The number of seconds between statistics gathers. (Default: 30)
WORKERTHREADS WorkerThreads The number of threads to use for pool of worker services. (Default: 5)

Authentication Options

Parameter Environment (all prefixed with EVENTSTORE_) Yaml Description
AUTHENTICATIONTYPE AuthenticationType The type of authentication to use. (Default: internal)

Certificate Options

Parameter Environment (all prefixed with EVENTSTORE_) Yaml Description
CERTIFICATESTORELOCATION CertificateStoreLocation The certificate store location name.
CERTIFICATESTORENAME CertificateStoreName The certificate store name.
CERTIFICATESUBJECTNAME CertificateSubjectName The certificate subject name.
CERTIFICATETHUMBPRINT CertificateThumbprint The certificate fingerprint/thumbprint.
CERTIFICATEFILE CertificateFile The path to certificate file.
CERTIFICATEPASSWORD CertificatePassword The password to certificate in file.

Cluster Options

Parameter Environment (all prefixed with EVENTSTORE_) Yaml Description
CLUSTERSIZE ClusterSize The number of nodes in the cluster. (Default: 1)
NODEPRIORITY NodePriority The node priority used during master election (Default: 0)
COMMITCOUNT CommitCount The number of nodes which must acknowledge commits before acknowledging to a client. (Default: -1)
PREPARECOUNT PrepareCount The number of nodes which must acknowledge prepares. (Default: -1)
DISCOVERVIADNS DiscoverViaDns Whether to use DNS lookup to discover other cluster nodes. (Default: True)
CLUSTERDNS ClusterDns DNS name from which other nodes can be discovered. (Default: fake.dns)
CLUSTERGOSSIPPORT ClusterGossipPort The port on which cluster nodes’ managers are running. (Default: 30777)
GOSSIPSEED GossipSeed Endpoints for other cluster nodes from which to seed gossip (Default: n/a)
GOSSIPINTERVALMS GossipIntervalMs The interval nodes should try to gossip with each other in ms. (Default: 1000)
GOSSIPALLOWEDDIFFERENCEMS GossipAllowedDifferenceMs The amount of drift between clocks on nodes allowed before gossip is rejected in ms. (Default: 60000)
GOSSIPTIMEOUTMS GossipTimeoutMs The timeout on gossip to another node in ms. (Default: 500)

Database Options

Parameter Environment (all prefixed with EVENTSTORE_) Yaml Description
MINFLUSHDELAYMS MinFlushDelayMs The minimum flush delay in milliseconds. (Default: 2)
DISABLESCAVENGEMERGING DisableScavengeMerging Disables the merging of chunks when scavenge is running (Default: False)
CACHEDCHUNKS CachedChunks The number of chunks to cache in unmanaged memory. (Default: -1)
CHUNKSCACHESIZE ChunksCacheSize The amount of unmanaged memory to use for caching chunks. (Default: 536871424)
MAXMEMTABLESIZE MaxMemTableSize Adjusts the maximum size of a mem table. (Default: 1000000)
DB Db The path the db should be loaded/saved to.
MEMDB MemDb Keep everything in memory, no directories or files are created. (Default: False)
SKIPDBVERIFY SkipDbVerify Bypasses the checking of file hashes of database during startup (allows for faster startup). (Default: False)
PREPARETIMEOUTMS PrepareTimeoutMs Prepare timeout (in milliseconds). (Default: 2000)
COMMITTIMEOUTMS CommitTimeoutMs Commit timeout (in milliseconds). (Default: 2000)
UNSAFEDISABLEFLUSHTODISK UnsafeDisableFlushToDisk Disable flushing to disk. (UNSAFE: on power off) (Default: False)

Interface Options

Parameter Environment (all prefixed with EVENTSTORE_) Yaml Description
INTIP IntIp Internal IP Address. (Default:
EXTIP ExtIp External IP Address. (Default:
INTHTTPPORT IntHttpPort Internal HTTP Port. (Default: 2112)
EXTHTTPPORT ExtHttpPort External HTTP Port. (Default: 2113)
INTTCPPORT IntTcpPort Internal TCP Port. (Default: 1112)
INTSECURETCPPORT IntSecureTcpPort Internal Secure TCP Port. (Default: 0)
EXTTCPPORT ExtTcpPort External TCP Port. (Default: 1113)
EXTSECURETCPPORT ExtSecureTcpPort External Secure TCP Port. (Default: 0)
INTTCPHEARTBEATTIMEOUT IntTcpHeartbeatTimeout Heartbeat timeout for internal TCP sockets (Default: 700)
EXTTCPHEARTBEATTIMEOUT ExtTcpHeartbeatTimeout Heartbeat timeout for external TCP sockets (Default: 1000)
INTTCPHEARTBEATINTERVAL IntTcpHeartbeatInterval Heartbeat interval for internal TCP sockets (Default: 700)
EXTTCPHEARTBEATINTERVAL ExtTcpHeartbeatInterval Heartbeat interval for external TCP sockets (Default: 2000)
ADMINONEXT AdminOnExt Whether or not to run the admin ui on the external http endpoint (Default: True)
STATSONEXT StatsOnExt Whether or not to accept statistics requests on the external http endpoint, needed if you use admin ui (Default: True)
GOSSIPONEXT GossipOnExt Whether or not to accept gossip requests on the external http endpoint (Default: True)
HTTPPREFIXES HttpPrefixes The prefixes that the http server should respond to. (Default: n/a)
ENABLETRUSTEDAUTH EnableTrustedAuth Enables trusted authentication by an intermediary in the Http (Default: False)
USEINTERNALSSL UseInternalSsl Whether to use secure internal communication. (Default: False)
SSLTARGETHOST SslTargetHost Target host of server’s SSL certificate. (Default: n/a)
SSLVALIDATESERVER SslValidateServer Whether to validate that server’s certificate is trusted. (Default: True)

Projections Options

Projections are currently a BETA feature, you should avoid using them for critical production tasks.

Parameter Environment (all prefixed with EVENTSTORE_) Yaml Description
RUNPROJECTIONS RunProjections Enables the running of JavaScript projections. (Default: System) Possible Values: None,System,All
PROJECTIONTHREADS ProjectionThreads The number of threads to use for projections. (Default: 3)

Event Store docs are hosted on GitHub. The repository is public and it’s open to issues and pull requests. Contributions, corrections and feedback are all welcome.