Installation

Prerequisites

  • Domain name for the installation

  • Email and SMTP credentials for the ADMIN user

  • GitHub Key for pulling container images (Provided by DataSpace)

  • License Key for the platform (Provided by DataSpace)

Hardware Requirements

Minimum Viable Configuration

  • CPU: 8 cores

  • RAM: 16 GB

  • Storage: 200 GB SSD

  • Network: 1 Gbps

Production-Ready Configuration

  • CPU: 16+ cores

  • RAM: 64+ GB

  • Storage: 1 TB NVMe SSD

  • Network: 10 Gbps

The data transformation containers are the key differentiator here. They will dynamically consume resources based on your data processing workloads, so peak usage scenarios when multiple transformation jobs are running concurrently need to be taken into consideration.

For more information about this topic, please refer to the Scalability page.

Installation Steps

1. Script Download

Download and execute the Installation Script with the following command

wget -q https://raw.githubusercontent.com/dataspaceswiss/Installer/refs/heads/main/install.sh
chmod +x ./install.sh
sudo ./install.sh

The installation script must be run as root (or via sudo).

2. Installation Process

The installation script performs the following actions:

  • Creates a dedicated user dataspace (defaults to UID/GID 1007)

  • Installs Docker if not present

  • Sets up the directory structure in /opt/dataspace/DataSpace/Platform

  • Downloads configuration files from GitHub

  • Configures environment variables

  • Registers an automatic startup service

3. Manual Configuration

Manually set up the missing variables in the .env file.

Please refer to the Configuration for more details about the individual configuration options.

4. Firewall

The infrastructure is set up with only one entry point into the system, being Caddy (the Reverse Proxy). It maps subdomains to ports and routes them internally to the appropriate services. This ensures that services like the database are never exposed to the outside world, and public services are all routed through the HTTPS protocol to ensure the data is encrypted in transit.

Enable TCP Port 80 for HTTP passthrough (Required for initial certificate provisioning)
Enable TCP Port 443 for HTTPS passthrough

5. Git Setup (Optional)

It is common for configurations to keep changing. Therefore, it is recommended to set up a local git repository to track the configurations and environment variables.

# Navigate to DataSpace directory
cd /opt/dataspace/Platform

# Initialize a local git repository
git init

And add the volume directory to the gitignore

volume/
volume_backup/

Starting the Services

When everything is configured, you have to first run the ./update.sh script in order to bootstrap the database. Once all steps are successfully passed, all services will automatically start in the background.

# Switch to dataspace user
su - dataspace

# Navigate to DataSpace directory
cd /opt/dataspace/Platform

# Run update script to start services
./update.sh

See Maintenance for more details about the update.sh script.

Folder Structure

After the installation is completed, the final folder structure should look something like this:

📁 /opt/dataspace/Platform
├── .env
├── docker-compose.yml
├── startup.sh
├── update.sh
├── 📁 caddy
│   ├── Caddyfile
│   └── blocked_ips.caddyfile
├── 📁 secrets
│   ├── gh_key.txt
│   └── pg_password.txt
├── 📁 volume
│   ├── 📁 DataSpace_data
│   ├── 📁 DataSpace_db_backup
│   └── 📁 DataSpace_db_data
└── 📁 volume_backup

Last updated