Moonfire NVR: Free and Open-Source – Install and Run a Powerful CCTV System in Minutes with Docker (Setup Guide) (2025)

CCTV

Hazem Abbas

6 min read

Moonfire NVR: Free and Open-Source – Install and Run a Powerful CCTV System in Minutes with Docker (Setup Guide) (2)

Moonfire NVR, originally developed by Scott Lamb, is an open-source network video recorder designed to capture H.264-over-RTSP streams from IP cameras efficiently. It saves video frames to disk while storing metadata in a SQLite3 database, keeping CPU usage low by skipping video decoding or re-encoding.

A Raspberry Pi 2 can handle six 1080p/30fps streams with less than 10% CPU load.

The web interface offers basic functionality, such as a filterable video list and trimming tools, with an experimental live view. However, it lacks motion detection, HTTPS support, and an intuitive web-based configuration UI.

Moonfire NVR is still in early development (pre-1.0), so expect evolving formats and configurations.

It is important to note that Moonfire NVR app lacks native HTTPS/ TLS support, requiring a proxy server for secure connections.

Features

  • RTSP support: Captures H.264-over-RTSP streams from IP cameras, ensuring compatibility with a wide range of devices.
  • Stores video frames on spinning disks for efficient storage.
  • Saves metadata in a SQLite3 database on flash storage for fast access.
  • Generates .mp4 files for any selected time range in real-time without delays.
  • Skips video decoding, analysis, and re-encoding to minimize resource consumption.
  • Runs six 1080p/30fps streams on a Raspberry Pi 2 using less than 10% CPU.
  • Provides a filterable list of video segments and trimming tools for easy management.
  • Offers an experimental live view UI.
  • Runs on minimal hardware like Raspberry Pi, making it a cost-effective solution.
  • Future updates aim to include video analytics and advanced functionalities.
  • Pre-1.0 version with evolving storage and configuration formats.
  • Console-based configuration UI, with web-based setup planned for the future.

Install Moonfire NVR with Docker

In the following is the docker-compose.yml file.

version: 3services: moonfire-nvr: # The `vX.Y.Z` images will work on any architecture (x86-64, arm, or # aarch64); just pick the correct version. image: ghcr.io/scottlamb/moonfire-nvr:v0.7.11 command: run volumes: # Pass through `/var/lib/moonfire-nvr` from the host. - "/var/lib/moonfire-nvr:/var/lib/moonfire-nvr" # Pass through `/etc/moonfire-nvr.toml` from the host. # Be sure to create `/etc/moonfire-nvr.toml` first (see below). # Docker will "helpfully" create a directory by this name otherwise. - "/etc/moonfire-nvr.toml:/etc/moonfire-nvr.toml:ro" # Pass through `/var/tmp` from the host. # SQLite expects to be able to create temporary files in this dir, which # is not created in Moonfire's minimal Docker image. # See: <https://www.sqlite.org/tempfiles.html> - "/var/tmp:/var/tmp" # Add additional mount lines here for each sample file directory # outside of /var/lib/moonfire-nvr, e.g.: # - "/media/nvr:/media/nvr" # The Docker image doesn't include the time zone database; you must mount # it from the host for Moonfire to support local time. - "/usr/share/zoneinfo:/usr/share/zoneinfo:ro" # Edit this to match your `moonfire-nvr` user. # Note that Docker will not honor names from the host here, even if # `/etc/passwd` is passed through. # - Be sure to run the `useradd` command below first. # - Then run `echo $(id -u moonfire-nvr):$(id -g moonfire-nvr)` to see # what should be filled in here. user: UID:GID # Uncomment this if Moonfire fails with `clock_gettime failed` (likely on # older 32-bit hosts). <https://github.com/moby/moby/issues/40734> # security_opt: # - seccomp:unconfined environment: # Edit zone below to taste. The `:` is functional. TZ: ":America/Los_Angeles" RUST_BACKTRACE: 1 # docker's default log driver won't rotate logs properly, and will throw # away logs when you destroy and recreate the container. Using journald # solves these problems. # <https://docs.docker.com/config/containers/logging/configure/> logging: driver: journald options: tag: moonfire-nvr restart: unless-stopped ports: - "8080:8080/tcp"

License

GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007

Resources & Downloads

GitHub - scottlamb/moonfire-nvr: Moonfire NVR, a security camera network video recorder

