Home
Become a radio amateur
Repeaters
Tools
Blog
The club
Contact
Members
FRDEITEN
HB9V · Radio Amateurs of Canton Vaud

Installing a Yaesu System Fusion (YSF) Reflector

● 26 October 2025 · 9 min read
YSF reflector Yaesu System Fusion C4FM - Infomaniak VPS installation guide

🛰️ Complete installation of a YSFReflector on an Infomaniak VPS: this guide will help you install and configure your own System Fusion (C4FM) reflector hosted in Switzerland, with a web dashboard, HTTPS and official registration on DVRef. Compatible with Debian 11/12 and Ubuntu 22.04/24.04.

📡 What is a YSF reflector?

A YSF reflector (Yaesu System Fusion) is a server that connects several amateur radio stations using Yaesu's C4FM digital mode over the Internet. It acts as a central meeting point where all connected users can talk together, creating worldwide “rooms” for conversation.

🎯 How it works: When a radio amateur transmits on a radio connected to the reflector, the signal is instantly passed on to all the other connected users, allowing group QSOs on a worldwide scale.

Why pYSFReflector?

This tutorial uses pYSFReflector, developed by IU5JAE. It is a modern Python version that replaces G4KLX's older C++ version.

🐍 Modern Python

No need to compile C++, direct and simple installation

✅ Compatible

Works with Pi-Star, WPSD and all YSF radios

🔄 Maintained

Regular updates and active bug fixing

💪 Stable

Better connection handling, fewer crashes

🇨🇭 Why Infomaniak?

Infomaniak is a leading Swiss hosting provider, particularly well suited to hosting an amateur radio reflector:

🇨🇭 Swiss hosting

Optimal data protection

🌱 100% renewable

Certified eco-friendly data centres

⚡ High performance

NVMe SSD infrastructure

💰 Affordable

From CHF 7/month

📋 Prerequisites

Minimum VPS configuration

  • 1 vCPU
  • 1 GB RAM
  • 10 GB SSD
  • System: Debian 12 or Ubuntu 24.04 LTS (recommended)

Information to have ready

📝 Before you start, have to hand:

  • Reflector name: 16 characters maximum (e.g. "HB9 SUISSE")
  • Description: 14 characters maximum (e.g. "Reflecteur CH")
  • Your e-mail: for DVRef and Let's Encrypt registration
  • Your callsign: a valid amateur radio callsign
  • Domain name: optional but recommended for HTTPS

🚀 Step-by-step installation

1. Preparing the server

Connect to your Infomaniak VPS over SSH:

ssh utilisateur@votre-ip-vps

Update the system:

sudo apt update
sudo apt upgrade -y

Install the basic tools:

sudo apt install -y git curl wget nano ufw

Create the working directory:

cd ~
mkdir ysf-install
cd ysf-install

2. Installing Python and dependencies

Install Python 3:

sudo apt install -y python3 python3-pip python3-venv

Check the installation:

python3 --version

💡 Expected version: Python 3.9 or later (usually 3.11 on Debian 12 / Ubuntu 24.04)

Installing the Python libraries

⚠️ Common problem: "externally-managed-environment"

If you get this error with pip, use one of the 3 methods below.

Method 1: Using the system packages (RECOMMENDED)

sudo apt install -y python3-aprslib python3-tinydb

For the "threaded" library, which is not in the repositories:

sudo pip3 install threaded --break-system-packages

🚨 CRITICAL WARNING: The dashes

Make sure you use TWO HYPHENS -- (short dashes) and NOT a single long dash (en dash). If you copy and paste from a PDF or Word document, check this! A long dash will make the command fail.

Method 2: Full installation with pip

If python3-tinydb is not available:

sudo pip3 install aprslib --break-system-packages
sudo pip3 install tinydb --break-system-packages
sudo pip3 install threaded --break-system-packages

Method 3: Permanent pip configuration

sudo mkdir -p /root/.config/pip
sudo nano /root/.config/pip/pip.conf

Add these lines to the file:

[global]
break-system-packages = true

