Guardian Eye on Linux: Complete Installation Guide
Step-by-step guide to install and run Guardian Eye on Ubuntu, Debian, Fedora, and Arch Linux. System requirements, troubleshooting tips, and best practices for Linux surveillance systems.
Introduction
Guardian Eye runs natively on Linux, providing the same powerful video surveillance features you'd expect on Windows - but with the stability, security, and performance advantages of Linux.
This guide covers everything you need to install Guardian Eye on popular Linux distributions, configure cameras, and get your surveillance system running smoothly.
Why Choose Linux for Surveillance?
- Rock-solid stability - Linux servers can run for months/years without rebooting
- Better performance - Lower resource usage means more cameras on same hardware
- Free and open-source - No licensing costs for the operating system
- Remote access built-in - SSH for easy headless server management
- Advanced automation - systemd services, cron jobs, custom scripts
- Perfect for NAS/server setups - Run on existing home server infrastructure
System Requirements
Minimum Requirements
| Component | Minimum | Recommended |
|---|---|---|
| CPU | Dual-core 1.5GHz | Quad-core 2.0GHz+ |
| RAM | 2GB | 4GB+ (8GB for 4+ cameras) |
| Storage | 10GB system + recording space | SSD for OS, HDD for recordings |
| Network | 100 Mbps Ethernet | Gigabit Ethernet |
| Linux Kernel | 5.10+ | 6.0+ (latest stable) |
Supported Distributions
- Ubuntu - 20.04 LTS, 22.04 LTS, 24.04 LTS (recommended for beginners)
- Debian - 11 (Bullseye), 12 (Bookworm)
- Fedora - 38, 39, 40
- Arch Linux - Rolling release (advanced users)
- Other - Any distribution with .NET 8.0 runtime support
Note: Guardian Eye is built on .NET 8.0, which supports most modern Linux distributions. If your distribution isn't listed, check if it can run .NET 8.0 applications.
Installation Methods
Method 1: DEB Package (Ubuntu/Debian)
Easiest method for Debian-based distributions with automatic dependency resolution.
- Download the .deb package:
wget https://getguardianeye.com/downloads/linux/GuardianEye-1.0.0-linux-x64.deb
- Install with apt:
sudo apt install ./GuardianEye-1.0.0-linux-x64.deb
This automatically installs .NET runtime and other dependencies.
- Verify installation:
guardianeye --version
Should output:
Guardian Eye v1.0.0 - Start the service:
sudo systemctl start guardianeye
sudo systemctl enable guardianeye # Auto-start on boot
Method 2: Tarball (Any Distribution)
Manual installation for Fedora, Arch, or other non-Debian distributions.
- Install .NET 8.0 Runtime:
# Ubuntu/Debian
sudo apt install dotnet-runtime-8.0
# Fedora
sudo dnf install dotnet-runtime-8.0
# Arch
sudo pacman -S dotnet-runtime-8.0 - Download and extract tarball:
wget https://getguardianeye.com/downloads/linux/GuardianEye-1.0.0-linux-x64.tar.gz
sudo mkdir -p /opt/guardianeye
sudo tar -xzf GuardianEye-1.0.0-linux-x64.tar.gz -C /opt/guardianeye - Set permissions:
sudo chmod +x /opt/guardianeye/GuardianEye
sudo chown -R $USER:$USER /opt/guardianeye - Create symbolic link (optional):
sudo ln -s /opt/guardianeye/GuardianEye /usr/local/bin/guardianeye
- Run Guardian Eye:
/opt/guardianeye/GuardianEye
Method 3: Build from Source (Advanced)
For developers or users who want the latest development version.
- Install .NET SDK:
sudo apt install dotnet-sdk-8.0 # Ubuntu/Debian
- Clone repository:
git clone https://github.com/homeprimus-pa/Guardian.Eye.git
cd Guardian.Eye - Build project:
dotnet build -c Release
dotnet publish -c Release -r linux-x64 --self-contained false - Run from bin folder:
./bin/Release/net8.0/linux-x64/publish/GuardianEye
Setting Up systemd Service (Autostart)
Make Guardian Eye start automatically on boot using systemd.
- Create service file:
sudo nano /etc/systemd/system/guardianeye.service
- Add service configuration:
[Unit]
Description=Guardian Eye Surveillance System
After=network.target
[Service]
Type=notify
User=guardianeye
WorkingDirectory=/opt/guardianeye
ExecStart=/opt/guardianeye/GuardianEye
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target - Create dedicated user (security best practice):
sudo useradd -r -s /bin/false guardianeye
sudo chown -R guardianeye:guardianeye /opt/guardianeye - Enable and start service:
sudo systemctl daemon-reload
sudo systemctl enable guardianeye
sudo systemctl start guardianeye - Check service status:
sudo systemctl status guardianeye
Accessing Guardian Eye
GUI Access (Desktop Environments)
If you're running a desktop Linux distribution (Ubuntu Desktop, Linux Mint, etc.):
- Launch from application menu:
Applications β Multimedia β Guardian Eye - Or run from terminal:
guardianeye - Configure cameras from Settings β Cameras menu
Web Interface Access (Headless Servers)
For servers without GUI, Guardian Eye provides a web interface:
- Guardian Eye runs web server on
http://localhost:5000by default - Access from another computer:
http://server-ip:5000 - Configure firewall to allow port 5000:
sudo ufw allow 5000/tcp # UFW (Ubuntu)
sudo firewall-cmd --add-port=5000/tcp --permanent # firewalld (Fedora) - For production, set up reverse proxy (nginx) with HTTPS
Configuring Cameras on Linux
USB Webcam Detection
Guardian Eye uses V4L2 (Video4Linux2) for USB webcams.
- List available webcams:
v4l2-ctl --list-devices
- Check device permissions:
ls -l /dev/video*
Add your user to
videogroup:sudo usermod -aG video $USER
# Log out and back in for changes to apply - In Guardian Eye: Settings β Cameras β Add Camera β USB Webcam β Select
/dev/video0
IP Camera (RTSP) Setup
Same as Windows - Guardian Eye uses standard RTSP protocol.
rtsp://admin:password@192.168.1.100:554/stream1
Network Tip: Ensure your Linux server and cameras are on same network/VLAN. Test connectivity: ping 192.168.1.100
Storage Configuration
Dedicated Recording Drive
Best practice: Use separate HDD/SSD for recordings.
- Mount drive permanently:
sudo mkdir -p /mnt/surveillance
sudo blkid # Find UUID of your drive
sudo nano /etc/fstab
# Add line (replace UUID with your drive's UUID):
UUID=YOUR-UUID-HERE /mnt/surveillance ext4 defaults 0 2
sudo mount -a - Set permissions:
sudo chown -R guardianeye:guardianeye /mnt/surveillance
sudo chmod 755 /mnt/surveillance - Configure in Guardian Eye: Settings β Recording β Output Path β
/mnt/surveillance/recordings
Automatic Old Recording Cleanup
Guardian Eye auto-deletes old recordings based on retention settings, but you can also use systemd timer:
sudo nano /usr/local/bin/cleanup-recordings.sh
#!/bin/bash
find /mnt/surveillance/recordings -type f -mtime +30 -delete
sudo chmod +x /usr/local/bin/cleanup-recordings.sh
# Schedule daily at 3 AM via cron
sudo crontab -e
0 3 * * * /usr/local/bin/cleanup-recordings.sh
Common Issues & Troubleshooting
β Problem: "GuardianEye: command not found"
Solutions:
- Ensure PATH includes installation directory:
echo $PATH - Create symlink:
sudo ln -s /opt/guardianeye/GuardianEye /usr/local/bin/guardianeye - Run directly:
/opt/guardianeye/GuardianEye
β Problem: USB Webcam not detected
Solutions:
- Check if device is recognized:
lsusbandv4l2-ctl --list-devices - Install v4l-utils:
sudo apt install v4l-utils - Add user to video group:
sudo usermod -aG video $USER(logout/login required) - Check permissions:
ls -l /dev/video0(should showcrw-rw----+ 1 root video)
β Problem: High CPU/Memory usage
Solutions:
- Reduce camera resolution/FPS in camera settings
- Use H.264 hardware acceleration if available:
# Check for hardware encoding support
ffmpeg -hwaccels
# Enable in Guardian Eye: Settings β Advanced β Use Hardware Acceleration - Monitor resources:
htoporsystemctl status guardianeye - Disable motion detection zones if not needed
β Problem: Service fails to start
Solutions:
- Check logs:
sudo journalctl -u guardianeye -n 50 --no-pager - Verify .NET runtime:
dotnet --list-runtimes(should show 8.0.x) - Check file permissions:
ls -l /opt/guardianeye - Test manual start:
sudo -u guardianeye /opt/guardianeye/GuardianEye
β Problem: Cannot access web interface from network
Solutions:
- Check firewall:
sudo ufw statusorsudo firewall-cmd --list-all - Allow port 5000:
sudo ufw allow 5000/tcp
- Verify service is listening:
sudo netstat -tlnp | grep 5000 - Test locally first:
curl http://localhost:5000
Performance Optimization Tips
1. Use SSD for OS and Database
Install Guardian Eye on SSD for faster startup and database operations. Use HDD for recordings only.
2. Adjust swappiness (Servers with limited RAM)
sudo sysctl -p
3. Disable GUI on Servers
Save resources by running headless:
sudo systemctl set-default graphical.target # Re-enable GUI
4. Use Lower Motion Detection Sensitivity
Reduce false positives and CPU usage: Settings β Motion Detection β Sensitivity: Medium (instead of High)
5. Limit Recording FPS
15 FPS is sufficient for most surveillance needs (vs 30 FPS default).
Security Best Practices
- Run as non-root user - Always use dedicated
guardianeyeuser (shown in systemd setup) - Firewall configuration - Only allow port 5000 from trusted IPs
- Use reverse proxy with HTTPS - Set up nginx with Let's Encrypt SSL for remote access
- Isolate cameras in VLAN - Prevent cameras from accessing internet or main network
- Regular updates - Keep Guardian Eye and system packages updated
- Secure recording storage - Encrypt recording drive if dealing with sensitive footage
Conclusion
Guardian Eye on Linux provides a powerful, flexible, and cost-effective surveillance solution. Whether you're running a home server, NAS, or dedicated security system, Linux's stability and performance make it an excellent choice for 24/7 recording.
Quick recap:
- Install via .deb package (Ubuntu/Debian) or tarball (other distributions)
- Set up systemd service for autostart
- Configure USB webcams via V4L2 or RTSP IP cameras
- Use dedicated drive for recordings with proper permissions
- Access via GUI (desktop) or web interface (headless servers)
- Optimize performance: hardware acceleration, lower FPS, swappiness tuning
- Secure: non-root user, firewall, HTTPS reverse proxy
Run Guardian Eye on Your Linux Server
Ubuntu Server, Debian, Fedora, Arch - Guardian Eye runs on all major Linux distributions. Perfect for NAS, headless servers, or desktop surveillance systems with full RTSP, USB webcam, and ONVIF support.
Download for Linux