Fixed README and Compose

This commit is contained in:
Louis King
2025-12-06 14:21:17 +00:00
parent d715e4e4f0
commit 733342a9ec
2 changed files with 31 additions and 29 deletions

View File

@@ -83,7 +83,7 @@ cp .env.example .env
# Edit .env: set SERIAL_PORT to your device (e.g., /dev/ttyUSB0 or /dev/ttyACM0)
# Start the entire stack including the interface receiver
docker compose --profile interface-receiver up -d
docker compose --profile core --profile receiver up -d
# View the web dashboard
open http://localhost:8080
@@ -105,7 +105,7 @@ For larger deployments, you can separate receiver nodes from the central infrast
│ │ Device │ │ Device │ │ Device │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ │ interface-receiver only │ │
│ │ receiver profile only │ │
│ └──────────────────┼──────────────────┘ │
│ │ │
│ MQTT (port 1883) │
@@ -126,18 +126,18 @@ For larger deployments, you can separate receiver nodes from the central infrast
**On each receiver node (Raspberry Pi, etc.):**
```bash
# Only run the interface-receiver component
# Only run the receiver component
# Configure .env with MQTT_HOST pointing to your central server
MQTT_HOST=your-community-server.com
SERIAL_PORT=/dev/ttyUSB0
docker compose --profile interface-receiver up -d
docker compose --profile receiver up -d
```
**On the central server (VPS/cloud):**
```bash
# Run the core infrastructure (no interface needed)
docker compose up -d
docker compose --profile core up -d
```
This architecture allows:
@@ -150,26 +150,16 @@ This architecture allows:
### Using Docker Compose (Recommended)
Docker Compose runs core services by default and uses **profiles** for optional components:
Docker Compose uses **profiles** to select which services to run:
**Default Services (always run):**
| Service | Description |
|---------|-------------|
| `mqtt` | Eclipse Mosquitto MQTT broker |
| `collector` | MQTT subscriber + database storage (auto-seeds on startup) |
| `api` | REST API server |
| `web` | Web dashboard |
**Optional Profiles:**
| Profile | Services |
|---------|----------|
| `interface-receiver` | MeshCore device receiver (events to MQTT) |
| `interface-sender` | MeshCore device sender (MQTT to device) |
| `mock` | Mock device receiver (for testing without hardware) |
| `migrate` | One-time database migration runner |
| `seed` | One-time seed data import (also runs automatically on collector startup) |
| Profile | Services | Use Case |
|---------|----------|----------|
| `core` | mqtt, collector, api, web | Central server infrastructure |
| `receiver` | mqtt, interface-receiver | Receiver node (events to MQTT) |
| `sender` | mqtt, interface-sender | Sender node (MQTT to device) |
| `mock` | mqtt, interface-mock-receiver | Testing without hardware |
| `migrate` | db-migrate | One-time database migration |
| `seed` | seed | One-time seed data import |
```bash
# Clone the repository
@@ -187,10 +177,10 @@ docker compose --profile migrate run --rm db-migrate
docker compose --profile seed run --rm seed
# Start core services (mqtt, collector, api, web)
docker compose up -d
docker compose --profile core up -d
# Start sender/receiver interface
docker compose --profile interface-receiver up -d
# Or start just the receiver (for distributed setups)
docker compose --profile receiver up -d
# View logs
docker compose logs -f

View File

@@ -1,10 +1,16 @@
services:
# ==========================================================================
# MQTT Broker - Eclipse Mosquitto
# Included in all profiles that need it (receiver, sender, core, mock)
# ==========================================================================
mqtt:
image: eclipse-mosquitto:2
container_name: meshcore-mqtt
profiles:
- receiver
- sender
- core
- mock
restart: unless-stopped
ports:
- "${MQTT_EXTERNAL_PORT:-1883}:1883"
@@ -30,7 +36,7 @@ services:
dockerfile: Dockerfile
container_name: meshcore-interface-receiver
profiles:
- interface-receiver
- receiver
restart: unless-stopped
depends_on:
mqtt:
@@ -66,7 +72,7 @@ services:
dockerfile: Dockerfile
container_name: meshcore-interface-sender
profiles:
- interface-sender
- sender
restart: unless-stopped
depends_on:
mqtt:
@@ -133,6 +139,8 @@ services:
context: .
dockerfile: Dockerfile
container_name: meshcore-collector
profiles:
- core
restart: unless-stopped
depends_on:
mqtt:
@@ -180,6 +188,8 @@ services:
context: .
dockerfile: Dockerfile
container_name: meshcore-api
profiles:
- core
restart: unless-stopped
depends_on:
mqtt:
@@ -222,6 +232,8 @@ services:
context: .
dockerfile: Dockerfile
container_name: meshcore-web
profiles:
- core
restart: unless-stopped
depends_on:
api: