Commit Graph

447 Commits

Author SHA1 Message Date
Louis King f1dc155a0f Move Webhooks and Custom Content sections to dedicated docs 2026-04-17 22:38:15 +01:00
Louis King ccadfa73fd Remove redundant docker-compose commands, move ARM note to Simple Self-Hosted Setup 2026-04-17 22:28:19 +01:00
Louis King d565e2d7a2 Add ARM/Raspberry Pi note for observer service with native install guidance 2026-04-17 22:25:18 +01:00
Louis King bba1dce1ad Fix acknowledgments: add meshcore-mqtt-broker, remove outdated packet-capture image note 2026-04-17 22:16:04 +01:00
Louis King 668e0c5c89 Add critical rule: never git push without explicit confirmation 2026-04-17 22:00:47 +01:00
Louis King 2cea27a85f Move translation guide to docs/i18n.md, update all references 2026-04-17 21:58:36 +01:00
Louis King dfda1a3ec1 Combine Setup and Manual Installation into single Development section 2026-04-17 21:47:47 +01:00
Louis King 34f6b69803 Move Seed Data to docs/seeding.md, move Manual Installation to Development, note packet-capture Docker image 2026-04-17 21:01:37 +01:00
Louis King 0b0a755400 Promote Feature Flags heading to same level as other config sections 2026-04-17 20:54:24 +01:00
Louis King cdfe18ff20 Move Reverse Proxy section to Production Setup, restore Feature Flags heading 2026-04-17 20:52:30 +01:00
Louis King 0e87f906b4 Move Nginx Proxy Manager setup to docs/hosting/, add Reverse Proxy section with links 2026-04-17 20:48:48 +01:00
Louis King 03afe57a16 Move UPGRADING.md to docs/ with versioned headings, extract LetsMesh decoding to docs/letsmesh.md 2026-04-17 20:41:37 +01:00
Louis King 57e7197eea Add docs-sync skill for documentation accuracy auditing
Custom skill that audits and fixes discrepancies between source code
(Pydantic Settings, Click CLI, Docker Compose) and primary documentation
files (README.md, AGENTS.md, UPGRADING.md, .env.example, SCHEMAS.md).
2026-04-17 18:16:58 +01:00
Louis King 5bec26e5ff Align MQTT_TRANSPORT and MQTT_WS_PATH defaults with MeshCore broker requirements
The MeshCore MQTT broker requires WebSocket transport, but Python defaults
were still tcp and /mqtt from the Mosquitto era. Align all defaults to
websockets and / to match Docker Compose and documented behavior.

Also fixes docs-sync audit findings:
- Remove stale PLAN.md/TASKS.md references from AGENTS.md
- Add missing NETWORK_DOMAIN, NETWORK_NAME vars to AGENTS.md env list
- Add missing WEBHOOK_CHANNEL_MESSAGE_SECRET and WEBHOOK_DIRECT_MESSAGE_SECRET
  to AGENTS.md webhook table
- Add native install note for MQTT_HOST in .env.example
- Update UPGRADING.md note to reflect aligned defaults
2026-04-17 18:16:25 +01:00
Louis King 179e3bd39b Add tests to improve patch coverage for PR #148
Covers duplicate event dedup/observer paths, IntegrityError handling,
sender name resolution, observer lists in API responses, subscriber
dispatch lifecycle, MQTT retry, and CLI group/run/seed commands.
2026-04-17 17:27:06 +01:00
Louis King 8d8d52afea Fix 'all' profile services list in README to include mqtt and observer 2026-04-16 23:51:44 +01:00
Louis King f0b44d28ab Rename Docker volumes: hub_data→data, mqtt_broker_data→mqtt_data; rename db-migrate service to migrate 2026-04-16 23:47:34 +01:00
Louis King b5fc4c06a0 Rename receiver profile to observer, packet-capture service to observer, hub-dev fallback to hub
- Rename compose profile 'receiver' -> 'observer' across all docs
- Rename docker-compose service 'packet-capture' -> 'observer' and volume
  'packetcapture_data' -> 'observer_data'
- Change COMPOSE_PROJECT_NAME fallback from 'hub-dev' to 'hub' across all
  compose files, Makefile, .env, docs
- Remove legacy interface-mock service from test compose file
2026-04-16 23:12:22 +01:00
Louis King 3614eaf24b Restructure README: move profiles to Getting Started, add Production Setup, remove Multi-Instance
- Move Docker Compose Profiles section under Getting Started before Simple Self-Hosted Setup
- Add Production Setup section with reverse proxy config and Traefik instructions
- Remove Multi-Instance Deployment section
2026-04-16 22:54:03 +01:00
Louis King 0a37010db6 Remove bundled Prometheus/Alertmanager, fix Getting Started and docker compose examples
- Remove monitoring services from all docker compose files — monitoring is now
  user-managed infrastructure (users point their own Prometheus at /metrics)