Save with Ctrl+O, Enter, then exit with Ctrl+X.

You can now install without the flag:

sudo pip3 install aprslib tinydb threaded

Check that the libraries are installed:

pip3 list | grep -E "aprslib|tinydb|threaded"

3. Installing pYSFReflector

Download pYSFReflector from GitHub:

cd ~/ysf-install
git clone https://github.com/iu5jae/pYSFReflector.git

Create the necessary directories:

sudo mkdir -p /opt/ysfreflector
sudo mkdir -p /var/log/ysfreflector
sudo mkdir -p /usr/local/etc

Copy the files:

cd pYSFReflector
sudo cp YSFReflector /opt/ysfreflector/
sudo cp YSFReflector.ini /opt/ysfreflector/
sudo chmod +x /opt/ysfreflector/YSFReflector

Create the deny.db file:

sudo touch /usr/local/etc/deny.db
sudo chmod 644 /usr/local/etc/deny.db

⚠️ Critical file: Without this deny.db file, pYSFReflector throws an error at startup. This file contains the list of blocked users (empty to begin with).

Set the log permissions:

sudo chown -R $USER:$USER /var/log/ysfreflector

4. Configuring YSFReflector

Edit the main configuration file:

sudo nano /opt/ysfreflector/YSFReflector.ini

💡 nano shortcuts:

  • Ctrl+O then Enter: Save
  • Ctrl+X: Exit
  • Ctrl+W: Search

Edit the [General] section:

[General]
Id=00000
Name=HB9 SUISSE
Description=Reflecteur CH

💡 Explanations:

  • Id=00000: Leave it at zero for now. You will change it after registering on DVRef
  • Name: 16 characters maximum (including spaces)
  • Description: 14 characters maximum

Check the [Network] section:

[Network]
Port=42000

⚠️ Standard YSF port: Port 42000/UDP is the standard port for YSF. Do not change it unless absolutely necessary, as this could cause compatibility problems.

Check the [Log] section:

[Log]
FilePath=/var/log/ysfreflector
FileRoot=YSFReflector
FileLevel=1
DisplayLevel=1
FileRotate=1

Save the file: Ctrl+O, Enter, Ctrl+X

5. Installing the web dashboard

For Ubuntu 24.04 / Debian 12:

sudo apt install -y apache2 php libapache2-mod-php php-mbstring php-xml php-curl

For Ubuntu 22.04 / Debian 11:

sudo apt install -y apache2 php libapache2-mod-php php8.1-mbstring php8.1-xml php8.1-curl

Enable and start Apache:

sudo systemctl enable apache2
sudo systemctl start apache2

Download the dashboard:

cd ~/ysf-install
git clone https://github.com/dg9vh/YSFReflector-Dashboard.git

Install the dashboard:

