Data Validation Platform (DVP) Ubuntu Installer Script Guide
How to use install_dvp_ubuntu.sh to automate the full DVP installation
Data Validation Platform (DVP)
Ubuntu Installer Script Guide
How to use install_dvp_ubuntu.sh to automate the full DVP installation
Table of Contents
Overview
install_dvp_ubuntu.sh automates every step described in the
DVP Ubuntu Installation Guide. Running it on a fresh Ubuntu machine will take
you from a bare OS to a fully running DVP instance in a single terminal session.
The script performs the following eight steps automatically:
| Step | What it does | User input? |
|---|---|---|
| 1 | Check OS version, disk space, and port availability | None |
| 2 | Run apt update && upgrade and install prerequisite utilities |
None |
| 3 | Add Docker's official repository and install Docker CE + Compose plugin | None |
| 4 | Add your user to the docker group and enable Docker on boot |
None |
| 5 | Ask where the DVP project folder is located | Directory path |
| 6 | Prompt for secure passwords and write them to .env |
Two passwords |
| 7 | Build the Docker images and start all containers | None |
| 8 | Wait for containers to start, then confirm DVP is accessible | None |
Prerequisites
Confirm all of the following before running the script:
- ☐Ubuntu 20.04, 22.04, or 24.04 LTS — 64-bit (server or desktop edition)
- ☐A user account with
sudoprivileges — do not run as root - ☐Internet access to download Docker images and Python packages
- ☐At least 3 GB of free disk space on
/ - ☐Ports 8443 and 3306 not already in use
- ☐The DVP project folder already copied to this machine, containing
docker-compose.ymland.env - ☐Both
install_dvp_ubuntu.shand the project folder accessible from the same user account
sudo internally for system-level operations. You will be
prompted for your sudo password by the OS the first time a privileged command runs —
this is normal behaviour.
Before You Begin
Ensure the project files are on the machine
The script does not download the DVP source code — you must copy the
serpentua-dvp-docker folder to the Ubuntu machine before running it.
The folder must contain at minimum:
See the DVP Ubuntu Installation Guide — Section 5 for methods to copy the project to the machine (git clone, SCP, or ZIP upload).
Place the script on the machine
Copy install_dvp_ubuntu.sh to the Ubuntu machine. It can live anywhere —
your home directory is fine:
Make the script executable
On the Ubuntu machine, grant execute permission:
Running the Script
Open a terminal, log in as your regular (non-root) user, and run:
./install_dvp_ubuntu.sh if you are in the same
directory as the script and it has been made executable with chmod +x.
The script will clear the screen and display a banner listing what it is about to do, then pause and wait for you to press Enter before proceeding. This gives you a final chance to abort with Ctrl+C.
Output colour key
The script uses coloured prefixes so you can see at a glance what is happening:
Step-by-Step Walkthrough
This section explains what the script does and shows representative output for each of the eight steps. Your exact output will vary slightly depending on your system.
Step 1 — Checking Prerequisites
The script reads /etc/os-release to confirm Ubuntu is running, checks
the CPU architecture, verifies at least 3 GB of free disk space, and checks whether
ports 8443 and 3306 are already in use.
No user input is required.
[WARN] message instead of
[OK] for that port. The script will continue, but the container
will fail to start in Step 7 unless you resolve the conflict first. See
Troubleshooting for help identifying the conflicting process.
Step 2 — Updating System Packages
Runs apt-get update and apt-get upgrade -y, then installs
the utilities Docker's setup requires (ca-certificates, curl,
gnupg, lsb-release, git).
This step runs quietly — you will see a brief progress indicator from apt.
No user input is required.
Step 3 — Installing Docker CE & Docker Compose
If Docker is not already installed, the script adds Docker's official
GPG key, registers the stable apt repository, then installs
docker-ce, docker-ce-cli, containerd.io,
docker-buildx-plugin, and docker-compose-plugin.
If Docker is already installed (including the Compose plugin), the
script detects this and skips the installation with a [WARN] message.
Step 4 — Configuring Docker
Adds your user account to the docker group (so you can run Docker
commands without sudo after your next login) and enables the Docker
systemd service to start automatically on boot.
No user input is required.
[WARN] about the group change is expected and harmless — the script
automatically uses sudo docker for the remainder of this run. After you
log out and back in, you can use docker directly without sudo.
Step 5 — Locating the DVP Project
The script asks you where the serpentua-dvp-docker project folder is located.
Press Enter to accept the default path, or type a custom path.
The script validates that the directory exists and contains both
docker-compose.yml and .env. If either file is missing it
will print a [FAIL] message and exit — copy the missing files and re-run.
~ (e.g. ~/my-dvp/serpentua-dvp-docker)
— the script will expand it to the full absolute path automatically.
Step 6 — Configuring the Environment (.env)
The script shows whether the current passwords in .env are set or still
at their defaults, warns you that the defaults are insecure, and asks whether you want
to set new passwords now.
Passwords are written to .env using a Python helper that handles any
special characters safely — you may use !, @, #,
$, and other symbols without issue.
| Prompt | What to enter |
|---|---|
Set new passwords now? [Y/n] |
Press Enter (defaults to Y) or type n to skip |
Enter DB_PASSWORD |
A strong password for the MySQL application user — typing is hidden |
Confirm DB_PASSWORD |
Type the same password again to confirm — must match exactly |
Enter MYSQL_ROOT_PASSWORD |
A strong password for the MySQL root user — typing is hidden |
Confirm MYSQL_ROOT_PASSWORD |
Type the same root password again to confirm — must match exactly |
n (skip), the .env file will keep its current
values. Make sure you update the passwords manually with nano .env
before going to production. The default passwords in the shipped
.env are publicly known and must not be used in a live environment.
Step 7 — Building & Launching DVP
Runs docker compose up -d --build from the project directory. Docker pulls
the MySQL image, builds the application image, and starts both containers in the
background. No user input is required.
The first run is the slowest — Docker needs to download the base images (~700 MB) and compile Python packages. Expect this step to take 5–15 minutes depending on your internet connection. Subsequent runs are much faster.
Step 8 — Verifying the Installation
The script waits 15 seconds for MySQL to finish initialising, then runs
docker compose ps and checks that both containers report a running status.
If successful, it prints the URLs you can use to access DVP.
No user input is required.
The script finishes with a summary of the project directory and a list of the most useful day-to-day management commands.
After Installation
Access the web interface
Open a browser on the same machine and navigate to:
From another machine on the same network, use the IP address printed at the end of the script:
Apply the docker group change
If this was a fresh Docker install, log out and back in so your user account gains
the docker group permission. After re-login you can drop sudo
from all Docker commands:
Auto-start on boot
The script enables the Docker service to start on boot and both containers are
configured with restart: unless-stopped. DVP will come back up
automatically after a system reboot with no additional configuration.
Troubleshooting
[FAIL] "Do not run as root"
You ran the script with sudo bash install_dvp_ubuntu.sh or as the
root user. Run it as your normal user account — the script will call
sudo internally when it needs elevated privileges:
[FAIL] "This script requires Ubuntu"
The script detected a different Linux distribution. It only supports Ubuntu 20.04, 22.04, and 24.04 LTS. If you are running a different Ubuntu-based distro (e.g., Linux Mint), follow the manual installation steps in the DVP Ubuntu Installation Guide.
[FAIL] "Need at least 3 GB free"
The root filesystem has less than 3 GB available. Free up space or expand the disk, then re-run the script:
[WARN] Port already in use
The script warns you but continues. The containers will fail to bind their ports in Step 7. Identify the process using the port and stop it before re-running:
[FAIL] "Directory not found" or "docker-compose.yml not found"
The path you entered in Step 5 does not exist or is missing required files. Check that the project folder was copied to the machine correctly, then re-run the script and enter the correct path.
Passwords do not match (Step 6)
If the two entries for a password do not match, the script will print
[WARN] Passwords do not match — try again. and re-prompt you. There is
no limit on retries — type carefully and try again.
Step 7 fails — containers do not start
If docker compose up exits with an error, check the compose logs for
the specific failure reason:
Common causes: mismatched credentials between .env and an existing MySQL
data volume (run docker compose down -v to reset), or a port conflict
that was not resolved before Step 7.
Step 8 — containers shown as not running
The 15-second wait may not be long enough for MySQL to fully initialise on slower machines. Wait another 30 seconds and check manually: