Skip to content

Repository files navigation

GEO Metadata Engine

metadata

Open-source metadata management platform for the WIS-BE project of the Bereich Geoinformation, Amt für Wald und Naturgefahren, Canton of Bern. It provides a structured way to capture, manage, and retrieve geospatial metadata through a web-based admin interface.

GEO Metadata Engine is open-source software, licensed under the BSD 3-Clause License.

Key Features

  • Manage geospatial metadata (topics, geo packages, layers, attributes, value tables) via a Django admin interface
  • Hierarchical data model: Thema → Geopäckli → Ebene / Attribut / Wertetabelle
  • Bilingual support (German / French)
  • PostgreSQL backend with full migration history

Development Status

The application is production-ready. The remaining open item is ADFS (Active Directory Federation Services) authentication support.

Demo

No public demo instance is currently available.

Contact

The technical contact for GEO Metadata Engine is Pascal Ehrler of the Bereich Geoinformation, Amt für Wald und Naturgefahren, Canton of Bern.

Project owner: Kanton Bern Amt für Wald und Naturgefahren Abteilung Fachdienste und Ressourcen Bereich Geoinformation

Using GEO Metadata Engine

Prerequisites

To run this project, we recommend the conda package manager. See the conda documentation for installation instructions.

Installation

Clone the repository:

git clone https://github.com/kanton-bern/geo-metadata-engine.git
cd geo-metadata-engine

Create and activate a virtual environment:

conda create -n bgi_metadata python=3.14
conda activate bgi_metadata

Install dependencies:

conda install --yes --file requirements.txt

Create a .env file in the project root:

SECRET_KEY=<your Django secret key>
DEBUG=<True for development, False for production>
DB_HOST=<hostname of your PostgreSQL server>
DB_NAME=<name of your PostgreSQL database>
DB_USER=<PostgreSQL user>
DB_PASSWORD=<PostgreSQL password>
DB_PORT=<PostgreSQL port, typically 5432>

Apply migrations and create an admin user:

python manage.py migrate
python manage.py createsuperuser

Start the development server:

python manage.py runserver

Open http://localhost:8000/ in your browser.

Docker

A Dockerfile is available for containerised deployments.

# Build the image
docker build -t geo_metadata_engine .

# Run the container
# --env-file .env passes the runtime configuration (SECRET_KEY, DB_*, etc.) into
# the container. It is required: the image does not bundle .env (see .dockerignore),
# so without it Django has no settings and gunicorn workers hang/time out.
# --network=host is required on Linux so the container can reach the PostgreSQL
# instance running on the host machine (localhost inside the container refers
# to the container itself, not the host).
docker run -d --network=host --env-file .env geo_metadata_engine

Contributing to GEO Metadata Engine

Please read the following documents before contributing:

Contributors

(in alphabetical order)

Third-Party Licenses

See THIRD-PARTY-LICENSES.md for a list of open-source libraries used by this project.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages