On this page

Source Repository

Pulzaura is a monorepo. The firmware, the backend, the dashboard and the deployment files all live in one public repository next to this documentation.

ItemValue
Repositoryisarwar93/pulzaura
Clonegit clone https://github.com/isarwar93/pulzaura.git
Contentsfirmware, backend, frontend, InfluxDB and Grafana config, hardware notes

Repository layout

pulzaura/
├── backend/          C++20 server: BLE bridge, WebSocket, InfluxDB writer
├── frontend/         React 19 dashboard built with Vite
├── firmware/         ESP32 firmware
│   ├── platformio-esp32/   primary target, Arduino framework
│   └── Zephyr-esp32/       alternative Zephyr RTOS port
├── grafana/
│   └── provisioning/       dashboards provisioned into the container
├── hardware/
│   └── README.md           sensor board notes and future goals
├── docker/
│   └── nginx.conf
├── docker-compose.yml
└── local/             agent and editor helper notes

Running the stack

Docker and Docker Compose are the only prerequisites:

docker compose up -d
ServiceAddressContainer
Frontend dashboardhttp://localhost:5173pulzaura-frontend
Backend APIhttp://localhost:8000pulzaura-backend
InfluxDBbundled service, image influxdb:2.7pulzaura-influxdb
Grafanabundled service, image grafana/grafana:10.2.3pulzaura-grafana

Building the backend without Docker

The backend builds out-of-source with CMake:

sudo apt-get install -y build-essential cmake pkg-config \
    libbluetooth-dev libglib2.0-dev libdbus-1-dev libcurl4-openssl-dev

bash backend/utility/install-oatpp-modules.sh   # first time only
make -C backend/build -j$(nproc) backend-server-exe

Flashing the firmware

cd firmware/platformio-esp32
python3 -m venv .venv && source .venv/bin/activate
pip install platformio
pio run --target upload