Installation#
Here you can find all the requirements and installation steps.
Prerequisites#
These are the minimal tools needed to get started:
- uv or Python 3.13+
- Git
- recommended: latest Raspberry Pi OS, 64 bit (Desktop, Trixie)
- optional: for a manual v2 (web) install: Node.js and Yarn
The desktop version of Raspberry Pi OS is recommended, but if you just want to have a peek into the project, any OS having Python and Git will work just fine. The RPi is needed to control the pumps in a real machine, but the program will work fine even without any physical machine.
Install CocktailBerry#
After flashing the latest Raspberry Pi 64-bit OS, you can use the provided scripts to set everything up automatically on your Raspberry Pi. Or just run the program directly, when you want to have a look into it on your PC. You can always install the other things later, the docs provide information within each corresponding section.
Building a physical machine? See Hardware for the parts list first.
Automatic Installation#
RPi: Use the all-in-one Script
If you are on your Raspberry Pi, you can just use the so-called All-in-One Script! This will check that git, Python and your OS are compatible for the project and install CocktailBerry including Docker and Compose on the Pi.
Just use:
to get the script and run it on the Pi. Too easy to be true, isn't it?If you want to have the new v2 API and app, see web setup for how to easily switch after the setup.
Or add a -s v2 at the end of the command to execute the switch directly after installing.
After the installation, you can set up your CocktailBerry and tweak the settings to your liking.
Manual Installation#
To clone the project, run the following commands in your terminal:
Then you can install the requirements and set up the project with the following commands:
# Setup for the RPi
# Docker is optional but needed for some cool extra features
sh scripts/install_docker.sh
sh scripts/install_compose.sh
# This will set up everything important on your RPi
cd ~/CocktailBerry
sh scripts/setup.sh
# now we are good to go
uv run --extra v1 runme.py # (1)!
- add
--extra nfcto theuv runcommand, if you want to have NFC support, useapi.pyinstead for v2.
This Should be All
As long as you are on the recommended Raspberry Pi + OS, this should be all you need to execute for a complete setup. This script will likely not work properly on other systems, since each OS may handle things differently. If you are on another system, have a look into the other instructions, faq or troubleshooting.
Running the Program#
The best way is to use uv. Choose which version you want to install and run. You need to have this project cloned and set up, as described in the Manual Installation section.
V1 (PyQt Application)#
uv run --extra v1 runme.py
# if you also want NFC support (needs libnfc-dev installed), use:
uv run --extra v1 --extra nfc runme.py
V2 (API and Web Client)#
uv run api.py
# if you also want NFC support (needs libnfc-dev installed), use:
uv run --extra nfc api.py
The automatic installer builds and serves the web page for you. On a manual install, you also need to start the web client:
Development on Non-Pi Hardware#
The project has a pi-hardware dependency group, which is installed by default and contains the Pi-specific hardware libraries.
You can add --no-group pi-hardware to the uv run (or uv sync) command to skip installing them on your system.
Most of them only install on Linux anyway, so this is mainly relevant on a non-Pi Linux machine.
When you are working on other hardware (for example on a Windows or macOS engine) it is recommended (but not necessary) to set UI_DEVENVIRONMENT to true.
This will enable your cursor.
All configuration can be customized under custom_config.yaml, or over the user interface of the program.
This file will be created at the first program start.
Touchscreen settings#
This covers the v1 (Qt) UI. For the v2 web interface, see Limitations.
It's worth mentioning that the UI is optimized for a touch display with an 800x480 or a 1024x600 resolution. By default, the full screen is also limited to 800x480. So usually, you won't have any problems with the usual HD or uHD screens. You can change the application size with the corresponding config settings, if you want to use a different screen size. See Setting up the Machine / Modifying other Values for more information. If you are using a high resolution screen, I recommend this solution to prevent the UI from looking weird.