This is a docker image for Hugann, a system for running agents to do various tasks. "Think of it as a hackable Yahoo! Pipes plus IFTTT on your own server."
This image is optimized in two ways:
- It does not include a database, under the assumption that each container should perform only one application. Running a database with Docker is easy (see bellow).
- It is quick to rebuild when Huginn code changes because it installs Gems in a independent step. So it will be frequently updated.
Check out Huginn on Github.
Launch a MySQL container
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql
Generate a secret (to use in the next two steps)
git clone clone https://github.com/cantino/huginn.git cd huginn rake secret
Important: When launching the Hugann containers change the value of
APP_SECRET_TOKEN to the value from the previous step and change the value of
INVITATION_CODE to something of your own choosing.
Run the database creation script
docker run --rm --link huginn-mysql:db \ -e "APP_SECRET_TOKEN=REPLACE_ME" \ -e "DATABASE_NAME=huginn_development" \ -e "DATABASE_USERNAME=root" \ -e "DATABASE_PASSWORD=password" \ -e "INVITATION_CODE=my-invitation-code" \ andrewcurioso/huginn rake db:create db:migrate
Seed the database (optional)
You may also want to seed the database with sample data. After running the DB creation script you can seed the new database.
Important: If you do this on a production system you must change the value of
docker run --rm --link huginn-mysql:db \ -e "SEED_USERNAME=admin" \ -e "SEED_PASSWORD=password" \ andrewcurioso/huginn rake db:seed
docker run --name some-huginn --link huginn-mysql:db \ -e "APP_SECRET_TOKEN=REPLACE_ME" \ -e "DATABASE_NAME=huginn_development" \ -e "DATABASE_USERNAME=root" \ -e "DATABASE_PASSWORD=password" \ -p 3000:3000 -d andrewcurioso/huginn
Before deploying to production, make sure to create a real database user and password. And don't use the root MySQL account.
You can override any environment variables when launching the Huginn container. For an example list see the .env.example file.