Files
Tomas Kracmar 0a4fb7b55e
Some checks failed
CI / lint-docs (push) Has been cancelled
CI / build-firmware (push) Has been cancelled
CI / test-backend (push) Has been cancelled
CI / test-web (push) Has been cancelled
feat: initial KosmoConnect platform v0.1
Includes:
- Backend services: ingestion (:8001), weather API (:8002),
  gateway (:8003), billing (:8004) with BTCPay integration
- Shared asyncpg pool, TimescaleDB hypertable, Redis, Mosquitto MQTT
- React frontend: Dashboard (MapLibre) and Messaging (chat UI)
- Bridge daemon for Pi + Meshtastic (Serial/TCP T-Deck support)
- Production Docker Compose, Nginx reverse proxy, ops scripts
- DEPLOY.md with step-by-step deployment guide
2026-04-12 17:30:15 +02:00

1.5 KiB

Infrastructure Node

This directory contains the software for bridge nodes that connect the Meshtastic mesh to the internet.

Components

bridge-daemon/

The KosmoConnect Bridge Daemon is a Python service that runs on a Raspberry Pi (or any Linux host) connected to a Meshtastic device via USB.

What it does:

  • Receives mesh packets and publishes them to the cloud MQTT broker
  • Detects environmental data (JSON enviro packets) and routes them to kosmo/ingest/enviro
  • Subscribes to kosmo/mesh/outbound/# and injects web messages back into the mesh
  • Runs as a systemd service with auto-restart

See bridge-daemon/README.md for setup and RPi installation instructions.

firmware/

Placeholder for any custom firmware required specifically for the bridge radio (usually not needed; standard Meshtastic firmware works).

Device Notes
LILYGO T-Beam 868/915MHz Great for Pi USB bridge; ESP32 + GPS + LoRa
RAK4631 Low power, nRF52840 based
LILYGO T-Deck Can work if put into USB-serial mode; better used as a handheld mesh client

Quick Test

If you have a T-Beam or T-Deck connected to your computer:

cd bridge-daemon
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
export MESHTASTIC_DEVICE=/dev/ttyUSB0   # adjust for your OS
export MQTT_HOST=localhost
python3 -m src.main

Send a text from any mesh node and watch it appear on kosmo/mesh/inbound in your MQTT broker.