Files
istrain-public/docker/airband.Dockerfile
T
istrain 559caead36 istrain-public: from-scratch build of a passive RF train detector
Public community release. The complete working system — DSP + decoders (scripts/),
web dashboard + API (dashboard/), container stack (docker/), config templates (config/) —
plus APOCALYPSE-EDITION.md, the full build guide for a human or a coding agent. GPLv3
(PyEOT dependency). Scrubbed of all secrets, internal IPs, hostnames, and location detail.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 23:19:16 -04:00

27 lines
1.6 KiB
Docker

# istrain airband — rtl_airband v5.2.0 (pinned = the VM's proven version) on the rtl-sdr-blog
# librtlsdr fork (required: dongle 1002 is an RTL-SDR Blog V4 — stock librtlsdr can't tune it).
# DETACH_KERNEL_DRIVER=ON so the library kicks dvb_usb_rtl28xxu off the dongle itself — second
# line of defense behind the host-side module blacklist (the "Allocating zero-copy" hang class).
FROM debian:bookworm-slim AS build
RUN apt-get update && apt-get install -y --no-install-recommends \
git ca-certificates build-essential cmake pkg-config \
libusb-1.0-0-dev libconfig++-dev libmp3lame-dev libshout3-dev zlib1g-dev libfftw3-dev \
&& rm -rf /var/lib/apt/lists/*
RUN git clone --depth 1 https://github.com/rtlsdrblog/rtl-sdr-blog /src/rtl-sdr-blog \
&& cmake -S /src/rtl-sdr-blog -B /src/rtl-sdr-blog/build \
-DDETACH_KERNEL_DRIVER=ON -DINSTALL_UDEV_RULES=OFF \
&& make -C /src/rtl-sdr-blog/build -j"$(nproc)" install && ldconfig
RUN git clone --depth 1 --branch v5.2.0 https://github.com/rtl-airband/RTLSDR-Airband /src/airband \
&& cd /src/airband \
&& cmake -B build -DNFM=TRUE -DRTLSDR=TRUE \
&& make -C build -j"$(nproc)" && make -C build install
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
libusb-1.0-0 libconfig++9v5 libmp3lame0 libshout3 libfftw3-single3 tini \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /usr/local /usr/local
RUN ldconfig
# -F foreground (systemd/docker style), -e errors to stderr; conf bind-mounted by compose.
ENTRYPOINT ["tini", "--", "rtl_airband", "-F", "-e", "-c", "/etc/rtl_airband/istrain.conf"]