Skip to content

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 sudo privileges 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 443 must 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.yml and seatable-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.

  1. Install Docker: The Docker engine is installed using the official installation script.

  2. Download Release: The latest release archive is downloaded from the SeaTable GitHub repository.

  3. Extract Files: The archive is extracted into the /opt/seatable-compose directory.

  4. Configure Environment: The .env file is generated from .env-release and updated with specific server parameters.

  5. Launch Containers: The application is started using the docker compose up -d command.

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_PASSWORD and REDIS_PASSWORD).

  • Storage: Data persistence is handled by Docker volumes managed within the /opt/seatable-compose directory 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:

docker compose up -d

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_HOSTNAME variable 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-compose is created with standard directory permissions.

  • The downloaded archive seatable-compose.tar.gz is set to mode 0644.

  • The seatable-license.txt file 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:

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

  • Stop the Application:

    cd /opt/seatable-compose
    docker compose down
    

  • 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:

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

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×