Running under Docker on Fedora
You can run Haplo as a pre-built container, using Docker on a desktop or server running Fedora.
Setting up the system
Logged into your Fedora system, install Docker:
sudo dnf install docker sudo systemctl start docker sudo systemctl enable docker
Pre-install planning
You need to create a location for persistent storage. Because containers are stateless, the data has to live outside the image. For example,
sudo mkdir -p /var/haplo
You will need to decide on the name you’re going to use for your Haplo installation. On a server, register a name in DNS so that clients can connect to your server. This can either be the name of the server you’re going to install Haplo on, or an alias (CNAME). For example, if you want your Haplo installation to be available at the URL:
http://haplo.your.site.name/
then you need to create a DNS entry for haplo.your.site.name
.
If you’re connecting from a Mac, then you could alternatively edit /private/etc/hosts
to add haplo.your.site.name
as an alias for the server IP address.
This name will also be used in the configuration file below.
Seeding the configuration
In the location for persistent storage you created above, create a file called app.values
that looks like the following, defining the five settings required to bootstrap the installation.
APPURL="haplo.your.site.name" APPNAME="Fred" APPUNAME="Fred Bloggs" APPUMAIL="fred@example.com" APPUPASS="fred123"
The values required are:
- APPURL
- This is the address you use to connect to the server
- APPNAME
- This is the name that will be displayed on all the pages of your Haplo installation. It should reflect the name of your department or organization, or the function of this Haplo installation.
- APPUNAME
- You need to create at least one user, so you will be asked for their details. This should be their full name, for example ‘Fred Bloggs’.
- APPUMAIL
- And their email address, for example ‘fred.bloggs@example.com’.
- APPUPASS
- And then give a password for this user.
There is an additional value you can set, which is optional.
APPPLUGIN="hresrepodemo_application"
If this is set, then the application will have the specified plugin installed. If unset, you’ll get a basic uncustomized Haplo application. At the present time, the only valid value is “hresrepodemo_application”, which will cause a demonstration Academic Repository to be created.
Starting the container
With the initial configuration ready, run the Haplo Docker image. You need to map network ports and the persistent storage.
sudo docker run -p 80:8080 -p 443:8443 -v /var/haplo:/haplo:Z haploorg/haplo-app
This will download the Haplo image, map the network ports 80 (for http) and 443 (for https), and mount your persistent storage in the correct place inside the container.
Note the :Z
in the volume specification. This is required for any system with SELinux enabled, and ensures that an appropriate label is attached to the volume. Without it you will get permission errors and Haplo will not start.
The first time you run the container, it will take a little while to populate the database, create a self-signed certificate, set up an application, and start the application server. You can then go to
http://haplo.your.site.name/
in your web browser and log in using the email address and password details you put in the configuration. (You will get a security warning from your web browser due to the use of a self-signed certificate.)
Subsequent runs of the container will just load the data from the persistent storage, and won’t need the initialization step. Once configured, you can go and delete the app.values
file.