- Keg tracking (remaining beer, pours & level over time)
- Temperature monitoring (current & over time)
- Leak detection (e.g. water in the kegerator)
- Drift correction & pour detection
- Loading data from Brewfather (API, JSON) & BeerXML
- Manually enter or update values
- Automatic volume from weight calculation
- No-purge burst carbonation calculator
- Modern & intuitive UI, optimized for mobile & desktop
- Customizable units (imperial, metric or mixed)
- Fully accessible from any browser
- Easy cloud updates (via github)
- Quick initial setup & easy calibration
- Customizable monitoring & pour detection
- Automatic device discovery & setup via mDNS
- An optional, Raspberry Pi-based master server
- Custom PCBs & 3D printable holders
- KegScale - A keg tracking app
While this is "experimental", here is a brief explanation how to set up a Raspberry Pi KegScale server.
- Raspberry Pi (3 and up recommended) with Raspian already set up
- Raspberry Pi Display, connected and already set up
- Recommended: SSH enabled / a way to access the pi remotely
sudo apt install unclutter onboard lighttpd avahi-daemon
- Change the hostname
- Open config:
sudo raspi-config - System Options -> Hostname -> Set to
kegscale-server - Optionally, change the password
- Open config:
- Disable IPv6 mDNS
- Edit file:
sudo nano /etc/avahi/avahi-daemon.conf - Change
use-ipv6=yestouse-ipv6=no - Change
#publish-aaaa-on-ipv4=yestopublish-aaaa-on-ipv4=no - Restart:
sudo service avahi-daemon restart
- Edit file:
- Setup files & updating
- Go to the future server directory:
cd /var/www/ - Clone this repository:
sudo git clone https://github.com/dralois/KegScale.git - Create cronjob to auto update
- Open crontab:
sudo crontab -e - Paste the following:
0 0 * * * cd /var/www/KegScale && git pull
- Open crontab:
- Go to the future server directory:
- Update the server config
- Edit file:
sudo nano /etc/lighttpd/lighttpd.conf - Add the following
server.add-response-header = ( "Access-Control-Allow-Origin" => "*", "Access-Control-Allow-Methods" => "*", "Access-Control-Allow-Headers" => "*", "Access-Control-Expose-Headers" => "*") - Change the document root (
server.document-root) to"/var/www/html"
- Edit file:
- Restart:
sudo service lighttpd restart
- General: Enable
Auto-show when editing text&Start Onboard hidden - Window: Enable
Force window on top - Auto-show: Make sure
Auto-show when editing textis enabled - The keyboard can be repositioned by holding enter -> Move icon
- Create file:
sudo nano .config/lxsession/LXDE-pi/autostart - Paste the following
@unclutter @onboard @chromium-browser --kiosk http://kegscale-server.local
- Reboot, the pi should now display an overview listing all available KegScales, if this isn't the case, you have two options (under
Settings)- Change the local domain (e.g. .lan instead of .local)
- Add custom device IP addresses (set them up to be static beforehand)
- The server is now accessible from anywhere in the network by visiting
http://kegscale-server.local(may also be .lan or similar).
Contributions are appreciated, feel free to report bugs, request features or directly improve / contribute to the codebase.
- Check if it has already been reported
- Try to isolate the problem to a simple test case
- Be as descriptive as possible, details always help
- Mark the issue as a bug
- Check if the feature is already request
- Be descriptive, explain why the feature is good / necessary
- Mark the issue as an enhancement
- Check the trello board for things to improve / add
- For things that aren't on there yet, follow the guidelines for bugs / features first
- Ensure sure your changes are well documented and comply with the general style of the codebase
- Finally, create a pull request with your changes
While this project is distributed completely open-source and under GNU GPLv3, I explicitly prohibit commercial use. This project shall remain free of charge, selling original or modified versions of both the software and hardware, such as 3D prints and the PCBs, is strictly forbidden.
- Arduino (LGPL-2.1) - esp8266
- HX711 (MIT) - bodge
- ArduinoJson (MIT) - bblanchon
- WifiManager (MIT) - tzapu
- Async Webserver - me-no-dev
- DS18B20_RT (MIT) - Rob Tillaart
- RunningMedian (MIT) - Rob Tillaart
- StackString (GNU GPLv3) - Arjen Stens
- Scrollbooster (MIT) - ilyashubin
- Chart.js (MIT) - chartjs
- universam1, djl101096 & Callwater for inspiration
- /u/HopMania for the burst carbonation calculator
- Brewersfriend for the SRM to color conversion table, as well as BJCP style guidelines
- Rapidtables for several conversion formulas
- Inchcalculator for volume conversion formulas
- Grainfather for color conversion formulas
- Hobbybrauer for gravity conversion formulas
- Aircompressormachine for pressure conversion formulas
- BYO for carbonation conversion formulas
- Brewfather for the API











