Skip to content

v1.0.0

Choose a tag to compare

@gmrandazzo gmrandazzo released this 31 Jul 22:45
· 31 commits to main since this release
cb0bfbf

CheapSecurity 1.0.0

Stable release of the lightweight, self-hosted CCTV solution for Linux SBCs.

What's new

  • Night-mode strength profiles — choose low, normal, or aggressive software low-light enhancement from the dashboard, API, or Telegram.
  • Optional IR / night camera — configure a second V4L2 device that is opened automatically when night mode is toggled, with automatic fallback to the day camera.
  • Telegram bot improvements:
    • New commands: /snapshot, /video, /sent, /delete, /delete_range, /id, /telegram_on/off, /email_on/off, /night_mode_on/off, /night_mode <strength>, /help.
    • Exponential-backoff retries on network and server errors.
    • Sent message IDs are tracked so you can delete recent uploads from chat.
    • /delete_range now deletes every message ID in the requested range.
  • Manual video recording fix — re-encoded clips now keep the correct playback duration.
  • Dashboard updates — night-mode strength dropdown, active camera indicator (day vs IR/night), and better status feedback.
  • GitHub Actions CI pipeline — runs ruff, mypy, and pytest on pull requests and on pushes to main/develop.
  • Camera reconnect resilience — the engine keeps retrying with backoff if the USB camera temporarily drops off the bus, instead of halting.

Configuration highlights

See config.json.example for the new optional camera block:

"camera": {
  "night_mode_strength": "low",
  "night_device": 1,
  "night_device_width": 1280,
  "night_device_height": 720,
  "night_device_fps": 25,
  "night_software_enhance": true
}

Requirements

  • Python 3.10+
  • OpenCV with V4L2 support
  • A USB webcam (/dev/video0 by default)
  • Optional: Telegram bot token, SMTP credentials

Notes

  • If you experience USB camera resets on boards like the Odroid XU4, disable USB autosuspend (usbcore.autosuspend=-1) or use a powered USB hub.
  • The dual-camera feature keeps only one camera open at a time to avoid saturating the USB bus.

What's Changed

New Contributors

Full Changelog: https://github.com/gmrandazzo/CheapSecurity/commits/v1.0.0