Installing fm-dx-webserver on Linux
First, make sure that your ISP is NOT using CGNAT or port forwarding will not work.
Here’s how to test for CGNAT. Log into your router settings. See what ipv4 IP address is used for your WAN settings. Then compare it with the IP address of your webserver’s computer. If they match, then breathe a sigh of relief because you don’t have CGNAT. If they don’t match, your ISP is using CGNAT, and port forwarding, which is an important part of the setup, will NOT work. If you don't know your IP address, go here to find out.
If your ISP has CGNAT enabled, ask them if they can give you a static IP instead. If they can't, then you are out of luck (there are one or two other things you could try, but these are involved and not particularly easy to do, so I wouldn't recommend them yet).
If your ISP gave you a non-CGNAT (static) IP address, you can go to the next step, which is port forwarding. You need to go into your router settings to do this.
Now we need to do port forwarding. Your ISP may present it differently than mine, but the settings should be the same.
If nothing you do will make port forwarding work and your ISP says they don't use CGNAT, don't believe them.
You now have port forwarding set up, so you can now install the software on your laptop or computer. Open up a terminal and type in the commands shown in red. Do it one line at a time. Press Enter after typing each line. In line 4, type the line just as you see it. Don't change anything. In line 5, after typing it, close out your terminal and then open it again. In line 7, you can use password as your password or you can change password to something else. You will need it for setup, so remember it. In line 8, it's node (space) then a period. Now, watch your terminal. FMDX-webserver should start up and you should see it open up before your eyes.
Installation Steps
1. Install dependencies
sudo apt update sudo apt install git ffmpeg libssl-dev gcc make -y
2. Download git repositories
git clone https://github.com/kkonradpl/xdrd.git git clone https://github.com/noobishsvk/fm-dx-webserver.git
3. Build and Install xdrd
cd xdrd sudo make install
4. Add yourself to the dialout group (so you can access your TEF)
sudo usermod -a -G dialout $USER
5. Install Node.js via NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Close and reopen your terminal, or run source ~/.bashrc
to apply changes.
Then install Node.js:
nvm install node
6. Install npm dependencies
cd fm-dx-webserver npm install
7. Run xdrd in the background (change password to the password you want to use)
xdrd -p password -b
8. Run fm-dx-webserver from the fm-dx-webserver folder:
node .
This will start fm-dx-webserver. You can now access it using your Linux machine IP and continue with the web-based configuration.
Go into the webserver admin section by typing localhost:8080 into your browser's address box and logging in with your computer's password. Make any changes and save them. Go to servers.fmdx.org to see if your webserver is on their map.
Now you can listen to your TEF via your webserver by typing your IP address followed by :8080, for example, xxx.xxx.xx.xxx:8080. Listen to it on your smartphone, tablet or computer. Anyone on the planet can listen to your webserver just by using that address or by going to servers.fmdx.org, finding your location on a map of the world and clicking on it. Very cool!