Skip to content

ReoVault

Unofficial, independent project

ReoVault itself is not affiliated with, endorsed by, or sponsored by Reolink. "Reolink" and any related names, logos, or trademarks belong to their respective owners and are used here only to describe device compatibility. ReoVault talks to cameras through Reolink's own official reolink-cli tool (published under the reolink GitHub organization), never a reimplementation of Reolink's protocol.

Local-first, self-hosted archiving of Reolink camera recordings: pulls recordings off the camera's SD card before the loop-overwrite eats them, verifies them, encrypts them at rest, and stores them durably.

Recordings stay on the camera's own storage day to day; ReoVault periodically pulls them onto your own storage, so you keep a durable, encrypted copy that doesn't depend on the SD card's limited retention.

Why

Reolink cameras record to a microSD card that loop-overwrites once it fills up. Without something pulling recordings off before that happens, older footage is gone permanently, with no local or durable archive of what the camera saw.

Core requirements

  • Reliability: network failures, interrupted downloads, camera restarts, and process restarts are treated as normal conditions, never as reasons to lose data already archived.
  • Deduplication: a recording already archived is never re-downloaded.
  • Integrity verification: archived files are periodically re-verified (checksum + decrypt) so bit rot is caught while a copy still exists elsewhere.
  • Encrypted storage: recordings are encrypted at rest with a passphrase-wrapped master key.
  • No silent failure: alerts (ntfy, webhook, email) when a run fails, recordings need attention, clips on a camera's SD card are at risk of being overwritten before they're archived, or the camera gateway is down.

Architecture at a glance

Camera-specific behavior is isolated behind a provider/adapter boundary, today's implementation talks to cameras through reolink-cli, so adding another camera integration later doesn't touch the archiver, scheduler, storage, or dashboard. See Architecture for the full picture.

Screenshots

Overview: the archive's disk (ReoVault's share, free space, room left, retention) and one tile per camera's SD card with its fill, a timeline of archived, waiting and failed clips, and a verdict Health, per camera: its SD card, its runs, today's footage, and manual runs
Footage: month calendar with activity per day, clips grouped by hour, filterable by detection type, with export Devices: every camera with its status, archive totals, last run and SD card usage
Settings, Schedule: the default archive, deep catch-up, vault check and integrity-scan cadence for every camera Settings, Alerts: configured channels, alerts open right now, and which conditions alert

Where to go next