This is an old revision of the document!

To get fully up to date with the latest version of BrewPi, we need to update all 3 parts of BrewPi:

  1. The BrewPi python script (brewpi-script)
  2. The BrewPi web interterface (brewpi-www)
  3. The BrewPi Spark firmware

There are 2 ways to update 1 and 2: re-creating your docker container or updating an existing container.

Re-creating the docker container

If you installed BrewPi with docker, the easiest way to do this is to just re-create the Docker container. Because your data and settings are stored outside of the container, you will not loose them.

If you made changes in your container outside of the data directory, you will loose those.

To create a new fresh container, take the following steps:

  1. Show all running containers:
      docker ps

    You can refer to a container by name or container ID.

  2. Remove your existing container:
      docker stop brewpi; docker rm brewpi
  3. Make sure you have the latest image:
      docker pull brewpi/brewpi-raspbian
  4. Create a new fresh container:
      docker run -d --name brewpi -p 80:80 -v ~/brewpi-data:/data -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --restart always brewpi/brewpi-raspbian

Updating an existing BrewPi server/container

Most BrewPi installs will also have our brewpi-tools repository installed in ~/brewpi-tools. Our latest docker container includes it too.

Log in on the console of your BrewPi server. If you are running docker with portainer, you can do this by going to <ip address>:9000, then go to your BrewPi container and click 'console'.

Then simply run our update-script:

cd ~/brewpi-tools

Updating system firmware with DFU

When updating over DFU, you will first put the Spark in DFU mode by rebooting into the bootloader.

This can be done by - holding the setup button while it boots, until the LED flashes yellow. You can reboot by pressing the reset button (while holding the setup button) or reconnecting power (while holding the setup button). - triggering it in software (with our script).

Without docker

If you installed BrewPi without docker, you will only need to run this command on your system:

python utils/ --tag=0.5.3-rc.3 --noreset --autodfu

Modify –tag=0.5.3-rc.3 to pick the tag you would like to use from our releases.

With docker

To update over DFU, we will use a new temporary privileged container that is destroyed after use.

First log into the shell of the docker machine.

For a Raspberry Pi, you would ssh into your docker host (use putty if you are connecting from a Windows PC):

ssh pirate@

Make sure you have the latest docker image:

docker pull brewpi/brewpi-raspbian

We can start a docker container for single use that is destroyed afterwards (–rm) and run the script directly:

docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian sudo python utils/ --tag=0.5.3-rc.3 --noreset --autodfu

Modify –tag=0.5.3-rc.3 to pick the tag you would like to use from our releases.

Docker containers can only use devices that are present on the host when they start. Which is why the first time you run this command, it will only put the device in DFU mode. It will not be able to use the new DFU device, because it was not present when the container started. Stop the script with CTRL-C. Your Spark is now in DFU mode. Run the command again to update.