Self-hosted setup
Getting started with rcpCodex
Run the full mesh control panel on your own hardware in a few minutes. Everything runs in Docker — no Python environment setup required.
1 Prerequisites
✓
Raspberry Pi 4+ (or any Linux machine — Ubuntu, Debian, x86, ARM64 all work)
✓
Docker + Docker Compose v2 —
curl -fsSL https://get.docker.com | sh ✓
At least one USB radio:
- • Meshtastic: Heltec V3, RAK4631, T-Beam, or any Meshtastic-compatible device
- • Meshcore: Techo device or any Meshcore-compatible hardware
✓
Network access — local LAN for the dashboard; internet optional (needed for relay sync)
2 Get the code
3 Configure .env
Copy the example and edit:
cp .env.example .env
nano .env RCP_DB_PATH Path to the SQLite database. Default: /data/rcp.db RCP_RELAY_URL Set to https://relay.remappedprotocol.org RCP_RELAY_KEY Your relay API key (get one free at portal.remappedprotocol.org) MESHTASTIC_PORT USB port for your Meshtastic radio, e.g. /dev/ttyUSB0 MESHCORE_PORT USB port for your Meshcore radio, e.g. /dev/ttyACM0 Tip: leave USB ports blank — assign them from the Flash & Port Assignment card in the dashboard after starting.
4 Start rcpCodex
docker compose up -d --build Open the dashboard:
http://<your-pi-ip>:8000
First build takes 2–3 minutes. Use docker compose logs -f rcp-app to monitor startup.
5 Connect to the global relay
- a. Sign up at https://portal.remappedprotocol.org using GitHub, Google, or email link.
- b. Click Register Instance — copy the API key shown once.
- c. In rcpCodex, open the Federation card, paste the relay URL and API key, and click Save.
6 Assign radio ports
In the dashboard, go to Flash & Port Assignment. Connected USB radios will appear. Assign each to the correct agent (Meshtastic or Meshcore) and click Save. Agents reconnect automatically — no restart needed.