A video management system you can actually run yourself
TreeAlarm VMS records, stores and plays back video from IP cameras. It talks ONVIF and RTSP to
the cameras, writes the archive as fragmented MP4, streams live video to the browser over WebRTC,
and runs OpenVINO-based detection on top. It is a set of small services that come up with a single
docker compose up on Linux, or with a native installer on Windows.
What it does
- Video walls with synchronised playback — several cameras on one screen, one shared playhead across every cell, a timeline showing exactly where recordings exist.
- Recording on a schedule and on alarm — continuous or pre-alarm modes, with configurable pre-record and post-record windows, so the seconds before an event are kept too.
- Detection with a review gallery — people, faces and vehicles, each event with cropped thumbnails and bounding boxes drawn over live video.
- Full ONVIF control — network discovery, PTZ with presets, encoder and image settings, relay outputs and digital inputs, device time and reboot.
- PTZ auto-tracking — click an object and the camera keeps it in frame, or let the camera pick its own targets around the clock.
- Maps and floor plans — cameras where they really stand, live detections on the ground, and a PTZ that follows what a fixed camera sees, aimed through the map.
- Search by appearance — find the same person, face or vehicle across every camera over any period, starting from a box on screen or an uploaded photo.
- Archive re-compression — finished clips are re-encoded later with the detected objects kept sharp, so the archive takes noticeably less space while plates and faces stay readable.
Install it
Prebuilt images and one compose file on Linux, or a Windows installer that needs no Docker:
git clone https://github.com/treealarm/ta_install
cd ta_install
docker compose --env-file .env up -d
The web interface comes up on port 5134.
Windows: ta_vms-setup-x64.exe — no Docker; the analytics worker is not part of the Windows build. All downloads →
Works with TreeAlarm
TreeAlarm is a map-based monitoring system. Connect the two and your cameras become objects on the map: select a camera, watch it live or scrub its archive, drive PTZ, and receive VMS alarms in the TreeAlarm event stream — all behind a single sign-in.
Licensing
TreeAlarm VMS is free to use and open source. The VMS itself is MIT-licensed at ta_vms; the analytics worker is video_a under AGPL-3.0. Bug reports and feature requests are welcome in Issues.