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)
- Confirm your MQTT broker is working and Frigate is publishing events:
- Create a
compose.ymlwith your MQTT connection details - Start Viewu Server with
docker compose up -d - Watch logs and confirm it connects to MQTT
- 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 -mx86_64→ useamd64aarch64/arm64→ usearm64
Screenshots (Docker Hub):


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.1will 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.1inside 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 -dStep 4: Confirm it is running
docker ps
docker logs -f viewuWhat 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:
- Is Frigate publishing to MQTT?
Usemosquitto_subon the broker to confirm events are flowing. - Can Viewu Server reach the broker?
Look for connection errors indocker logs -f viewu. - Do your templates match your actual event fields?
Start with a broad template to validate end-to-end. - Is the phone paired and are notifications allowed in iOS settings?
- 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