A web platform and hardware solution for automated cocktail mixing machines.
RobotCocktail is a modern reimagining of the Autobar v1 project. While the original project used Django and Raspberry Pi, this new version brings several key improvements:
The project consists of two main parts:
Web Platform
Hardware Implementation
Using the Devices page, use "Flash New Device" and then "Enroll via WiFi" for instructions. The ESP32 will start an access point wifi network to configure the device.
The server URL field allows you to self host the main server !
If you have docker installed, you might prefer to run the project for a quick demo
docker build -t autobar3:preview -f dockerfiles/Dockerfile.preview .
docker run --rm -it autobar3:preview
The admin authentication is in .env.example. You may change the values before building the image.
Building the image will take care of creating the SSL certificates and build the firmware for you.
The database is overwritten with each build !
Create initial database or migrate :
# Generate an image with the initial database and the development tools (drizzle-kit) to migrate the SQLite database
docker build --target production-database -t autobar3:prod-db -f dockerfiles/Dockerfile.prod .
# Mount local data folder
mkdir -p ./data
docker run --rm --mount type=bind,src=./data,dst=/data -it autobar3:prod-db
Start production server :
docker build -t autobar3:prod -f dockerfiles/Dockerfile.prod .
docker run --rm --env-file .env.prod.example -p 3000:3000 --mount type=bind,src=./data,dst=/data -it autobar3:prod
First, generate SSL certificates for local development:
./scripts/generate_dev_certificates.sh
This script generates:
These certificates are for development only and should not be used in production
The firmware is built locally into the static/firmware folder so that user may flash their device the first time via the webpage.
The following dependencies are required
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
Install the ESP-IDF plugin and configure the extension. Version v5.3.2 is the only one tested for now.
The CMakeLists.txt includes commands to copy the firmware binaries to the static folder.
(TODO) VS Code devcontainer or pure docker command
Hint: use this Dockerfile as a base
Install dependencies and start the development server:
npm install
npm run dev
The development server will run with HTTPS using the generated self-signed certificates.
Note: For production deployment, replace the development certificates with proper SSL certificates from a trusted Certificate Authority
Please see CONTRIBUTING.md for development guidelines and contribution process.
This project is licensed under the MIT License - see the LICENSE file for details.