DIY home Security System with an Old iPhone
Nov 14, 2025 11:36 · 1126 words · 6 minute read
Building a DIY Home Security System with an Old iPhone and Some Determination
Look, I’ll be honest with you - I was genuinely worried. Our new neighborhood has been seeing break-in attempts every other day. Car break-ins, people trying doorknobs at 2 AM… the whole deal. I needed something to monitor my driveway at night, and I needed it fast.
Commercial security cameras? They wanted €200+ per camera, plus subscription fees. Ring doorbell? Another subscription. I’m a developer - I build complex systems for a living. Surely I could figure this out myself, right?
The Starting Point
I had:
- A spare iPhone 8 gathering dust
- A computer that was already running 24/7
- Zero patience for overcomplicated setups
- A very specific need: Alert me if someone’s in my driveway between midnight and 5 AM
How hard could it be?
The Alfred Camera Disaster
First attempt: Alfred Camera. Beautiful UI, easy setup, works great… except it uses proprietary P2P streaming. No RTSP. No RTMP. No way for any real security system to actually use the feed.
Frigate (the open-source NVR I wanted to use) can’t talk to Alfred. At all. It’s like trying to plug a USB-A cable into a USB-C port - wrong protocol, won’t work, end of story.
Lesson learned: Just because an app says “camera” doesn’t mean it plays nice with standard video protocols.
The iVCam False Hope
“Try iVCam!” everyone said. “It does RTSP!” they promised.
Installed it. Opened it. It showed my iPhone’s IP address (192.168.1.64). Looking good!
Then… it just sat there. “Searching for iVCam PC…”
Turns out iVCam’s free version needs their PC client running to create the RTSP stream. I don’t want another piece of software. I just want a camera feed. Next.
The App That Actually Worked (Eventually)
After trying RTSP Stream (which crashed immediately on my old iPhone 8), I found Periscope HD.
Here’s what nobody tells you about Periscope HD: When you first open it, it looks like it wants you to connect to a camera, not BE a camera. There are fields for username, password, RTSP URL…
I was confused for a solid 10 minutes until I found the tiny “Stream” button. Press that, and boom - your iPhone becomes an RTSP server.
The RTSP URL it gave me: rtsp://192.168.1.64:10554/stream
Simple. Clean. Actually worked.
Getting Frigate Running on Mac (The Docker Adventure)
Frigate is designed for Linux. I’m running macOS. This should be fun.
First hallucination from my AI assistant: “Pull this image - ghcr.io/blakeblackshear/frigate:stable-arm64”
Me: tries to pull image
Docker: Error: not found
Turns out the correct image is just ghcr.io/blakeblackshear/frigate:stable - it’s multi-arch and figures out you need ARM64 automatically.
Pro tip: When someone (or an AI) gives you a Docker command, verify the tag actually exists before running it.
The Port 5000 Conflict
Tried to run Frigate on port 5000. macOS said “nope, something’s already using that.”
Tried to kill whatever was on port 5000. It just… came back. Like a zombie process.
Solution? Map a different port:
-p 5001:5000 # Map Mac's 5001 to container's 5000
-p 8971:8971 # For authenticated access
The Config That Actually Works
After several iterations of configs that didn’t work, here’s what finally did:
mqtt:
enabled: false
cameras:
driveway:
enabled: true
ffmpeg:
inputs:
- path: rtsp://192.168.1.XX:8554/live.sdp
roles:
- detect
- record
detect:
enabled: true
width: 1280
height: 720
detect:
enabled: true
record:
enabled: true
retain:
days: 2
mode: motion
snapshots:
enabled: true
retain:
default: 2
That’s it. No fancy zones yet. No complex filters. Just a working camera feed with person detection.
Making It Actually Useful (The Python Script)
Frigate detects people. Great. But I needed it to:
- Only alert between midnight and 5 AM
- Make enough noise to wake me up
- Not spam me every 2 seconds
Frigate doesn’t do time-based alerting out of the box. So I wrote a simple Python script that:
- Polls Frigate’s API every 2 seconds
- Checks if it’s between 12 AM - 5 AM
- If person detected → plays alarm sounds on Mac
- Has a 30-second cooldown so it doesn’t go crazy
def is_alert_time():
current_hour = datetime.now().hour
return 0 <= current_hour < 5
def play_alarm():
subprocess.run(["say", "-v", "Alex", "-r", "300",
"Alert! Person detected in driveway!"])
subprocess.run(["afplay", "/System/Library/Sounds/Sosumi.aiff"])
Tested it by walking in front of the camera. My Mac screamed at me. Perfect.
The Reality Check
After getting everything working, I realized: This iPhone 8 is going to be charging 24/7, running video encoding constantly, probably getting quite hot.
That’s… a fire hazard.
So the next step? Get a proper outdoor IP camera. Reolink RLC-510A looks good - about €70 on Amazon.ie, native RTSP support, weatherproof, and it won’t turn into a lithium fire hazard.
The iPhone proof-of-concept worked. Now it’s time to make it actually safe and permanent.
Things I Learned
RTSP is king - If your camera doesn’t speak RTSP/RTMP/HTTP streams, it’s useless for serious security setups.
Docker tags lie - Or rather, documentation gets outdated. Always verify image tags exist before copy-pasting commands.
Old hardware can work - My iPhone 8 from 2017 was perfectly capable of being a security camera. Just not permanently.
AI assistants hallucinate - Whether it’s suggesting non-existent Docker tags or apps that don’t exist, always verify.
Simple configs win - My first attempt had zones, filters, motion masks… and nothing worked. Stripped it down to basics, it worked immediately.
The Actual Docker Command That Worked
For anyone trying this on Mac:
docker run -d \
--name frigate \
--restart=unless-stopped \
-p 5001:5000 \
-p 8971:8971 \
-p 8554:8554 \
-p 8555:8555/tcp \
-p 8555:8555/udp \
-v ~/frigate/storage:/media/frigate \
-v ~/frigate/config:/config \
-v /tmp/frigate-cache:/tmp/cache \
-e TZ=Europe/Dublin \
-e FRIGATE_RTSP_PASSWORD=XXXXXX \
--shm-size=64m \
ghcr.io/blakeblackshear/frigate:stable
Access it at: http://localhost:5001
Was It Worth It?
For a weekend project that cost me €0 (using hardware I already had)? Absolutely.
Did I learn that maybe €70 for a proper outdoor camera is money well spent? Also yes.
Would I recommend this approach? If you have spare hardware and want to learn - yes. If you just want security that works - buy a proper camera and save yourself the debugging.
But where’s the fun in that?
Next steps for me:
- Order that Reolink camera
- Set up proper zones so it only alerts for the driveway, not every car passing by
- Maybe add more cameras
- Definitely remove the iPhone before it becomes a fire hazard
If you’re in Dublin and dealing with similar security concerns, I hope this helps. The tools exist, they’re mostly free and open source, and they actually work once you get past the initial setup hurdles.
Just… maybe don’t use an iPhone 8 as your permanent solution. Learn from my questionable choices.
*Have questions about the setup? Tried this yourself? Let me know in the comments.