Free & Open Source
Project announcement: Free and Open Source

FAQ

What cameras are supported?

Simpleye works with common IP cameras that expose RTSP streams (for recording) and MJPEG/HTTP endpoints (for live preview/embedding). Provide a full RTSP URL when configuring recording.

Do I need an account to use Simpleye?

Yes. If no users exist, Simpleye prompts you to create the first admin account before allowing access.

What user roles exist?

Admin users can add, edit, and delete cameras. Management operations require admin privileges. Viewers can create clips but cannot delete others’ clips.

How do I reset a password?

There is an optional forced password setup/reset flow. Use the web UI and follow the prompts. Admins can require resets if needed.

Which ports does Simpleye use?

By default, the container exposes port 8000. You can map it as needed in Docker or Compose.

How does health checking work?

GET /health is used for container health and orchestration checks.

How does recording work?

Recording uses FFmpeg to write HLS segments by default, or OpenCV to capture JPEG frames if you switch modes. Each camera can have its own retention (hours), bitrate, segment length, and JPEG FPS/quality settings.

Where are recordings stored and how are they cleaned up?

Recordings are written under RECORDINGS_DIR (in Docker Compose, this is mounted at /data/recordings). Per‑camera layout:

/data/recordings/<camera_id>/YYYY/MM/DD/HH/MM/

A background janitor deletes minute folders older than each camera’s retention_hours (default 24h). Cleanup runs every 5 minutes.

Can I make and download clips?

Yes. On a camera’s Review page, you can create clips (HLS only) by selecting start/stop. You can play clips inline, download MP4s, rename them, and delete clips you created. Admins can delete any clip.

How do environment variables work with Docker Compose and Portainer?

docker-compose auto‑loads variables from the project‑root .env into the web container via the environment section—no env_file is required. In Portainer or other orchestrators, set MONGO_URI, MONGO_DB, and FLASK_SECRET_KEY as container environment variables; no .env inside the container is needed. The MongoDB service in compose is behind the local-db profile and only starts if you pass --profile local-db.