Setting up BrewPi for wired ethernet instead of wifi

Hi Elco,

Is there a method to setup the BrewPi to use a wired ethernet connection (over the USB-port, since there is no ethernet port)? If so, can you please provide me with a short manual to change this in the BrewPi? I understand that it is possible to use the USB connection in combination with Docker, but do not understand how to do it (the manual is not clear to me). Can you clarify how the “device flag” has to be applied?

Additionally, is this also possible via a direct connection (cross utp cable needed?) between the BrewPi and my Windows pc (docker)?

I am facing many WiFi problems: frequent disconnects during my brewing therefore I prefer a stable and reliable connection.


Matthew (mdma on the forum, who works at Particle) is looking into the wifi instability. It is likely a bug in the Particle software framework that BrewPi is built on.

If you want a wired connection to the BrewPi, you’ll have to use USB. The BrewPi server has to be close to the BrewPi in this case.
To give a docker container access to the USB device, you need to add this to the docker command: --device=/dev/ttyACM0:/dev/ttyACM0

That will forward the USB device to the container.

On Windows, you’ll have to do an extra step. Docker runs in a virtual machine. You’ll first need to give this virtual machine access to USB ports.
Start VirtualBox, find the VM called ‘default’ and click Settings->USB. Enable USB and check the box for the Particle device. Also put the Spark in DFU mode so you can tick the DFU device too.
Once you have done that, the USB device shows up on the host (docker-machine) and then you can also forward it to the container.

The full command to create the container is then:

docker run -d --name brewpi -p 80:80 -v ~/brewpi-data:/data --restart always --pirvileged --device=/dev/ttyACM0:/dev/ttyACM0 brewpi/brewpi-ubuntu

This successfully forwards the serial port to the container.
For some reason, the brewpi user still gets ‘access denied’ on the serial port. As root, I can start the script just fine.
The brewpi user is part of the dialout group, so should have access, as can be verified with groups brewpi.

A temporary fix is to edit in /

Remove sudo -u brewpi from the command to run the script as root. Restart the container to apply this change.