Datadios On-Premises Installation Guide - Ubuntu
Supported Ubuntu versions: 24.04 LTS or newer
System Requirements
Hardware Requirements (Minimum)
| Component | Specification |
|---|---|
| Processor | 3.1 GHz Intel Xeon Platinum (4 core) |
| Memory (RAM) | 16GB |
| Storage Volume | 128GB |
Ubuntu Installation Steps
Software Prerequisites
- Latest version of Docker (Ensure Docker is usable as a non-root user)
- Docker Compose
Prerequisites Installation Steps
Run the following commands in your terminal to install Docker and Docker Compose:
# Update package index
sudo apt update
# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Install Docker Compose
sudo apt install docker-compose-plugin
# Add user to docker group
sudo usermod -aG docker $USER
newgrp docker
Verify the installation:
docker --version
docker compose version
If both commands return version numbers, Docker and Docker Compose are properly installed.
Pre-Installation Setup
Access for Datadios
Datadios needs access to all the data sources you will be connecting through the platform.
- If Datadios is used for migration validation, it needs access to the source and destination databases used for validation (e.g., Snowflake, Oracle, SQL Server, etc.)
- For ports, see the docker compose file (Datadios can be setup for
httporhttps)
Outbound Internet Access
Datadios makes one optional outbound connection of its own at server start:
| Destination | Port | When | Required? |
|---|---|---|---|
models.dev | 443 | Once at server start, at most every 14 days | No — fails soft |
This refreshes the list of Gen AI models offered in the OpenAI, Claude, Gemini and Cohere data source dropdowns. If it is blocked, Datadios logs it and serves the model lists that shipped with your release — nothing errors and nothing is blocked.
On an air-gapped or firewall-restricted host, disable it explicitly so the server does not wait out the timeout on each start:
GENAI_CATALOG_ENABLED=false
See Gen AI Model Catalog for the full behaviour, configuration options, and the upgrade notes.
Docker Hub Access
Datadios needs to pull the required Docker images from Docker Hub. Ensure you have access to Docker Hub and the necessary credentials provided by the Datadios team.
Docker Hub Login
Run the following command in your terminal:
docker login -u docker-hub-username -p docker-hub-password
Replace docker-hub-username and docker-hub-password with the credentials provided by the Datadios team.
PostgreSQL Database Configuration
Datadios uses PostgreSQL as its backend database to store configuration and user data. The database can be set up either on the cloud or locally.
Cloud-based PostgreSQL Server
Datadios can connect to a cloud-based PostgreSQL server.
The PostgreSQL server should be set up with the pg_partman and pg_vector extensions. You'll need the following information from your cloud provider:
- Database URL/endpoint
- Username
- Password
Local PostgreSQL Server
Datadios can also run a local PostgreSQL server using Docker. You don't need to set up PostgreSQL separately; this will be installed as part of Datadios installation.
Installing Datadios
Download the following two files:
Bash script to generate docker-compose configuration from template with user inputs
Docker Compose template file used by the installation script
After downloading both files:
- Place them in the same directory
- Open a terminal in that directory
- Make the script executable:
chmod +x install_datadios.sh - Run the script by executing:
./install_datadios.sh
The script will prompt you for configuration details (server name, port, database password, and data directory), create the required docker-compose configuration file, and pull the necessary Docker images from Docker Hub.
Running Datadios
Download the following file:
Bash script to start Datadios Docker containers
After downloading the file:
- Place it in the same directory as your docker-compose files (created during installation)
- Open a terminal in that directory
- Make the script executable:
chmod +x run_datadios.sh - Run the script by executing:
./run_datadios.sh
The script will start the Datadios containers using the configuration files generated in the installation step.
Verifying the Installation
Once the containers are running, verify the installation. Please note that it may take upto 5 minutes for the Datadios service to be fully up and running after running the RunDatadios.ps1 script for the first time.
- Open a web browser
- Visit
http://localhost:<PORT_NUMBER>(replace<PORT_NUMBER>with the port you configured during installation) - If https is enabled, access
https://<your-server-address/dns>
You should see the Datadios login page.
Login cookie: HTTP or HTTPS
Datadios keeps you signed in with a session cookie. A cookie marked Secure is only sent over HTTPS, so it cannot be read off an unencrypted connection. The COOKIE_SECURE setting controls this:
| Value | What it does |
|---|---|
auto (default for on-premises installs) | The cookie is Secure when you open Datadios over HTTPS, and not when you use HTTP. It works for both, so you do not need to change anything. |
true | Always Secure. Use it when Datadios is only reachable over HTTPS. Over plain HTTP, sign-in will not stick (see below). |
false | Never Secure. Only for a test setup on plain HTTP. |
You do not need to do anything after an install or an update: installs served over HTTP keep working, and installs served over HTTPS get the Secure cookie automatically.
To force a value, open the docker-compose file created during installation and find the COOKIE_SECURE line in the Datadios service's environment: list. Change it to the value you want (add the line if your file does not have one), then restart the containers:
- COOKIE_SECURE=true
If you put your own TLS proxy or load balancer in front of Datadios, make sure it sends the X-Forwarded-Proto header (in nginx: proxy_set_header X-Forwarded-Proto $scheme;) so Datadios can tell the connection is secure. If it cannot, set COOKIE_SECURE=true. With more than one proxy in front, the one closest to Datadios must pass the original value on (in nginx: proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;) instead of replacing it with its own $scheme, or Datadios will treat an HTTPS site as HTTP.
Signed in, then sent back to the login page? Your browser dropped the cookie because COOKIE_SECURE=true is set but you are using plain HTTP. Open Datadios over HTTPS (recommended), or set COOKIE_SECURE=auto. The server log also shows Login over plain HTTP with COOKIE_SECURE=true.
Monitoring Resource Usage
To check CPU, memory, and disk usage for Docker, run the following command in your terminal:
docker stats
This will display real-time resource usage for all running containers.
Stopping Datadios
Download the following file:
Bash script to stop Datadios Docker containers
After downloading the file:
- Place it in the same directory as your docker-compose files
- Open a terminal in that directory
- Make the script executable:
chmod +x stop_datadios.sh - Execute the script by running:
./stop_datadios.sh
The script will stop the Datadios containers using the configuration files generated during installation.
Updating Datadios
Download the following file:
Bash script to update Datadios Docker image
After downloading the file:
- Place it in the same directory as your docker-compose files
- Open a terminal in that directory
- Make the script executable:
chmod +x update_datadios.sh - Run the script by executing:
./update_datadios.sh
This will pull the latest Docker images from Docker Hub. Once the update is complete, you can restart the containers using the run_datadios.sh script.
Access for Datadios
Datadios needs access to all the data sources you will be connecting through the platform.
- If Datadios is used for migration validation, it needs access to the source and destination databases used for validation (e.g., Snowflake, Oracle, SQL Server, etc.)
- For ports, see the docker compose file (Datadios can be setup for
httporhttps)