How to Build a Private Surveillance Camera on Raspberry Pi Without Clouds and Subscriptions
Buying a ready-made smart home camera almost always involves a compromise. On one hand, it's convenient to open an app on your phone and check what's happening in the room. On the other hand, the video stream from your living room or hallway goes straight to someone else's servers — Amazon, Google, or Chinese no-name vendors. Add to that the regular news about data leaks, paid subscriptions for archive storage, and the risk that a vendor might simply shut down their servers one day.
I recently came across an interesting project called Secluso, which tries to solve this problem the right way. It's a home video surveillance system for Raspberry Pi microcomputers with honest end-to-end encryption (E2EE), where even the intermediate data relay server operates on a zero-trust principle.
Who Is Behind the Project and What's the Idea
The project is developed by Ardalan Amiri Sani, a professor at the University of California, Irvine, specializing in computer security, and engineer John Kachman. The secluso/core repository contains a Rust codebase.
The authors' main idea is simple. The user should get a ready-made solution that can be configured in five minutes, while guaranteeing cryptographic isolation from prying eyes. No closed clouds. Video is encrypted on the Raspberry Pi board and decrypted only on your smartphone.
How the Architecture Works
Most DIY video surveillance solutions like MotionEye or ZoneMinder stumble when it comes to remote access. If you want to watch the stream outside your home Wi-Fi network, you have to deal with static IP addresses, dynamic DNS, port forwarding, or configuring your home gateway.
Secluso solves the problem differently:
- The camera and phone communicate through an intermediate relay.
- Any affordable Linux VPS can serve as the relay.
- The relay server is isolated and has no access to encryption keys. It forwards traffic blindly, seeing only encrypted packets.
All cryptography is designed with threat modeling in mind. The protocol implements forward secrecy and protection against future compromise. If someone gains access to your VPS relay, they'll only see an encrypted binary stream and won't be able to decrypt either archived recordings or the live feed.
Another interesting point is Reproducible Builds. The creators made it so that the runtime binaries, deployment utility, custom Secluso OS image, and Android app can all be compiled from source and byte-verified against official releases. For privacy-focused projects, this approach earns respect.
Hardware Requirements
The component list for getting started is minimal:
- Raspberry Pi Zero 2W board.
- Raspberry Pi Camera Module V1, V2, or any module based on Sony IMX219 / OmniVision OV5647 sensors.
- MicroSD card for writing the image.
- Your own Linux VPS with SSH access for the relay (for testing, the authors offer temporary trial access to their server).
- iOS or Android smartphone.
Setup Process and Impressions
Usually, building systems like this on a Pi turns into endless config tweaking, camera driver installation, and systemd wrangling. The Secluso team wrote a separate desktop utility called Secluso Deploy to eliminate the tedium.
The process looks like this:
- Download Secluso Deploy to your computer.
- The program generates unique encryption keys right on your machine and flashes them into the Secluso OS image.
- The utility connects via SSH to your VPS and automatically deploys the relay server component there.
- Write the ready image to a flash drive, insert it into the Pi Zero 2W, and power it on.
- Download the official app from the App Store or Google Play and scan the pairing QR code generated by Deploy.
After that, your phone connects to the camera. Through the mobile client, you get access to a live video stream, event notifications, and viewing of saved encrypted clips.
Who This Project Is For
Secluso is a great fit for those who:
- Want to keep an eye on their apartment, workshop, or country house without trusting their personal space to third-party services.
- Are looking for a use for a Raspberry Pi Zero 2W gathering dust on a shelf.
- Want to understand the architecture of end-to-end encrypted video streams in Rust and zero-trust relay principles.
The project is still evolving, the list of supported camera sensors is currently limited to common Pi modules, but the core functionality works reliably. If you're tired of closed ecosystems with subscriptions for every gigabyte of video archive, secluso/core is definitely worth checking out. The source code is open under the GPLv3 license, and documentation on the cryptographic model is right there in the repository.
Related projects