kopia lustrzana https://github.com/projecthorus/horusdemodlib
				
				
				
			
		
			
	
	
		
			115 wiersze
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
		
		
			
		
	
	
			115 wiersze
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
|   | # 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.<br> | ||
|  | You will need to install the libraries and supporting sw/fw for your sdr device, including udev rules and blacklists.<br> | ||
|  | Additional software such as soapysdr is not needed on the host, but can certainly be installed.<br> | ||
|  | ```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.<br> | ||
|  | The `user.cfg` sets the details sent to Sondehub.<br>  | ||
|  | 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.<br> | ||
|  | 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 | ||
|  | <br>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). |