Haxall is an open source software framework for the Internet of Things. It includes an extensive toolkit for working with Project Haystack data. Use it right out of the box as a flexible IoT data gateway which runs at the edge. Haxall is written in Fantom with runtime support for both the Java VM and JavaScript environments.
See https://haxall.io for more more information.
All the documentation is hosted on haxall.io:
- Setup: install and get Haxall running
- Build: instructions to build from source
- Learn: quick links to learn more
Haxall is released under the Academic Free License 3.0.
If you want to run the default haxall docker image on a container, rather than setting it up manually onto your local environment, you can do so in one of three ways. They all require that you download Docker Desktop and have it running in the background.
If you follow the instructions, you will create a local bind-mount located somewhere on your filesystem. Any data will be persisted there, and can be changed on the local system to affect the container and vice versa.
Once the container is running, go to http://localhost:8080 to use haxall. Default suuser and supass should be printed in whatever terminal or logs you are using.
- Make sure you have dowloaded and are running Docker Desktop.
- Download the latest release of haxall (any releases before Jun 26, 2024 will not have this functionality), or clone the repository.
- Run this command on a terminal in the root folder of haxall on your local system:
docker compose up
The command will build and run the image for haxall, creating a local bind-mount in the dbs
folder.
There is a prebuilt image that rebuilds on every push to the repo, so it is the most up-to-date. You can set it up either on command line, or through the Docker Desktop app.
- On the repository website, go to packages, haxall, and copy the command to install the image from the command line.
- Run that command in a terminal from anywhere.
- After doing the above, run this command:
docker run -v ./haxall:/app/haxall/dbs -p 8080:8080 --name haxall_run ghcr.io/haxall/haxall
This will create a local bind-mount in a folder called haxall
, from wherever you run the command.
- Open the Docker Desktop app
- Go to images, the haxall image should be there.
- On the right side under actions, hit the arrow.
- Here are example inputs:
In the example inputs, a local bind-mount will be created at the folder specified by path, in this case C:\Apps\haxall
.