Skip to content

Python Pipeline on a separate server

If your user base on your Seatable Server is growing, one of the first components that you could move to a separate server is the python pipeline. This free up ressoures for the main server and it slightly increases the security because customer python code is not executed on the main server.

Requirements

To install Python Pipeline on a separate server, use at least these ressources:

  • 2 CPU
  • 4 GB RAM
  • 40 GB SSD

Use a separate domain or subdomain that is public available or you need a valid wildcard certificate. Caddy will generate a let's encrypt certificate.

No self signed certificates

Self signed certificates are not recommended. Read the article about custom certificates for more details.

Configure a firewall

Please configure a firewall to only allow access from SeaTable Server's public URL to the python pipeline. Alternatively, you can place both SeaTable server and the Python pipeline inside a private network (then you do not need Caddy).

Deployment of the Python Pipeline

The deployment of a separate python pipeline is simple. Get seatable-release from github like described in the installation of seatable server and only use python-pipeline-standalone.yml and caddy.yml.

Update your .env, that it looks like this and add/update the values according to your needs:

COMPOSE_FILE='caddy.yml,python-pipeline-standalone.yml'
COMPOSE_PATH_SEPARATOR=','

# system settings
TIME_ZONE='Europe/Berlin'

# seatable server url
SEATABLE_SERVER_HOSTNAME=seatable.your-url.com

# database
SEATABLE_MYSQL_ROOT_PASSWORD=

# python-pipeline-standalone
PYTHON_SCHEDULER_HOSTNAME=python.your-url.com
PYTHON_SCHEDULER_AUTH_TOKEN=shared secret with dtable_web_settings.py

Execute docker compose up -d to fire up your separate python pipeline.

Configuration of SeaTable Server

SeaTable must know where to get the Python Pipeline.

Update the .env on the seatable server and add these two informations:

PYTHON_SCHEDULER_URL=https://python.your-url.com
PYTHON_SCHEDULER_AUTH_TOKEN=shared secret with python scheduler

Restart seatable service and test your python pipeline.