Idiots Guide Using Docker to install BrewPi on Spark3

I’m having the hardest time installing the software. I’ve installed Raspian on a Pi3. I’m constantly getting errors following the BrewPi wiki. Any help would be greatly appreciated. Is there a simple step by step instructions out there?

Downloaded hypriotos-rpi-v1.6.0.img and now I can see & brewpi running. But when I click on the published ports 80:80 my web browser says it can’t connect to the server “”

Any ideas?

Hi petrdel,

What I’m about to suggest is by no means an idiots guide, but I am working on a simplified installer.

See instructions at:

Take note that this is a branch off the main repository.

This is a work in progress and only does the basic install (no tilt support yet). Feel free to send me feedback.


Nice @andylytical

I’ve done some work this weekend too. I have made some changes to make the script not exit when the serial/wifi connection is lost (develop branch). This also makes it possible to set the port form the UI.
That takes away the biggest hurdle I think.

To make it easier to start/stop/configure the containers, I think docker-compose would work too.
I’ll definitely look at your repo for inspiration. Any suggestions are very welcome.

I have updated the BrewPi container and the wiki:

I think the process will be a lot easier than before.

1 Like

HI All,

Thanks for creating BrewPi, and for keeping it open source. I’m looking forward to using it to take my brewing to a new level. Unfortunately, my current brews have not impressed the Budget committee enough to appropriate the required funds for the fancy new Spark 3. I’m forced to DIY a system using a Pi 3 and Arduino Uno that aren’t currently in use. If the results are as good as I think they will be, an upgrade may be possible!

So far I’ve tried the docker and manual BrewPi installation methods but I am still not able to program the Uno from the BrewPi interface. I’ve found alternative programming methods to try, and some other info on this forum that suggests I need to change some settings in the config file. But, before I get too far down the rabbit hole, I’ve got a couple of basic questions for you.

  1. Does the current version of BrewPi still support an Arduino controller?
  2. If the answer to #1 is ‘yes’, which installation would be best? I’ve noticed that even with the manual installation, some of the scripts referenced in the documentation are no longer present.

Also, I’ve downloaded the 0.2.10 firmware sources from GitHub, but I cannot find where the boardType configuration setting is enumerated. Do I need to add that to my config.cfg, and if so, what value should I use?

I apologize in advance if this is not the right place to post my question.

Thanks again!


You are better off using a standalone program to write the hex file to the Arduino.
You can find this hex file in the github releases. I have not tested writing hex files to Arduino in a long time and cannot help you with that. You should be able to find files online.

The current version of BrewPi is not compatible with Arduino.

You can go to the console inside the container, navigate to /var/www/html and to /home/brewpi and run ‘git checkout legacy’ to switch to the 2 year old code that is still Arduino compatible.

Thank you! I do have the 0.2.10 hex file, but obviously wouldn’t have been successful without changing the script.


One more quick question related to Docker; I added the brewpi container using the “–privileged” switch. Am I correct in assuming that eliminates the need to use "–device=/dev/ttyACM0:/dev/ttyACM0”?

Yes, that is correct.

I hate to keep asking questions about an obsolete version, but git is unable to pull the legacy branch as you described. The remote repo is configured as and the only branch seems to be master. Also, there is no /brewpi/script directory. Do I need to configure another remote?

Thanks for the assistance!

Update: Stopped the container and performed the automatic installation described in the docs, and was able to switch to the legacy branch. I’ll save the container for the Spark 3 upgrade.

Update 2: Successfully installed legacy BrewPi on the Pi and flashed firmware version 0.2.10 to the Uno. The two boards are talking and I’m ready to connect sensors and relays. Lots of trial and error, but in the end the procedure was fairly simple. Thanks again for the assistance!

Great, sorry I gave you the wrong directory.

Have you updated the script to reflect the wiki? When it says:

Finally, go to the maintenance panel and fill in the field for connection to let the script know where it can find your BrewPi Spark.

I can’t find the connection setting in the Maintenance Panel under settings. I have my BrewPi spark connected via USB and it seems to have found it anyway (according to the logs).

Did you do a docker pull and re-create the container?

If you have the latest version of portainer, there is a button to do this.

I delete the container I originally created and re-crated a new one. I’ll have another go.

If you didn’t do a docker pull, it did not use the latest image from the cloud. I’ll add that to the wiki.
docker pull brewpi/brewpi-raspbian

Thanks. That did the trick. So do I put /dev/ttyACM0 under Connection to BrewPi Spark if I am connected via USB (only USB device attached)?

You can leave it set on ‘auto’. That will scan for compatible USB devices and set the port automatically.
Please note that you need to create the container with --privileged for this and the device needs to be connected when the container starts.

I followed the new wiki and now when I log on to BREWPI I see “ERROR: CONNECTION TO BREWPI SPARK”
I have the Spark3 connected using USB. I started from scratch and I still get the same error. Any suggestions?

So I went back to my last build using HypriotOS v1.6.0 and now my pi can connect to the Spark3 using USB.
Maybe this updated new way needs a separate code line for USB?