Self-hosted—Buy once, use forever—Made in Germany—GDPR-compliant

Everything in view, no matter where you are.
Cloud cameras cost €5–15 per camera and month — forever. With 20 cameras that's over €2,000 per year. And the footage sits on third-party servers, often outside the EU.
Tools like Frigate are powerful — but every camera is manually added to config files, notifications need Home Assistant, and there is no support.
Motion detection reports every branch in the wind and every cat. After the tenth pointless alert, you turn off alarms — and miss exactly the one moment that mattered.

Freely selectable model size — lean on the mini-PC, maximally accurate on the server. Fewer false alarms — the AI filters WHAT moves, not just THAT something moves. No special hardware — no accelerator chip required.
Detects: person, car, truck, bicycle, motorcycle, dog, cat and more.

Network scan finds cameras automatically (RTSP, RTMP, ONVIF). All common manufacturers in one dashboard. Connect with one click — no config file, no scripts. Unlimited cameras — no per-camera license.
Example scan: 10.0.10.0/24,10.0.20.0/24,10.0.30.0/24 → 6 devices found.
Only when the AI detects something relevant does the notification go out — on the channel your team already uses: Email, MS Teams, Telegram, WhatsApp, Signal, Discord, Webhook, Home Assistant.
100% local — hard drive or NAS, freely selectable path. Freely adjustable retention — e.g. the 72-hour deletion period of the supervisory authorities. No third-country transfer — works completely without internet.
In 2021, attackers at cloud provider Verkada saw live feeds of 97 customers — including clinics and factories. Stored locally, this wouldn't have happened.

Runs anywhere Docker runs — Windows, macOS, Linux, NAS. A small PC or your NAS is enough — 24/7, low-power. Remote access via your own domain possible.
$ Unzip → start script → open browser → running.
Frigate is a strong open-source project — for those who enjoy configuring. LocalEye is for those who want a finished product. The honest comparison:
| LocalEye | Frigate / Frigate+ | |
|---|---|---|
| Camera integration | Automatically found via network scan | Manually per camera via YAML |
| Operation | Completely via web interface | Config files + UI |
| AI model | Freely selectable, downloads automatically | Preset; tuning only via subscription ($50/year) |
| Notifications | 8+ channels built in | Via Home Assistant / MQTT / third-party tools |
| Additional hardware | Not required | HW acceleration practically mandatory |
| Support | Direct manufacturer support | Community, no SLA |
| Cost | From €27.90 one-time | Free + hardware + setup time |
As of July 2026, Frigate v0.17. Frigate is a project/trademark of its respective rights holders.

Many cameras, multiple sites, clear data protection requirements. LocalEye runs on existing hardware, IT keeps control — and system houses deliver with the white-label edition under their own name.

