Deployment Overview of SeaTable on Server¶
Prerequisites and Basic Requirements¶
To ensure a successful deployment, the server must meet the following requirements:
-
Operating System: Ubuntu or Debian (based on supported distributions).
-
Privileges: Root or sudo access is required for package installation and Docker setup.
-
Network/Ports:
-
Port
443(HTTPS) must be open for external traffic. -
Dependencies:
curlmust be installed to facilitate the download of deployment scripts.
FQDN of the final panel on the hostkey.in domain¶
The application is accessible via a specific subdomain template based on your server ID:
| Parameter | Value |
|---|---|
| Prefix | seatable |
| Domain | hostkey.in |
| Full template | seatable{Server_ID_from_Invapi}.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, credentials, and server settings. -
caddy.yml: Configuration for the Caddy reverse proxy. -
seatable-server.yml: Docker Compose configuration for the SeaTable services. -
seatable-license.txt: A placeholder file used for licensing purposes.
Application installation process¶
The application is installed using a combination of system package management and Docker Compose:
-
System Preparation: The package manager (APT) is updated, and
curlis installed to enable remote downloads. -
Docker Installation: An official installation script from
get.docker.comis executed to install the Docker engine on the host. -
Deployment Package Acquisition: The latest SeaTable release archive (
seatable-compose.tar.gz) is downloaded directly from GitHub and extracted into/opt/seatable-compose. -
Configuration Setup:
-
A
.envfile is generated from the provided template. -
Environment variables such as
TIME_ZONE,SEATABLE_SERVER_HOSTNAME, and administrative credentials are automatically injected into the.envfile. -
The
COMPOSE_FILEvariable is configured to use bothcaddy.ymlandseatable-server.yml. -
Container Orchestration: The deployment is finalized by executing
docker compose up -dwithin the/opt/seatable-composedirectory, which pulls the required images and starts all services in detached mode.
The specific application image used for this deployment is seatable/seatable-developer:6.2.1.
Access Rights and Security¶
-
Firewall: The system is configured to allow traffic on port
443(HTTPS). -
Credentials: During installation, high-entropy random passwords are generated for the following services:
-
SeaTable Admin Password
-
MariaDB Database Password
-
Redis Password
-
JWT Private Key
-
Secret Key
Databases¶
SeaTable utilizes a database architecture managed via Docker containers. The primary data storage is handled by MariaDB, with configuration details (such as passwords and connection settings) stored in the .env file located in /opt/seatable-compose.
Docker Containers and Their Deployment¶
The application deployment consists of multiple services defined across caddy.yml and seatable-server.yml. The following components are managed via Docker:
| Container/Service | Image / Purpose | Configuration Details |
|---|---|---|
| SeaTable Server | seatable/seatable-developer:6.2.1 | Main application logic; uses environment variables for hostname and credentials. |
| MariaDB | Database Service | Provides relational data storage for the application. |
| Redis | In-memory Data Store | Used for caching and session management. |
| Caddy | Reverse Proxy | Handles SSL termination and serves as the entry point via port 443. |
Application Update Instructions¶
To update the SeaTable application, navigate to the installation directory and pull the latest images defined in your configuration:
Location of configuration files and data¶
All critical configuration and operational files are located in: /opt/seatable-compose/
Available ports for connection¶
The following port is available for web access:
443: HTTPS (via Caddy reverse proxy)