From 7768ee3fc9eb0a625f144d01b9fb919a648109a7 Mon Sep 17 00:00:00 2001 From: Simon Hammes Date: Fri, 4 Sep 2026 12:47:25 +0200 Subject: [PATCH 1/9] Add docs for automation-worker --- .../components/automation-worker.md | 37 +++++++++++++++++++ docs/introduction/architecture.md | 18 ++++++++- mkdocs.yml | 1 + 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 docs/configuration/components/automation-worker.md diff --git a/docs/configuration/components/automation-worker.md b/docs/configuration/components/automation-worker.md new file mode 100644 index 00000000..0a1b2287 --- /dev/null +++ b/docs/configuration/components/automation-worker.md @@ -0,0 +1,37 @@ +--- +description: Complete reference for automation-worker configuration including workers and PDF generation settings. +--- + +# Configuration of automation-worker + +This is a cheat sheet for the possible configuration options of the [automation-worker](../../introduction/architecture.md#container-automation-worker). +It contains all possible settings that can be configured as well as their default values. + +The automation-worker is a dedicated component that executes automation rules. +It reads pending automation tasks from Redis, runs the configured actions (e.g. sending emails, running Python scripts, generating PDFs or triggering AI-powered automations), and publishes the results back to Redis. + +The default values provided here are best-effort (not built automatically). They will be used if no value is defined at all. + +??? tip "Configuration changes require a restart" + + New configuration options will only apply after a restart of the automation-worker. + +## Environment Variables + + + +This section lists the environment variables read by the automation-worker. +Please read our guide that explains how you can [customize the configuration](../customizations.md) of your SeaTable instance before you proceed. + +### Workers + +| Environment Variable | Description | Default | +| -------------------- | ---------------------------------------------------------------------- | ------- | +| `AUTOMATION_WORKERS` | Number of worker threads that process automation rule tasks from Redis | 5 | + +### PDF Generation + +| Environment Variable | Description | Default | +| ---------------------------------- | -------------------------------------------------------- | ------- | +| `CONVERT_PDF_BROWSERS` | Number of browser processes started to generate PDF files | 2 | +| `CONVERT_PDF_SESSIONS_PER_BROWSER` | Number of sessions per browser instance | 3 | diff --git a/docs/introduction/architecture.md b/docs/introduction/architecture.md index b67dc7f8..fd9ad204 100644 --- a/docs/introduction/architecture.md +++ b/docs/introduction/architecture.md @@ -20,9 +20,13 @@ flowchart TB B[seatable-server
80] C[mariadb
3306] D[redis
6379] + E[automation-worker] A<-->B B<-->C B<-->D + B<-->E + E<-->C + E<-->D end F@{ shape: bow-rect, label: "Storage"} end @@ -30,7 +34,7 @@ flowchart TB The numbers designate the ports used by the containers. Port 443 in the container `caddy` must be exposed. Port 80 must also be exposed when a Let's Encrypt SSL certificate is to be used. All other ports are internal ports that are only available within the Docker network. -All Docker containers read from and write to local disk. The containers `caddy`, `seatable-server`, and `mariadb` employ Docker volumes. +All Docker containers read from and write to local disk. The containers `caddy`, `seatable-server`, `automation-worker` and `mariadb` employ Docker volumes. In an extended setup, additional, optional Docker container can be deployed to add functionality to SeaTable Server. The diagram below describes all Docker containers and their interactions required for a SeaTable Server instance integrated with office editor, Python pipeline, virus scan, and whiteboard. @@ -52,6 +56,7 @@ flowchart TB PSc[python-scheduler] PSt[python-starter] PR[python-runner] + AW[automation-worker] C<-->SS C<-->Tld C<-->OO @@ -67,6 +72,9 @@ flowchart TB SS<-->Tld SS<-->CAV SS<-->PSc + SS<-->AW + AW<-->MDB + AW<-->R end F@{ shape: bow-rect, label: "Storage"} end @@ -150,6 +158,14 @@ When actions are not executed immediately but with a time delay, SeaTable employ The api-gateway is a proxy for dtable-server and dtable-db. All API calls for [base operations](https://api.seatable.com/reference/getbaseinfo) are routed through this component. It is also essential for the effective enforcement of API rate and request limits. +## Container automation-worker + + + +The `automation-worker` container is a dedicated component that executes automation rules. It reads pending automation tasks from Redis, runs the configured actions (e.g. sending emails, running Python scripts, generating PDFs or triggering AI-powered automations), and publishes the results back to Redis. + +The automation-worker connects to the containers `mariadb` and `redis` to read (and write). In addition, it accesses the inner services of the `seatable-server` container (such as dtable-server, dtable-db and dtable-web) when an automation action interacts with a base. + ## Container mariadb SeaTable uses MariaDB to store user, group and team information as well as metadata for bases. Additionally, MariaDB stores the operation log. The operation log (saved in the database table `dtable_db.operation_log`) is the base journal. It records all modifications made within all bases of the SeaTable Server instance. (While SeaTable stores all base modifications in MariaDB, it doesn't store the actual base content. Instead, bases are managed within dtable-server and regularly persisted to dtable-storage-server for long-term storage.) diff --git a/mkdocs.yml b/mkdocs.yml index 9e2187fe..7e4256e4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -264,6 +264,7 @@ nav: - Overview: configuration/overview.md - Customizations: configuration/customizations.md - Components: + - automation-worker: configuration/components/automation-worker.md - dtable-api-gateway: configuration/components/dtable-api-gateway.md - dtable-db: configuration/components/dtable-db.md - dtable-events: configuration/components/dtable-events.md From 25cc3a5fd9b89edc118be0a1c52c81cf2f6731b3 Mon Sep 17 00:00:00 2001 From: Simon Hammes Date: Mon, 7 Sep 2026 12:13:57 +0200 Subject: [PATCH 2/9] Update architecture documentation --- .../configuration/components/dtable-server.md | 4 ++-- docs/introduction/architecture.md | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/docs/configuration/components/dtable-server.md b/docs/configuration/components/dtable-server.md index 0de579b0..a0faf489 100644 --- a/docs/configuration/components/dtable-server.md +++ b/docs/configuration/components/dtable-server.md @@ -4,7 +4,7 @@ description: Complete reference for dtable-server configuration including row li # Configuration of dtable-server -This is a cheat sheet for the possible configuration options of [dtable-server](../../introduction/architecture.md#dtable-server). +This is a cheat sheet for the possible configuration options of [dtable-server](../../introduction/architecture.md#container-dtable-server). 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. @@ -17,7 +17,7 @@ The default values provided here are best-effort (not built automatically). They -This section lists the environment variables read by [dtable-server](../../introduction/architecture.md#dtable-server). +This section lists the environment variables read by [dtable-server](../../introduction/architecture.md#container-dtable-server). Please read our guide that explains how you can [customize the configuration](../customizations.md) of your SeaTable instance before you proceed. ### Automations diff --git a/docs/introduction/architecture.md b/docs/introduction/architecture.md index fd9ad204..6e8bac68 100644 --- a/docs/introduction/architecture.md +++ b/docs/introduction/architecture.md @@ -21,12 +21,17 @@ flowchart TB C[mariadb
3306] D[redis
6379] E[automation-worker] + G[dtable-server
5000] A<-->B B<-->C B<-->D B<-->E + B<-->G E<-->C E<-->D + E<-->G + G<-->C + G<-->D end F@{ shape: bow-rect, label: "Storage"} end @@ -34,7 +39,7 @@ flowchart TB The numbers designate the ports used by the containers. Port 443 in the container `caddy` must be exposed. Port 80 must also be exposed when a Let's Encrypt SSL certificate is to be used. All other ports are internal ports that are only available within the Docker network. -All Docker containers read from and write to local disk. The containers `caddy`, `seatable-server`, `automation-worker` and `mariadb` employ Docker volumes. +All Docker containers read from and write to local disk. The containers `caddy`, `seatable-server`, `dtable-server`, `automation-worker` and `mariadb` employ Docker volumes. In an extended setup, additional, optional Docker container can be deployed to add functionality to SeaTable Server. The diagram below describes all Docker containers and their interactions required for a SeaTable Server instance integrated with office editor, Python pipeline, virus scan, and whiteboard. @@ -57,6 +62,7 @@ flowchart TB PSt[python-starter] PR[python-runner] AW[automation-worker] + DS[dtable-server
5000] C<-->SS C<-->Tld C<-->OO @@ -73,8 +79,12 @@ flowchart TB SS<-->CAV SS<-->PSc SS<-->AW + SS<-->DS AW<-->MDB AW<-->R + AW<-->DS + DS<-->MDB + DS<-->R end F@{ shape: bow-rect, label: "Storage"} end @@ -134,10 +144,6 @@ All services in the container `seatable-server` connect to the containers `maria The task of the service dtable-web is to deliver all pages except for the bases themselves. This includes essential features such as the login page, home page, system administration area, team administration, personal settings, and API endpoints. All these functionalities are provided by dtable-web, which is built on the Django framework. -### dtable-server - -When accessing a base, you'll be directed to the base editor, which is provided by the dtable-server service. This editor loads the base's content from a JSON file, presenting it in a familiar spreadsheet interface and enabling real-time collaborative work on all data within the base. Each modification is promptly saved to the operation log (stored in MariaDB), and within minutes, these changes are persisted as a JSON file and transmitted to dtable-storage-server for storage in the attached storage system. - ### dtable-db dtable-db extends the functionality of dtable-server, offering an SQL-like query language to interact with base data. Additionally, it serves as the interface for accessing the Big Data Backend. @@ -158,6 +164,14 @@ When actions are not executed immediately but with a time delay, SeaTable employ The api-gateway is a proxy for dtable-server and dtable-db. All API calls for [base operations](https://api.seatable.com/reference/getbaseinfo) are routed through this component. It is also essential for the effective enforcement of API rate and request limits. +## Container dtable-server + + + +When accessing a base, you'll be directed to the base editor, which is provided by the dtable-server service. This editor loads the base's content from a JSON file, presenting it in a familiar spreadsheet interface and enabling real-time collaborative work on all data within the base. Each modification is promptly saved to the operation log (stored in MariaDB), and within minutes, these changes are persisted as a JSON file and transmitted to dtable-storage-server for storage in the attached storage system. + +**Note:** Previously, `dtable-server` ran inside the `seatable-server` container. With version 7.0, it has been extracted to a dedicated container. + ## Container automation-worker From 06fe50de28e91e83b686b7ae738f45b222a82eaa Mon Sep 17 00:00:00 2001 From: Simon Hammes Date: Mon, 7 Sep 2026 12:28:47 +0200 Subject: [PATCH 3/9] Document DTABLE_SERVER_TOTAL_CACHE_SIZE variable --- docs/configuration/components/dtable-server.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/configuration/components/dtable-server.md b/docs/configuration/components/dtable-server.md index a0faf489..834dcd3d 100644 --- a/docs/configuration/components/dtable-server.md +++ b/docs/configuration/components/dtable-server.md @@ -26,6 +26,17 @@ Please read our guide that explains how you can [customize the configuration](.. | --------------------------------------- | -------------------------------------------------------------------------- | ------- | | `AUTOMATION_RATE_LIMIT_PER_BASE_MINUTE` | Limits the number of automations that can be triggered per base per minute | 1000 | +### Caching + + + +The Golang implementation of `dtable-server` supports configuration of the base cache size. +Eviction happens based on an LRU (least recently used) policy. + +| Environment Variable | Description | Default | +| -------------------------------- | ----------------------------- | ------- | +| `DTABLE_SERVER_TOTAL_CACHE_SIZE` | Size of the base cache in MB. | 2000 | + ### Persistence | Environment Variable | Description | Default | From a9cf01d351c775ee317e140ac1df9ae90aee1c93 Mon Sep 17 00:00:00 2001 From: Simon Hammes Date: Tue, 22 Sep 2026 14:01:40 +0200 Subject: [PATCH 4/9] Update description of automation-worker container --- docs/introduction/architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/introduction/architecture.md b/docs/introduction/architecture.md index 6e8bac68..e855176d 100644 --- a/docs/introduction/architecture.md +++ b/docs/introduction/architecture.md @@ -178,7 +178,7 @@ When accessing a base, you'll be directed to the base editor, which is provided The `automation-worker` container is a dedicated component that executes automation rules. It reads pending automation tasks from Redis, runs the configured actions (e.g. sending emails, running Python scripts, generating PDFs or triggering AI-powered automations), and publishes the results back to Redis. -The automation-worker connects to the containers `mariadb` and `redis` to read (and write). In addition, it accesses the inner services of the `seatable-server` container (such as dtable-server, dtable-db and dtable-web) when an automation action interacts with a base. +The automation-worker connects to the containers `mariadb` and `redis` to read (and write). In addition, it accesses the container `dtable-server` and the inner services of the `seatable-server` container (such as dtable-db and dtable-web) when an automation action interacts with a base. ## Container mariadb From adca870167fc02077ae54b1fb6711dc1e3448cb7 Mon Sep 17 00:00:00 2001 From: Simon Hammes Date: Tue, 22 Sep 2026 14:13:34 +0200 Subject: [PATCH 5/9] Update COMPOSE_FILE references --- docs/configuration/customizations.md | 4 ++-- docs/configuration/overview.md | 2 +- docs/installation/basic-setup.md | 4 ++-- docs/installation/components/python-pipeline.md | 2 +- docs/installation/components/uptime-kuma.md | 2 +- docs/installation/deployment-approach.md | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/configuration/customizations.md b/docs/configuration/customizations.md index 8435a513..92737283 100644 --- a/docs/configuration/customizations.md +++ b/docs/configuration/customizations.md @@ -48,14 +48,14 @@ Add `custom-seatable-server.yml` to the `COMPOSE_FILE` variable inside your `.en A minimal SeaTable installation contains the following line inside the `.env` file (located at `/opt/seatable-compose/.env`): ```ini -COMPOSE_FILE='caddy.yml,seatable-server.yml' +COMPOSE_FILE='caddy.yml,seatable-server.yml,dtable-server.yml,automation-worker.yml' ``` Now simpli add `custom-seatable-server.yml` to the list of filenames that should be merged by Docker Compose. Additional filenames should be separated by a comma. ```ini -COMPOSE_FILE='caddy.yml,seatable-server.yml,custom-seatable-server.yml' +COMPOSE_FILE='caddy.yml,seatable-server.yml,dtable-server.yml,automation-worker.yml,custom-seatable-server.yml' ``` ### Step 3 diff --git a/docs/configuration/overview.md b/docs/configuration/overview.md index 2cf8ed51..c8c01ee7 100644 --- a/docs/configuration/overview.md +++ b/docs/configuration/overview.md @@ -22,7 +22,7 @@ it is sufficient to set/modify these variables directly inside your `.env` file. ```ini # components to be used -COMPOSE_FILE='caddy.yml,seatable-server.yml' # (1)! +COMPOSE_FILE='caddy.yml,seatable-server.yml,dtable-server.yml,automation-worker.yml' # (1)! COMPOSE_PATH_SEPARATOR=',' # system settings diff --git a/docs/installation/basic-setup.md b/docs/installation/basic-setup.md index fb654b41..eb53d8ac 100644 --- a/docs/installation/basic-setup.md +++ b/docs/installation/basic-setup.md @@ -126,7 +126,7 @@ Continue setting up your SeaTable server by adjusting only three more variables. ``` python # components to be used - COMPOSE_FILE='caddy.yml,seatable-server.yml' # (1)! + COMPOSE_FILE='caddy.yml,seatable-server.yml,dtable-server.yml,automation-worker.yml' # (1)! COMPOSE_PATH_SEPARATOR=',' # system settings @@ -152,7 +152,7 @@ Continue setting up your SeaTable server by adjusting only three more variables. SECRET_KEY='anothertopsecret' ``` - 1. COMPOSE_FILE is a comma-separated list **without spaces**. This list defines which components the server runs. Leave `caddy.yml` and `seatable-server.yml` at the beginning. You will add more components at a later time. + 1. COMPOSE_FILE is a comma-separated list **without spaces**. This list defines which components the server runs. Leave `caddy.yml`, `seatable-server.yml`, `dtable-server.yml` and `automation-worker.yml` at the beginning. You will add more components at a later time. 2. A [list of timezones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) is available on Wikipedia. 3. SEATABLE_SERVER_HOSTNAME is the (sub)domain (without http:// or https://) under which the server is accessible on (at least) port 80 and 443.
If you want to use a public IP address (e.g. 5.35.28.112), you can use the free service [nip.io](https://nip.io/). In this case, enter your your-ip.nip.io address (e.g. 5.35.28.112.nip.io). diff --git a/docs/installation/components/python-pipeline.md b/docs/installation/components/python-pipeline.md index 18dc6563..f33965ef 100644 --- a/docs/installation/components/python-pipeline.md +++ b/docs/installation/components/python-pipeline.md @@ -52,7 +52,7 @@ sed -i "s/COMPOSE_FILE='\(.*\)'/COMPOSE_FILE='\1,python-pipeline.yml'/" /opt/sea When manually adding `python-pipeline.yml` to the `COMPOSE_FILE` variable using your preferred text editor, make sure that you do not enter a space (:material-keyboard-space:). After the modification, your `COMPOSE_FILE` variable should look like this: ```bash - COMPOSE_FILE='caddy.yml,seatable-server.yml,python-pipeline.yml' + COMPOSE_FILE='caddy.yml,seatable-server.yml,dtable-server.yml,automation-worker.yml,python-pipeline.yml' ``` #### Generate a shared secret for secure communication diff --git a/docs/installation/components/uptime-kuma.md b/docs/installation/components/uptime-kuma.md index 7761fe77..78dbd31b 100644 --- a/docs/installation/components/uptime-kuma.md +++ b/docs/installation/components/uptime-kuma.md @@ -19,7 +19,7 @@ nano /opt/seatable-compose/.env Your COMPOSE_FILE variable should look something like this: ```bash -COMPOSE_FILE='seatable-docker-proxy.yml,seatable-server.yml,uptime-kuma.yml' +COMPOSE_FILE='caddy.yml,seatable-server.yml,dtable-server.yml,automation-worker.yml,uptime-kuma.yml' ``` ### Update the compose project diff --git a/docs/installation/deployment-approach.md b/docs/installation/deployment-approach.md index 77f975b2..f4cc6613 100644 --- a/docs/installation/deployment-approach.md +++ b/docs/installation/deployment-approach.md @@ -34,7 +34,7 @@ You can configure components in the `.env` file, determining which ones to insta Example in the `.env` file: ```bash -COMPOSE_FILE='caddy.yml,seatable-server.yml' +COMPOSE_FILE='caddy.yml,seatable-server.yml,dtable-server.yml,automation-worker.yml' ``` By adding or removing yml files from this list, you control the composition during runtime, eliminating the need for a single, extensive `docker-compose.yml` file. From 5240cd3b520c73e42a5ed9c4615e1f52874ca824 Mon Sep 17 00:00:00 2001 From: Simon Hammes Date: Tue, 22 Sep 2026 14:20:35 +0200 Subject: [PATCH 6/9] Fix architecture diagram --- docs/introduction/architecture.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/introduction/architecture.md b/docs/introduction/architecture.md index e855176d..caa23ccf 100644 --- a/docs/introduction/architecture.md +++ b/docs/introduction/architecture.md @@ -113,7 +113,6 @@ flowchart LR subgraph s[SeaTable Server Container] A[nginx
80] B[dtable-web
8000] - C[dtable-server
5000] D[dtable-db
7777] E[api-gateway
7780] F[dtable-storage-server
6666] @@ -122,13 +121,9 @@ flowchart LR A<-- / -->B A<-- /api-gateway -->E A<-- /seafhttp -->H - B<-->C B<-->D B<-->F - E<-->C E<-->D - C<-->F - C<-->G D<-->F D<-->G end From a541f772f99cf35c852337afe125aa6e86698558 Mon Sep 17 00:00:00 2001 From: Simon Hammes Date: Tue, 22 Sep 2026 14:26:57 +0200 Subject: [PATCH 7/9] Add upgrade notice for v7.0 --- docs/upgrade/extra-upgrade-notice.md | 38 ++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/docs/upgrade/extra-upgrade-notice.md b/docs/upgrade/extra-upgrade-notice.md index ef5ba444..171ad8d1 100644 --- a/docs/upgrade/extra-upgrade-notice.md +++ b/docs/upgrade/extra-upgrade-notice.md @@ -4,6 +4,44 @@ description: Version-specific upgrade notices and required configuration changes # Extra upgrade notice +## 7.0 + +Version v7.0 splits two components out of the `seatable-server` container into **dedicated containers**. +Both of them are required, so you have to add `dtable-server.yml` and `automation-worker.yml` to the `COMPOSE_FILE` variable inside your `/opt/seatable-compose/.env` file before starting the upgraded instance: + +```bash +COMPOSE_FILE='caddy.yml,seatable-server.yml,dtable-server.yml,automation-worker.yml' +``` + +??? warning "dtable-server now runs in its own container" + + Up to v6.2, `dtable-server` was one of the services inside the `seatable-server` container. + Starting with v7.0, it runs in a dedicated container and must be activated by adding `dtable-server.yml` to the `COMPOSE_FILE` variable. + + Please also note that customizations of `dtable-server` (e.g. environment variables such as `BASE_MAX_ROWS_LIMIT`) now belong to the `dtable-server` service instead of the `seatable-server` service. + If you use a `custom-seatable-server.yml` file, move these settings to a `custom-dtable-server.yml` file and add it to the `COMPOSE_FILE` variable. + + Please refer to the [configuration of dtable-server](../configuration/components/dtable-server.md) for more information. + +??? warning "Automation rules require the new automation-worker container" + + Automation rules are no longer executed inside the `seatable-server` container. + The new `automation-worker` container is a dedicated component that reads pending automation tasks from Redis, runs the configured actions and publishes the results back to Redis. + + Add `automation-worker.yml` to the `COMPOSE_FILE` variable to activate it. + + Please refer to [this page](../introduction/architecture.md#container-automation-worker) for more information. + +??? warning "Ping endpoints of `dtable-db` and `dtable-server` are no longer exposed" + + The `/dtable-server/ping/` and `/dtable-db/ping/` endpoints are not proxied by NGINX anymore and now return a 404 error. + If you monitor these URLs from outside, remove them from your monitoring configuration. + +??? info "MariaDB starts with an increased `max-allowed-packet`" + + MariaDB is now started with `--max-allowed-packet=32M`, which mitigates issues with very large operations (e.g. importing large tables from XLSX files). + This is part of `seatable-server.yml` and applied automatically. No action is required on your side. + ## 6.2 Version v6.2 requires various configuration updates. From 121813621b9c27dc3e457e2d6b9559b838a25f1e Mon Sep 17 00:00:00 2001 From: Simon Hammes Date: Tue, 29 Sep 2026 17:32:40 +0200 Subject: [PATCH 8/9] Update FAQ section on dtable-server --- docs/installation/faq.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/docs/installation/faq.md b/docs/installation/faq.md index 95757ed9..88851d9f 100644 --- a/docs/installation/faq.md +++ b/docs/installation/faq.md @@ -60,11 +60,19 @@ description: Troubleshooting tips for common SeaTable Server issues including st ??? question "Check dtable-server" - You can check the status of `dtable-server` by executing the following curl request: + You can check the status of `dtable-server` by executing the following command: - ```bash - curl https://$SEATABLE_SERVER_HOSTNAME/dtable-server/ping/ - ``` + === "Version 6.2 and earlier" + + ```bash + curl https://$SEATABLE_SERVER_HOSTNAME/dtable-server/ping/ + ``` + + === "Version 7.0 and later" + + ```bash + docker exec -it dtable-server curl http://127.0.0.1:5000/ping/ + ``` If `dtable-server` does not reply, it might be stuck in a reboot loop. This can happen if too many large bases are loaded at once or too many pending operations need to be replayed. @@ -73,7 +81,7 @@ description: Troubleshooting tips for common SeaTable Server issues including st As a workaround, you can increase the timeout for the healthcheck request to give `dtable-server` more time to load bases and apply pending operations. This can be achieved by increasing the value of the `DTABLE_SERVER_PING_TIMEOUT` environment variable (the default is `20`). - **Note:** This variable is not part of the default `seatable-server.yml` file, so you need to include an additional `.yml` file in order to configure this variable. + **Note:** This variable is not part of the default `seatable-server.yml` (v6.2 and earlier)/`dtable-server.yml` (v7.0 and later) file, so you need to include an additional `.yml` file in order to configure this variable. ??? question "Check nginx" From a3557fe9acb63fed91fde8ecb72078d84e1fb188 Mon Sep 17 00:00:00 2001 From: Simon Hammes Date: Tue, 6 Oct 2026 11:37:50 +0200 Subject: [PATCH 9/9] Add notice re: S3 configuration for dtable-server and automation-worker --- docs/installation/advanced/s3.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/installation/advanced/s3.md b/docs/installation/advanced/s3.md index 76406dbf..39baea41 100644 --- a/docs/installation/advanced/s3.md +++ b/docs/installation/advanced/s3.md @@ -103,6 +103,10 @@ Using environment variables has numerous advantages: To enable S3 storage for base snapshots, files, pictures and avatars, add `seatable-s3.yml` to the `COMPOSE_FILE` variable inside your `.env` file. This instructs Docker-Compose to extend the definition of the `seatable-server` service defined inside `seatable-server.yml`. +!!! info "S3 configuration for `dtable-server` and `automation-worker` (v7.0+)" + + Starting from version 7.0, `seatable-s3.yml` also passes the required S3 environment variables to the `dtable-server` and `automation-worker` containers, not only to `seatable-server`. + No additional configuration is required. Afterwards, you must configure a few environment variables inside your `.env` file. The following table contains examples for the most common object storage providers: