Secluso

An open source, end-to-end encrypted home security camera solution (Pi Zero 2W). Easy to setup with GUI deploy tool. Fully E2EE remote access (live streaming & smart motion alerts) via mobile app and untrusted self-hostable relay.

No Security Audit Open Source

Secluso Source Code

Author

secluso

Description

A privacy-preserving Raspberry Pi home security camera that uses advanced end-to-end encryption.

#alternative#blink#camera#e2ee#end-to-end-encrypted#end-to-end-encryption#home#home-security#ip-camera#local-ai#nest#pi#privacy#privacy-tools#raspberry#raspberrypi#ring#security#security-camera#self-hosted

Homepage

https://secluso.com

Repository

  • LicenseGPL-3.0
  • Created26 Nov 24
  • Primary languageRust
  • Size34,625 KB
  • Stars1,652
  • Forks50
  • Watchers1,652

Language Usage

Language Usage

Project Health

  • Last commit6 days ago
  • Open issues36
  • Latest releasev1.0.2

Top Contributors

Recent Commits

  • Ardalan Amiri Sani(08 Aug 26)

    Support more than one secondary app. (#139) Currently, the camera hub only allows adding one secondary app. This PR adds support for more than one such app. Fixes #50. Note: this PR builds on top of the android-camera branch, which is still not merged. I've marked android-camera to be the base branch in the PR so that the the new code added here will be easier to review. Once android-camera is merged, I'll change the base branch to main in order to merge into main.

  • Ardalan Amiri Sani(08 Aug 26)

    Add support for Android camera. (#138) This PR adds support for using an Android device as a security camera. In contrast to previous cameras, we use the relay for pairing here. The two phones still use a QR code to exchange a secret, but use the relay after that to complete the pairing process.

  • John Kaczman(23 Jul 26)

    Honor ROCKET_LOG_LEVEL, add Deploy Tool server verbosity setting (#119) Adds a setting in the deploy tool that allows the server's verbosity to be set (the env var in the systemd unit) when provisioning a server. Helpful for when needing to debug the server. Fixed ROCKET_LOG_LEVEL environmental variable not working by explicitly reading it and passing it into Rocket's config. <img width="915" height="100" alt="Screenshot 2026-06-18 at 7 29 32 AM" src="https://github.com/user-attachments/assets/3fc1f67d-d65a-467b-b4fc-0fa8fb2e767a" /> [Rocket Docs](https://rocket.rs/guide/v0.5/deploying/#fully-managed)

  • Ardalan Amiri Sani(22 Jul 26)

    Update reset code based on the new OS image. Update ambient light threshold in toggle. (#118) Updated and tested reset and toggle with the new OS. fixes https://github.com/secluso/os/issues/20

  • John Kaczman(22 Jul 26)

    Deploy Tool: exclude libwayland, disable WebKit DMABuf renderer (#121) Exclude libwayland: new version of Mesa has some dependency issues with libwayland-client if it is bundled, https://github.com/AppImageCommunity/pkg2appimage/pull/559, https://gitlab.freedesktop.org/mesa/mesa/-/issues/11316 https://github.com/tauri-apps/tauri/issues/9304: webkit2gtk is broken under 2.44 with Nvidia GPUs, disable via WEBKIT_DISABLE_DMABUF_RENDERER for fallback to portable compositing fixes #113

  • John Kaczman(22 Jul 26)

    Deploy Tool: add advanced-user hint mentioning relay setup script (#134) fixes #128 <img width="759" height="581" alt="Screenshot 2026-06-28 at 9 57 48 AM" src="https://github.com/user-attachments/assets/883e3b9e-cd23-4c06-9a23-e924aefb94f0" />

  • John Kaczman(21 Jul 26)

    Support IMX708 (Camera Module V3) (#116) Adds auto-detection in the camera-hub to check for IMX708 (Camera Module V3) and, if present, accept it with the resolution of 1920 x 1080 (cropped). An uncropped resolution would not be possible without a significant decrease in resolution due to the 1080p 30fps limit imposed by the VideoCore IV GPU ([limitations discussed here](https://github.com/hermanhermitage/videocoreiv/wiki/VideoCore-IV---BCM2835-Overview)). 2304x1296 is over 1080p and thus cannot be used (as seen in the image below): <img width="647" height="119" alt="Screenshot 2026-06-13 at 11 00 53 AM" src="https://github.com/user-attachments/assets/0fe84612-7b40-4279-acac-02fb1e14e540" /> Pairs with https://github.com/secluso/os/pull/37 Fixes https://github.com/secluso/core/issues/130

  • Ardalan Amiri Sani(30 Jun 26)

    (1) Use the server to send messages between apps when adding an app. (2) Support notifications for multiple apps in the server. (#132) This PR provides the functionality needed to support multiple (mobile_client) apps to use one camera. Fixes https://github.com/secluso/mobile_client/issues/50

  • John Kaczman(28 Jun 26)

    Move pairing into a module & split logic up into sub-modules. Clean up pairing code. (#123) In preparation for adding BLE logic, worked on making the pairing code easier to work with and more modular. Split some functions up into multiple, fixed some areas that weren't propagating errors, simplified some unnecessary complex logic.

  • John Kaczman(16 Jun 26)

    Don't overwrite AppImage magic hex (#112) The deterministic AppImage Deploy Tool build created by the reproducible build release script has an incorrect header that does not conform to the [AppImage Specification Type 2 image format](https://github.com/AppImage/AppImageSpec/blob/74ad9ca2f94bf864a4a0dac1f369dd4f00bd1c28/draft.md). The magic hex needs to match what they've outlined in that specification (and discussed in the below GitHub issue). <img width="453" height="536" alt="Screenshot 2026-06-02 at 4 38 06 PM" src="https://github.com/user-attachments/assets/c98e3792-49a4-40c5-9a77-4bd2bbb56a39" /> The way we emit a deterministic AppImage is via a normal build, and then taking it apart and re-building it back together to be deterministic (introduced in https://github.com/secluso/core/commit/e1c692179ec6333a91312a2231b4b6f4a30ea21f). However, when we were putting it back together, we were overwriting the magic hex that's meant to be in the header with the size of the runtime. Since libappimage is capable of knowing the size of the runtime without us explicitly saying so (as seen below), this is unnecessary and a bug. Removing the overwrite fixes the issue, and correctly maintains the proper magic hex. <img width="617" height="215" alt="Screenshot 2026-06-02 at 4 37 36 PM" src="https://github.com/user-attachments/assets/bd31005e-a3b8-497e-9d38-5054c1e37cc4" /> <img width="600" height="295" alt="Screenshot 2026-06-02 at 4 37 46 PM" src="https://github.com/user-attachments/assets/0b780678-51a5-41c5-958a-894357dd12ce" /> (https://github.com/AppImage/AppImageKit/blob/master/src/runtime.c, https://github.com/AppImageCommunity/libappimage/blob/f8f106b42911aea53e3fa1618e9198b1bbd3bfc9/src/libappimage/utils/ElfFile.h#L16) fixes #111

  • John Kaczman(16 Jun 26)

    Adds alternative relay install method; script that user runs on server, doesn't need SSH credentials (#115) Adds a manual alternative install method for users that do not wish to use the Deploy Tool and give ssh credentials. Mirrors what the Deploy Tool does, but does it on the server itself; it does not need an external connection such as SSH. As in, it will take care of everything such as downloading dependencies, setting up services, verifying the signatures from both maintainers, generating credentials, etc. Some areas diverge, such as user credential generation. Instead of using the Rust config_tool code to do this, for simplification purposes, /dev/urandom and [qrencode](https://github.com/fukuchi/libqrencode) are used as command line utilities to avoid having to re-build config tool from scratch (as it's not in the pre-built binary release). The script itself is very intuitive. It's fairly easy to use; the only required parameter is the external URL of the server itself. It guides the user through the installation process, and at the end asks them to confirm with a curated curl command to ensure that their personal machine is able to connect to the server.

  • John Kaczman(16 Jun 26)

    Add secluso-toggle lock file to repository (#114) In order to add the secluso-toggle crate to the OS, we must add its lock file to the repository. This is needed to ensure reproducible builds, and [cargo-update-recipe-crates](https://docs.yoctoproject.org/dev/ref-manual/classes.html#cargo-update-recipe-crates) requires it to build the toggle recipe. Therefore, I have added it in this PR.

  • John Kaczman(30 May 26)

    GitHub action to double check reproducibility of runtime binaries (#99) * chore: update crate toml and lock files to 1.0.2 * feat(releases): add github workflow to perform reproducibility check of runtime binaries re https://github.com/secluso/core/issues/94 * fix(releases): try ubuntu-24.04-arm to check reproducible binaries in git action * fix(releases): correctly check sha256sum of manifest file * feat(releases): update workflow to use (all, release) target/profile * feat(releases): add release-x64, release-arm64 profiles to support new action * feat(releases): separate arm and x86-64 binary jobs for native runner support * fix: correctly set ubuntu-24.04 in x64 build * feat: emit hash directly in build log * fix: fix spacing issue * fix: hash manifest before changing directories

  • John Kaczman(30 May 26)

    GitHub action to double check reproducibility of linux deploy tool (#100) * chore: update crate toml and lock files to 1.0.2 * feat(releases): check reproducibility of linux deploy tool in workflow * fix: remove old mentions of 'binaries' in workflow file * feat: emit hash directly in build log * fix: fix spacing issue

  • John Kaczman(30 May 26)

    GitHub action to double check reproducibility of windows deploy tool (#101) * chore: update crate toml and lock files to 1.0.2 * feat(releases): check reproducibility of windows deploy tool in workflow * fix: replace remaining Linux references * feat: emit the hash directly in build log * fix: add missing manifest copy to runner temp dir * fix: hash manifest before changing directories

  • John Kaczman(30 May 26)

    Make unsigned macOS deploy tool builds deterministic (#102) * chore: update crate toml and lock files to 1.0.2 * feat(releases): don't ad-hoc sign macOS deploy tool builds * feat(releases): emit sha256 hash of macOS app folder instead of entire artifact * fix: debug overall hash via internal file logs * fix(releases): Remove nondeterministic timestamp path from output that get hashed * fix(releases): use quotes around variable in git action

  • jkaczman(20 May 26)

    chore: update short lived windows cert hash

  • jkaczman(18 May 26)

    chore: update crate toml and lock files to 1.0.2

  • jkaczman(18 May 26)

    chore: update short-lived windows cert hash

  • jkaczman(17 May 26)

    chore: bump deploy tool to 1.0.1

  • jkaczman(17 May 26)

    fix(update): record both signing key and primary key for verification

  • jkaczman(17 May 26)

    fix(releases): point apt at pinned debian snapshot

  • jkaczman(17 May 26)

    feat(deploy): image download progress bar; fix listener-attach race

  • jkaczman(17 May 26)

    fix(deploy): fix Windows SSH keyfile auth via openssl-on-win32 + hash-pinned prebuilt OpenSSL

  • jkaczman(17 May 26)

    chore: update short-lived windows cert hash

  • jkaczman(16 May 26)

    fix(releases): ensure libgpg error bundled with libgcrypt

  • jkaczman(16 May 26)

    fix(releases): only rename crate_name in camera_hub when names actually differ to avoid self-move

  • jkaczman(16 May 26)

    fix(deploy): set default OS repository to secluso/os

  • jkaczman(16 May 26)

    fix(update): enforce secluso/os release immutability fix #92

  • jkaczman(16 May 26)

    feat(deploy): generate ssh-key for user

Secluso Website

Website

Secluso | Completely Private Security Camera

Secluso is a completely private home security camera with end-to-end encryption, verifiable open software, on-device AI, and an encrypted cloud relay buffer that Secluso cannot decrypt.

Redirects

Does not redirect

Security Checks

All 65 security checks passed

Server Details

  • IP Address99.84.132.67
  • Hostnameserver-99-84-132-67.atl59.r.cloudfront.net
  • LocationAtlanta,Georgia,United States of America,NA
  • ISPAmazon.com Inc.
  • ASNAS16509

Associated Countries

  • USUS

Safety Score

Website marked as safe

100%

Blacklist Check

secluso.com was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

Secluso Android App

APK Info

Trackers

No trackers found

    Permissions

    • Access Fine Location
    • Access Network State
    • Access Wifi State
    • Camera
    • Change Network State
    • Change Wifi State
    • Foreground Service
    • Internet
    • Nearby Wifi Devices
    • Post Notifications
    • Read External Storage
    • Receive Boot Completed
    • Record Audio
    • Vibrate
    • Wake Lock
    • Write External Storage
    • Check License
    • Receive
    • Dynamic Receiver Not Exported Permission

    Secluso Reviews

    More Security Cameras

    ⚠️ This section is still a work in progress ⚠️
    Check back soon, or help us complete it by submiting a pull request on GitHub.
    Or submit an entry here

    About the Data: Secluso

    Change History

    Edit Secluso Data

    You can edit Secluso's entry in this section of awesome-privacy.yml by submitting a PR to our GitHub repo.
    Note that some of the information shown above has been aggregated from external sources, a list of these can be found data documentation.

    Origin Data

    Modify Data

    API

    You can access Secluso's data programmatically via our API. Simply make a GET request to:

    https://api.awesome-privacy.xyz/v1/services/secluso

    The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

    Share Secluso

    Help your friends compare Security Cameras, and pick privacy-respecting software and services.
    Share Secluso and Awesome Privacy with your network!