Video surveillance is no longer something reserved for the wealthy or for large corporations. In one form or another, a video surveillance system now turns up almost everywhere — in the smallest businesses, in ordinary (not just high-end) residential buildings, in car parks, even in the stairwells of apartment blocks. And the best part for anyone on a budget is that you can build one yourself, with no installer and no monthly cloud bill, using nothing more exotic than a tiny single-board computer.
This guide walks through building a low-cost, self-hosted video surveillance system on a Raspberry Pi: a setup where the recording and the analytics run on your own hardware, on your own network, and your footage never leaves your control. We’ll use the Xeoma video surveillance software as the “brain”, because it runs on ARM (and therefore on a Raspberry Pi) and offers a wide range of features — but the hardware approach applies to almost any VMS that supports Linux ARM.
Budget surveillance vs. free surveillance
It’s worth separating two ideas that often get confused.
A budget video surveillance system is one you assemble cheaply, usually by doing the work yourself instead of paying an integrator — that alone is a significant saving. A free system is a different question (we cover whether video surveillance can be done entirely for free in a separate article).
You can push the budget down further with a “use what you already have” approach — repurposing a spare computer or laptop as the surveillance host. That has obvious upsides (almost nothing to buy) but also drawbacks: higher power draw from a full-size machine left running 24/7, and the risk that using the computer for everyday tasks interferes with the surveillance running on it. This guide takes the cleaner route: a small computer dedicated to the job, which is exactly what a Raspberry Pi is good for.
Why a Raspberry Pi — and why it doesn’t have to be one
There’s no hard requirement to use a Raspberry Pi specifically. Because the Xeoma video monitoring software runs on both Intel/AMD architectures and on ARM, you can pick whatever microcomputer (or mini PC) suits your needs. What the Raspberry Pi gives a beginner is popularity: more tutorials, more compatible software, more forums where someone has already solved your problem. It’s silent, low-power, and capable enough for a modest camera setup, so it remains a sensible default.
The current flagship is the Raspberry Pi 5 (released October 2023):
- Broadcom BCM2712 quad-core Arm Cortex-A76 @ 2.4 GHz (roughly 2–3× faster than the Pi 4)
- RAM options from 1 GB up to 16 GB (LPDDR4X)
- VideoCore VII GPU, dual micro-HDMI (up to 4Kp60), H.265 hardware decode
- Gigabit Ethernet (PoE+ with an optional HAT), dual-band Wi-Fi 5, Bluetooth 5.0
- 2× USB 3.0 and 2× USB 2.0 ports
- PCIe 2.0 x1 — so you can add an M.2 NVMe SSD via a HAT, which is excellent for recording storage
A few practical notes that have changed recently and matter for a build:
- Active cooling is expected. The Pi 5 runs best with a fan or an active-cooler case, especially under a constant surveillance load. A heat-dissipating metal case is an alternative, though it can slightly dampen Wi-Fi.
- Power. The Pi 5 wants a proper 5V/5A (27 W) USB-C supply; an underpowered charger will cause instability.
- The price caveat. Through late 2025 and into 2026 a global DRAM shortage pushed Raspberry Pi prices up significantly (the 16 GB Pi 5 climbed well past its original launch price). Raspberry Pi responded with a 1 GB Pi 5 at around $45, which is the budget entry point and is perfectly fine for a headless surveillance appliance. Still, with higher-RAM boards now pricier, a small mini PC (for example, an Intel N100 box) is a legitimate alternative — sometimes for similar money you get an x86 machine with more I/O. As Pi users themselves often point out: pay a little more and you’re into mini-PC territory. Choose based on what you actually need.
If you want to go even smaller and cheaper, a Raspberry Pi Zero 2 W can work for a single light stream, and a Raspberry Pi 4 is still perfectly capable. Older boards like the Pi 3 are best avoided for this: limited real-world network throughput and no 64-bit comfort margin.
What you’ll need
To build the system, gather:
- A Raspberry Pi (Pi 4 or Pi 5 recommended) with a microSD card or, better, an SSD for the recording archive
- One or more cameras — an IP camera is the most flexible choice, but a USB camera or the Pi camera module works too
- A network: Ethernet (preferred for stability) or Wi-Fi
- Peripherals for the initial setup: a monitor, keyboard and mouse (you can remove these later)
- The video surveillance software that will act as the hub. Here that’s Xeoma, chosen for its breadth of features — not just basic motion detection and GPIO/pin control, but AI-based analytics such as licence-plate recognition (ANPR), face recognition, and more unusual tools like emotion detection, colour search, crowd detection and parking-space monitoring
Think about cooling and storage up front: a fan or active-cooler case for the Pi, and enough fast storage (a USB SSD, an M.2 NVMe via HAT on the Pi 5, or a network share) for the footage you intend to keep.
Step 1 — Install the operating system
With the parts connected — storage, network, keyboard, mouse, monitor — install the OS. The logical choice is the vendor’s own Raspberry Pi OS (formerly Raspbian), which is current and supported on every recent model. Note that the Pi 5 requires an up-to-date OS image; older Raspbian releases won’t boot on it. Recent Raspberry Pi OS builds are based on Debian and ship as 64-bit.
The easiest method is Raspberry Pi Imager: download and run it on another computer, insert the microSD card (or SSD), and let it write the OS for you. It can also pre-configure Wi-Fi, hostname, SSH and user account before first boot — handy for a headless build.
Remember the architecture you install (32-bit or 64-bit). You’ll need it later when downloading the surveillance software: a 32-bit OS takes the ARMv7 build, a 64-bit OS takes the ARMv8 build. On a Pi 4 or Pi 5 you’ll normally run 64-bit, i.e. ARMv8.
You can install Raspberry Pi OS with or without a desktop, depending on how you plan to work. If you’ll manage and view everything from the Pi itself, install the desktop. If the Pi will run as a quiet, headless server and you’ll connect from another device — a phone, tablet or laptop — the Lite (no-desktop) image is leaner. Both routes are covered below.
Step 2 — Connect and verify your cameras
Before touching the surveillance software, connect your cameras and confirm they work, following each camera’s own instructions. For an IP camera, the quick test is to type its IP address into a browser on the same network: if its web interface opens, the camera is reachable and you’re ready to bring it into the VMS. USB and Pi-module cameras are detected directly by the host.
Step 3 — Install the video surveillance software (desktop version)
Prefer to watch? Here’s a video guide to working with Xeoma on Linux:
(See headless below)
For Linux ARM the choice of full-featured surveillance programs is small, and it narrows further the more analytics you want — which is part of why Xeoma fits here. With a desktop installed, the steps are:
1. Download the program. On the Pi, open the Xeoma download page and choose the ARM tab (it’s pre-selected if you visit from a Raspberry Pi). You’ll see a couple of choices:
- Beta vs. release. Usually they match. If the beta carries a higher version number, check the changelog — if it contains something you need, use it; otherwise take the more stable release build.
- ARMv7 vs. ARMv8. This must match your OS architecture: ARMv7 for a 32-bit OS, ARMv8 for a 64-bit OS. Pick the wrong one and the program won’t start.
The download is a .tgz archive containing a single xeoma.app file, which holds both the server and the client parts — you run whichever you need. (You can also download on another machine and copy it over on a USB stick.)
2. Extract it. Right-click the .tgz and choose “Extract here”. The resulting xeoma.app behaves like any ordinary application.
3. Launch it. Double-click xeoma.app. Notably, it runs immediately — there’s no separate installation step required just to open it; the interface appears after a couple of seconds while the program starts its components.
4. Read the welcome screen. On first launch Xeoma shows a welcome window with useful tips and direct links to features (such as installation). It’s worth reading; you can reopen the tips later via the “!” icon in the lower right.
Working with the software: cameras and module chains
After the welcome screen you’re in the main interface. On first start the program automatically searches your local network for cameras, so found devices may already be on screen — USB cameras and the Pi camera module are detected first. A progress bar appears at the lower right; stop it once your cameras have been added. If the search finishes and nothing was added, open the add-camera menu (the + icon on the bottom panel) and look there — cameras protected by a login only appear once you enter their credentials.
Features in Xeoma are mostly represented as modules — icons connected by a line, an arrangement called a chain. Open “Detailed settings” (the gear icon) to see the chain configured for a given camera. Read a chain left to right: the first module is the source (the image), the stream flows rightward through subsequent modules, and usually ends in destination modules. Filter modules in between sift the stream. For example, the Motion Detector (added by default in many Xeoma editions) checks whether there’s motion that meets your criteria; if yes, the stream passes further down the chain — to other filters or to response modules; if not, it’s filtered out and never reaches the modules on the right.
The Motion Detector isn’t mandatory — you can remove it or swap it for other filters. Some features aren’t modules at all but menu options (PTZ control, or access rights for cameras and functions, for instance); those are documented in the user manual.
Editions and activation
Xeoma has several editions — modes with different feature sets: Free and Trial (both free), plus Lite, Standard and Pro (paid).
- The Free edition is genuinely free and ad-free, but with one key limitation: no remote connection. It can only run on the same computer it’s installed on — which also means it needs a desktop (it can’t be used on a headless OS). If you installed the desktop, you can run the Free edition here, but you’ll only review footage on the Pi itself; you do still get motion-detection notifications, a simple but genuinely useful free feature set.
- The paid editions add remote access, more cameras and more analytics. Pricing is published openly on the site; as a rough guide it starts around $15 per camera for a perpetual Lite licence, with Standard available in the $9-$33 per camera range, and Pro – in the $28-$99 per camera range (monthly rent is also an option for Standard and Pro). Even at the low end, this stays a genuinely budget system. (Check the current price list, as editions and prices change.)
Don’t leave the program in the Trial edition. Trial is for testing only: settings reset after a short period with no way to save them, so you’d be reconfiguring from scratch each time. For permanent use, switch to Free or activate a paid licence.
To switch to Free: Main menu → Registration → Switch to another version → Switch to the free version. To activate a purchased licence: Main menu → Registration → Activate (your licence email includes instructions). Without a licence the program defaults to Trial each time it starts.
Autostart: install it as a service
When you first opened the program, no installation was needed. But if the Pi is going to run unattended, you’ll want the surveillance software to start automatically with the system, so it comes back up after a reboot or power cut. Do this via Main menu → Install → Install. For this kind of appliance it’s best to install the server part only as the autostart service, and launch the client manually (from the desktop shortcut) when you want to look at cameras.
Remote access
Viewing your cameras and recordings remotely, changing settings and exporting clips is available on the paid editions (not on Free).
Xeoma offers free mobile apps for Android and iPhone/iPad — search the official app stores for “Xeoma”. You can also connect from another computer: just download the Xeoma program there (remember the single download contains both client and server, so it works as a client too). Limited viewing and control is also possible through a browser, though connecting via the program is the primary method.
A little theory: remote access normally requires the server — here, the Raspberry Pi — to have a public (“white”) static IP address. If you don’t know whether you have one, you almost certainly don’t (it’s a paid extra from most ISPs). The good news is that Xeoma includes its own substitute: a free P2P (peer-to-peer) connection that stands in for a public IP and lets a remote client connect without the hassle — but only within Xeoma.
So, to set up remote access:
- On the Pi, get the connection details from Xeoma:
- Main menu → Remote access → P2P connection gives you a P2P address and password; or
- Main menu → Remote access → Connect to a remote server shows the Xeoma password (don’t copy the address here — it’s the internal/”grey” one; for a public-IP setup you supply the white IP yourself, and forward Xeoma’s port 8090 on the server-side router).
- Install and launch Xeoma on the remote device.
- On iPhone/iPad, enter the details from step 1 directly. On Android, enter them in the connection dialog (open it via Main menu → Remote access → Connect to a remote server if it didn’t appear automatically).
Browser access doesn’t use P2P (yet) and needs an extra port forwarded plus some additional setup on the Pi; see the site if you need that route.
Doing it headless (no desktop)
A budget self-hosted system based on Xeoma also runs happily on a server OS with no desktop. You do the base setup from the console, then connect a client — the mobile app or the program on another computer, on the same network or over the internet — to manage cameras and settings.
1. Download the program with wget. Xeoma isn’t in the package manager, so fetch it directly. Pick the build that matches your OS architecture:
# 32-bit OS (ARMv7):
wget https://felenasoft.com/xeoma/downloads/latest/linux/xeoma_linux_arm7.tgz
# 64-bit OS (ARMv8) — typical for Pi 4 / Pi 5:
wget https://felenasoft.com/xeoma/downloads/latest/linux/xeoma_linux_arm8.tgz
(Use the release build unless the beta has a change you need. The wrong architecture won’t start.)
2. Extract it:
tar -xvf xeoma_linux_arm8.tgz # or xeoma_linux_arm7.tgz
Inside is xeoma.app, containing both server and client — here you only need the server, since the client requires a desktop.
3. Run, or (recommended) install the server. You can start the server part directly:
./xeoma.app -core
Or install it, which also opens the Xeoma port you’ll need for connecting and configuring (requires admin rights):
sudo ./xeoma.app -install -coreauto
On a successful install the Xeoma password is printed at the end. You can show it again later with -showpassword.
4. Switch the edition / activate. From the console you can also set the edition. As noted above, the Free editions don’t work headless, so you’ll need one of the paid licences. Activate with -activateOnline (if the Pi has internet) or -activateRequest (if it doesn’t; see the offline-activation guide for details).
5. Do the rest from a second device with a screen. Connecting cameras and configuring features needs a client with a GUI — a computer, phone or tablet on the same network or remote. Call it “device #2”:
- On the Pi, run
ifconfig(or check another way) to find its internal (“grey”) IP address. - Take the Xeoma password from step 3.
- On device #2, download Xeoma for that device’s OS and launch it.
- Go to Main menu → Remote access → Connect to a remote server and enter the Pi’s IP and the Xeoma password.
- Once connected, you can add cameras, build chains, install/autostart and activate exactly as in the desktop section.
Conclusion
That’s essentially everything needed to stand up a budget, self-hosted video surveillance system on a Raspberry Pi with the Xeoma platform. If you already own a Pi — or are about to buy one — this approach is well worth trying. And remember it doesn’t have to be a Raspberry Pi at all: the same software runs on other microcomputers, on mini PCs and on regular Linux machines, so you can match the hardware to your budget and your camera count. The result is a private, low-power IP-camera system that records and analyses on your own terms, with no forced cloud and no recurring fees — surveillance you genuinely own.
——————LINKS BELOW——————
Xeoma video surveillance software
Raspberry Pi-based home automation
Other Rpi information