Workshop, farm, home: a small PC or the NAS is enough. One-time €27.90 instead of monthly cloud fees — and your own recordings stay in your own house.
All cameras that speak RTSP, RTMP or ONVIF — practically all common IP cameras (Hikvision, Dahua, Reolink, Axis, UniFi and many more). Only pure cloud cameras that communicate exclusively with the manufacturer's cloud cannot be integrated — however, this applies to any local solution.
No. LocalEye runs on normal PC, server or NAS hardware. You simply choose an AI model that fits your hardware — from a frugal mini-PC to a server with a large model.
Exclusively with you: on the hard drive of your system or a path of your choice (e.g. NAS). There is no cloud upload. LocalEye also works completely without internet.
The one-time purchase includes the full software with all features and unlimited cameras — permanently. Optionally, there is LocalEye Updates for automatic updates and new features. Without a subscription, your version simply continues to run unchanged.
Unlimited. There are no Pro camera licenses. The practical limit is set only by your hardware.
Yes — via the channel you already use: Telegram, WhatsApp, Signal, Microsoft Teams, Discord, email or via webhook into systems like Home Assistant.
License plate recognition is in progress and will appear as one of the next features.
LocalEye provides the technical basis for this: local processing without transfer to third countries, access only for you — and freely configurable retention periods, with which you can directly implement, for example, the 72-hour deletion period recommended by the supervisory authorities. The legally compliant design remains the responsibility of the operator, as with any system.
Installation on any system — adjust ZIP name, port and IP examples below per product.
DSM → Package Center → search for Container Manager and install.
DSM → Control Panel → Terminal & SNMP → enable SSH.
ssh admin@SYNOLOGY-IP
scp produktname_release.zip admin@SYNOLOGY-IP:/volume1/docker/
ssh admin@SYNOLOGY-IP
cd /volume1/docker
unzip produktname_release.zip -d produktname
cd produktname
cp .env.example .env
./manage.sh update
WebUI: http://SYNOLOGY-IP:PORT — Login: admin / admin
💡 Synology DSM 7.2+ with Container Manager 20.10+ recommended. Path /volume1/docker/ adjust if necessary.
---
No unzip needed – extract the ZIP with Python 3 (available on every NAS):
python3 -c "import zipfile; zipfile.ZipFile('localeye_release.zip').extractall('localeye')"
cd localeye
---
Open docker-compose.yml and adjust the following values: | Variable | Default | Description | |---|---|---| | SECRET_KEY | CHANGE_ME_... | Please change! Any random string | | PROTECT_HOST | empty | IP of your UniFi controller (optional) | | PROTECT_API_KEY | empty | UniFi Protect API Key (optional) | | MQTT_HOST | localhost | IP of your MQTT broker | | TZ | Europe/Berlin | Your time zone | For a simple installation it is sufficient to change SECRET_KEY. Example:
# Generate random secret key:
openssl rand -hex 32
---
docker compose up -d --build && docker compose logs -f localeye
On first start this takes 2–5 minutes (image download + build). After the build the Web UI address appears automatically in the terminal:
✓ Server started successfully
Web UI reachable at:
➜ Local: http://localhost:8987
➜ Network: http://YOUR-IP:8987
With Ctrl+C you can close the log view — LocalEye keeps running in the background. Check status:
docker compose ps
---
http://YOUR-IP:8987
Default login:
adminadmin⚠️ Please change the password immediately after first login! Settings → Users → Change password ---
Direct via RTSP/RTSPS/ONVIF (without go2rtc): | Manufacturer | Protocol | |---|---| | Hikvision | RTSP, ISAPI | | Dahua | RTSP, ONVIF | | Reolink | RTSP, ONVIF | | TP-Link Tapo | RTSP, native via go2rtc | | Axis | RTSP, ONVIF | | Amcrest | RTSP, ONVIF | | Bosch | RTSP, ONVIF | | Hanwha / Samsung | RTSP, ONVIF | | Uniview (UNV) | RTSP, ONVIF | | Vivotek | RTSP, ONVIF | | Mobotix | RTSP, ONVIF | | Pelco | RTSP, ONVIF | | All ONVIF-compatible cameras | ONVIF |
Via go2rtc (HTTP/MJPEG/HLS/specific protocols): | Manufacturer / Type | Protocol via go2rtc | |---|---| | EZVIZ | RTSP (via go2rtc) | | Ring | native | | DoorBird | native | | Wyze | native | | Xiaomi / Mi | native | | Tuya cameras | native | | USB webcams | FFmpeg | | HTTP-MJPEG streams | HTTP | | HLS streams | HTTP | | UniFi Protect | Native API (no go2rtc needed) |
LocalEye uses go2rtc as an integrated streaming layer between camera and interface. This brings three decisive advantages:
# go2rtc.yaml — Examples
streams:
entrance:
- rtsp://user:password@1.2.3.4:554/Streaming/Channels/101
tapo_kitchen:
- tapo://user:password@1.2.3.4
mjpeg_cam:
- http://1.2.3.4:8080/?action=stream
ring_door:
- ring://...
# General
rtsp://user:password@1.2.3.4:554/stream
# TP-Link Tapo
rtsp://user:password@1.2.3.4:554/stream1
# Hikvision
rtsp://user:password@1.2.3.4:554/Streaming/Channels/101
# Reolink
rtsp://user:password@1.2.3.4:554/h264Preview_01_main
# Dahua
rtsp://user:password@1.2.3.4:554/cam/realmonitor?channel=1&subtype=0
# HTTP-MJPEG (via go2rtc)
http://1.2.3.4:8080/?action=stream
---
Object detection runs by default with YOLOX (Apache-2.0 license, freely resellable, no AGPL issue). Model selectable in docker-compose.yml via AI_MODEL:
| Model | Suitability | |--------------|------------------------------------------| | yolox_nano | Small & very fast, less accurate | | yolox_tiny | Fast, moderate accuracy | | yolox_s | Standard (Default) – good compromise | | yolox_m | More accurate, higher CPU load |
The model can also be switched at runtime in the LocalEye interface under Settings → System (no container restart needed).
For servers with NVIDIA GPU, RF-DETR-Small (Roboflow, Apache-2.0) is additionally available — higher accuracy with GPU-accelerated inference. Requirement: NVIDIA drivers and nvidia-container-toolkit on the host.
In docker-compose.yml activate the commented-out GPU block:
build:
context: ./backend
dockerfile: Dockerfile.gpu
environment:
- AI_MODEL=rfdetr_small
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
After that: docker compose up -d --build
---
| Port | Service | |------|--------| | 8987 | LocalEye WebUI | | 1984 | go2rtc (Streaming) | | 8554 | RTSP-Proxy | | 8555 | WebRTC | | 1883 | MQTT | ---
All data is in the same directory as the docker-compose.yml:
localeye/
├── config/ → Settings, cameras, users
├── recordings/ → Video recordings
├── snapshots/ → Camera snapshots
└── docker-compose.yml
---
For external access I recommend Nginx Proxy Manager:
- Domain: localeye.your-domain.de - Forward: http://NAS-IP:8987 - SSL: Activate Let's Encrypt ---
cd localeye
docker compose down
docker compose up -d --build && docker compose logs -f localeye
---
For questions or problems: 📧 service@localeye.shop ---
This software is licensed for private and commercial use. Resale or distribution of the source code is not permitted. © 2026 LocalEye
The standard - plus 19% VAT.
The standard in the feature subscription with annual payment - plus 19% VAT.
For IT & Admins - plus 19% VAT
For system houses with annual payment - plus 19% VAT