Skip to content

Deployment Overview of SeaTable on Server

Prerequisites and Basic Requirements

To ensure a successful deployment, the following requirements must be met:

  • Operating System: Debian or Ubuntu (for automated installation via script) or RHEL/CentOS/Rocky/AlmaLinux.

  • Privileges: Root or sudo access is required to install packages and manage Docker.

  • Domain: A valid domain name managed under the hostkey.in zone.

  • Ports:

  • 443: HTTPS traffic (External port).

FQDN of the final panel on the hostkey.in domain

The application is accessible via a specific subdomain generated based on the server ID.

Parameter Value
Prefix seatable
Domain hostkey.in
Full template seatable{Server_ID}.hostkey.in

File and Directory Structure

The application files and configurations are organized in the following directory:

  • /opt/seatable-compose/: The primary working directory containing all deployment assets.

  • .env: Configuration file containing environment variables (passwords, keys, hostnames).

  • caddy.yml: Configuration for the Caddy reverse proxy.

  • seatable-server.yml: Docker Compose configuration for the SeaTable server.

  • seatable-compose.tar.gz: The compressed deployment package.

  • seatable-license.txt: A placeholder file for application licensing.

Application Installation Process

The installation is performed using a combination of system package management and Docker Compose.

  1. System Preparation:

  2. The package manager (APT) is updated.

  3. curl is installed to facilitate downloads.

  4. Docker Engine Installation:

  5. Docker is downloaded and installed directly from the official Docker script (get.docker.com).

  6. Deployment Package Retrieval:

  7. The latest SeaTable Compose release is downloaded from GitHub as a .tar.gz archive and extracted into /opt/seatable-compose.

  8. Configuration Setup:

  9. A configuration file (.env) is generated from the provided template.

  10. Environment variables are configured, including:

  11. COMPOSE_FILE: Set to use both caddy.yml and seatable-server.yml.

  12. TIME_ZONE: Automatically synchronized with the server's local time.

  13. SEATABLE_SERVER_HOSTNAME: Configured using the subdomain template.

  14. Security credentials: Randomly generated passwords for MariaDB, Redis, JWT, and Secret Keys.

  15. An empty seatable-license.txt file is created to prevent initialization errors.

  16. Container Orchestration:

  17. The application is started using Docker Compose in detached mode.

Access Rights and Security

  • Firewall: Ensure port 443 is open for secure web access.

  • Credentials: Highly complex, randomly generated passwords are used for all internal services (MariaDB, Redis) and the administrative user ([email protected]).

  • Secrets: Unique JWT_PRIVATE_KEY and SECRET_KEY values are assigned to ensure session security.

Databases

The application utilizes two primary database/data storage components:

Component Type Storage Location Connection Method
MariaDB Relational Database Docker Volume Internal Network
Redis In-memory Data Store Docker Volume Internal Network

Docker Containers and Their Deployment

The deployment utilizes a multi-container architecture managed via docker compose. The following containers are deployed:

Image Name Purpose Environment Variables / Config Restart Policy
seatable/seatable-developer:6.2.1 Main Application Server SEATABLE_SERVER_HOSTNAME, TIME_ZONE, ADMIN_EMAIL, etc. Default (Restart unless stopped)
Caddy (via caddy.yml) Reverse Proxy / SSL Handles HTTPS termination and routing Managed by Compose

Note: Certbot is used within the proxy context to obtain and manage SSL certificates for the configured FQDN.

Application Update Instructions

To update the SeaTable application, navigate to the installation directory and pull the latest images:

cd /opt/seatable-compose
docker compose pull && docker compose up -d

Location of Configuration Files and Data

  • Main Configuration: /opt/seatable-compose/.env

  • Deployment Assets: /opt/seatable-compose/

  • Data Persistence: Managed via Docker volumes defined in the seatable-server.yml configuration.

Available Ports for Connection

Port Protocol Description
443 TCP Secure Web Access (HTTPS)
question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×