# Deploy FlyDog SDR Manually

Some Raspberry Pi's may already have other important services running on them, so it is no longer practical to rewrite the base image provided by the FlyDog SDR Project for the Raspberry Pi and reconfigure the other services again. The FlyDog SDR Project therefore offers the option of manually deploying FlyDog SDR on an existing system.

After testing, this solution is known to run on the following Linux distributions for the Raspberry Pi.

  • CentOS
  • Raspbian
  • Raspberry Pi OS
  • Ubuntu

# Enabling I2C and SPI

Enable I2C and SPI in /boot/config.txt.

[[email protected] ~]$ echo -e "dtparam=i2c_arm=on\ndtparam=spi=on" | sudo tee -a /boot/config.txt

Make I2C module be loaded at system boot time.

[[email protected] ~]$ echo -e "i2c-dev" | sudo tee -a /etc/modules-load.d/modules.conf

Load the I2C module.

[[email protected] ~]$ sudo dtparam i2c_arm=on
[[email protected] ~]$ sudo modprobe i2c-bcm2708

Reboot to apply the configuration.

[[email protected] ~]$ sudo reboot

# Installing Docker

Automate the installation using Docker-related installation scripts.

[[email protected] ~]$ sudo curl -o /tmp/get-docker.sh -fsSL get.docker.com
[[email protected] ~]$ sudo chmod +x /tmp/get-docker.sh
[[email protected] ~]$ sudo sh -c /tmp/get-docker.sh

For mainland China users, you can add the -mirror AzureChinaCloud parameter when installing Docker, and use the AzureChinaCloud image for installation.

[[email protected] ~]$ sudo sh -c /tmp/get-docker.sh --mirror AzureChinaCloud

Once the installation is complete, add the current user to the Docker usergroup docker and reboot.

[[email protected] ~]$ sudo usermod -aG docker ${USER}
[[email protected] ~]$ sudo systemctl enable docker
[[email protected] ~]$ sudo reboot

# Deploy the Main Application

Create a Docker container network bridge (historical legacy).

[[email protected] ~]$ docker network create -d bridge flydog-sdr

Pull the FlyDog SDR pre-compiled image and deploy it.

[[email protected] ~]$ docker run -d \
             --name flydog-sdr \
             --network host \
             --privileged \
             --restart always \
             --volume kiwi.config:/root/kiwi.config \
             registry.cn-shanghai.aliyuncs.com/flydog-sdr/flydog-sdr:latest

# Deploy the Upgrade Module

The FlyDog SDR Project separates the upgrade module from the main application to reduce the size of the distribution, so the upgrade module will need to be deployed separately.

[[email protected] ~]$ docker run -d \
             --name admin \
             --network flydog-sdr \
             --publish 3708:3708 \
             --restart always \
             --volume /usr/bin/docker:/usr/bin/docker \
             --volume /var/run/docker.sock:/var/run/docker.sock \
             --volume kiwi.config:/etc/kiwi.config \
             registry.cn-shanghai.aliyuncs.com/flydog-sdr/admin:latest