Update Docker config for dual-SDR setup and arm64 compatibility

- Add slowrx SSTV decoder build with required deps (libsndfile1,
  libgtk-3-dev, libasound2-dev, libfftw3-dev) for arm64/RPi5 support
- Enable USB device passthrough (/dev/bus/usb) on both service profiles
- Add 'basic' profile to main intercept service for explicit selection
- Fix intercept-history container_name conflict (was duplicating 'intercept')

https://claude.ai/code/session_01FjLTkyELaqh27U1wEXngFQ
This commit is contained in:
Claude
2026-02-05 19:46:54 +00:00
parent 079ed216a8
commit 780ba9c58b
2 changed files with 24 additions and 6 deletions
+13
View File
@@ -21,6 +21,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
multimon-ng \ multimon-ng \
# Audio tools for Listening Post # Audio tools for Listening Post
ffmpeg \ ffmpeg \
# SSTV decoder runtime libs
libsndfile1 \
# WiFi tools (aircrack-ng suite) # WiFi tools (aircrack-ng suite)
aircrack-ng \ aircrack-ng \
iw \ iw \
@@ -56,9 +58,12 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
cmake \ cmake \
libncurses-dev \ libncurses-dev \
libsndfile1-dev \ libsndfile1-dev \
libgtk-3-dev \
libasound2-dev \
libsoapysdr-dev \ libsoapysdr-dev \
libhackrf-dev \ libhackrf-dev \
liblimesuite-dev \ liblimesuite-dev \
libfftw3-dev \
libsqlite3-dev \ libsqlite3-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
zlib1g-dev \ zlib1g-dev \
@@ -109,6 +114,13 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
&& make \ && make \
&& cp acarsdec /usr/bin/acarsdec \ && cp acarsdec /usr/bin/acarsdec \
&& rm -rf /tmp/acarsdec \ && rm -rf /tmp/acarsdec \
# Build slowrx (SSTV decoder)
&& cd /tmp \
&& git clone --depth 1 https://github.com/windytan/slowrx.git \
&& cd slowrx \
&& make \
&& install -m 0755 slowrx /usr/local/bin/slowrx \
&& rm -rf /tmp/slowrx \
# Cleanup build tools to reduce image size # Cleanup build tools to reduce image size
&& apt-get remove -y \ && apt-get remove -y \
build-essential \ build-essential \
@@ -117,6 +129,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
cmake \ cmake \
libncurses-dev \ libncurses-dev \
libsndfile1-dev \ libsndfile1-dev \
libasound2-dev \
libsoapysdr-dev \ libsoapysdr-dev \
libhackrf-dev \ libhackrf-dev \
liblimesuite-dev \ liblimesuite-dev \
+11 -6
View File
@@ -2,7 +2,7 @@
# Docker Compose configuration for easy deployment # Docker Compose configuration for easy deployment
# #
# Basic usage: # Basic usage:
# docker compose up -d # docker compose --profile basic up -d
# #
# With ADS-B history (Postgres): # With ADS-B history (Postgres):
# docker compose --profile history up -d # docker compose --profile history up -d
@@ -11,14 +11,15 @@ services:
intercept: intercept:
build: . build: .
container_name: intercept container_name: intercept
profiles:
- basic
ports: ports:
- "5050:5050" - "5050:5050"
# Privileged mode required for USB SDR device access # Privileged mode required for USB SDR device access
# Alternatively, use device mapping (see below)
privileged: true privileged: true
# USB device mapping (alternative to privileged mode) # USB device mapping for all USB devices
# devices: devices:
# - /dev/bus/usb:/dev/bus/usb - /dev/bus/usb:/dev/bus/usb
# volumes: # volumes:
# Persist data directory # Persist data directory
# - ./data:/app/data # - ./data:/app/data
@@ -54,14 +55,18 @@ services:
# Enable with: docker compose --profile history up -d # Enable with: docker compose --profile history up -d
intercept-history: intercept-history:
build: . build: .
container_name: intercept container_name: intercept-history
profiles: profiles:
- history - history
depends_on: depends_on:
- adsb_db - adsb_db
ports: ports:
- "5050:5050" - "5050:5050"
# Privileged mode required for USB SDR device access
privileged: true privileged: true
# USB device mapping for all USB devices
devices:
- /dev/bus/usb:/dev/bus/usb
environment: environment:
- INTERCEPT_HOST=0.0.0.0 - INTERCEPT_HOST=0.0.0.0
- INTERCEPT_PORT=5050 - INTERCEPT_PORT=5050