- Remove metrics profile, prometheus/alertmanager volumes from Makefile
- Update README Getting Started: packet capture is included via --profile receiver,
  not a separate prerequisite; add remote observers guide
- Add --profile all to all docker compose command examples in README and UPGRADING.md
- Simplify UPGRADING.md backup/migration to only meshcore_hub_data
2026-04-16 22:47:07 +01:00
Louis King ac18c80675 Fix upgrade backup instructions: use actual old volume names, remove non-existent volumes
The backup commands referenced COMPOSE_PROJECT_NAME and volumes (packetcapture_data,
mqtt_broker_data, mosquitto_data) that don't exist on pre-upgrade installs. Rewrote
backup step with explicit meshcore_* volume names, removed Mosquitto/mqtt-broker
migration sections, and added Makefile fallback for COMPOSE_PROJECT_NAME.
2026-04-16 22:17:30 +01:00
Louis King 0427378a18 Fix inaccuracies in UPGRADING.md: move MQTT creds to update section, add Python defaults note, document received_at rename 2026-04-14 22:53:08 +01:00
Louis King 1e4a75f074 Rename COLLECTOR_LETSMESH_DECODER_KEYS to COLLECTOR_CHANNEL_KEYS
Simplify the variable name to remove the legacy LetsMesh decoder prefix.
Also fix unparenthesized except tuples in web/app.py and promote the
parenthesized-exception rule to a prominent position in AGENTS.md.
2026-04-14 22:41:27 +01:00
Louis King 0302c0c661 Add channel filter to Messages page, fix channel label display and decoder key parsing
- Add Channel dropdown filter to Messages page (uses existing API channel_idx param)
- Add i18n keys: entities.channel, common.all_channels
- Stop auto-prefixing # on non-hashtag channel labels (Ipswich, IPNet, etc.)
- Strip quotes from decoder key entries to fix .env parsing in Docker Compose
- Add debug logging for decoder initialization and failed decryption
- Fix except syntax (AttributeError, TypeError -> parenthesized tuple)
2026-04-14 22:05:00 +01:00
Louis King aeac44e8c7 Fix stale DOMAIN reference in traefik override comment 2026-04-14 20:43:59 +01:00
Louis King f4648d7fe7 Split Docker Compose into base/dev/prod/traefik overrides with multi-instance support
- Split docker-compose.yml into base config + environment overrides
  - docker-compose.dev.yml: port mappings for local development
  - docker-compose.prod.yml: external proxy-net network, no exposed ports
  - docker-compose.traefik.yml: optional Traefik auto-discovery labels
- Parameterize container and volume names with COMPOSE_PROJECT_NAME
  - Default: hub-dev (containers: hub-dev-api, volumes: hub-dev_hub_data)
  - Override per instance for multi-instance deployments (hub-prod, hub-beta)
