- Repository structure
- Getting started
- Official deployment instructions
- Contributing
- License
- Maintainers
This repository provides the necessary resources to build and run a Docker container for the INSPIRE Reference Validator. The Validator is used to check the conformity of metadata, spatial data sets and services against the INSPIRE Technical Guidelines.
This containerization allows public authorities, data providers and implementers to deploy the INSPIRE Reference Validator in their own environments, either for internal testing or as part of production workflows.
The repository only contains the containerization infrastructure (Dockerfile, configuration files, entrypoint script, etc.). The Validator binaries (validator.war
and ui.zip
) must be downloaded manually — see below.
├── Dockerfile # Instructions to build the container image
├── VERSION # Tag of used ETF version
├── LICENSE # EUPL-1.2 licence text
├── README # Project documentation
├── ui.zip # Placeholder for UI binary – replace with ui.zip (https://github.com/inspire-eu-validation/INSPIRE-Validator-UI)
├── validator.war # Placeholder for core binary – replace with validator.war
└── res/ # Runtime scripts and configuration files
├── docker-entrypoint.sh # Script executed at container start-up
├── httpd.conf # Base Apache HTTPD configuration
├── proxy.conf # Base proxy settings
├── proxy_1.conf # Base proxy for INSPIRE
├── proxy_2.conf # Apache proxy setting for validator UI and captcha
├── squid.conf # Squid proxy configuration
├── geant.pem # GEANT CA certificate
├── services.lgrb-bw.de # Certificate for services.lgrb-bw.de
├── opendata.skgeodesy.sk# Certificate for opendata.skgeodesy.sk
├── _.fega.gob.es # Certificate for *.fega.gob.es
└── _.hzinfra.hr # Certificate for *.hzinfra.hr
Dockerfile
: Defines the image used to run the Validator.VERSION
: Specifies the current ETF tag used to build the image.res/
: Contains the entrypoint script and auxiliary configuration files used during runtime.
You need to download the following two files from the latest official release of the INSPIRE Reference Validator:
validator.war
ui.zip
Place both files in the root of the repository (alongside the Dockerfile
) before building the image.
The files validator.war.md
and ui.zip.md
are not functional — they exist to keep Git history clean and indicate where the real files must go.
Run the following command in the root directory:
docker build . -t [IMAGE_NAME]:[VERSION]
For example:
docker build . -t inspire-validator:2025.1
This will build a container image using the version tag defined in the VERSION file.
docker run --name inspire-validator -d -p 8090:8090 -v ~/etf:/etf [IMAGE_NAME]:[VERSION]
For example:
docker run --name inspire-validator -d -p 8090:8090 -v ~/etf:/etf inspire-validator:2025.1
This launches a container from the specified image, exposing the UI on port 8090, mapped to the same port on the host. Additionally, it mounts a local volume from ~/etf, which will result in an etf directory being created in the user's home folder if it does not already exist.
Once the INSPIRE Reference Validator has fully loaded, access to it through the URL: http://localhost:8090/validator/home/index.html
A volume is mounted to persist user data under ~/etf.
If your environment requires using a proxy, the container can be run with the following environment variables:
For the run command, you need to add the environment variables to it:
--env http_proxy=[HTTP_PROXY_URL:PORT] \
--env https_proxy=[HTTPS_PROXY_URL:PORT] \
--env no_proxy=127.0.0.1,localhost,*.<mydomain>
During the build process, you may also provide proxy settings as build arguments:
--build-arg http_proxy=[HTTP_PROXY_URL:PORT] \
--build-arg https_proxy=[HTTPS_PROXY_URL:PORT] \
--build-arg no_proxy=127.0.0.1,localhost,*.<my-domain>
These can also be set up in the Dockerfile, using the keyword ENV.
For more information please check out Docker proxy configuration guide.
The validator.war
and ui.zip
files are part of the release packages made available by the INSPIRE Reference Validator. This repository does not store them for maintenance reasons.
You must download them manually from the official validator releases page and place them in the root directory of the repository before building the image.
In the inspire-validator ZIP file, you can find all the resources needed to generate the Docker image from this release. If you would like to tweak anything from it, you can modify any of its contents (Dockerfile, entrypoint file, configuration files, etc.), then execute (inside the ETF docker folder) the command:
docker build . -t [IMAGE_NAME]:[VERSION]
You can run this again using the run command:
docker run --name inspire-validator -d -p 8090:8090 -v ~/etf:/etf [IMAGE_NAME]:[VERSION]
The Docker image is set up to run at localhost to be deployed on any machine. However, users may need to access their Validator on a dedicated host, usually with a domain name. For the proper functioning of the Validator, the UI and the correct rendering of Test Reports, the Validator needs to be configured to run on a domain.
If you want to run the webapp in another host, you can change the configuration file, inside the .war file inside the inspire-validator zip file accompanying this release, at WEB-INF/classes/etf-config.properties
, and modify the etf.webapp.base.url
property.
It is also necessary to configure the Validator UI properties in order to properly point to the ETF. Thus, it is necessary to modify the configuration values in the /validator/js/config.js
file inside the ui.zip
(to point to the corresponding host domain).
Then you can proceed to the build process described in the previous point.
Since 22/12/2022 OGC moved to production version 5.5.2 (2022-08-26) of the TEAM Engine, which introduced credentials for the calls to the services.
Thus, any deployment which makes use of the OGC TEAM Engine needs to introduce credentials (to be requested the OGC Validator register page) in order to use them.
We have incorporated three parameters in the /WEB-INF/classes/etf-config.properties
file of validator.war
that need to be filled accordingly to authorize the use of the services:
#TEAM Engine credentials of your organization in order to properly use TEAM Engine remote calls
etf.testdrivers.teamengine.url = http://cite.opengeospatial.org/teamengine
etf.testdrivers.teamengine.username =
etf.testdrivers.teamengine.password =
In your own deployment you may want to increase the performance of fetching the different resources that the INSPIRE Reference Validator requires from the INSPIRE Registry for validations.
The file inspire-registry-resources.zip
is included in the official release package and contains the resources that the INSPIRE Reference Validator requests to the INSPIRE Registry to execute the validations defined in the Executable Test Suites (ETSs).
Using this content, you may configure your own deployment to access these resources without the need to make a call to the INSPIRE Registry to obtain them, increasing the performance of your own instance while decreasing the dependency on external resources in your installation.
Note: The inspire-registry-resources.zip
file is not included in this container repository. You must download it separately from the official release where it is attached as an asset.
In order to show how to use the Registry resources as cache, we have prepared a simple example.
The purpose of this example is to provide a foundation that can be adapted to an organization's proxy policies.
- Download the Registry resources from the official release assets.
- Unzip the resources.
- Open a terminal and access the resources folder
- Publish the resources as an http server using, for example, Python:
python -m http.server 8000
- Once the resources are published, we can use any proxy reverse (nginx, apache, ...). We show you an example using fiddle:
function OnBeforeRequest(oSession: Session) { if (oSession.host == "inspire.ec.europa.eu") { oSession.host = "0.0.0.0"; oSession.port = 8000; oSession.url = oSession.url.replace("https://inspire.ec.europa.eu", "http://0.0.0.0:8000"); } }
This will ensure that all the Validator's requests to the Registry are redirected to the server, using these local Registry resources instead.
For further configuration, please download the file inspire-validator-2025.1.zip
and follow the instructions in the README.md
file inside the .zip file.
We welcome contributions from Member States, implementers and the wider INSPIRE community.
To contribute:
- Fork the repository.
- Create a new branch from
main
. - Make your changes.
- Submit a pull request with a clear description of the change.
Please follow existing patterns and naming conventions. Squash-merge is used for PRs.
This project is licensed under the European Union Public Licence v1.2 (EUPL-1.2).
See the LICENSE file for details.
This repository is maintained by the Joint Research Centre (JRC), European Commission