Running Multiple Rooms
A single room server can host multiple rooms (channels), each with independent access control and settings. This is common for community networks that run both a public room and a private emergency operations room.
Room architecture
In MeshCore, a “room” is a message space with:
- A name (visible to clients connecting to the server)
- An optional PSK (empty = public room; set = encrypted private room)
- Its own message history stored separately
- Its own participant list
Clients choose which rooms to join when they connect to a room server. A client can be in multiple rooms simultaneously.
Example multi-room configuration
rooms:
# Public room - anyone can join, no encryption
- name: "RegionMesh-Public"
psk: ""
description: "Public community channel for the region"
max_history: 1000 # Messages to keep in memory
# Emergency net - shared PSK with authorized operators
- name: "EmergencyNet"
psk: "secretkeyhere"
description: "For emergency coordinators only"
max_history: 500
# Local club - private to members
- name: "ClubNet"
psk: "clubsecretkey"
description: "For club members"
max_history: 200
Distributing room PSKs
PSK distribution should happen through a separate secure channel (encrypted email, in-person, Signal, etc.), not over the mesh network itself. Anyone with the PSK can read all messages in that room — treat it like a shared password and change it if an unauthorized person may have obtained it.
For public emergency preparedness networks, the EmergencyNet PSK is typically shared with vetted local emergency management personnel, ARES/RACES members, and CERT team leads — not published publicly.
Monitoring room activity
The room server exposes a simple status endpoint that can be queried for operational monitoring:
# Number of connected clients per room
curl http://localhost:7070/status
# Or via the room server CLI (if available in your version)
python3 manage.py status
Room server federation
Multiple room servers can be peered together, allowing clients connected to different servers to exchange messages. This is the foundation for multi-city mesh networks where each city runs its own server but they’re all peered.
peers:
- host: "room-server-portland.example.com"
port: 7070
secret: "shared-peer-secret"
- host: "room-server-seattle.example.com"
port: 7070
secret: "shared-peer-secret"
Peered servers exchange messages from all shared rooms. Set a unique peer secret for each server pair — this prevents unauthorized servers from federating with your infrastructure.
No comments to display
No comments to display