Skip to content

cameraui/docker

Repository files navigation

camera.ui — Docker

Docker images for camera.ui, one per hardware target, on Ubuntu 24.04.

Quick start

docker compose up -d
# then open https://<host>:3443   (self-signed cert on first start)

First boot installs the server and comes up after a few minutes — follow it with docker compose logs -f.

Image flavors

Flavor Tag Hardware acceleration Arch
CPU latest software amd64 + arm64
Intel intel Quick Sync / VA-API + OpenCL amd64
NVIDIA nvidia NVENC / NVDEC + CUDA amd64
AMD amd Mesa VA-API + OpenCL amd64

Pick the flavor for your machine via its compose override (docker-compose.{intel,nvidia,amd}.yml).

Hardware acceleration & AI accelerators

AI accelerators (Coral, Hailo, Intel NPU) work with any flavor — they only need their device node passed through (see the commented devices: section in docker-compose.yml) plus a host driver.

To check what your host is missing (NVIDIA Container Toolkit, Hailo kernel driver, device nodes):

sudo ./scripts/host/cameraui-host.sh check     # read-only diagnosis
sudo ./scripts/host/cameraui-host.sh nvidia    # install the NVIDIA Container Toolkit
sudo ./scripts/host/cameraui-host.sh hailo     # build + install the Hailo PCIe driver
sudo ./scripts/host/cameraui-host.sh coral     # install the gasket driver (PCIe/M.2 Coral)

On boot the container logs which devices actually arrived: [setup] accelerator devices: ... — if a device shows there but exists on the host, it is missing from your compose devices: list.

Networking

Host networking (the compose default) is recommended — camera.ui uses it for mDNS/Bonjour (HomeKit pairing, ONVIF discovery) and WebRTC live view.

Data

All state lives in the /data volume (config, database, recordings, TLS certs). Back up the cameraui-data volume.

Worker

A second machine can join your camera.ui as a worker: it runs no UI of its own and takes over camera workloads (decoding, detection, recording) the master offloads to it. Generate a pairing code on the master (Workers view), fill it into docker-compose.worker.yml together with the master's address, then:

docker compose -f docker-compose.worker.yml up -d

The code is only needed once, the worker stores its credentials and reconnects on its own. Hardware acceleration works the same as on the main deployment.

Proxmox

See proxmox/ to run camera.ui in a Proxmox LXC.

Ports

Port Proto Purpose
3443 tcp HTTPS UI / API
2000 tcp go2rtc
2001 tcp RTSP
2002 tcp SRTP
2003 tcp RTMP
2004 tcp/udp WebRTC

About

Official Docker images for camera.ui (cpu / intel / nvidia / amd flavors).

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors