Deployment Overview of SeaTable on Server¶
Prerequisites and Basic Requirements¶
The deployment of SeaTable requires a server running a Debian-based operating system. The following conditions must be met before initiating the installation:
-
Operating System: Debian or Ubuntu.
-
Privileges: Root access or a user with
sudoprivileges is required to install Docker and manage system services. -
Network Access: The server must have outbound internet access to download Docker, the SeaTable release archive, and container images.
-
Ports: Port
443must be open on the firewall to allow HTTPS traffic to the application.
FQDN of the Final Panel¶
The application is accessible via the following Fully Qualified Domain Name (FQDN) format:
seatable<Server ID>.hostkey.in:443
Where <Server ID> is replaced by the specific identifier assigned to the server instance.
File and Directory Structure¶
All application files, configuration data, and logs are contained within a dedicated directory structure located at /opt/seatable-compose. The key components include:
-
Base Directory:
/opt/seatable-compose -
Configuration File:
/opt/seatable-compose/.env -
License File:
/opt/seatable-compose/seatable-license.txt -
Compose Files:
caddy.ymlandseatable-server.yml(located within the base directory) -
Archive:
/opt/seatable-compose/seatable-compose.tar.gz(downloaded source)
Application Installation Process¶
The installation process involves installing Docker, downloading the latest SeaTable release, and configuring the environment variables. The application is deployed using Docker Compose.
-
Install Docker: The Docker engine is installed using the official installation script.
-
Download Release: The latest release archive is downloaded from the SeaTable GitHub repository.
-
Extract Files: The archive is extracted into the
/opt/seatable-composedirectory. -
Configure Environment: The
.envfile is generated from.env-releaseand updated with specific server parameters. -
Launch Containers: The application is started using the
docker compose up -dcommand.
The specific image used for the deployment is seatable/seatable-developer:latest.
Databases¶
SeaTable utilizes internal containers for its database and caching requirements. The configuration parameters for these services are defined in the .env file:
-
Database Type: MariaDB
-
Cache Type: Redis
-
Configuration: Passwords for both MariaDB and Redis are set via environment variables (
MARIADB_PASSWORDandREDIS_PASSWORD). -
Storage: Data persistence is handled by Docker volumes managed within the
/opt/seatable-composedirectory structure.
Docker Containers and Their Deployment¶
The application is deployed using Docker Compose. The deployment orchestrates multiple containers defined in two primary files:
-
caddy.yml -
seatable-server.yml
The environment variable COMPOSE_FILE is set to 'caddy.yml,seatable-server.yml' and COMPOSE_PATH_SEPARATOR is set to ',' to ensure both files are processed correctly.
To start the application, the following command is executed from the /opt/seatable-compose directory:
Proxy Servers¶
The deployment includes a Caddy container acting as a reverse proxy. Caddy handles SSL termination and routing for the SeaTable application.
-
Proxy Software: Caddy
-
SSL/TLS: Managed automatically by Caddy.
-
External Port:
443 -
Hostname Configuration: The
SEATABLE_SERVER_HOSTNAMEvariable is set to the specific FQDN (seatable<Server ID>.hostkey.in).
Permission Settings¶
The deployment script ensures the following permission settings:
-
The working directory
/opt/seatable-composeis created with standard directory permissions. -
The downloaded archive
seatable-compose.tar.gzis set to mode0644. -
The
seatable-license.txtfile is created as an empty file. -
Docker containers run with the permissions defined within their respective images and compose configurations.
Location of Configuration Files and Data¶
All critical configuration and data files are centralized in the /opt/seatable-compose directory.
| File/Directory | Path | Description |
|---|---|---|
| Environment Config | /opt/seatable-compose/.env | Contains all runtime variables including hostnames, passwords, and image tags. |
| License File | /opt/seatable-compose/seatable-license.txt | Placeholder for the SeaTable license. |
| Compose Definitions | /opt/seatable-compose/caddy.yml | Defines the Caddy proxy container. |
| Compose Definitions | /opt/seatable-compose/seatable-server.yml | Defines the SeaTable server and database containers. |
| Data Volumes | /opt/seatable-compose | Docker volumes for persistent data are managed relative to this path. |
Available Ports for Connection¶
The application exposes the following port for external access:
- Port 443: HTTPS traffic for the SeaTable web interface.
Starting, Stopping, and Updating¶
Service management is performed using Docker Compose commands executed from the /opt/seatable-compose directory.
-
Start the Application:
-
Stop the Application:
-
Update the Application: To update to the latest version, the archive must be re-downloaded and the containers restarted. The current deployment script handles the download of the latest release from
https://github.com/seatable/seatable-release/releases/latest/download/seatable-compose.tar.gz. After updating the files, run: