Features
Simpleye is an easy‑to‑use, self‑hosted dashboard for monitoring IP cameras — no cloud, no vendor lock‑in.
Camera management
- Add, edit, and delete IP cameras (admin only)
- Label cameras with names, IPs, ports, and endpoints
Live viewing
- View MJPEG streams in the browser
- Direct stream endpoint per camera
Recording & review
- Recording modes: HLS (FFmpeg, default) or JPEG frames
- Per‑camera settings: Retention (hours), HLS bitrate, segment length, FPS/JPEG quality
- Review timeline: Day → Hour → Minute with per‑second jumps; seamless HLS playback across minutes
Clips
- Create clips from recordings (HLS only) with start/stop times
- Play clips inline, download MP4s, rename; creators or admins can delete
Health checks
- One‑click connectivity check (port open test) with last status and timestamp
Authentication & first‑run flow
- First user signup gate; subsequent access requires login
- Optional forced password setup/reset
Roles & permissions
- Admin‑only camera management operations
System health
- /health endpoint for container/service checks
How it Works
Simpleye is a Flask web application with a MongoDB backend. The UI is server‑rendered and serves MJPEG streams from configured cameras. Recording uses FFmpeg for HLS (default) or OpenCV for JPEG frames. Containers are the default way to run it in production.
- Backend: Flask (gunicorn in Docker), Python 3.12
- Database: MongoDB
- Streaming: MJPEG via camera endpoints; FFmpeg available in container for media tasks and HLS recording
- Containerization: Docker + docker-compose
- Healthcheck: HTTP GET /health on internal port 8000