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.inzone. -
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.
-
System Preparation:
-
The package manager (APT) is updated.
-
curlis installed to facilitate downloads. -
Docker Engine Installation:
-
Docker is downloaded and installed directly from the official Docker script (
get.docker.com). -
Deployment Package Retrieval:
-
The latest SeaTable Compose release is downloaded from GitHub as a
.tar.gzarchive and extracted into/opt/seatable-compose. -
Configuration Setup:
-
A configuration file (
.env) is generated from the provided template. -
Environment variables are configured, including:
-
COMPOSE_FILE: Set to use bothcaddy.ymlandseatable-server.yml. -
TIME_ZONE: Automatically synchronized with the server's local time. -
SEATABLE_SERVER_HOSTNAME: Configured using the subdomain template. -
Security credentials: Randomly generated passwords for MariaDB, Redis, JWT, and Secret Keys.
-
An empty
seatable-license.txtfile is created to prevent initialization errors. -
Container Orchestration:
-
The application is started using Docker Compose in detached mode.
Access Rights and Security¶
-
Firewall: Ensure port
443is 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_KEYandSECRET_KEYvalues 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:
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.ymlconfiguration.
Available Ports for Connection¶
| Port | Protocol | Description |
|---|---|---|
443 | TCP | Secure Web Access (HTTPS) |