Rewrite Strix from scratch as single binary

Complete architecture rewrite following go2rtc patterns:
- pkg/ for pure logic (camdb, tester, probe, generate)
- internal/ for application glue with Init() modules
- Single HTTP server on :4567 with all endpoints
- zerolog with password masking and memory ring buffer
- Environment-based config only (no YAML files)

API endpoints: /api/search, /api/streams, /api/test,
/api/probe, /api/generate, /api/health, /api/log

Dependencies: go2rtc v1.9.14, go-sqlite3, miekg/dns, zerolog
This commit is contained in:
eduard256
2026-03-25 10:38:46 +00:00
parent 3b29188924
commit 27117900eb
3742 changed files with 2801 additions and 283718 deletions
-54
View File
@@ -1,54 +0,0 @@
version: '3'
services:
strix:
image: eduard256/strix:latest
# Or build locally:
# build: .
container_name: strix
restart: unless-stopped
network_mode: host
environment:
# Logging configuration
- STRIX_LOG_LEVEL=info
- STRIX_LOG_FORMAT=json
# Optional: Override default port
# - STRIX_API_LISTEN=:4567
# Optional: Custom data path
# - STRIX_DATA_PATH=/app/data
# volumes:
# Optional: Mount custom configuration
# - ./strix.yaml:/app/strix.yaml:ro
# Optional: Mount custom camera database
# - ./data:/app/data:ro
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:4567/api/v1/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# Optional: Resource limits
# deploy:
# resources:
# limits:
# cpus: '1.0'
# memory: 512M
# reservations:
# cpus: '0.5'
# memory: 256M
# Usage:
# 1. Start: docker-compose up -d
# 2. View logs: docker-compose logs -f strix
# 3. Stop: docker-compose down
# 4. Restart: docker-compose restart strix
#
# Access WebUI: http://localhost:4567
# Access API: http://localhost:4567/api/v1/health