Overview

Viewu

Viewu is an iOS companion app for Frigate NVR. It focuses on three outcomes:

  • Fast setup (clear configuration paths for common home-network layouts)
  • Reliable day-to-day use (predictable playback and actionable logs)
  • Flexible connectivity (LAN, VPN, and Cloudflare Tunnel patterns)

What you can do with Viewu

  • View live cameras (RTSP/HLS depending on your stack)
  • Browse an event timeline with filters (camera, label, zones, etc.)
  • Download event clips as MP4 exports
  • Receive Apple Push Notifications (requires Viewu Server + MQTT)

Screenshots (what to expect)

These are real screens you will see once the app is connected:

Event Timeline Screenshot

Event timeline (example)

Event Details Screenshot

Event details (example)

Architecture at a glance

A typical “notifications enabled” setup looks like this:

  1. Frigate generates events and snapshots.
  2. MQTT broker (Mosquitto) carries Frigate event messages.
  3. Viewu Server subscribes to MQTT and sends Apple Push Notifications.
  4. Your iPhone connects to Frigate for live video and timeline browsing, and fetches snapshot images for rich notifications.

Why HTTPS matters (especially for iOS)

For the most reliable iOS behavior (snapshots, streaming, fewer TLS surprises), prefer:

  • A hostname (domain), and
  • A trusted certificate (Cloudflare edge TLS or Let’s Encrypt)

LAN IPs can work fine, but self-signed HTTPS and HTTPS on an IP address are where iOS tends to be least forgiving (especially for notification images). Viewu will attempt to connect in these scenarios, but for the most reliable results we recommend using a hostname with a trusted certificate (Cloudflare or Let’s Encrypt).

Remote access model

Both approaches work. The right choice depends on what you want to optimize for.

Option A: VPN (Tailscale) — recommended starting point

Use Tailscale when you want the simplest and safest remote access model:

  • Nothing is publicly exposed to the internet
  • No Cloudflare account or Access policy required
  • Great for personal use (you control every device on the VPN)

Tradeoff: your phone must be connected to the VPN when you want remote access (including when a notification arrives and the phone tries to fetch snapshot images).

Option B: Cloudflare Tunnel — no VPN required

Use Cloudflare Tunnel when you want access without requiring a VPN on the phone:

  • Public hostnames (e.g., nvr.example.com, mqtt.example.com)
  • Cloudflare terminates TLS at the edge
  • You can lock it down with Cloudflare Access (recommended)

Tradeoff: more infrastructure to configure correctly (tunnel + Access + origin services). This guide set includes “common traps” to keep you out of the weeds.

Quick start

  1. Configure the iOS app: Viewu iOS App → Installation & Setup
  2. If you want push notifications:
  3. If you are using Cloudflare:

Common gotchas (learned the hard way)

  • For MQTT through Cloudflare, your origin must be HTTP WebSockets (not HTTPS, not raw TCP). Most Mosquitto installs use WebSockets on port 9001.
  • If you protect endpoints with Cloudflare Access, Viewu must send CF-Access-Client-Id and CF-Access-Client-Secret from a Service Token (not an interactive browser login).
  • If something “sort of works” on LAN but breaks on cellular, it is almost always one of:
    • DNS/hostname not reachable externally
    • missing Cloudflare Access headers
    • snapshots only reachable on a private IP

Privacy

Viewu does not require user accounts. Configuration is stored on-device.

Last updated on December 17, 2025