!CHAPTER Command-Line Options for Clusters !SUBSECTION Node ID This server's id: `--cluster.my-local-info info` Some local information about the server in the cluster, this can for example be an IP address with a process ID or any string unique to the server. Specifying *info* is mandatory on startup if the server id (see below) is not specified. Each server of the cluster must have a unique local info. This is ignored if my-id below is specified. !SUBSECTION Agency endpoint List of agency endpoints: `--cluster.agency-endpoint endpoint` An agency endpoint the server can connect to. The option can be specified multiple times, so the server can use a cluster of agency servers. Endpoints have the following pattern: - tcp://ipv4-address:port - TCP/IP endpoint, using IPv4 - tcp://[ipv6-address]:port - TCP/IP endpoint, using IPv6 - ssl://ipv4-address:port - TCP/IP endpoint, using IPv4, SSL encryption - ssl://[ipv6-address]:port - TCP/IP endpoint, using IPv6, SSL encryption At least one endpoint must be specified or ArangoDB will refuse to start. It is recommended to specify at least two endpoints so ArangoDB has an alternative endpoint if one of them becomes unavailable. **Examples** ``` --cluster.agency-endpoint tcp://192.168.1.1:4001 --cluster.agency-endpoint tcp://192.168.1.2:4002 ``` !SUBSECTION Agency prefix Global agency prefix: `--cluster.agency-prefix prefix` The global key prefix used in all requests to the agency. The specified prefix will become part of each agency key. Specifying the key prefix allows managing multiple ArangoDB clusters with the same agency server(s). *prefix* must consist of the letters *a-z*, *A-Z* and the digits *0-9* only. Specifying a prefix is mandatory. **Examples** ``` --cluster.prefix mycluster ``` !SUBSECTION MyId This server's id: `--cluster.my-id id` The local server's id in the cluster. Specifying *id* is mandatory on startup. Each server of the cluster must have a unique id. Specifying the id is very important because the server id is used for determining the server's role and tasks in the cluster. *id* must be a string consisting of the letters *a-z*, *A-Z* or the digits *0-9* only. !SUBSECTION MyAddress This server's address / endpoint: `--cluster.my-address endpoint` The server's endpoint for cluster-internal communication. If specified, it must have the following pattern: - tcp://ipv4-address:port - TCP/IP endpoint, using IPv4 - tcp://[ipv6-address]:port - TCP/IP endpoint, using IPv6 - ssl://ipv4-address:port - TCP/IP endpoint, using IPv4, SSL encryption - ssl://[ipv6-address]:port - TCP/IP endpoint, using IPv6, SSL encryption If no *endpoint* is specified, the server will look up its internal endpoint address in the agency. If no endpoint can be found in the agency for the server's id, ArangoDB will refuse to start. **Examples** ``` --cluster.my-address tcp://192.168.1.1:8530 ``` !SUBSECTION Username Username used for cluster-internal communication: `--cluster.username username` The username used for authorization of cluster-internal requests. This username will be used to authenticate all requests and responses in cluster-internal communication, i.e. requests exchanged between coordinators and individual database servers. This option is used for cluster-internal requests only. Regular requests to coordinators are authenticated normally using the data in the *_users* collection. If coordinators and database servers are run with authentication turned off, (e.g. by setting the *--server.authentication* option to *false*), the cluster-internal communication will also be unauthenticated. !SUBSECTION Password Password used for cluster-internal communication: `--cluster.password password` The password used for authorization of cluster-internal requests. This password will be used to authenticate all requests and responses in cluster-internal communication, i.e. requests exchanged between coordinators and individual database servers. This option is used for cluster-internal requests only. Regular requests to coordinators are authenticated normally using the data in the `_users` collection. If coordinators and database servers are run with authentication turned off, (e.g. by setting the *--server.authentication* option to *false*), the cluster-internal communication will also be unauthenticated.