9e493a2bac
Document NET_RAW and NET_ADMIN capabilities needed for network scanning when running Strix with Podman. Includes podman run, podman-compose, and Quadlet (systemd) setup instructions. Addresses #6
4.6 KiB
4.6 KiB
🐳 Docker Setup for Strix
Quick Start
Using Docker Compose (Recommended)
# Start Strix
docker-compose up -d
# View logs
docker-compose logs -f strix
# Stop Strix
docker-compose down
Access: http://localhost:4567
Using Docker Run
docker run -d \
--name strix \
-p 4567:4567 \
eduard256/strix:latest
Configuration
Using Environment Variables
docker run -d \
--name strix \
-p 8080:8080 \
-e STRIX_API_LISTEN=:8080 \
-e STRIX_LOG_LEVEL=debug \
eduard256/strix:latest
Using Config File
# Create strix.yaml
cat > strix.yaml <<EOF
api:
listen: ":8080"
EOF
# Run with mounted config
docker run -d \
--name strix \
-p 8080:8080 \
-v $(pwd)/strix.yaml:/app/strix.yaml:ro \
eduard256/strix:latest
Full Stack (Strix + go2rtc + Frigate)
docker-compose -f docker-compose.full.yml up -d
Services:
- Strix: http://localhost:4567
- go2rtc: http://localhost:1984
- Frigate: http://localhost:5000
Podman
Strix uses raw sockets for network scanning. Podman drops these capabilities by default,
so you need to add them explicitly. Rootless mode does not support host network scanning —
run with sudo.
Using Podman Run
sudo podman run -d \
--name strix \
--network host \
--cap-add=NET_RAW \
--cap-add=NET_ADMIN \
--restart unless-stopped \
eduard256/strix:latest
NET_RAW— required for network scanning (ARP, ICMP) to discover camerasNET_ADMIN— required for network interface and routing operations
Using Podman Compose
version: '3'
services:
strix:
image: eduard256/strix:latest
container_name: strix
restart: unless-stopped
network_mode: host
cap_add:
- NET_RAW
- NET_ADMIN
environment:
- STRIX_LOG_LEVEL=info
- STRIX_LOG_FORMAT=json
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:4567/api/v1/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
sudo podman-compose up -d
Using Quadlet (systemd)
Recommended for production. Create /etc/containers/systemd/strix.container:
[Unit]
Description=Strix Camera Stream Discovery
After=network-online.target
Wants=network-online.target
[Container]
Image=docker.io/eduard256/strix:latest
ContainerName=strix
Network=host
AddCapability=CAP_NET_RAW CAP_NET_ADMIN
Environment=STRIX_LOG_LEVEL=info
Environment=STRIX_LOG_FORMAT=json
AutoUpdate=registry
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now strix
sudo systemctl status strix
Quadlet auto-generates a systemd service from the .container file.
The container starts on boot and restarts on failure automatically.
Building Locally
# Build for your platform
docker build -t strix:local .
# Build for multiple platforms
docker buildx build --platform linux/amd64,linux/arm64 -t strix:multi .
Image Information
- Image:
eduard256/strix:latest - Platforms: linux/amd64, linux/arm64
- Size: ~80-90MB
- Base: Alpine Linux
- User: Non-root (strix:1000)
Included Dependencies
- ffmpeg/ffprobe (stream validation)
- ca-certificates (HTTPS support)
- tzdata (timezone support)
- wget (healthcheck)
- Camera database (3600+ models)
Health Check
# Check container health
docker inspect --format='{{.State.Health.Status}}' strix
# Manual health check
docker exec strix wget -q -O- http://localhost:4567/api/v1/health
Troubleshooting
View logs
docker logs strix
docker logs -f strix # Follow logs
Check if ffprobe works
docker exec strix ffprobe -version
Inspect container
docker exec -it strix sh
Restart container
docker restart strix
Security
- Runs as non-root user (UID 1000)
- Minimal attack surface (Alpine base)
- No unnecessary packages
- Health checks enabled
Environment Variables
| Variable | Default | Description |
|---|---|---|
STRIX_API_LISTEN |
:4567 |
Server listen address |
STRIX_LOG_LEVEL |
info |
Log level (debug, info, warn, error) |
STRIX_LOG_FORMAT |
json |
Log format (json, text) |
STRIX_DATA_PATH |
./data |
Camera database path |
Volumes
# Optional: Custom configuration
-v ./strix.yaml:/app/strix.yaml:ro
# Optional: Custom camera database
-v ./data:/app/data:ro
Docker Hub
Pre-built images available at: https://hub.docker.com/r/eduard256/strix
Tags:
latest- Latest stable releasev0.1.0- Specific version0.1- Minor version0- Major versionmain- Development branch