VIGIL · GUIDE

From box to bodyguard in 10 minutes

A companion to the console's own setup wizard — read alongside it, or use it to double-check anything the wizard flew past.

1 First login & what you'll see

Open /console and enter your 6-digit business PIN — the one you were given when your business was set up. Each business has its own; it's never a file you edit.

Once you're in, four tabs run the show:

A state lamp reads one of three ways: STANDING WATCH (armed, all quiet), INCIDENT (something happened), or OFF DUTY (you're open, detection paused).

Two things point you toward setup: a "Finish setup (N/7)" button that resumes the console's own wizard exactly where you left it, and a Protection Status banner (more in §7). This guide explains the setup, but the console is the source of truth — Protection Status and readiness reflect live server state, not this page.

🔐 Five wrong PIN attempts locks the login for a minute — that's on purpose.

2 Add a camera

In Setup → Cameras, you add a camera, then confirm it's live — the wizard shows you a snapshot so you know the stream address actually works before you move on. Give each camera a name you'd recognise at 3am ("Back door", not "cam2"), and its stream address:

Using an NVR, phone app, or restreamer? If a camera won't stream to Vigil directly, run a local bridge (MediaMTX, go2rtc, Frigate, Blue Iris, Agent DVR, or a phone IP-webcam app) that re-exposes it as a local rtsp:// or MJPEG URL, then add that URL under Setup → Cameras → Advanced → Connect via a local bridge. The bridge runs on your side and Vigil reads its local stream; Vigil doesn't install or manage the bridge. Cloud-only cameras aren't supported directly — Vigil doesn't use the vendor cloud — but many still work once they can produce a local stream.

Once added, the camera is available to the guard; arming and your alert settings control when alerts are sent — adding a camera doesn't by itself put it on alert.

Testing without a real feed? A YouTube or other demo URL is rejected unless you tick "This is a demo source" — and even then, it won't send real alerts unless you separately enable demo alerts. That's deliberate: demo footage should never be able to page you or a customer by accident.

3 Protect a zone (optional)

Draw a zone over a place no one should be after hours — the till, a stockroom, the fire exit. Anyone who steps into it is treated as an intrusion on sight — escalated even from a single glimpse on poor footage. The rest of the frame is still watched exactly as before; the zone just draws a hard line around the spot that matters most.

4 Connect your phone

Alerts arrive through your own Telegram bot — there is no shared bot we provide. You bring it from @BotFather: send /newbot, give it a name, and BotFather hands you a token.

In the console, the fastest path is "Set up alerts — guided (60s)":

  1. Paste the token, then press "Verify & continue" — the console checks the token with Telegram right there, so a bad token is caught immediately and a typo can't silently overwrite a working one.
  2. Press "Open my bot & pair ↗" (or send /start <code> to your bot yourself). The pairing code shown in the console is deliberately different from your login PIN, so a paired chat can never log into your console.
  3. Press "Send my test alert" — this is how you know alerts reach your phone, before you ever rely on it for real.

Pair the manager's phone too if you like; everyone paired gets every alert. Send /status any time for an instant "armed / cameras online / open incidents" check.

5 Set your hours & arming

The guard arms itself the moment you close and stands down when you open. Setup → Opening hours:

🧹 Cleaner comes at 6am? Either schedule around it, or expect an alert and tap ✅ All clear — the guard doesn't know faces, only people.

6 When an alert arrives

A person confirmed on camera while you're closed sends a photo with the person boxed, the camera name, time, and confidence. Two buttons:

A close-up follow-up photo is sent to your phone right after — a face crop (or the top of the person if the face isn't clear). When a vehicle is visible, a plate crop is also captured and saved as extra evidence in the console — it isn't sent as a phone alert.

You won't get spammed: after an alert, the same camera stays quiet for 5 minutes — repeat sightings extend the incident instead of re-buzzing your phone. A camera that goes dark while armed sends its own warning, and a recovery note when the camera comes back.

7 Staying protected

The Protection Status banner is the honest answer to "are alerts actually working right now." If everything is working, the banner stays out of your way.

Two states worth knowing:

Either one comes with a Fix button that jumps straight to the thing that needs attention.

8 Detection & alerts

Start with the recommended starting values; adjust only if alerts are too noisy or too quiet.

Setup → Detection:

Setup → Alerts also has a threshold: Every person (the default), Elevated & up, or Urgent only. These numbers are recommended starting values, not magic — change one thing at a time and see what it does to your alert volume.

9 Where your footage goes

No cloud recording — Vigil never stores your footage. Footage from cameras on your own network stays on your premises; a camera connected through the Vigil Connector has its live video relayed to Vigil for processing, never recorded. Alert photos are sent to Telegram. If AI scene understanding is enabled, one best frame may be sent to the AI provider.

10 Troubleshooting

🕐 Running in Docker? Set the TZ environment variable to your local timezone — the schedule runs on local time.