Compiled huginn docker run command converted into docker-compose.yaml file. Includes images for both ARM/aarch64 and x86 Linux/AMD infrastructure. Compose file also includes separate container for MySQL database and separate docker network. This also includes persistant volumes so data is not lost on container recreation. Options will allow you to run on any physical linux machine (including RaspberryPi) and virtual Machines. Tested on Debian and Ubuntu.
Architecture | Available |
---|---|
x86-64 | ✅ |
amd64 | ✅ |
arm64 | ✅ |
arm64v8 | ✅ |
armhf | ✅ |
arm32v7 | ✅ |
You can either clone the repository or copy the file and follow the instructions below.
1st Option: git clone process:
it will download it into its own folder. Do not run docker-compose up -d in this folder, it looks messy. Either rename the folder to huginn or move the file to newly created huginn folder.This process will snag the readme and any other file adds in the repo.
git clone https://github.com/SeanRiggs/Huginn-Docker-Compose_AMD_X86_ARM.git
Recommended: Or move to the directory you want to install huginn in and use wget to pull the single docker-compose file:
wget https://github.com/SeanRiggs/Huginn-Docker-Compose_AMD_X86_ARM/blob/main/docker-compose.yaml
2nd Option: download the file and copy into new directory:
make a directory you want to install your docker-compose contaners.
mkdir huginn
CD into that directory
cd huginn
copy docker-compose.yaml into the directory once copied, open the yaml file with nano
sudo nano docker-compose.yaml
Ensure that you comment out the images you are not going to use for your architecture. Uncomment the images in the containers that match your architecture. The compose file is preset for AMD - x86 Linux. Adjust for ARM/aarch64. Validate before spinning up your container.
Huginn Container:
Linux x86/AMD
#image: mjysci/huginn:arm32v7
image: ghcr.io/huginn/huginn
ARM/aarch64
image: mjysci/huginn:arm32v7
#image: ghcr.io/huginn/huginn
MySQL Container:
Linux x86/AMD
#image: yobasystems/alpine-mariadb:10.4.17-arm32v7
image: mysql:latest
ARM/aarch64
image: yobasystems/alpine-mariadb:10.4.17-arm32v7
#image: mysql:latest
The downloaded and updated docker-compose.yaml file should ready to go in the directory you chose for it (i.e. huginn). The next step is to spin up your containers using docker-compose and starging the docker daemon:
docker-compose up -d
You should see the images download and containers create like the following:
list your docker containers and take a look:
docker ps
check your docker network:
docker network ls
create a .env file for the Docker Compose file you provided, you can create a new file called .env in the same directory as the Docker Compose file and add the following contents:
HUGINN_ROOT_PASSWORD=your_huginn_root_password
HUGINN_PASSWORD=your_huginn_password
HUGINN_DATABASE=your_huginn_database
HUGINN_USER=your_huginn_user
Then, in the Docker Compose file, you can reference the environment variables in the environment field of the huginn and mysql services like so:
huginn:
# other service configuration
environment:
HUGINN_ROOT_PASSWORD: ${HUGINN_ROOT_PASSWORD}
HUGINN_PASSWORD: ${HUGINN_PASSWORD}
HUGINN_DATABASE: ${HUGINN_DATABASE}
HUGINN_USER: ${HUGINN_USER}
mysql:
# other service configuration
environment:
MYSQL_ROOT_PASSWORD: ${HUGINN_ROOT_PASSWORD}
MYSQL_PASSWORD: ${HUGINN_PASSWORD}
MYSQL_DATABASE: ${HUGINN_DATABASE}
MYSQL_USER: ${HUGINN_USER}
This will allow you to store sensitive information such as passwords and secrets in the .env file, rather than hardcoding them in the Docker Compose file. The .env file should not be committed to version control, as it may contain sensitive information.
https://github.com/SeanRiggs/Huginn-Docker-Compose_AMD_X86_ARM/blob/main/FAQ.md