Ruuvi collector replacement written in python, for recording RuuviTag sensor data to InfluxDb.
107
Scans RuuviTag BLE sensors and writes their measurements to an InfluxDB 1.x database, on a schedule.
BLE scanning goes through the host's own BlueZ stack over D-Bus, so the container never needs raw Bluetooth device access — just the host's D-Bus socket mounted in.
Full documentation, docker-compose.yml, the install script, and source are
on GitHub: https://github.com/teemuhautala/ruuvix-standalone
You need a Linux host with Bluetooth hardware and bluez installed, and an
existing InfluxDB 1.x instance to point this at.
Grab the config templates from the repo first, since the image expects
config.json, ruuvi-names.properties, and ruuvi-corrections.json to
exist in the directory you mount to /app:
mkdir -p ruuvix/app && cd ruuvix
curl -fsSL https://raw.githubusercontent.com/teemuhautala/ruuvix-standalone/main/app/config.json.example -o app/config.json
curl -fsSL https://raw.githubusercontent.com/teemuhautala/ruuvix-standalone/main/app/ruuvi-names.properties.example -o app/ruuvi-names.properties
curl -fsSL https://raw.githubusercontent.com/teemuhautala/ruuvix-standalone/main/app/ruuvi-corrections.json.example -o app/ruuvi-corrections.json
Edit app/config.json to point influxdb at your host:port — both parts
required, no http:// scheme and no trailing / (e.g. 192.168.1.10:8086,
not 192.168.1.10 or http://192.168.1.10:8086/) — then:
docker pull dreamr/ruuvix
docker run -d \
--name ruuvix \
--restart unless-stopped \
--uts host \
--cap-drop ALL \
--security-opt no-new-privileges:true \
--user "$(id -u):$(id -g)" \
-v "$(pwd)/app:/app" \
-v /var/run/dbus/:/var/run/dbus/:z \
-e RUUVI_BLE_ADAPTER=bleak \
dreamr/ruuvix --run
No --privileged or --network host needed — the container only talks to
the host's already-running bluetoothd as a D-Bus client over the mounted
socket above.
Discover nearby tags and add them to app/ruuvi-names.properties:
docker run --rm --cap-drop ALL --security-opt no-new-privileges:true \
--user "$(id -u):$(id -g)" \
-v "$(pwd)/app:/app" -v /var/run/dbus/:/var/run/dbus/:z \
dreamr/ruuvix --find
See the GitHub repo for
the install.sh bootstrap script, docker-compose.yml, calibration,
first-time InfluxDB setup, and troubleshooting (including the broader
--privileged --network host fallback if your host's D-Bus/BlueZ setup
needs it).
latest — tracks the main branch of the GitHub repo. Publish this as a
multi-platform image for linux/amd64 and linux/arm64 (64-bit Raspberry
Pi OS); Docker will then pull the matching variant automatically. See
build.sh in the repository for the Buildx command. 32-bit Raspberry Pi
OS (arm/v7) is not supported.Content type
Image
Digest
sha256:5ef5bbba1…
Size
49.8 MB
Last updated
about 2 months ago
docker pull dreamr/ruuvix