GROUU · Projects · Server Stack
Completed · reproducible from a compose file

The GROUU Stack

An open, containerised edge-server pipeline that any GROUU node can report into — messaging, flow logic, time-series storage and dashboards. Runs on any Linux host or Raspberry Pi from a single Docker Compose file.

Docker Compose Portainer MQTT · time-series · dashboards
The GROUU public dashboard
01 · Overview

What it is

The GROUU Stack is the completed, reusable backend every node reports into — a compose file plus the guidance to deploy and secure it. It runs live on the project's Raspberry Pi, ingesting the WellBouy node today; any TTN- or MQTT-connected node lands in the same pipeline.

Overview
Every node, one path

Sources → ingest → store → visualise.

Sources
WiFi & LoRaWAN nodes
MQTT · TTN
Ingest
Mosquitto → Node-RED
:1883 · :1880
Store
InfluxDB
:8086 · buckets
Visualise
Grafana + public web
:3000 · dashboards
02 · Design

Four containers, one pipeline

The stack is four cooperating services on one compose network, plus a management UI — each does one job, and any of them can be swapped.

Mosquitto:1883

MQTT broker — receives every sensor uplink. Per-client authentication (anonymous access disabled).

Node-RED:1880

Flow-based processing — routes and parses messages (including TTN payloads) on the way to storage.

InfluxDB:8086

Time-series database — one bucket per source. All sensor history lives here.

Grafana:3000

Dashboards & visualisation, reading InfluxDB over the shared compose network.

Management Portainer :9000 — a web UI to deploy and manage the containers, images and volumes.
03 · Hardware

What it runs on

Host-agnostic: any Linux machine or a Raspberry Pi. The project's instance runs on a Pi, exposed publicly through a Cloudflare tunnel.

Host
Linux / RPi
64-bit recommended
Engine
Docker
compose plugin
Network
LAN
static address advised
Storage
Volumes
per service
04 · Software

The compose file & flows

Everything is declared: the four-service compose file, the Node-RED flows and TTN payload formatter, and the Grafana dashboard — all in the repo.

docker-compose.yml — the four-service stack (representative; full file in the repo)

services:
  mosquitto:
    image: eclipse-mosquitto:2
    ports: ["1883:1883"]
    restart: always
  nodered:
    image: nodered/node-red:latest
    ports: ["1880:1880"]
    volumes: ["nodered-data:/data"]
    restart: always
  influxdb:
    image: influxdb:2
    ports: ["8086:8086"]
    volumes: ["influxdb-data:/var/lib/influxdb2"]
    restart: always
  grafana:
    image: grafana/grafana:latest
    ports: ["3000:3000"]
    restart: always
05 · Process

Done — three steps to a running stack

The stack is a complete, reusable recipe running live on the project's Pi. To deploy your own: install Docker, run Portainer, paste the compose and deploy.

01
Install Docker

On any Linux host or Raspberry Pi.

02
Run Portainer

Container-management UI on :9000.

03
Deploy the stack

Paste the compose → Deploy.

docker compose up -d
mosquitto eclipse-mosquitto:2 → :1883
nodered nodered/node-red → :1880
influxdb influxdb:2 → :8086
grafana grafana/grafana → :3000
Full compose file, MQTT-auth guide and a security checklist live in the repository ↗
Gallery

The dashboard, live

The public page the stack serves — real WellBouy data.