MiBeeNvr

module
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2026 License: MIT

README

MiBee NVR

GitHub Release CI Go Svelte SQLite Docker Raspberry Pi

A lightweight, easy-to-use Network Video Recorder designed for simplicity. Single binary, zero config hassle — just run and go.

Built for Raspberry Pi and low-power devices. Supports mainstream protocols: RTSP (H.264/H.265/MJPEG), HTTP JPEG, HLS streaming, ONVIF discovery, WebRTC (WHEP), HTTP-FLV, RTMP ingest, and SRT receiver.

中文

Screenshots

Login Dashboard Settings

Core Features

  • Camera Protocols: RTSP (H.264/H.265/MJPEG), HTTP JPEG, ONVIF discovery & management
  • Recording: Automatic MP4 segments, multi-camera concurrent, per-camera retention
  • Live View: Multi-protocol streaming — HLS, WebRTC (WHEP), HTTP-FLV, RTMP ingest, SRT receiver
  • Segment Merge: Auto or manual merge, global + per-camera policies
  • Web UI: Dark/light theme, responsive, i18n (EN/ZH), Chart.js dashboards
  • Smart Home: MQTT trigger-based recording, WebDAV/FTP file access
  • Single Binary: Zero dependencies, embedded SPA, CGO_ENABLED=0
  • Xiaomi Support: CS2 P2P protocol, cloud auth (community-driven, not core focus)

Roadmap

Status Protocol / Feature Notes
✅ Done RTSP (H.264/H.265/MJPEG) Core streaming protocol
✅ Done HTTP JPEG IP camera snapshot streaming
✅ Done HLS On-demand live streaming
✅ Done ONVIF Discovery, PTZ, stream URI
✅ Done Xiaomi (CS2 P2P) Cloud auth, H.264/H.265 — community support
✅ Done RTMP Push/pull streaming
✅ Done SRT Low-latency transport
✅ Done HTTP-FLV Browser-friendly live streaming
✅ Done WebRTC Sub-second latency live view

Quick Start

Download the latest binary from GitHub Releases:

# AMD64 (most PCs/servers)
wget https://github.com/Mi-Bee-Studio/MiBeeNvr/releases/latest/download/mibee-nvr-amd64
chmod +x mibee-nvr-amd64

# ARM64 (Raspberry Pi, etc.)
wget https://github.com/Mi-Bee-Studio/MiBeeNvr/releases/latest/download/mibee-nvr-arm64
chmod +x mibee-nvr-arm64

Initialize config and start:

./mibee-nvr-amd64 init --password yourpassword
./mibee-nvr-amd64 -config mibee-nvr.yaml

Open http://localhost:9090 to access the Web UI.

Option 2: Docker
mkdir -p data
cp config.example.yaml data/mibee-nvr.yaml
# Edit data/mibee-nvr.yaml — set password, add cameras
docker compose up -d

Open http://localhost:9090 to access the Web UI. See docker-compose.yml for details.

Option 3: One-click Install
curl -fsSL https://raw.githubusercontent.com/Mi-Bee-Studio/MiBeeNvr/main/install.sh | sudo bash

This downloads the binary, creates a system user (nvr), generates config, installs a systemd service, and starts it. Data directory: /var/lib/mibee-nvr.

Option 4: Build from Source
git clone https://github.com/Mi-Bee-Studio/MiBeeNvr.git
cd MiBeeNvr
make build
./mibee-nvr init --password yourpassword
./mibee-nvr -config mibee-nvr.yaml

For detailed setup, see Getting Started.

Documentation

Document Description
Getting Started Installation, first camera setup
Configuration Full config reference
API Reference REST API documentation
MediaMTX Guide MediaMTX integration for CSI cameras
Deployment systemd, reverse proxy, cross-compile
Xiaomi Setup Xiaomi cloud camera integration
make build              # Local build (current architecture)
make cross              # Cross-compile ARM64 binary
make test               # Run tests
make lint               # Run linter

Docker Container Images

For quick deployment, see docker-compose.yml:

docker compose up -d

Two build methods are available:

  • Multi-stage build (Dockerfile): Compiles frontend + backend inside the container. Requires network to pull base images.
  • Cross-compile build (Dockerfile.arm64): Cross-compiles on the host, packages with scratch base image. No QEMU needed.
# Build amd64 image (multi-stage)
make docker-build

# Build arm64 image (host cross-compile + scratch packaging)
make docker-build-arm64

# Build all architectures
make docker-build-all

# Push to registry (requires docker/podman login first)
make docker-push              # Push amd64
make docker-push-arm64        # Push arm64
make docker-push-all          # Push all

# Build and push in one shot
make docker-release

Images are published to GitHub Container Registry on version tags:

Image Architectures
ghcr.io/mi-bee-studio/mibeenvr:<tag> amd64, arm64

Available tags: latest, v1.2.3 (semver), sha-abc1234

Project Structure

cmd/mibee-nvr/       # Entry point
internal/            # Core packages
  api/               # REST API handlers
  camera/            # Camera manager
  recorder/          # H.264/H.265/MJPEG recording engines
  hls/               # HLS streaming manager
  storage/           # SQLite DB + file manager
  config/            # YAML config
  middleware/        # Auth middleware
  muxer/             # MP4 muxer
  ftp/               # FTP server
  webdav/            # WebDAV server (configurable read-only/read-write)
  mqtt/              # MQTT client
  ui/                # Embedded web UI
  xiaomi/            # Xiaomi camera support (built-in, CS2 P2P, cloud auth)
web/                 # Svelte 5 frontend
deploy/              # systemd services
docs/                # Documentation (EN/ZH)

Contributing

  1. Run make lint before submitting
  2. Add tests for new features
  3. Write clear commit messages

License

MIT License © Mi&Bee Studio

Directories

Path Synopsis
cmd
mibee-nvr command
internal
ai
Package ai defines the interface for AI-powered object detection.
Package ai defines the interface for AI-powered object detection.
api
flv
ftp
hls
srt
ui
xiaomi
Package xiaomi implements Xiaomi camera support for MiBee NVR, including CS2 P2P transport, MISS protocol, cloud authentication, and HLS live streaming via model.HLSProvider.
Package xiaomi implements Xiaomi camera support for MiBee NVR, including CS2 P2P transport, MISS protocol, cloud authentication, and HLS live streaming via model.HLSProvider.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL