# Guide for running on docker ## Host system This guide will assume an updated installation of Debian bullseye (11), it should work on a lot of different linux OS and architectures.
You will need to install the libraries and supporting sw/fw for your sdr device, including udev rules and blacklists.
Additional software such as soapysdr is not needed on the host, but can certainly be installed.
```shell sudo apt install rtl-sdr echo "blacklist dvb_usb_rtl28xxu" | sudo tee /etc/modprobe.d/blacklist-rtlsdr.conf sudo modprobe -r dvb_usb_rtl28xxu ``` See the [docker installation](#install-dockerio) at the bottom of this page. ## Building the image If the docker image is not available, or you want to build from your own branch etc. ```shell git clone https://github.com/projecthorus/horusdemodlib.git cd horusdemodlib docker-compose build ``` ## Configuration Start with creating a directory with a name representing the station, this will be shown in several places in the resulting stack. ```shell mkdir -p projecthorus cd projecthorus wget https://raw.githubusercontent.com/projecthorus/horusdemodlib/master/docker-compose.yml wget -O user.cfg https://raw.githubusercontent.com/projecthorus/horusdemodlib/master/user.cfg.example wget -O user.env https://raw.githubusercontent.com/projecthorus/horusdemodlib/master/user.env.example ``` The file `user.env` contains all the station variables (earlier in each script), the DEMODSCRIPT is used by compose.
The `user.cfg` sets the details sent to Sondehub.
Use your favourite editor to configure these: ```shell nano user.env nano user.cfg ``` Please note that the values in user.env should not be escaped with quotes or ticks. ## Bringing the stack up The `docker-compose` (on some systems it's `docker compose` without the hyphen) is the program controlling the creation, updating, building and termination of the stack. The basic commands you will use is `docker-compose up` and `docker-compose down`. When you edit the compose file or configuration it will try to figure out what needs to be done to bring the stack in sync of what has changed. Starting the stack in foreground (terminate with Ctrl-C): ```shell docker-compose up ``` Starting the stack in background: ```shell docker-compose up -d ``` Stopping the stack: ```shell docker-compose down ``` Updating the images and bringing the stack up: ```shell docker-compose pull docker-compose up -d ``` Over time there will be old images accumulating, these can be removed with `docker image prune -af` ## Using SoapySDR with rx_tools If you want to use other SDR than rtl_sdr, the docker build includes rx_tools.
Select docker_soapy_single.sh and add the extra argument to select the sdr in SDR_EXTRA: ```shell # Script name DEMODSCRIPT="docker_soapy_single.sh" SDR_EXTRA="-d driver=rtlsdr" ``` ## Monitoring and maintenance Inside each container, the logs are output to stdout, which makes them visible from outside the container in the logs. Starting to monitor the running stack: ```shell docker-compose logs -f ``` If you want to run commands inside the containers, this can be done with the following command: ````shell docker-compose exec horusdemod bash ```` The container needs to be running. Exit with Ctrl-D or typing `exit`. # Install Docker.io (Or you can install Docker.com engine via the [convenience script](https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script)) In Debian bullseye there's already a docker package, so installation is easy: ```shell sudo apt install docker.io apparmor sudo apt -t bullseye-backports install docker-compose sudo adduser $(whoami) docker ``` Re-login for the group permission to take effect. The reason for using backports is the version of compose in bullseye is 1.25 and lacks cgroup support, the backport is version 1.27
If your dist doesn't have backports, enable with this, and try the installation of docker-compose again: ```shell echo "deb http://deb.debian.org/debian bullseye-backports main contrib non-free" | sudo tee /etc/apt/sources.list.d/backports.list suod apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 0E98404D386FA1D9 sudo apt update ``` If you cannot get a good compose version with your dist, please follow [the official guide](https://docs.docker.com/compose/install/linux/#install-the-plugin-manually).