- Add Makefile with build/up/down/logs/backup/restore targets
- Add TRAEFIK_DOMAIN env var for Traefik routing configuration
- Update UPGRADING.md with volume migration instructions (rename + copy methods)
- Update README.md with multi-instance deployment and backup/restore sections
2026-04-14 20:41:26 +01:00
Louis King 123dc180f0 Move warning block above screenshot in README 2026-04-13 22:52:08 +01:00
Louis King f2c8581b10 Remove stale COLLECTOR_INGEST_MODE reference from docker-compose comment 2026-04-13 22:50:07 +01:00
Louis King 2d35249711 Remove stale .claude/ and .plans/ directories 2026-04-13 22:43:40 +01:00
Louis King 700b4a0888 Remove stale references to deleted PROMPT.md, PLAN.md, TASKS.md from README 2026-04-13 22:37:47 +01:00
Louis King dbd68e9a9f Replace obsolete MQTT broker image with custom build, add connection retry and upgrade docs
- Add custom Dockerfile for meshcore-mqtt-broker (Node 22 Alpine, built from michaelhart/meshcore-mqtt-broker source)
- Add GitHub Actions workflow for weekly multi-arch MQTT broker image builds
- Add local build script (etc/docker/meshcore-mqtt-broker/build.sh)
- Update docker-compose.yml and test compose to use new ghcr.io image
- Add MQTT connection retry logic with exponential backoff to collector subscriber
- Create UPGRADING.md with migration guide for breaking changes
- Update README.md and AGENTS.md for accuracy (Python 3.14, removed commands, fixed MQTT defaults)
- Remove obsolete files (etc/mosquitto.conf, .agentmap.yaml, CLAUDE.md)
2026-04-13 22:27:39 +01:00
Louis King fb6913ac3d Merge branch 'feat/meshcore-packet-capture-receiver' of github.com:ipnet-mesh/meshcore-hub into feat/meshcore-packet-capture-receiver 2026-04-12 18:04:18 +01:00
Louis King bf6b86696c Migrate from Node.js meshcore-decoder CLI to native Python meshcoredecoder library
Replace subprocess-based packet decoding with native Python meshcoredecoder>=0.3.2.
The decoder is now always enabled (no toggle), removing ENABLED/COMMAND/TIMEOUT
config vars. Adds _enrich_payload_decoded() to compensate for payload classes that
lack to_dict() overrides in the library. Removes Node.js/npm from Dockerfile and
deletes the patches/ directory. Adds parenthesized exception rule to AGENTS.md.
2026-04-12 18:03:20 +01:00
JingleManSweep 397084eff5 Merge branch 'main' into feat/meshcore-packet-capture-receiver 2026-04-12 14:23:10 +01:00
Louis King 8b54228c94 Merge branch 'main' of github.com:ipnet-mesh/meshcore-hub into feat/meshcore-packet-capture-receiver 2026-04-12 14:22:45 +01:00
Louis King 58499c420b Replace native interface with external packet capture and rename receiver to observer
Remove the meshcore_interface component in favor of external
meshcore-packet-capture for data ingestion. Rename receiver_node_id
to observer_node_id across all models, schemas, handlers, and API
routes. Add Alembic migration for the column/table renames. Fix
frontend JS property name mismatch that prevented the Receiver column
from displaying observer data.
2026-04-12 14:07:14 +01:00
Louis King c7655b5242 Add external packet capture receiver to Docker Compose
Integrate the meshcore-packet-capture image as an alternative to the
native interface-receiver, reorganize compose profiles so the receiver
profile uses packet capture while native-receiver covers the built-in
and mock receivers, and switch the default collector ingest mode to
letsmesh_upload.
2026-04-11 18:37:32 +01:00
Louis King 9664d4ee76 Fix Starlette 1.0 incompatibility and bump to Python 3.14
Pin starlette<1.0.0 to avoid TemplateResponse breaking change, update
the TemplateResponse call to new-style request-first signature, and
bump Python version to 3.14 across Dockerfile, pyproject.toml, and
pre-commit hooks.
2026-04-11 18:33:26 +01:00
JingleManSweep 92ff1ab306 Merge pull request #146 from ipnet-mesh/chore/codecov-tests
Add Test upload
2026-03-18 12:05:17 +00:00
JingleManSweep 0e2a24caa6 Upgrade Codecov action and specify report type
Updated Codecov action to version 5 and added report type.
2026-03-18 12:03:05 +00:00
JingleManSweep ff36a991af Update ci.yml 2026-03-18 11:57:23 +00:00
JingleManSweep fa1a2ecc17 Add Codecov badge to README
Added Codecov badge to README for coverage tracking.
2026-03-18 11:55:06 +00:00
JingleManSweep 9099ffb0cb Merge pull request #145 from ipnet-mesh/fix/codecov-default
Add push trigger for CI on main branch
2026-03-18 11:42:37 +00:00
JingleManSweep f8219b4626 Add push trigger for CI on main branch 2026-03-18 11:39:42 +00:00
JingleManSweep 27b78d6904 Merge pull request #144 from ipnet-mesh/chore/add-codecov
Add CODECOV_TOKEN to CI workflow
2026-03-18 11:32:45 +00:00
JingleManSweep d4c3e127a2 Add CODECOV_TOKEN to CI workflow 2026-03-18 11:23:32 +00:00
JingleManSweep 92e9ccdbfa Merge pull request #143 from ipnet-mesh/feature/multibyte-support
feat: support multibyte path hashes for MeshCore firmware v1.14+
v0.8.2
2026-03-17 23:02:51 +00:00
Louis King 29b5820ed1 feat: support multibyte path hashes for MeshCore firmware v1.14+
Update path hash handling to accept variable-length hex-encoded hashes
(e.g. "4a" for single-byte, "b3fa" for multibyte) instead of requiring
exactly 2-character hashes. Bump meshcore dependency to >=2.3.0.

- Update normalizer to accept even-length hex strings >= 2 chars
- Update schemas and model docstrings for variable-length hashes
- Add tests for multibyte and mixed-length path hash round-trips
- Fix web test flakiness from local .env datetime locale leaking
2026-03-17 22:59:29 +00:00
JingleManSweep 889aa32e3a Merge pull request #142 from ipnet-mesh/fix/security-fixes
fix: harden security across auth, XSS, and proxy trust
v0.8.1
2026-03-09 22:57:33 +00:00
Louis King 3c3873951d chore: add agentmap and security fixes planning files 2026-03-09 22:54:53 +00:00