xftp-server — setup guide
1. Initialization
# open server — anyone can upload files
sudo -u xftp xftp-server init -l \
--fqdn=your.domain.com \
-q 20gb -p /srv/xftp/
init will generate self-signed TLS certificates. SimpleX verifies authenticity via fingerprint, not a browser CA.
2. Configuration
Edit /etc/opt/simplex-xftp/file-server.ini:
- [TRANSPORT] host: — your domain or IP
- [TRANSPORT] port: — default 5244
- [FILES] storage_quota: — default 20gb
- [FILES] path: — default /srv/xftp/
Upload password — uncomment create_password in [AUTH]:
[AUTH]
create_password: your-secure-password
Password is required only for uploaders, not for recipients. Address with password:
xftp://FINGERPRINT:PASSWORD@your.domain.com:5244
Port 5244 is chosen to avoid conflicts with smp-server (443, 8443) and Caddy.
3. Start
systemctl enable --now xftp-server
journalctl -u xftp-server | grep "Server address"
4. Server address
xftp://FINGERPRINT@your.domain.com:5244
xftp://FINGERPRINT@1.2.3.4:5244
Fingerprint:
cat /etc/opt/simplex-xftp/fingerprint
5. Re-issuing TLS certificate
When changing domain or IP — without losing fingerprint:
sudo systemctl stop xftp-server
sudo -u xftp xftp-server cert --cn your.domain.com
sudo systemctl start xftp-server
ca.key must be present in /etc/opt/simplex-xftp/ for this to work.
6. CA key
sudo cat /etc/opt/simplex-xftp/ca.key # back it up
sudo rm /etc/opt/simplex-xftp/ca.key # optional — server works without it
The key is only needed for xftp-server cert when rotating the certificate.
7. Free domain via DuckDNS
- Register at https://duckdns.org, create a subdomain
- Set your external IP
- Weekly keepalive to prevent domain deactivation:
# /etc/systemd/system/duckdns.service
[Unit]
Description=DuckDNS keepalive
After=network-online.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c \
'curl -fsSo /dev/null \
"https://www.duckdns.org/update?domains=NAME&token=TOKEN&ip="'
# /etc/systemd/system/duckdns.timer
[Timer]
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.target
systemctl enable --now duckdns.timer
Pinned Comments
guglovich commented on 2026-03-11 17:35 (UTC) (edited on 2026-03-11 17:38 (UTC) by guglovich)
xftp-server — setup guide
1. Initialization
init will generate self-signed TLS certificates. SimpleX verifies authenticity via fingerprint, not a browser CA.
2. Configuration
Edit
/etc/opt/simplex-xftp/file-server.ini: -[TRANSPORT] host:— your domain or IP -[TRANSPORT] port:— default5244-[FILES] storage_quota:— default20gb-[FILES] path:— default/srv/xftp/Upload password — uncomment
create_passwordin[AUTH]:Password is required only for uploaders, not for recipients. Address with password:
Port 5244 is chosen to avoid conflicts with smp-server (443, 8443) and Caddy.
3. Start
4. Server address
Fingerprint:
5. Re-issuing TLS certificate
When changing domain or IP — without losing fingerprint:
ca.keymust be present in/etc/opt/simplex-xftp/for this to work.6. CA key
The key is only needed for
xftp-server certwhen rotating the certificate.7. Free domain via DuckDNS