Set up a sky camera
The capture service watches the night sky through a network camera on your own computer and records only what moves. It runs entirely on your machine — once it is signed in to your UAP Finder account, the phone app can find it.
Stuck at any step? Email support@uapfinder.com and we'll help you get your camera running.
Why a fixed camera beats a phone
The phone app is a fine way to try it for an evening. For real results, mount a camera.
- It watches all night, every night, starting at dusk on its own — a phone on a tripod lasts a few hours and has to be set up each time.
- 4K video of a big patch of sky, so a faint point of light is still there in the clip.
- It keeps the seconds before each trigger. Most passes last one or two seconds; a phone starts recording after it notices, and fast objects are often gone by then.
- Every capture is checked against live aircraft, satellites, meteors, clouds and bright stars before anyone sees it, so what reaches the map is what's left unexplained.
- It corroborates. A fixed, calibrated camera knows exactly where it looks, which is what lets two cameras triangulate the same object's altitude.
What to buy
- Camera: Reolink CX820 (4K, colour at night) — Reolink store · Amazon. Recent US prices have run about $90–130.
- Or: EmpireTech IPC-Color4K-T (4K, larger 1/1.2" sensor, colour at night; a Dahua-made camera) — EmpireTech store · Amazon. Our second camera; EmpireTech provided it free, and it watches the same sky as our CX820.
- Power: a PoE injector, only if your router or switch has no PoE ports. It must say 802.3af (48 V, active) — a passive injector will not power the camera. Find one.
- Cable: outdoor-rated Cat6 Ethernet, long enough to reach from the camera to the injector or router. One cable carries both power and video. Find one.
- A Windows PC that stays on overnight on the same network. Most ordinary desktops or laptops will do; the software is free.
Not sure about your setup? Email support@uapfinder.com before you buy and we'll tell you what you need.
Copy the reference build
The channel's own cameras, exactly: a Reolink CX820 or an EmpireTech IPC-Color4K-T, side by side on the same sky. Nothing about them is special — they are the combinations known to work, so if you would rather not choose, choose one of these.
- Buy a Reolink CX820 or an EmpireTech IPC-Color4K-T. Both are 4K outdoor cameras that see in colour at night; the EmpireTech has the larger sensor. Both are powered over their Ethernet cable (PoE), so if your router has no PoE ports you also want a small PoE injector or switch. Any Reolink or Dahua-family model with RTSP will do; these two are the ones our own cameras run.
- Mount it pointing straight up at the biggest patch of open sky you have — a fence post, a wall bracket, the edge of a roof. Keep trees and eaves out of the frame where you can; what you cannot avoid, you mask later in one click.
- Plug it into the same network as a Windows PC that stays on overnight, and set its camera-side options as listed two panels down (clock overlay off, spotlight off, RTSP on).
- Paste one line into PowerShell on that PC — it is under Install it in one step below. It asks for the camera's address and password, installs everything, and starts watching at dusk.
- Sign in on the camera's own page when it opens, with the same account you use in the phone app. That is the pairing: your captures appear in the app and, if you choose to share them, on the map.
What you need
- A Windows PC that stays on overnight, ideally wired rather than on Wi-Fi.
- An RTSP network camera pointed at the sky. Anything exposing a main and a sub stream works — the sub stream feeds detection, the main stream is recorded. Reolink and Dahua-family models are what this was built and tested against (our two cameras are a Reolink CX820 and an EmpireTech IPC-Color4K-T).
- FFmpeg — the service uses it to decode and record. The one-step installer below
installs it for you; by hand,
winget install Gyan.FFmpeg. - Disk space. Clips are full quality. Budget tens of gigabytes and let retention reclaim the rest.
Set the camera up first
Five minutes in the camera's own settings saves far more later — the detector sees whatever the camera shows it, including things you stop noticing yourself.
- Turn off the on-screen clock and any text overlay. A burned-in timestamp changes every second, and a detector cannot tell that from a light moving. Ours chained events all night before we spotted it.
- Turn off the spotlight and any IR flood aimed into the sky.
- Fix the exposure if the camera lets you. Auto-exposure hunting reads as the whole frame changing at once.
- Enable RTSP and note the username and password. Give the camera a static address or a DHCP reservation so it does not move.
- Aim it at open sky. Trees at the edge of frame are the single largest source of false detections — branches move all night in any breeze.
Install it in one step
Open PowerShell on the PC that will run the camera (no need to run it as administrator - the script asks for that itself) and paste:
irm https://uapfinder.com/install.ps1 | iex
You do not need an account to install. The script downloads the service from the same public release feed every installed camera updates itself from, and checks the download against the SHA-256 that feed publishes before it unpacks anything. The account comes afterwards: signing in on the dashboard is what pairs the camera to you.
What it asks, and what it does
It asks four things, each with a default you can accept:
- The camera's address, user and password (RTSP). Leave the address blank to fill it in on the dashboard instead, where Test connection tells a wrong password apart from a wrong address.
- The camera's make - Reolink, Dahua (also EmpireTech, Amcrest, Lorex), Hikvision (also ANNKE), or other - which decides the two stream addresses it asks the camera for.
- Where captures go. Default
C:\ProgramData\UAPFinder\captures; pick a drive with tens of gigabytes free. - Schedule: Night (only while the sun is below the horizon at the camera - needs the location you set from your phone afterwards, and captures continuously until it has one) or Always.
Then it:
- relaunches itself as administrator - installing a Windows service needs that;
- installs FFmpeg with
wingetif it is missing, and writes its full path into the camera's config (a service does not see your PATH); - downloads the latest release, verifies the SHA-256, and unpacks it to
C:\UAPFinder\svc; - registers the UAPFinderCapture service - starts with Windows, restarts if it crashes - allows its two ports through Windows Firewall (your PC's own firewall; nothing on your router changes), and puts a UAP Finder Camera shortcut on your desktop;
- writes your answers to
appsettings.Local.json- once. Running the script again upgrades the service in place and never rewrites that file, so your camera login, location and account link survive every upgrade; - opens the dashboard at
http://localhost:5199and prints what to do next.
Unattended installs pass the answers as parameters instead of being asked -
-CameraHost, -CameraUser, -CameraPassword (a
SecureString keeps it out of your history), -CapturesDir, -Schedule,
-NoBrowser. iex cannot take arguments, so bind the text to a script
block: & ([scriptblock]::Create((irm https://uapfinder.com/install.ps1))) -CameraHost 192.168.1.50 ....
-DryRun prints the plan and changes nothing. The script is
plain text you can read first; it carries no secrets and nothing
about any particular machine.
After it finishes
- If you left the camera address blank: in the dashboard's Camera panel, fill in the address, username and password, press Test connection, then save. Capture starts on its own within about half a minute.
- In the Account panel, sign in with the same UAP Finder account you use on this site. That is the entire pairing step - no codes, no port numbers, nothing to copy across. Signing in shares nothing publicly.
- Set the camera's location from the phone app (My Cameras) or from your cameras on this site - both have a use this device's location button. The position is what lets the software say which satellites and aircraft were overhead, and when night begins where you are. Your exact coordinates never leave your machine - the public map only ever shows a deliberately blurred location.
- On the dashboard, set the mount's aim and paint ignore zones over anything that is not sky. Both need the picture in front of you, so they live there and only there (more below).
The manual route
If you would rather not run a script from the internet, or you are building from source, the same result by hand:
Sign in to download the zip - or take the latest package from the public release feed, which needs no account (the manifest names the zip and its SHA-256).
- Install FFmpeg:
winget install Gyan.FFmpeg. Requires the .NET 10 runtime too; if it is missing, Windows offers it on first run, orwinget install Microsoft.DotNet.Runtime.10. - Unzip the package somewhere permanent, for example
C:\UAPFinder\svc. - Right-click PowerShell, Run as administrator, then run
.\install-service.ps1from that folder. It registers the service, sets it to start automatically and restart on failure, puts the UAP Finder Camera shortcut on your desktop, and allows the two ports through Windows Firewall. - Open the dashboard from that shortcut - it lives at
http://localhost:5199. It comes up before you have a camera and says so; nothing is wrong, it is waiting for you. Then follow After it finishes above. SetCamera:FfmpegPath/FfprobePathto FFmpeg's full path inappsettings.Local.jsonif the dashboard reports it cannot find ffmpeg - a service does not see your PATH.
Tune it on the first clear night
Defaults are deliberately cautious. Two settings decide whether you wake up to a handful of real captures or a thousand pieces of noise.
- Set the schedule to Night. Capture pauses until the sun is well below the horizon. Left on Always, a camera films drifting cloud all afternoon.
- Mask anything that isn't sky. The dashboard's ignore zones blank a region from detection only — recordings are untouched. Cover treetops, roof lines, and any corner where foliage intrudes. On the reference camera this alone cut events from roughly a thousand a night to under a hundred.
- Star-calibrate the aim when you have a clear night. The dashboard lists which bright stars are up; click three or more in the live view and solve. Everything downstream — satellite matching, aircraft matching, the "is that just Vega?" check — inherits the accuracy of that aim.
Two cameras on the same sky
Point a second camera at the same patch of sky and the two save the same moments: when one camera captures something, the other keeps those seconds too, so you can watch one event from two views. On the PC that already runs your first camera, run the same line again and choose Add another camera:
irm https://uapfinder.com/install.ps1 | iex
- It installs a separate copy for the new camera, with its own dashboard
(
http://localhost:5200, then 5201...), Windows service and capture folder, so a problem with one camera never stops the other. - It copies your first camera's account and location, so there is nothing to sign in to or set twice, and updates the first camera if it needs to.
- It asks whether the new camera points at the same sky and, if so, links the two. Either dashboard's Cameras on the same sky panel shows the link, the moments both saved, and lets you link or unlink later - including a camera on another PC signed in to the same account.
Each camera still needs its own aim calibration and ignore zones, even pointed the same way, and sharing to this site is switched on per camera. When both cameras detect the same moment it is marked both detected it; two cameras at one house are "seen by 2 cameras", not the independent corroboration this site gives when observers at different places see the same object.
Then, on your phone
Sign in to the app with the same account and open ⋯ → My Cameras. Your camera appears by name.
You do not need to open a port, forward anything, or enable UPnP. On your home Wi-Fi the app talks to the camera directly, which is fastest and keeps the video on your own network. From anywhere else it falls back to a relay: your camera holds an outgoing connection to this site, and requests travel back down that. Nothing on your home network listens for incoming connections, so there is nothing to expose — and it works even if your internet provider puts you behind shared carrier addressing, where port forwarding cannot work at all.
Need a hand?
Camera not found, stream won't connect, not sure where to point it? Email support@uapfinder.com with your camera model and what you see on the dashboard, and we'll help you through it.
What is and isn't shared
Signing the camera in only makes it discoverable by you. Publishing sightings to the public map is a separate switch that stays off until you turn it on.
On your home network, video goes straight from your camera to your phone and never touches this site. Away from home it necessarily passes through it, because that relay is what removes the need to open your network — those bytes are held only long enough to reach your phone and are not added to the public archive. If you would rather that never happen, watch clips at home; the app always prefers the direct path when it can reach the camera.