This repository has been deprecated. The development of horta-hell packaging is now performed at the horta-hell repository itself.
Original description:
horta-foundation is a project for providing the default horta-hell environment ready for production.
It is a docker image for deployment of horta-hell, an XMPP bot.
In the future, the image will also provide horta-web, a web interface to some of horta's functions.
The only prerequisite is docker itself.
First, build the horta-hell according to its manual and copy it to
horta-hell.jar
in the current image directory. After that, issue the command
$ docker build -t=codingteam/horta-hell .
You should mount the volume containing horta.properties
to the /data
mountpoint in the container.
You should create and place the horta.properties
inside the /data
container
directory. Please take a look at the horta documentation to know
more about the configuration files. There is an example file bundled with the
horta-hell.
Please use only UNIX line endings (plain \n
) in the horta.properties
!
Here's an example script for running the container. Windows users may also be
interested in Run-Container.ps1
script.
$ cd horta-foundation
$ cp -f /path/to/build/horta-hell-assembly.jar ./horta-hell.jar
$ docker build -t=codingteam/horta-hell .
$ docker stop horta-hell # in case it already exists
$ docker rm horta-hell
$ docker run -d --name horta-hell -v /path/to/local/horta/configuration/directory:/data codingteam/horta-hell
Currently the recommended way of running the container on Windows is to deploy it through Docker for Windows.
It's recommended to execute Run-Container.ps1
script like this (please check
the parameter section):
$HortaArtifact = 'some\path\target\scala-2.11\horta-hell-assembly.jar'
$VolumePath = 'c:/Users/UserName/Docker-Data/horta-hell'
& horta-foundation\Run-Container.ps1 $HortaArtifact $VolumePath
After that you can run this script and have all the deployment process automated.
The recommended way of upgrading is to rebuild and recreate the whole container. Your data is stored on an external data volume, so it will be fully preserved.