Installation
OpenVDM is installed by a single interactive script, utils/install-openvdm.sh. The
full instructions are in
INSTALL.md.
Prerequisites
- A supported operating system:
- Debian 12 or 13
- Ubuntu 22.04, 24.04 or 26.04
- Rocky Linux or AlmaLinux 8, 9 or 10
- Root access
- Internet access, to install packages
- Disk space for the cruise data, under the data root directory (
/databy default)
For a remote install, install the SSH server first (apt install ssh or
dnf install openssh-server).
Running the Install Script
Download the script and run it as root:
export OPENVDM_REPO=raw.githubusercontent.com/oceandatatools/openvdm
export BRANCH=master
wget -O install-openvdm.sh https://$OPENVDM_REPO/$BRANCH/utils/install-openvdm.sh
sudo bash ./install-openvdm.sh
The script asks these questions. Press Enter to accept the default. On a re-run, the defaults are your previous answers.
| Question | Default | Notes |
|---|---|---|
| Name to assign to host | the current hostname | |
| OpenVDM install root directory | /opt |
OpenVDM goes in <root>/openvdm |
| Repository and branch to install | the OceanDataTools repository, master |
|
| IP address or URL users will access OpenVDM from | 127.0.0.1 |
Used for siteRoot in openvdm.yaml |
| OpenVDM user to create | survey |
Owns the data and the web app, and is the MySQL user |
| MySQL root password | Leave blank on a first install | |
| Password for the OpenVDM MySQL user | the MySQL root password | Also used for the user’s Samba login |
| Root data directory | /data |
Holds CruiseData and the shares |
| Supervisor web interface | No | Optionally with a username and password |
| MapProxy | No | Caches basemap tiles for use without internet access |
| TiTiler | No | Serves GeoTIFFs (e.g. bathymetry grids) as map tiles |
| PublicData share | Yes | A Samba share copied into each cruise |
| VisitorInformation share | No | A guest-accessible Samba share for visitors |
| Sample data | No | See Sample Data |
What It Installs
- Apache with PHP (8.2 on Rocky/AlmaLinux 8 and 9, 8.3 on Debian/Ubuntu and RHEL 10, 8.5 on Ubuntu 26.04)
- MySQL or MariaDB
- Python 3.11–3.14, and a virtual environment in
<root>/openvdm/venv - Gearman and Supervisor
- Node.js (nvm) and Composer, which build the web app as the OpenVDM user
- Samba and
cifs-utils, for SMB shares and SMB transfers - rsync, rclone and
sshpass, for transfers fuse3, for FTP Server collection system transfers- GDAL, used by the GeoTIFF parsers
- an SSH key for root, used by transfers set to use SSH keys (see Using an SSH key)
- optionally MapProxy and TiTiler
It also writes Config.php, openvdm.yaml (with a new worker API key) and
datadashboard.yaml, and the Apache, Samba and Supervisor
configuration.
Sample Data
Answering Yes to the sample data question installs the sample data and sets OpenVDM up to use it:
- a sample cruise (in the Gulf of Mexico) and its collection system transfers, with sample sources served by a local rsync server, Samba share and FTP server (port 2121);
- the sample plugins and parsers, including the CTD and XBT ones;
- lowering components turned on, a sample lowering, and the example Lowering tab in
datadashboard.yaml.
Use it to try OpenVDM out, not on a server you’ll use for real cruises.
Updating an Existing Installation
Re-run the install script. It’s safe on an existing install, but it rewrites
Config.php, and some upgrades need a database update. See
Upgrading OpenVDM.
Directory Layout After Install
<install_root>/openvdm/
├── bin/ Utility scripts (.py.dist templates)
├── database/ Schema and database update scripts
├── server/
│ ├── etc/ openvdm.yaml
│ ├── lib/ Core Python libraries
│ ├── plugins/ Data dashboard plugins
│ │ └── parsers/ Data dashboard parsers
│ └── workers/ Gearman workers
├── utils/ Install script, database export script
├── venv/ Python virtual environment
└── www/ Web application
├── app/Core/ Config.php
└── etc/ datadashboard.yaml
Transfer logs and the worker logs are in /var/log/openvdm/.