IP Camera Alarm Server: Open-source Universal Alarm Server for all your IP Cameras
Table of Content
What is The IP Camera Alarm Server?
The IP Camera Alarm Server is a Docker-based application designed to act as a central hub for managing alarm notifications from various IP cameras.
In essence, this mobile application simplifies the process of receiving and routing alarm notifications from diverse IP cameras to various automation or monitoring systems.
The Alarm Server listens for incoming alarm notifications from configured cameras using their specific protocols. Upon receiving an alert, it processes the information and relays it via the configured delivery method (MQTT or Webhook). It also periodically publishes a status message (e.g., to an MQTT topic like /camera-alerts
) to indicate its operational state.

Features
Its key features include:
- Universal Compatibility: It supports a wide range of IP camera brands and models, including Hikvision (and variants like Annke/Alarm.com), Dahua (including Lorex/Amcrest), Hisilicon (XmEye-based cameras), and essentially any camera capable of sending alarm notifications via FTP.
- Centralized Management: It consolidates alarm events from multiple different cameras into a single point of handling.
- Integration & Automation: The server is designed to integrate smoothly with popular home automation platforms like Home Assistant and Node-RED, facilitating automated responses to camera alarms.
- Lightweight: It is suitable for running on low-powered devices such as a Raspberry Pi.
- Multiple Delivery Options: It can forward the received alarm events using standard protocols, specifically supporting delivery via MQTT and Webhooks.
Supported Camera Types:
- Hikvision (Including brands like Annke, Alarm.com)
- Dahua (Including brands like Lorex, Amcrest)
- Hisilicon (Cameras using the XmEye app, often no-name Chinese brands)
- FTP-Capable Cameras: Any IP camera that can upload alarm information via the FTP protocol.
Supported Alert Delivery Methods:
- MQTT: Publishes alarm events to an MQTT broker for easy integration.
- Webhooks: Sends HTTP POST requests to a specified URL upon receiving an alarm.
Specific Camera Server Detail
- HiSilicon Server: Designed for cameras using the XmEye ecosystem. These often require Internet Explorer for their web interface. The server listens on a configurable port (e.g., 15002) for alarm connections.
- Dahua Server: Connects directly to Dahua (and OEM) cameras via their API to subscribe to events. Configuration requires the camera's IP, username, and password.
- Hikvision Server: Connects to Hikvision cameras using HTTP streaming to receive events. It includes an alternative connection method (
rawTcp
) for cameras with known streaming issues. Hikvision cameras can also utilize the FTP server. - FTP Server: Accepts alarm uploads via FTP. The camera's FTP username can be used to identify the source camera, and a configured password must match. While files can be saved, alarm processing occurs before the file transfer begins, ensuring speed.
Configuration
Configuration is managed through a config.yaml
file placed in the application's working directory.
This file specifies which camera servers are enabled, their settings (ports, credentials), and the MQTT broker details for alert delivery.
Deployment
The application is readily deployable using Docker. A pre-built multi-architecture image (toxuin/alarmserver
) is available, simplifying installation on various systems, including x86 machines and Raspberry Pis.
Running it involves mapping the configuration file and necessary ports (like FTP 21 or HiSilicon 15002) into the container.
Tested Cameras
- 3xLogic VX-2M-2D-RIA (Hikvision server)
- Uniden U-Bell DB1 (also known as Hikvision DS-KB6003, LaView LV-PDB1630-U and RCA HSDB2A)
- Misecu 5MP Wifi AI Cam (Hisilicon server)
- Lorex N8428-Z 4K NVR (Dahua server)
- Hiseeu HB613-P 3 MP (Hisilicon server, tested by abratchik)
- HomeViz OB10, K4W10, OW10 (Hisilicon server, tested by acburnett)
Install using Docker
docker run -d -v $PWD/config.yml:/config.yml -v $PWD/ftp:/ftp -p 21:21 -p 15002:15002 toxuin/alarmserver
Community & Feedback
Originally developed for personal use, the project benefits greatly from community input. Users are encouraged to share their experiences, camera compatibility, and feature requests by creating issues on the project's repository.
This feedback helps improve the software for a wider range of use cases.
License
MIT License