Skip to content

Self Hosted Setup

Ranoko edited this page Jun 16, 2026 · 1 revision

Self-Hosted Setup

Run rcpCodex on your own hardware — a Raspberry Pi 4+ or any Linux machine with Docker.


Prerequisites

  • Raspberry Pi 4+ (or any 64-bit Linux box)
  • Docker + Docker Compose installed
  • USB radio: Meshtastic device (Heltec V3, T-Beam, etc.) or Meshcore device (Techo, etc.)
  • Internet connection for relay federation (optional but recommended)

Install Docker:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Log out and back in for group to take effect

Step 1 — Clone the repo

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

Step 2 — Configure .env

Copy the example and fill in your values:

cp .env.example .env
nano .env

Key variables:

RCP_DB_PATH=/data/rcp.db

# Optional: connect to the global relay (get a key at portal.remappedprotocol.org)
RCP_RELAY_URL=https://relay.remappedprotocol.org
RCP_RELAY_KEY=rcp_your_api_key_here

# Optional: lock down admin endpoints if your panel is internet-facing
RCP_API_KEY=choose_a_strong_key_here

Step 3 — Start the panel

docker compose up -d --build

Open http://your-pi-ip:8788 in your browser.


Step 4 — Assign radio ports

In the dashboard, go to the Flash tab → Radio Port Assignment:

  1. Click Scan Ports to detect connected USB radios
  2. Click a port to copy it into the Meshtastic or Meshcore field
  3. Click Save — agents reconnect within ~5 seconds

USB paths on Linux typically look like /dev/serial/by-id/usb-Silicon_Labs_... (stable, won't change when you switch ports).


Step 5 — Connect to the global relay (optional)

  1. Sign up at portal.remappedprotocol.org
  2. Register an instance → copy your API key
  3. Add to .env:
    RCP_RELAY_URL=https://relay.remappedprotocol.org
    RCP_RELAY_KEY=rcp_your_key_here
    
  4. docker compose up -d rcp-app
  5. In the dashboard → Federation tab → Sync Now

Updating

git pull
docker compose up -d --build

Troubleshooting

Agents not connecting to radios:

  • Check docker compose logs rcp-meshtastic-agent --tail=30
  • Verify the port path in the Flash tab is correct
  • Make sure the radio is plugged in and showing as a serial device (ls /dev/serial/by-id/)

Panel won't start:

  • Check docker compose logs rcp-app --tail=50
  • Verify RCP_DB_PATH directory exists and is writable

Relay sync failing:

  • Check docker compose logs rcp-app | grep -i relay
  • Confirm your API key is correct in .env