Hermes 8c8d4e45e5
CI/CD / lint-and-typecheck (pull_request) Successful in 7s
CI/CD / test (pull_request) Successful in 7s
CI/CD / build (pull_request) Failing after 4m49s
CI/CD / deploy (pull_request) Has been skipped
feat: add camera node case v4 status panel CAD
2026-05-23 11:54:18 +00:00

RemoteRig Central Hub

A central hub for managing remote camera rigs, designed for Raspberry Pi Zero 2 W.

Overview

RemoteRig Central Hub is the control plane for remote camera setups. It connects to camera rigs over MQTT, stores configuration and state in SQLite, and exposes a management API — all from a lightweight Go binary optimized for resource-constrained devices like the Raspberry Pi Zero 2 W.

Tech Stack

Component Technology
Language Go 1.24+
Database SQLite
Messaging MQTT
Configuration YAML (gopkg.in/yaml.v3)
Target Platform Raspberry Pi Zero 2 W (ARMv6)

Project Structure

remote-rig/
├── cmd/
│   └── server/
│       └── main.go         # Application entry point
├── internal/
│   └── db/
│       └── db.go           # SQLite database initialization and schema
├── config.yaml             # Application configuration
├── go.mod                  # Go module definition
├── go.sum                  # Dependency checksums
└── README.md

Prerequisites

  • Go 1.24+Download and install
  • MQTT Broker — e.g., Mosquitto (default: localhost:1883)
  • Raspberry Pi Zero 2 W (or any Linux system — macOS and Windows also work for development)
  • Git — for cloning the repository

Setup

1. Clone the Repository

git clone https://code.cubecraftcreations.com/CubeCraft-Creations/remote-rig.git
cd remote-rig

2. Install Go Dependencies

go mod download

3. Configure

Edit config.yaml to match your environment:

# Database file path (SQLite)
db_path: "remoterig.db"

# API key for endpoint authentication — CHANGE THIS
api_key: "your-secure-api-key-here"

# HTTP server settings
port: 8080
read_timeout: 5s
write_timeout: 10s
idle_timeout: 120s

# MQTT broker connection
mqtt:
  broker: "localhost:1883"
  client_id: "remoterig-hub"

# Target platform
platform:
  type: "pi-zero-2w"
  max_cameras: 16

Key settings to review:

Setting Description Default
api_key API key for authenticating requests changeme (must change)
port HTTP server listen port 8080
mqtt.broker MQTT broker address localhost:1883
mqtt.client_id MQTT client identifier remoterig-hub
platform.type Target platform identifier pi-zero-2w
platform.max_cameras Maximum number of camera rigs 16
db_path SQLite database file path remoterig.db
read_timeout HTTP read timeout 5s
write_timeout HTTP write timeout 10s
idle_timeout HTTP idle connection timeout 120s

Running Locally

Start the hub with:

go run ./cmd/server/

You should see output similar to:

RemoteRig hub starting...
Database: remoterig.db
API key set: true
Server port: 8080
MQTT broker: localhost:1883
Platform: pi-zero-2w (max 16 cameras)
RemoteRig hub ready

Building for Raspberry Pi Zero 2 W

Cross-compile from your development machine:

GOOS=linux GOARCH=arm GOARM=6 go build -o remoterig-hub ./cmd/server/

Copy the binary and config.yaml to your Pi:

scp remoterig-hub config.yaml pi@raspberrypi:/home/pi/remoterig/

Then run on the Pi:

./remoterig-hub

Build Matrix

Target Command
Raspberry Pi Zero 2 W GOOS=linux GOARCH=arm GOARM=6 go build -o remoterig-hub ./cmd/server/
Local (same arch) go build -o remoterig-hub ./cmd/server/
Linux amd64 GOOS=linux GOARCH=amd64 go build -o remoterig-hub ./cmd/server/

Running Tests

go test ./...

License

Proprietary — CubeCraft Creations.

S
Description
No description provided
Readme 24 MiB
Languages
Go 35.3%
TypeScript 24.9%
C++ 15.9%
Shell 14.4%
OpenSCAD 7%
Other 2.5%