Free & Open Source
Project announcement: Free and Open Source

Simpleye
Simple, self‑hosted camera monitoring.

Self‑hosted. Private. Minimal. Bring your own cameras and keep your video on your network.

Current Features

Built to be simple, private, and reliable

Add cameras in seconds

Point Simpleye at your camera’s IP and HTTP port; give it a name, done. Admin‑only for safety.

Live MJPEG previews

See what’s happening right now with low‑latency MJPEG streams in your browser.

One‑click checks

Validate connectivity, port open status, and record last online time with a single click.

Self‑hosted & private

Your video never leaves your network. No cloud, no vendor lock‑in, no tracking.

Lightweight stack

Flask + MongoDB with MJPEG streaming. Runs well on modest hardware and in containers.

Roles & permissions

Admin‑only management operations with a clear first‑run signup gate.

System health

Container health checks via GET /health so your orchestrator knows when it’s ready.

Open source

MIT‑licensed and built for the community. Contributions welcome!

How it Works

Simple architecture: Browser ↔ Flask (Gunicorn) ↔ MongoDB; Flask ↔ IP Cameras (MJPEG)

1

Run with Docker

Start Simpleye using Docker Compose with MongoDB, or a single Docker run command.

2

Create first admin

On first boot, if no users exist, sign up the first admin account to enter the app.

3

Add your cameras

Provide camera name, IP, port, and MJPEG endpoint. Management is admin‑only.

4

View streams

Open the dashboard or use the per‑camera viewer to see MJPEG in your browser.

5

Check health

Use one‑click connectivity checks and the /health endpoint for orchestration.