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 v2curl -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

Clone the repository (or download the release):

git clone https://github.com/RMPRanoko/rcpCodex.git
cd rcpCodex

The repo is currently private — request access via contact or sign up on the portal.

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

  1. a. Sign up at https://portal.remappedprotocol.org using GitHub, Google, or email link.
  2. b. Click Register Instance — copy the API key shown once.
  3. 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.