Configuration of dtable-storage-server¶
This is a cheat sheet for the dtable-storage-server configuration file dtable-storage-server.conf
. 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 INI format, which is a simple text-based format for storing configuration data. It consists of sections (denoted by square brackets, e.g., [general]) and key-value pairs.
Comments in the configuration file start with the hash symbol #
and extend to the end of the line.
When dealing with special characters like single quotes '
, double quotes "
or the hash symbol #
, it's generally best to enclose the value in double quotes.
The following options are grouped by their sections.
Example configuration¶
This is a typical configuration file, created automatically on the first startup by SeaTable.
[general]
log_dir = /opt/seatable/logs
temp_file_dir = /tmp/tmp-storage-data
[storage backend]
type = filesystem
path = /opt/seatable/storage-data
[snapshot]
interval = 86400
keep_days = 180
Available configuration options¶
[general]
¶
This section contains general settings about the dtable-storage-server
service.
Parameter | Description | Default |
---|---|---|
host | The address dtable-storage-server listens on. | 127.0.0.1 |
port | The port dtable-storage-server listens on. | 6666 |
log_dir | The directory that dtable-storage-server writes logs to. | Directory of the configuration file |
temp_file_dir | The directory that dtable-storage-server creates buffers in. This setting is required. |
[storage backend]
¶
This section is used to configure the storage backend.
Parameter | Description | Default |
---|---|---|
type | The type of storage backend. Options are filesystem and s3 . | fileystem |
Depending on the chosen storage backend, there are additional settings:
Filesystem Storage Backend¶
Parameter | Description | Default |
---|---|---|
path | The filepath of storage backend. | /opt/seatable/storage-data |
S3 Storage Backend¶
Parameter | Description | Default |
---|---|---|
bucket | The bucket name for the S3 backend. | |
key_id | The access key id for the bucket. | |
key | The secret access key fro the bucket. | |
use_v4_signature | Whether to use v4 signature. For a S3-compatible storage, it should be false . | |
aws_region | The AWS region (only when v4 signature is used). | |
host | The host address of S3 backend. Required for S3-compatible storage. Optional for AWS S3, but can be set to the endpoint you use. | |
path_style_request | Whether to use path style requests. For a S3-compatible storage, it should be true . | |
use_https | Whether to use https. | |
sse_c_key | Use server-side encryption with customer-provided keys (SSE-C). This setting is optional. |
SSE-C¶
sse_c_key
is a string of 32 characters.
You can generate sse_c_key
with the following command:
openssl rand -base64 24
Incompatibility with Ceph-based object storage
Please note that certain object storage providers that are based on Ceph (e.g. Hetzner Object Storage) currently do not support CopyObject
operations when using SSE-C. This makes them incompatible with SeaTable. There is an open issue over at the Ceph issue tracker.
[snapshot]
¶
Parameter | Description | Default |
---|---|---|
interval | The interval for generating snapshots of a base, if there are changes to the base. Unit is in seconds. | 86400 |
enable_cleanup | Controls snapshot cleanup. Activate on only one node in multi-server setups. | true |
keep_days | Specifies the snapshot retention period in days. Older snapshots are deleted. As of version 5.2, the default is 180 days; previously, it was unlimited (0). | 180 |
keep_frequency_days | Specifies daily snapshot period for changed bases. After this, only one snapshot per month is kept. Default is 0 (always daily). Requires keep_days to be set and > keep_frequency_days . | 0 |
Example of new tiered snapshot retention
By default, SeaTable creates daily snapshots for changed bases, deleting snapshots older than 180 days.
Since version 5.2, SeaTable offers a tiered retention strategy for snapshots. This approach balances recent, detailed backups with efficient long-term storage. For example, setting keep_days = 180
and keep_frequency_days = 7
would retail:
- Daily snapshots for the past week
- Monthly snapshots for the past six months, except for the past week.