# Server Configuration
TIP
We manage the following parameters for you in Typesense Cloud. So this section only applies if you're self-hosting Typesense.
# Using Command Line Arguments
Command line arguments can be passed to the server as --parameter=value
.
Parameter | Required | Description |
---|---|---|
--config | false | Path to the configuration file. If you use this argument, you can define all of the other command line arguments in a configuration file. See the "Configuring Typesense" section for more details. |
--api-key | true | A bootstrap admin API key that allows all operations. Be sure to create additional keys with specific ACLs using the key management API. NOTE: Don't expose this admin API key to your browser JS client: use the key management API to create search-only or scoped API keys. |
--data-dir | true | Path to the directory where data will be stored on disk. |
--api-address | false | Address to which Typesense API service binds. Default: 0.0.0.0 |
--api-port | false | Port on which Typesense API service listens. Default: 8108 |
--peering-address | false | Internal IP address to which Typesense peering service binds. If this parameter is not specified, Typesense will attempt to use the first available internal IP. |
--peering-port | false | Port on which Typesense peering service listens. Default: 8107 |
--peering-subnet | false | Internal subnet that Typesense should use for peering, e.g. 192.160.1.0/24 . |
--nodes | false | Path to file containing comma separated string of all nodes in the cluster. |
--log-dir | false | By default, Typesense logs to stdout and stderr. To enable logging to a file, provide a path to a logging directory. |
--ssl-certificate | false | Path to the SSL certificate file. You must also define ssl-certificate-key to enable HTTPS. |
--ssl-certificate-key | false | Path to the SSL certificate key file. You must also define ssl-certificate to enable HTTPS. |
--ssl-refresh-interval-seconds | false | Frequency of automatic reloading of SSL certs from disk. Default: 8 * 60 * 60 . |
--enable-cors | false | Allow JavaScript client to access Typesense directly from the browser. |
--cors-domains | false | Comma separated list of domains which are allowed for CORS. E.g. https://example.com,https://example2.com (no trailing slashes!) |
--thread-pool-size | false | Number of threads used for handling concurrent requests. Default: NUM_CORES * 8 . |
--num-collections-parallel-load | false | Number of collections that are loaded in parallel during start up. Default: NUM_CORES * 4 . |
--num-documents-parallel-load | false | Number of documents per collection that are indexed in parallel during start up. Default: 1000 . |
--disk-used-max-percentage | false | Reject writes when used disk space exceeds this percentage. Default: 100 (never reject). |
--healthy-read-lag | false | Reads are rejected if the updates lag behind this threshold. Default: 1000 . |
--healthy-write-lag | false | Writes are rejected if the updates lag behind this threshold. Default: 500 . |
--snapshot-interval-seconds | false | Frequency of replication log snapshots. Default: 3600 follower recovery.NOTE: Frequent snapshotting helps in faster recovery from a cold start. However, if this value is too low for a large dataset, repeated snapshotting can actually slow down follower recovery. |
--log-slow-requests-time-ms | false | Requests that take over this amount of time (in milliseconds) are logged. Default: -1 which disables slow request logging. You can also dynamically enable slow requests logging via the /config API. |
# Using a Configuration File
As an alternative to command line arguments, you can also configure Typesense server through a configuration file or via environment variables.
Command line arguments are given the highest priority, while environment variables are given the least priority.
Our Linux DEB/RPM packages install the configuration file at /etc/typesense/typesense-server.ini
.
The configuration file uses a simple INI format:
# Using Environment Variables
If you wish to use environment variables, you can do that too. The environment variables map to the command line arguments documented above: just use CAPS and underscores instead of hyphens, and prefix the variable names with TYPESENSE_
.
For example, use TYPESENSE_DATA_DIR
for the --data-dir
argument.