sudo rm -rf /var/www/html/*
sudo cp -R YSFReflector-Dashboard/* /var/www/html/
sudo rm -f /var/www/html/index.html

Create the configuration file:

sudo mkdir -p /var/www/html/config
sudo nano /var/www/html/config/config.php

Copy this content (adapt the URL to your setup):

<?php
// Paths (WITHOUT trailing slash)
define("LOGPATH", "/var/log/ysfreflector");
define("LOGPREFIX", "YSFReflector");
define("INIPATH", "/opt/ysfreflector");
define("INIFILENAME", "YSFReflector.ini");
define("REFL_PATH", "/opt/ysfreflector");

// Compatibility with older versions
define("YSFREFLECTORLOGPATH", "/var/log/ysfreflector");
define("YSFREFLECTORLOGPREFIX", "YSFReflector");
define("YSFREFLECTORINIPATH", "/opt/ysfreflector");
define("YSFREFLECTORINIFILENAME", "YSFReflector.ini");
define("YSFREFLECTORPATH", "/opt/ysfreflector");

// Display settings
define("REFRESHAFTER", "10");
define("LOGO", "");
define("URL", "http://votre-domaine.com");
define("LOCALE", "fr_CH.utf8");
define("TIMEZONE", "Europe/Zurich");

// Features
define("SHOWSYSINFO", "1");
define("SHOWNETINFO", "1");
define("ENABLEXTDLOOKUP", "1");
define("QRZAPIKEY", "");
define("SHOWLH", "1");
define("LHLINES", "20");
define("DMRIDDATPATH", ".");
define("ENABLEYSFGATEWAY", "0");
?>

Save and set the permissions:

sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
sudo chmod 644 /var/www/html/config/config.php
sudo systemctl restart apache2

6. Configuring the firewall (CRITICAL)

🚨 CRUCIAL: TWO firewalls to configure

There are TWO firewalls that you must configure:

  1. UFW firewall: on your Linux server
  2. Infomaniak firewall: in the web control panel

If you only configure one of them, the dashboard will NOT be reachable from the Internet!

Part 1: UFW firewall (on the server)

🚨 WARNING: Allow SSH FIRST!

Allow SSH BEFORE enabling UFW, otherwise you will be locked out and unable to access your server!

sudo ufw allow 22/tcp
sudo ufw allow 42000/udp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

💡 Ports explained:

  • 22/tcp: SSH - Remote access to the server (CRITICAL)
  • 42000/udp: YSFReflector - System Fusion radio traffic
  • 80/tcp: HTTP - Web dashboard
  • 443/tcp: HTTPS - Secure dashboard

Part 2: Infomaniak firewall (web panel)

  1. Log in to manager.infomaniak.com
  2. Go to Cloud & Servers → Public Cloud
  3. Select your VPS
  4. Click Firewall in the side menu
  5. Add these 4 rules:
    • Port 22/TCP - Protocol TCP - Source: Anywhere - Action: Allow
    • Port 42000/UDP - Protocol UDP - Source: Anywhere - Action: Allow
    • Port 80/TCP - Protocol TCP - Source: Anywhere - Action: Allow
    • Port 443/TCP - Protocol TCP - Source: Anywhere - Action: Allow
  6. Save the changes

7. Configuring the systemd service

Create the service file:

sudo nano /etc/systemd/system/ysfreflector.service

Copy this content:

[Unit]
Description=YSFReflector Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/ysfreflector
ExecStart=/usr/bin/python3 /opt/ysfreflector/YSFReflector /opt/ysfreflector/YSFReflector.ini
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Save, then enable and start the service:

sudo systemctl daemon-reload
sudo systemctl enable ysfreflector.service
sudo systemctl start ysfreflector.service
sudo systemctl status ysfreflector.service

✅ Service active: You should see active (running) in green. If so, your reflector is working!

Useful commands

  • sudo systemctl status ysfreflector.service: Show the status
  • sudo systemctl restart ysfreflector.service: Restart
  • sudo journalctl -u ysfreflector.service -f: Live logs

Testing the dashboard

Open your browser and go to: http://votre-ip-vps/

You should see the dashboard with your reflector's information!

📝 Registering on DVRef

⚠️ Important: Registration is now done ONLY on DVRef.com. The old YSFReflector.de registry has not been maintained since June 2024.

Registration procedure

  1. Go to https://dvref.com/ysf/new
  2. Fill in the form:
    • Name: Name of your reflector (e.g. "HB9 SUISSE")
    • Description: Short description
    • Country: Country code (CH, FR, BE, etc.)
    • FQDN/IP: Your IP or domain name
    • Port: 42000
    • Email: Your e-mail address
    • Callsign: Your amateur radio callsign
  3. Submit the form
  4. You will receive a confirmation e-mail
  5. Click the link in the e-mail to activate
  6. Note your 5-digit ID (e.g. 12345)

Updating the configuration

Edit the configuration file:

sudo nano /opt/ysfreflector/YSFReflector.ini

Change the Id line:

[General]
Id=12345
Name=HB9 SUISSE
Description=Reflecteur CH

Replace 12345 with your actual ID. Save and restart:

sudo systemctl restart ysfreflector.service

⏱️ Propagation delay: Your reflector will appear in the Pi-Star and WPSD lists within 24 to 48 hours. This is normal, DNS propagation takes time.

🔒 HTTPS configuration with Let's Encrypt

⚠️ Domain name required: For HTTPS, you need a domain name pointing to your VPS. A plain IP address is not enough.

Installing Certbot

sudo apt update
sudo apt install -y certbot python3-certbot-apache

Obtaining the SSL certificate

sudo certbot --apache -d ysf.votredomaine.com

Replace ysf.votredomaine.com with your real domain name. Answer the questions:

  1. Email: Enter your e-mail
  2. Terms of Service: Type Y
  3. Share email: Y or N (optional)
  4. Redirect HTTP to HTTPS: Choose 2 to redirect automatically

Checking

sudo certbot certificates

Updating the dashboard

sudo nano /var/www/html/config/config.php

Change the URL line:

define("URL", "https://ysf.votredomaine.com");

Save and restart Apache:

sudo systemctl restart apache2

Test: https://ysf.votredomaine.com - You should see a green padlock in the address bar!

🔒 HTTPS enabled: Your dashboard is now secure. The certificate will renew itself every 60 days through Certbot's automatic cron job.

🎨 Customising the dashboard

Adding a logo

Upload your logo (PNG, 200x200px recommended):

scp logo.png utilisateur@votre-ip:/home/utilisateur/
ssh utilisateur@votre-ip
sudo mv ~/logo.png /var/www/html/logo.png
sudo chown www-data:www-data /var/www/html/logo.png

Enable it in the configuration:

sudo nano /var/www/html/config/config.php
define("LOGO", "logo.png");

Changing the name and description

sudo nano /opt/ysfreflector/YSFReflector.ini
[General]
Id=12345
Name=MY YSF REFLECTOR
Description=My description

Restart the reflector:

sudo systemctl restart ysfreflector.service

🔧 Maintenance

Recommended monthly maintenance

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

Checking disk space

df -h

Cleaning up old logs

sudo find /var/log/ysfreflector/ -name "*.log" -mtime +30 -delete

Backing up the configuration

mkdir -p ~/backups
sudo cp /opt/ysfreflector/YSFReflector.ini ~/backups/YSFReflector.ini.$(date +%Y%m%d)
sudo cp /var/www/html/config/config.php ~/backups/config.php.$(date +%Y%m%d)

🔧 Troubleshooting

Problem 1: Dashboard shows a blank page

sudo tail -50 /var/log/apache2/error.log
sudo systemctl status ysfreflector.service
ls -la /var/log/ysfreflector/

Problem 2: Service won't start

sudo journalctl -u ysfreflector.service -n 100

If you get the error "deny.db not found":

sudo touch /usr/local/etc/deny.db
sudo chmod 644 /usr/local/etc/deny.db
sudo systemctl restart ysfreflector.service

Problem 3: Dashboard not reachable

Check both firewalls:

sudo ufw status | grep 80
sudo systemctl status apache2

Also check in the Infomaniak panel that ports 80 and 443 are open.

Problem 4: Not visible in Pi-Star

Checklist:

  • ✓ Registered on DVRef.com?
  • ✓ Confirmation e-mail activated?
  • ✓ ID updated in YSFReflector.ini?
  • ✓ Port 42000/UDP open (UFW + Infomaniak)?
  • ✓ ysfreflector service running?
  • ✓ Waited at least 24-48 h?

🎯 Conclusion

🎉 Congratulations!

Your YSF reflector is now up and running on your Infomaniak VPS. You have a professional server with a web dashboard, secure HTTPS and official registration on DVRef.

✅ YSF reflector

pYSFReflector installed and configured

✅ Web dashboard

Interface available 24/7

✅ Security

HTTPS and two-layer firewall

✅ Registered

Visible in Pi-Star/WPSD

Useful resources

🤝 Our partners

Phonicom.ch: amateur radio specialist in Switzerland

At Phonicom you will find Yaesu C4FM radios, WPSD hotspots and all the accessories for the Yaesu System Fusion network. Personal advice and delivery in Switzerland.

Visit phonicom.ch →
Continue reading

Latest articles

All articles →