Setup
imo-vmdb processes meteor observation data and stores the results in a database — a structured file or service where data is kept permanently. The software manages the database itself; you only need to tell it where to store the data.
There are two ways to run imo-vmdb:
Docker — no Python installation required; runs as a web application in your browser. Recommended for most users.
Python — install directly and use the command-line interface. Suited for developers and scripted workflows.
Both options require choosing a database. Read the next section first, then follow the path that fits your setup.
Database
imo-vmdb supports three database systems. For most users, SQLite is the right choice.
SQLite (recommended)
SQLite stores all data in a single file on your computer — no database server, no additional software, no user accounts. You only provide a file path; imo-vmdb creates and manages the file for you.
This is the default. No extra packages are needed.
PostgreSQL and MySQL (advanced)
PostgreSQL and MySQL are full database servers. Setting them up requires knowledge of database administration — creating users, databases, and managing connections. They make sense when:
multiple people or applications need to access the data simultaneously,
the data should be stored on a central server rather than a local file,
you already operate a database server as part of your infrastructure.
If you are unsure, use SQLite.
Docker
Docker lets you run imo-vmdb without installing Python or any other programming tools. It works by running the software in an isolated container — think of it as a self-contained box that has everything it needs built in.
There are two ways to work with Docker:
Docker Desktop — a graphical application for Windows and macOS. No terminal required. Recommended if you are new to Docker.
Command line — for users already familiar with Docker and the terminal.
Docker Desktop (recommended for beginners)
What is Docker Desktop?
Docker Desktop is a free application that lets you manage containers through a graphical interface — no terminal needed. It is available for Windows and macOS.
Step 1 — Install Docker Desktop
Download and install Docker Desktop. After installation, start it and wait until the status indicator in the menu bar shows “Docker Desktop is running”.
Step 2 — Create a data folder
imo-vmdb needs a folder on your computer to store the database and uploaded CSV files. Create a dedicated folder now, for example:
Windows:
C:\Users\YourName\imo-vmdb-datamacOS:
~/imo-vmdb-data
Remember this path — you will need it in the next step.
Step 3 — Find and run the image
Open Docker Desktop.
Click the search bar at the top of the window and type:
ghcr.io/jankorichter/imo-vmdb
Select the image from the search results. Docker Desktop will pull (download) it automatically if it is not yet on your computer.
Click Run. A dialog appears — click Optional settings to expand the configuration area.
Now fill in three sections:
Ports — map port 8000 so your browser can reach the web UI:
Host port |
Container port |
|---|---|
|
|
If port 8000 is already in use on your computer, choose a different host port
(e.g. 8080) and open http://localhost:8080 later.
Volumes — connect your data folder to the container:
Host path |
Container path |
|---|---|
|
|
Replace /your/local/data with the folder you created in Step 2.
This ensures your data is saved on your computer even after the container
is stopped or removed.
Environment variables — tell the container where to store the database and uploaded files:
Variable |
Value |
|---|---|
|
|
|
|
Both paths point inside the container (/data) and are covered by the
volume above, so the files end up in your data folder on the computer.
Click Run.
Open
http://localhost:8000in your browser.
See Web UI for a description of all available functions.
Stopping the container
In Docker Desktop, click Containers in the left sidebar.
Find the running imo-vmdb container in the list.
Hover over it — action buttons appear on the right.
Click the Stop button (square icon).
Your data in the local folder is always preserved.
Updating to a new version
Search for the image again (Step 3) and pull the latest version. Then run a new container with the same settings.
Command Line (for experienced Docker users)
Starting the web UI:
docker run --rm \
-p 8000:8000 \
-v /your/local/data:/data \
-e IMO_VMDB_DATABASE_DATABASE=/data/vmdb.db \
-e IMO_VMDB_WEBUI_UPLOAD_DIR=/data/uploads \
ghcr.io/jankorichter/imo-vmdb
Replace /your/local/data with your data folder path.
Open http://localhost:8000 in your browser. Press Ctrl+C to stop.
Running individual commands:
# Initialize the database
docker run --rm \
-v /your/local/data:/data \
-e IMO_VMDB_DATABASE_DATABASE=/data/vmdb.db \
ghcr.io/jankorichter/imo-vmdb initdb
# Import CSV files
docker run --rm \
-v /your/local/data:/data \
-e IMO_VMDB_DATABASE_DATABASE=/data/vmdb.db \
-v /path/to/csv:/csv \
ghcr.io/jankorichter/imo-vmdb import_csv /csv/observations-2024.csv
# Normalize
docker run --rm \
-v /your/local/data:/data \
-e IMO_VMDB_DATABASE_DATABASE=/data/vmdb.db \
ghcr.io/jankorichter/imo-vmdb normalize
All Environment Variables
Variable |
Config equivalent |
Default |
|---|---|---|
|
|
(required) |
|
|
|
|
|
— |
|
|
— |
|
|
— |
|
|
|
|
|
system temp dir |
|
|
|
Environment variables work with any imo-vmdb installation — not just Docker.
Using a Config File
A configuration file can be used instead of, or in combination with, environment variables. If a file is provided it takes precedence:
docker run --rm \
-v /your/local/data:/data \
ghcr.io/jankorichter/imo-vmdb initdb -c /data/config.ini
See the Python section below for the configuration file format.
Python
If you already have Python 3.10 or newer installed, you can install imo-vmdb with pip:
pip install imo-vmdb
Verify the installation:
python -m imo_vmdb
A short help text listing the available commands should appear.
For work with the source code or running from a local clone, see the
README.md in the project root for setup instructions using Poetry.
PostgreSQL and MySQL
For PostgreSQL or MySQL (see Database above), install the required driver:
pip install "imo-vmdb[pgsql]" # PostgreSQL
pip install "imo-vmdb[mysql]" # MySQL
Configuration file
imo-vmdb reads database and logging settings from an INI file passed with
-c config.ini.
Minimal SQLite configuration:
[database]
database = /path/to/database/file.db
On Windows:
[database]
database = C:\Users\YourName\vmdb\database.db
Warning
Running initdb on an existing database will delete all data in it.
Minimal PostgreSQL configuration:
[database]
module = psycopg2
database = vmdb
user = vmdb
Minimal MySQL configuration:
[database]
module = pymysql
database = vmdb
user = vmdb
sql_mode = ANSI
init_command = SET innodb_lock_wait_timeout=3600
Logging
By default, status messages are printed to the screen. To write to a file instead:
[logging]
level = INFO
file = /path/to/logfile.log
level controls verbosity (least to most): CRITICAL, ERROR,
WARNING, INFO.