Moonfire NVR, a security camera network video recorder - scottlamb/moonfire-nvr

Moonfire NVR: Free and Open-Source – Install and Run a Powerful CCTV System in Minutes with Docker (Setup Guide) (3)GitHubscottlamb

Moonfire NVR: Free and Open-Source – Install and Run a Powerful CCTV System in Minutes with Docker (Setup Guide) (4)

More open-source CCTV solutions

16 Free CCTV Pentesting Tools To Test Your CCTV Cameras and Feeds SecurityWhile there are many commercial and open-source CCTV systems available for home and business security, many people are unaware that these systems also require security testing. This is crucial to ensure that no unauthorized users have logged in or are accessing unsecured CCTV camera feeds. Best 20 Free Open-source CCTV,MEDevel.com: Open-source for Healthcare, and EducationHazem Abbas
Shinobi: Build Your Own Free Surveillance CCTV NVR System in Minutes with Easy Docker InstallationShinobi is the Open Source CCTV Solution written in Node.JS. Designed with multiple account system, Streams by WebSocket, and Direct saving to MP4. Shinobi can record IP Cameras and Local Cameras.MEDevel.com: Open-source for Healthcare, and EducationHazem Abbas
Motion and MotionPlus is Your to Go Free CCTV and NVR SystemMotion and MotionPlus are highly configurable software programs designed to monitor video signals from various types of cameras and perform specified actions upon detecting movement. Motion, the original software, has been in use since 2000, offering a robust solution for video monitoring needs. MotionPlus is a newly developed application builtMEDevel.com: Open-source for Healthcare, and EducationLeo Jan
DeepCamera: Advanced AI-Powered Video Analytics for Your CCTV and NVR SystemsOpen-Source AI Camera. Empower any camera/CCTV with state-of-the-art AI, including facial recognition, person recognition(RE-ID) car detection, fall detection and moreMEDevel.com: Open-source for Healthcare, and EducationLeo Jan
Viseron: Set Up Your Own Free Local CCTV NVR Using Docker (Step-by-Step Tutorial)Viseron is an open-source self-hosted CCTV and local-first NVR solution with AI-powered computer vision support. It comes with amazing powerful features as Object detection, motion detection, face recognition, image classification, and supports hardware acceleration. Key features * Object Detection: YOLOv3/v4/v7 (OpenCV), Tensorflow (Google Coral EdgeTPU), CodeProject.AI * Motion DetectionMEDevel.com: Open-source for Healthcare, and EducationHazem Abbas
SmartCCTV: Build Your Own Free AI-Powered Raspberry Pi CCTV SystemBuild your own home Raspberry Pi-powered surveillance IoT camera with Face recognition, access your live feed from any deviceMEDevel.com: Open-source for Healthcare, and EducationHazem Abbas
Top 8 Free CCTV Solutions For Home Security and Small BusinessesWhat is an open-source CCTV? An open-source CCTV system is a type of security camera system that is developed using open-source software. This means that the source code for the software is freely available to the public, allowing developers to modify and improve upon the system as needed. Open-source CCTVMEDevel.com: Open-source for Healthcare, and EducationHazem Abbas
16 Open-source Projects to Build a CCTV System With Raspberry PiRaspberry Pi is still the most popular affordable SBC (Single Board Computer). It is used as the core in many of projects for education, healthcare, security, and IoT. In this post, we list the best Raspberry Pi project that will give good alternatives for anyone who want to build theirMEDevel.com: Open-source for Healthcare, and EducationHazem Abbas


CCTV RTSP NVR - Network Video Recorder DVR RaspberryPi Linux Kali Linux Arch Linux Linux Mint Manjaro Ubuntu Fedora Debian Windows macos


Moonfire NVR: Free and Open-Source – Install and Run a Powerful CCTV System in Minutes with Docker (Setup Guide) (2025)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Carmelo Roob

Last Updated:

Views: 5633

Rating: 4.4 / 5 (65 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Carmelo Roob

Birthday: 1995-01-09

Address: Apt. 915 481 Sipes Cliff, New Gonzalobury, CO 80176

Phone: +6773780339780

Job: Sales Executive

Hobby: Gaming, Jogging, Rugby, Video gaming, Handball, Ice skating, Web surfing

Introduction: My name is Carmelo Roob, I am a modern, handsome, delightful, comfortable, attractive, vast, good person who loves writing and wants to share my knowledge and understanding with you.