--help
-h
--help-all
.
--version
-v
--configuration filename
-c filename
If this command is not passed to the server, then by default, the server will attempt to first locate a file named ~/SERVER/SERVER.conf
in the user's home directory, where SERVER is the name of the corresponding server.
If no such file is found, the server will proceed to look for a file /etc/SERVER.conf
in the system configuration directory. The default installation specifies the system configuration directory as /etc. Therefore, in case that no configuration file is found in the user's home directory, the server will proceed to look for a file named /etc/SERVER.conf
.
Only command line options with a value should be set within the configuration file. Command line options which act as flags should be entered on the command line when starting the server.
White space is ignored. Each option is specified on a separate line in the form
key = value
Alternatively, a header section can be specified and options pertaining to that section can be specified in a shorter form
[log] level = trace
rather than specifying
log.level = trace
Comments can be placed in the configuration file, only if the line begins with one or more hash symbols (#).
There may be occasions where a configuration file exists and the user wishes to override configuration settings stored in a configuration file. Any settings specified on the command line will overwrite the same setting when it appears in a configuration file. If the user wishes to completely ignore configuration files without necessarily deleting the file (or files), then add the command line option
-c none
or
--configuration none
when starting up the server. Note that, the word none
is case-insensitive.
--daemon
--supervisor
> ./arangod --supervisor --pid-file /var/run/arangodb.pid /tmp/vocbase/ 2012-06-27T15:58:28Z [10133] INFO starting up in supervisor mode
As can be seen (e.g. by executing the ps command), this will start a supervisor process and the actual database process:
> ps fax | grep arangod 10137 ? Ssl 0:00 ./arangod --supervisor --pid-file /var/run/arangodb.pid /tmp/vocbase/ 10142 ? Sl 0:00 \_ ./arangod --supervisor --pid-file /var/run/arangodb.pid /tmp/vocbase/
When the database process terminates unexpectedly, the supervisor process will start up a new database process:
> kill -SIGSEGV 10142 > ps fax | grep arangod 10137 ? Ssl 0:00 ./arangod --supervisor --pid-file /var/run/arangodb.pid /tmp/vocbase/ 10168 ? Sl 0:00 \_ ./arangod --supervisor --pid-file /var/run/arangodb.pid /tmp/vocbase/
--uid uid
Observe that this parameter cannot be used to bypass operating system security. In general, this parameter (and its corresponding relative gid) can lower privileges but not raise them.
--gid gid
This parameter is related to the parameter uid.
--pid-file filename
daemon
or supervisor
is set.
--server.endpoint endpoint
If a TCP/IP endpoint is specified without a port number, then the default port (8529) will be used. If multiple endpoints need to be used, the option can be repeated multiple times.
Examples
> ./arangod --server.endpoint tcp://127.0.0.1:8529 --server.endpoint ssl://127.0.0.1:8530 -server.keyfile server.pem /tmp/vocbase 2012-07-26T07:07:47Z [8161] INFO using SSL protocol version 'TLSv1' 2012-07-26T07:07:48Z [8161] INFO using endpoint 'ssl://127.0.0.1:8530' for http ssl requests 2012-07-26T07:07:48Z [8161] INFO using endpoint 'tcp://127.0.0.1:8529' for http tcp requests 2012-07-26T07:07:49Z [8161] INFO ArangoDB (version 1.1.alpha) is ready for business 2012-07-26T07:07:49Z [8161] INFO Have Fun!
Note that if you are using SSL-encrypted endpoints, you must also supply the path to a server certificate using the --server.keyfile optionn.
--server.disable-authentication value
The default value is false
.
--server.keep-alive-timeout
--server.keyfile filename
The file specified by filename should have the following structure:
-----BEGIN CERTIFICATE----- (base64 encoded certificate) -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- (base64 encoded private key) -----END RSA PRIVATE KEY-----
You may use certificates issued by a Certificate Authority or self-signed certificates. Self-signed certificates can be created by a tool of your choice. When using OpenSSL for creating the self-signed certificate, the following commands should create a valid keyfile:
# create private key in file "server.key" openssl genrsa -des3 -out server.key 1024 # create certificate signing request (csr) in file "server.csr" openssl req -new -key server.key -out server.csr # copy away original private key to "server.key.org" cp server.key server.key.org # remove passphrase from the private key openssl rsa -in server.key.org -out server.key # sign the csr with the key, creates certificate PEM file "server.crt" openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt # combine certificate and key into single PEM file "server.pem" cat server.crt server.key > server.pem
For further information please check the manuals of the tools you use to create the certificate.
Note: the --server.keyfile option must be set if the server is started with at least one SSL endpoint.
--server.cafile filename
The certificates in filename must be PEM formatted.
Note: this option is only relevant if at least one SSL endpoint is used.
--server.ssl-protocol value
The default value is 4 (i.e. TLSv1).
Note: this option is only relevant if at least one SSL endpoint is used.
--server.ssl-cache value
value has a default value of false
(i.e. no caching).
Note: this option is only relevant if at least one SSL endpoint is used, and only if the client supports sending the session id.
--server.ssl-options value
Which options are available on your platform is determined by the OpenSSL version you use. The list of options available on your platform might be retrieved by the following shell command:
> grep "#define SSL_OP_.*" /usr/include/openssl/ssl.h #define SSL_OP_MICROSOFT_SESS_ID_BUG 0x00000001L #define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x00000002L #define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004L #define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L #define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x00000010L #define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L ...
A description of the options can be found online in the OpenSSL documentation at: http://www.openssl.org/docs/ssl/SSL_CTX_set_options.html
Note: this option is only relevant if at least one SSL endpoint is used.
--server.ssl-cipher-list cipher-list
The format of cipher-list is documented in the OpenSSL documentation.
To check which ciphers are available on your platform, you may use the following shell command:
> openssl ciphers -v ECDHE-RSA-AES256-SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1 ECDHE-ECDSA-AES256-SHA SSLv3 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA1 DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1 DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA1 ...
The default value for cipher-list is "ALL".
Note: this option is only relevant if at least one SSL endpoint is used.
--disable-admin-interface value
true
, then the HTML administration interface at URL http://server:port/
will be disabled and cannot used by any user at all.
--database.directory directory
/var/lib/arango
.
directory
Examples
> ./arangod /tmp/vocbase 2012-05-13T12:37:08Z [8145] INFO using built-in JavaScript startup files 2012-05-13T12:37:08Z [8145] INFO ArangoDB (version 1.x.y) is ready for business 2012-05-13T12:37:08Z [8145] INFO Have Fun!
--database.maximal-journal-size size
The default is 32MB
.
--database.wait-for-sync boolean
The default is false
.
--database.force-sync-shapes boolean
true
. If turned on, syncing of shape data will always happen, regards of the value of waitForSync.
The default is true
.
--database.remove-on-drop flag
true
and you drop a collection, then they directory and all associated datafiles will be removed from disk. If false
, then they collection directory will be renamed to deleted-...
, but remains on hard disk. To restore such a dropped collection, you can rename the directory back to collection-...
, but you must also edit the file parameter.json
inside the directory.
The default is true
.
--javascript.gc-frequency frequency
--javascript.gc-interval interval
--scheduler.threads arg
--scheduler.backend arg
--show-io-backends
scheduler.backend
, see here for details.
There are two different kinds of logs. Human-readable logs and machine-readable logs. The human-readable logs are used to provide an administration with information about the server. The machine-readable logs are used to provide statistics about executed requests and timings about computation steps.
--log.file filename
Use +
to log to standard error. Use -
to log to standard output. Use ""
to disable logging to file.
--log.severity severity
The default is all.
--log.syslog arg
The value of arg depends on your syslog configuration. In general it will be user
. Fatal messages are mapped to crit
, so if arg is user
, these messages will be logged as user.crit
. Error messages are mapped to err
. Warnings are mapped to warn
. Info messages are mapped to notice
. Debug messages are mapped to info
. Trace messages are mapped to debug
.
--log.level level
--log level
log.level
can be used in configuration files, the variant log
for command line options.
Fatal errors generally indicate some inconsistency with the manner in which the server has been coded. Fatal errors may also indicate a problem with the platform on which the server is running. Fatal errors always cause the server to terminate. For example,
2010-09-20T07:32:12Z [4742] FATAL a http server has already been created
These errors may not necessarily result in the termination of the server. For example,
2010-09-17T13:10:22Z [13967] ERROR strange log level 'errors', going to 'warning'
For example,
2010-09-20T08:15:26Z [5533] WARNING got corrupted HTTP request 'POS?'
Note that, setting the log level to warning will also result in all errors to be logged as well.
For example,
2010-09-20T07:40:38Z [4998] INFO SimpleVOC ready for business
Note that, setting the log level to info will also result in all errors and warnings to be logged as well.
Debug log information is generally useful to find out the state of the server in the case of an error. For example,
2010-09-17T13:02:53Z [13783] DEBUG opened port 7000 for any
Note that, setting the log level to debug will also result in all errors, warnings and server status information to be logged as well.
For example,
2010-09-20T08:23:12Z [5687] TRACE trying to open port 8000
Note that, setting the log level to trace will also result in all errors, warnings, status information, and debug information to be logged as well.
--log.line-number
--log.prefix prefix
--log.thread
2010-09-20T13:04:01Z [19355] INFO ready for business
when no thread is logged and
2010-09-20T13:04:17Z [19371-18446744072487317056] ready for business
when this command line option is set.
--log.filter arg
--log.application name
--log.facility name
--log.format format
If the log output is machine (or machine readable), then this parameter allows you to configure the format of the output. The following placeholders are available:
%A
the application name%C
the category which caused the output (e.g. FATAL, ERROR, WARNING etc.)%E
extras%F
facility%H
the host name to log%K
task%M
message identifier%P
peg%S
severity%T
date/time stamp%U
measure unit%V
measure value%Z
date/time stamp in GMT (zulu)%f
source code module%l
source code line%m
source code method%p
pid%s
pthread identifier%t
tid%u
user identifier%x
the actual textThe default format is
%Z;1;%S;%C;%H;%p-%t;%F;%A;%f;%m;%K;%f:%l;%x;%P;%u;%V;%U;%E
--log.hostname name
--random.generator arg
--random.no-seed