Viewu Server
Docker Setup

Docker Setup

Viewu Server runs as a Docker container. It subscribes to Frigate events via MQTT and sends Apple Push Notifications to paired iOS devices.

This page is intentionally “baby steps” and assumes you want a predictable outcome.

Quick start (most common)

  1. Confirm your MQTT broker is working and Frigate is publishing events:
  2. Create a compose.yml with your MQTT connection details
  3. Start Viewu Server with docker compose up -d
  4. Watch logs and confirm it connects to MQTT
  5. In Viewu (iOS): pair your device

Step 0: Prerequisites

You need:

  • A running Frigate instance
  • A running MQTT broker (Mosquitto is the common choice)
  • Docker + Docker Compose installed on the machine that will run Viewu Server

Tip: If you already run Home Assistant, you may already have MQTT via the Mosquitto add-on.

Step 1: Pick the correct Docker image

Viewu Server is published for both major CPU architectures:

  • mjeoffline/viewu:amd64_3.5 (x86-64 servers / Intel NUCs / most VPS)
  • mjeoffline/viewu:arm64_3.5 (Raspberry Pi / ARM servers)

(Note - Do check that you are downloading and running the latest version. At the time this guide was written, Viewu Server 3.5 was the latest release.)

If you are unsure, run:

uname -m
  • x86_64 → use amd64
  • aarch64 / arm64 → use arm64

Screenshots (Docker Hub):

Docker Hub image tags (example)

Docker Hub image tags (architecture)

Step 2: Create a Compose file

Create a file named compose.yml:

services:
  viewu:
    container_name: viewu
    image: mjeoffline/viewu:amd64_3.5
    restart: unless-stopped
    environment:
      MQTT_IP: 192.168.1.100
      MQTT_PORT: 1883
      MQTT_USER: "replace_me"
      MQTT_PASSWORD: "replace_me"

What to put for MQTT_IP (this matters)

  • If your MQTT broker is on another machine, use its LAN IP.
  • If the broker runs on the same Docker host, do not assume 127.0.0.1 will work in bridge mode.

Common patterns:

Broker is another container in the same compose project

  • Use the broker’s service name (example: mosquitto).

Broker is on the Docker host (Linux)

  • Option A: use the host’s LAN IP
  • Option B: use network_mode: host (simple and reliable on Linux, but changes how ports behave)

Docker Desktop (macOS/Windows)

  • Use host.docker.internal

Common trap: 127.0.0.1 inside the Viewu Server container points at the container itself, not the host.

Step 3: Start the container

From the directory containing compose.yml:

docker compose up -d

Step 4: Confirm it is running

docker ps
docker logs -f viewu

What you want to see in logs:

  • It starts cleanly
  • It connects to MQTT (no auth errors, no connection refused)
  • It begins listening/subscribing for events

If you see MQTT auth failures, fix MQTT user/password first before pairing devices.

Step 5: Pair your iPhone

In Viewu:

  • Settings → Notifications / Pairing → Pair

Then return to the server logs and confirm a device registered.

Troubleshooting (end-to-end)

“No notifications are arriving”

Work through this order:

  1. Is Frigate publishing to MQTT?
    Use mosquitto_sub on the broker to confirm events are flowing.
  2. Can Viewu Server reach the broker?
    Look for connection errors in docker logs -f viewu.
  3. Do your templates match your actual event fields?
    Start with a broad template to validate end-to-end.
  4. Is the phone paired and are notifications allowed in iOS settings?
  5. Can the phone fetch snapshot images?
    If you rely on VPN, the phone must be connected when the notification arrives.

Useful commands

docker logs -f viewu
docker restart viewu
docker compose pull
docker compose up -d
Last updated on December 17, 2025