An open API service indexing awesome lists of open source software.

https://github.com/pskillen/meshflow-api


https://github.com/pskillen/meshflow-api

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

          

# Meshflow API

Meshflow is a distributed telemetry collection system designed for Meshtastic radio networks. It provides a secure,
structured backend to ingest, store, and analyze public packets broadcast across geographically distributed mesh nodes.
The system is intended to be self-hosted, Dockerized, and built using Django REST Framework with PostgreSQL as the
backing store.

---

## ๐Ÿ”ง Project Structure

This repository will contain the backend API for Meshflow, organized as a modular Django project with the following
apps:

- **Nodes** โ€“ manages radios (Meshtastic nodes) and their API keys
- **Constellations** โ€“ groups of nodes managed collectively
- **Regions** โ€“ geographical groupings used to partition mesh data
- **Packets** โ€“ ingestion and processing of raw mesh packets
- **Users** โ€“ standard Django users, acting as SysOps in node context
- **Common** โ€“ shared utilities, permissions, middleware, etc.

Root layout:

```
Meshflow/
โ”œโ”€โ”€ manage.py
โ”œโ”€โ”€ Meshflow/ # Django settings, urls, wsgi
โ”œโ”€โ”€ Nodes/
โ”œโ”€โ”€ Packets/
โ”œโ”€โ”€ Constellations/
โ”œโ”€โ”€ Regions/
โ”œโ”€โ”€ Users/
โ””โ”€โ”€ Common/
```

---

## ๐Ÿš€ Components

- **Meshflow API** โ€“ the Django-based backend (this project)
- **Meshflow Relay** โ€“ lightweight local client running beside a Meshtastic node
- **Meshflow Dashboard** โ€“ React-based frontend for visualizing and managing mesh activity

---

## ๐ŸŒ API Overview (planned)

All endpoints will be namespaced under `/api/v1/`.

```
/api/v1/
โ”œโ”€โ”€ auth/
โ”œโ”€โ”€ packets/ingest/ # POST endpoint for Meshflow Relay
โ”œโ”€โ”€ nodes/ # Manage and list nodes
โ”œโ”€โ”€ nodes//apikeys/ # Rotate/manage node API keys
โ”œโ”€โ”€ constellations/ # Group nodes for SysOp management
โ”œโ”€โ”€ regions/ # List regions, get stats
โ”œโ”€โ”€ stats/global/ # Public stats
โ”œโ”€โ”€ stats/my-nodes/ # SysOp-specific metrics
```

---

## โš™๏ธ Tech Stack

- Python 3.x
- Django 4.x
- Django REST Framework
- PostgreSQL
- Docker / Docker Compose

---

## ๐Ÿ› ๏ธ Setup Instructions (TBD)

This project is under initial development. Once bootstrapped, the following will apply:

```bash
# Clone and enter repo
cd Meshflow

# Install dependencies
pip install -r requirements.txt

# Run migrations
python manage.py migrate && python manage.py run_deploy_tasks

# Start development server
python manage.py runserver
```

Docker setup will be included via `docker-compose.yml`.

---

## ๐Ÿงญ Philosophy

Meshflow is designed to be:

- **Transparent** โ€“ SysOps and the public can see activity and trends
- **Modular** โ€“ easy to extend, replace, or separate components
- **Open** โ€“ friendly to community deployment and contribution

---

## ๐Ÿ“Œ Status

> ๐Ÿงช Currently pre-alpha. The core architecture and structure are being scaffolded.