Install on a Linux server
The offline bundle installs DataFactory on one Linux server with Docker. Every container image is inside the bundle, so the server needs no internet access.
What you need
| Minimum | Notes | |
|---|---|---|
| OS | RHEL, Rocky or Alma 8 or 9, Ubuntu 22.04 or 24.04, Amazon Linux 2023 | x86_64 |
| CPU / memory | 4 vCPU / 16 GB | 8 vCPU / 32 GB for large Bloom runs |
| Disk | 50 GB for data, 10 GB for images | Data goes in /var/lib/datafactory by default |
| Docker | Engine 24 or later, with the Compose v2 plugin | Enov8 can supply an offline Docker bundle for RHEL 9 |
| Access | root (sudo) | |
| Optional | python3 (at /usr/bin/python3) and systemd | Needed for Admin → System, the watchdog and starting at boot |
| Optional | A PEM certificate and unencrypted key for the host name | Otherwise a self-signed certificate is generated |
Network. Users reach the server on port 443; port 80 redirects to it. The server needs outbound access only to the databases your users connect to, plus your identity provider and AI endpoint if you use them.
On a cloud VM (Amazon EC2, Azure, Google Cloud), the same steps apply:
- Use at least 4 vCPU and 16 GB, such as EC2
m6i.xlargeor AzureD4s_v5; 8 vCPU and 32 GB (m6i.2xlarge,D8s_v5) for large Bloom runs. - Attach a separate data disk of at least 50 GB, mounted at
/var/lib/datafactory, and snapshot it. - Allow inbound 443 (and 80) from your users only, and outbound to your databases.
1. Get the bundle onto the server
Enov8 sends you a download link for the bundle. Download it, copy it to the server through your usual transfer process, then extract it:
tar -xzf data-factory-<version>-linux-amd64-release.tar.gz
cd data-factory-<version>
The installer checks every file in the bundle and stops if anything has changed.
2. Check the server
sudo ./preflight.sh
It reports the OS, Docker and Compose versions, CPU, memory, disk and free ports, and changes nothing. Add -p, -P or -L if you'll install on other ports or another data folder.
3. Install
With your certificate and licence:
sudo ./install.sh -n datafactory.example.com -c /path/cert.pem -k /path/key.pem -b /path/chain.pem -l /path/acme.licence
Other ways to install:
| Situation | Command |
|---|---|
| No certificate yet (a self-signed one is generated) | sudo ./install.sh -n datafactory.example.com |
| TLS ends at your load balancer or reverse proxy | sudo ./install.sh -n datafactory.example.com -T -p 8080 |
| Other folders | add -d /opt/datafactory -L /data/datafactory |
| Other ports | add -p 8080 -P 8443 |
Sign in as admin / admin and change it at first sign-in | add -D |
| Write the admin password to a file instead of the screen | add -A /root/df-admin.txt (not with -D) |
All installer options
| Option | What it does |
|---|---|
-n HOST | Host name users browse to (default: this server's FQDN) |
-d DIR | Install folder (default /opt/datafactory) |
-L DIR | Data folder for the database and files (default /var/lib/datafactory) |
-c FILE / -k FILE | TLS certificate and its private key (PEM, unencrypted key). Use both, or neither for a self-signed certificate. |
-b FILE | Intermediate certificates (PEM, optional) |
-T | TLS ends at a load balancer in front of this server: serve HTTP only and trust its X-Forwarded-For |
-l FILE | Licence file from Enov8. You can also add it later in the app. |
-p PORT / -P PORT | HTTP and HTTPS ports (default 80 and 443) |
-S | Skip the preflight checks |
-y | Don't ask for confirmation |
-A FILE | Write the first admin password to this file (mode 600) |
-D | Default admin admin / admin, which must be changed at first sign-in |
The installer:
- checks the bundle and loads the images into Docker;
- generates every secret into
/opt/datafactory/.env(mode 600); - starts the services and waits until they're all healthy (up to 10 minutes);
- installs two systemd services:
datafactorystarts DataFactory at boot, anddatafactory-agentserves Admin → System and restarts a service that stays unhealthy; - prints the web address and the admin sign-in.
If DataFactory is already installed, it stops.
It holds CREDENTIALS_ENCRYPTION_KEY. Saved database passwords can't be read without it. Store a copy in your password manager.
4. Sign in and add the licence
- Browse to
https://<host>/and sign in asadminwith the password the installer printed (oradminwith-D). - Choose your own password.
- If you didn't use
-l, the Licence page opens: paste the licence from Enov8 and click Install. Until then DataFactory is read-only. See Licence. - Open Admin → System and check every service is healthy.