# 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.

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

Make I2C module be loaded at system boot time.

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

Load the I2C module.

[fdsdr@centos ~]$ sudo dtparam i2c_arm=on
[fdsdr@centos ~]$ sudo modprobe i2c-bcm2708

Reboot to apply the configuration.

[fdsdr@centos ~]$ sudo reboot

# Installing Docker

Automate the installation using Docker-related installation scripts.

[fdsdr@centos ~]$ sudo curl -o /tmp/get-docker.sh -fsSL get.docker.com
[fdsdr@centos ~]$ sudo chmod +x /tmp/get-docker.sh
[fdsdr@centos ~]$ 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.

[fdsdr@centos ~]$ 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.

[fdsdr@centos ~]$ sudo usermod -aG docker ${USER}
[fdsdr@centos ~]$ sudo systemctl enable docker
[fdsdr@centos ~]$ sudo reboot

# Deploy the Main Application

Create a Docker container network bridge (historical legacy).

[fdsdr@centos ~]$ docker network create -d bridge flydog-sdr

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

[fdsdr@centos ~]$ 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.

[fdsdr@centos ~]$ 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