Skip to content

Installation

This Guide is for administrators installing GeoJibe on a Linux host. Everyday GIS users can skip it.

The current install still uses the enciva binary, enciva.service, and ENCIVA_* settings. The product name in these Guides is GeoJibe.

What you are installing

  • A host service (enciva) that serves the web app
  • A pinned GDAL image run through Docker for Convert, inspect, and Python
  • Optional native Sync tools on the host for QFieldCloud and Mergin Maps (not Docker)

GeoJibe is not distributed as a Docker Compose app. Docker is the spatial runtime for processing, not a substitute for the service.

Do not install or upgrade host GDAL/QGIS packages for GeoJibe. Processing does not use them.

Before you start

  • Linux host with Docker Engine
  • Ability to run deploy/install.sh
  • A built enciva binary (or pass it as the first argument)

Install

From the repository, after the binary is built:

sudo ./deploy/install.sh ./enciva

The script:

  1. Confirms Docker is installed
  2. Pulls ghcr.io/osgeo/gdal:ubuntu-full-3.13.3 (override with GDAL_IMAGE)
  3. Creates /var/lib/enciva and /etc/enciva/enciva.env
  4. Installs /usr/local/bin/enciva
  5. Runs deploy/install-sync-runtime.sh for QFieldCloud CLI, GeoDiff, and Mergin Maps
  6. Installs enciva.service when systemd is present

Enable the service:

sudo systemctl enable --now enciva

The default listen address is 127.0.0.1:8080. Put a reverse proxy in front for HTTPS.

First sign-in

If the user database is empty, set bootstrap variables in /etc/enciva/enciva.env before start. See Configuration. There is no default admin password in the product.

Sync runtime

deploy/install-sync-runtime.sh installs:

Tool Role
qfieldcloud-cli List and download QFieldCloud projects
geodiff Apply GeoPackage changes to PostGIS (one-way)
Mergin Python + dbsync_daemon.py Mergin Maps list/download and two-way sync

The destination database must already have PostGIS. GeoJibe does not create databases, users, or extensions.

If these tools are missing, Sync Jobs fail with Synchronization runtime is unavailable.

pre-install.sh

pre-install.sh at the repository root is a legacy path (older Quartz/GeoSync-style layout). Current GeoJibe installs should use deploy/install.sh.

Python for workflows

User Python components run inside the GDAL container (python3 with osgeo.gdal / osgeo.ogr). That is separate from the host Mergin/QField virtualenvs.

Data that must survive upgrades

Keep:

  • /var/lib/enciva (includes sync/ Job state)
  • /etc/enciva/enciva.env and ENCIVA_SECRET_KEY (or the generated secret file)

Restoring the database without the same secret key cannot decrypt saved credentials.

See also