Skip to content

Configuration of dtable-server

This is a cheat sheet for the dtable-server configuration file dtable_server_config.json. It contains all possible settings that can be configured as well as their default values.

The default values provided here are best-effort (not built automatically). They will be used, if no value is defined at all. It is not necessary the value, that is written in the configuration file on first startup.

In the default values below, a value in the form $XYZ refers to an environment variable.

Configuration changes require a restart

New configuration options will only apply after a restart of SeaTable.

Notes about the configuration file format

The configuration file uses the JSON format (JavaScript Object Notation), which is a lightweight, text-based format for storing and transmitting structured data. It consists of key-value pairs and nested objects, represented by curly braces {}. Comments are not supported in JSON.

When dealing with special characters like single quotes ', double quotes ", or backslashes , JSON has specific escaping rules. Double quotes " are used to enclose strings, and special characters within strings should be escaped with a backslash.

JSON is strict about syntax, particularly with commas. Each key-value pair in an object must be separated by a comma, and there should be no trailing comma after the last key-value pair.

Example configuration

This is a typical configuration file, created automatically on the first startup by SeaTable.e

{
    "host": "mariadb",
    "user": "root",
    "password": "aeaicoo6eDui1ns1d6ae5VoM0raho8eethah3kae",
    "database": "dtable_db",
    "port": 3306,
    "private_key": "9uc)v0epyur^gf-j!@gabem7*-8^@d@z_!g!s^o$inp+#8ujk-",
    "redis_host": "redis",
    "redis_port": 6379,
    "redis_password": ""
}

Available configuration options

Mariadb Database Connection

Parameter Description Default
host MariaDB server address $DB_HOST
user MariaDB username root
password MariaDB password $DB_ROOT_PASSWD
database Database name dtable_db
port MariaDB server port 3306

Redis Connection

Parameter Description Default
redis_host Redis server address redis
redis_password Redis password (often empty)
redis_port Redis server port 6379
enable_notification_publish Enable real-time notifications via Redis false

Persist data

SeaTable Server process bases in memory. After a certain time, the bases are persisted to storage (via dtable-storage-server)

Parameter Description Default
save_interval Auto-save interval for modified bases, in milliseconds. (300000 = 5min) 300000

Other Connections

Parameter Description Default
private_key Shared secret for dtable_web connection. Must match DTABLE_PRIVATE_KEY in dtable_web_settings.py
dtable_web_service_url dtable-web service URL http://127.0.0.1:8000/
dtable_db_service_url dtable-db service URL http://127.0.0.1:7777/
dtable_storage_server_url dtable-storage-server URL http://127.0.0.1:6666/
API-Gateway is not configurable

API-Gateway URL is not configurable. It is always dtable_web_service_url + api-gateway.

Row Limits

Please note that increasing this value requires corresponding updates in dtable_web_settings.py, as detailed here.

Parameter Description Default
base_writable_limit Soft limit for rows in a base. Exceeding this shows an error in the web interface. 100000
base_max_rows_limit Hard limit for rows in a base. Server prevents any writes beyond this number. 150000

Base Size Limit

Parameter Description Default
base_max_size Maximum size of a base's JSON file (excluding assets and big data) in MB. 200

Expert Configuration

It is not recommended to change these values

Parameter Description Default
worker_threads_num Number of worker threads serving list rows API (for custom shares or view shares only) 2
worker_threads_rows_limit Maximum rows, returned in custom shares or view shares 50000
rows_api_max_limit Maxmum number of rows returned by calling list rows API in dtable-server 1000
redirect_list_rows_api Redirect API requests to the API-Gateway. false

Cluster Setup

For more information on setting up a SeaTable cluster, which is typically suitable for systems supporting hundreds of users, please contact us.

Deprecated settings

API-Limits

The API limits mentioned are no longer applicable. Prior to SeaTable version 5.2, separate API limits existed for dtable-server and dtable-db. However, starting with version 5.2, API requests are now handled by the api-gateway, which enforces unified API limits across the platform.

Parameter Description Default
api_req_max Max API calls to a base per minute. 600
api_base_day_max Max API calls to a base per day. 5000
rows_api_minute_max Max listing rows API calls per minute. 100
rows_api_hour_max Max listing rows API calls per hour. 6000

Slave-Mode and Database-Split

These functions are deprecated and not maintained further.