Running a HeFQUIN Service via Docker
HeFQUIN can be deployed as a web service in a Docker container, either:
In either case, after starting it up, you can interact with the service like a SPARQL endpoint.
Use a Published Docker Image
For each release of HeFQUIN, we publish a Docker image at the GitHub Container Registry. You can pull the image for the latest release by executing the following command.
docker pull ghcr.io/LiUSemWeb/hefquin:latest
                Thereafter, execute the following command to start the HeFQUIN service using Docker, the -p argument specifies the port at which the HeFQUIN service shall expose its SPARQL endpoint.
            
docker run -p 8080:8080 hefquin:latest
                Now, the HeFQUIN service should be running, which you can test by opening http://localhost:8080/ in a Web browser, and you can interact with the service like a SPARQL endpoint (the SPARQL endpoint should be exposed at http://localhost:8080/sparql).
            
                To use the HeFQUIN service for your own federation, create a description of your federation and, then, mount the file with this description (e.g., MyFedConf.ttl) when starting the HeFQUIN service using Docker as follows.
            
docker run \
    -p 8080:8080 \
    -v MyFedConf.ttl:/usr/local/tomcat/webapps/ROOT/DefaultFedConf.ttl \
    hefquin:latest
                Additionally, you can use a custom configuration file for the HeFQUIN engine (e.g., MyEngineConf.ttl).
            
docker run \
    -p 8080:8080 \
    -v MyFedConf.ttl:/usr/local/tomcat/webapps/ROOT/DefaultFedConf.ttl \
    -v MyEngineConf.ttl:/usr/local/tomcat/webapps/ROOT/DefaultEngineConf.ttl \
    hefquin:latest
Build a Docker Image Yourself
Instead of using one of our published Docker images, you may also build such an image yourself and use that one. To this end, you need a local clone of the GitHub repository of HeFQUIN.
If you have not cloned the repository already, you can clone it either by using the SSH URL:
git clone git@github.com:LiUSemWeb/HeFQUIN.gitgit clone https://github.com/LiUSemWeb/HeFQUIN.gitIf you have cloned the repository earlier, make sure that you pull the latest version of the source code into your local clone:
git checkout main
git pull
                Within the directory into which you have cloned the repo, change into the hefquin-docker subdirectory:
                
cd hefquin-dockerNow, execute the following two commands to build the Docker image and to start the HeFQUIN service using this image.
docker-compose build
docker-compose up
                Now, the HeFQUIN service should be running, which you can test by opening http://localhost:8080/ in a Web browser, and you can interact with the service like a SPARQL endpoint (the SPARQL endpoint should be exposed at http://localhost:8080/sparql).
            
                If you want to build the Docker image for a specific version of HeFQUIN, specify the release tag of that version at the TAG argument in the docker-compose.yml file before running the aforementioned docker-compose commands.
            
  hefquin:
    build:
      context: .
      args:
        TAG: XYZ   ### replace XYZ by the tag
    ports:
      - "8080:8080"
                To use the HeFQUIN service for your own federation, create a description of your federation and, then, extend the docker-compose.yml file to mount the file with this description (e.g., MyFedConf.ttl) when starting the HeFQUIN service using your Docker image.
            
  hefquin:
    build: .
    ports:
      - "8080:8080"
    volumes:
     - MyFedConf.ttl:/usr/local/tomcat/webapps/ROOT/DefaultFedConf.ttl
                Additionally, you can use a custom configuration file for the HeFQUIN engine (e.g., MyEngineConf.ttl).
            
  hefquin:
    build: .
    ports:
      - "8080:8080"
    volumes:
     - MyFedConf.ttl:/usr/local/tomcat/webapps/ROOT/DefaultFedConf.ttl
     - MyEngineConf:/usr/local/tomcat/webapps/ROOT/DefaultEngineConf.ttl