Release v1.0.0: public release prep (sanitized defaults, CI, docs, TLS ready)

This commit is contained in:
Jason Mead committed 2025-10-10 22:31:54 +11:00
1 parent 4839380be1
commit cc09a59384
7 files changed
+110 -9

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
name: Build (PlatformIO)
on:
push:
pull_request:
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
env: [esp32_mqtt_gateway, lilygo_lora32_v21, heltec_v3_mqtt]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('tools/requirements.txt') }}
- name: Install PlatformIO
run: pip install platformio
- name: Cache PlatformIO
uses: actions/cache@v4
with:
path: |
~/.platformio/.cache
~/.platformio/packages
~/.platformio/platforms
~/.platformio/penv
key: ${{ runner.os }}-pio-${{ hashFiles('platformio.ini') }}
- name: Install Python tool deps
run: pip install -r tools/requirements.txt
- name: Build ${{ matrix.env }}
run: pio run -e ${{ matrix.env }}
+36
View File
@@ -42,9 +42,45 @@ Thumbs.db
# Configuration scripts (contains credentials)
configure_gateway.py
# PlatformIO
.pio/
.pioenvs/
.piolibdeps/
.clang_complete
.gcc-flags.json
# IDE/editor
.vscode/
.idea/
.DS_Store
# Python
__pycache__/
*.py[cod]
*.pyo
.pytest_cache/
.mypy_cache/
.venv/
venv/
env/
# Build artifacts
build/
*.bin
*.elf
*.map
*.hex
# Env/secrets
.env
.env.*
secrets.*
# Logs
*.log
*.log
# Test files
test/
tests/
+9
View File
@@ -0,0 +1,9 @@
# Changelog
All notable changes to this project will be documented in this file.
## 1.0.0 - 2025-10-10
- Initial public release
- LoRa repeater and MQTT bridge
- TLS support, serial configuration, statistics publishing
- Python tooling and docs
+3 -3
View File
@@ -55,7 +55,7 @@ A powerful gateway firmware that bridges MeshCore LoRa mesh networks with MQTT b
```bash
git clone <your-repo-url>
cd MeshCore-MQTT-Gateway
cd <repo-dir>
```
Open in VS Code with PlatformIO extension installed.
@@ -66,7 +66,7 @@ Edit `platformio.ini` to select your target board:
```ini
[platformio]
default_envs = esp32_mqtt_gateway ; or heltec_v3_mqtt
default_envs = lilygo_lora32_v21 ; or esp32_mqtt_gateway, heltec_v3_mqtt
```
If using a custom board, adjust pin definitions in `src/config.h`:
@@ -613,7 +613,7 @@ This project is licensed under the MIT License - see LICENSE file for details.
## 🎯 Roadmap
- [ ] TLS/SSL support for MQTT
- [x] TLS/SSL support for MQTT
- [ ] Web configuration interface
- [ ] OTA (Over-The-Air) firmware updates
- [ ] Message encryption
+12
View File
@@ -0,0 +1,12 @@
# Security Policy
## Supported Versions
- 1.0.x receives security fixes on a best-effort basis.
## Reporting a Vulnerability
- Please open a private security advisory on GitHub if enabled.
- If not available, email the maintainer or open an issue with minimal details and request a private channel.
- We will acknowledge reports within 7 days and aim to provide a remediation plan within 30 days.
## Disclosure
- Please practice responsible disclosure and avoid sharing exploit details publicly until a fix is available.
-2
View File
@@ -38,8 +38,6 @@ build_flags =
monitor_speed = 115200
monitor_filters = esp32_exception_decoder
upload_port = /dev/cu.usbserial-589A0124131
monitor_port = /dev/cu.usbserial-589A0124131
lib_deps =
jgromes/RadioLib@^6.6.0
+4 -4
View File
@@ -19,10 +19,10 @@
#define DEFAULT_LORA_TX_POWER 20
// Default MQTT Settings
#define DEFAULT_MQTT_SERVER "mqtt.ripplenetworks.com.au"
#define DEFAULT_MQTT_SERVER "mqtt.example.com"
#define DEFAULT_MQTT_PORT 8883
#define DEFAULT_MQTT_USER "nswmesh"
#define DEFAULT_MQTT_PASSWORD "nswmesh"
#define DEFAULT_MQTT_USER ""
#define DEFAULT_MQTT_PASSWORD ""
#define DEFAULT_MQTT_CLIENT_ID "meshcore_gateway"
#define DEFAULT_MQTT_TOPIC_PREFIX "MESHCORE"
@@ -238,7 +238,7 @@ inline GatewayConfig getDefaultConfig() {
config.lora.spreadingFactor = DEFAULT_LORA_SF;
config.lora.codingRate = DEFAULT_LORA_CR;
config.lora.txPower = DEFAULT_LORA_TX_POWER;
config.lora.syncWord = 0x12;
config.lora.syncWord = 0x34;
config.lora.enableCRC = true;
// Repeater defaults