Getting Started: Config Backup/Restore for the FLDIGI Suite ============================================================== This guide walks you through using configbakrestore.sh to save your FLDIGI, FLRIG, FLMSG, FLAMP, JS8Call, JS8Spotter, and SitRepMapper settings, and put them back -- whether that's on the same machine after a reinstall, or on a brand new one. No prior Linux experience needed -- just follow along. 1. What this script does ------------------------- It saves the settings you've already configured -- FLDIGI's macros and preferences, FLRIG's rig setup, FLMSG/FLAMP's preferences, JS8Call's configuration, JS8Spotter's settings database, and SitRepMapper's settings/areas/flags/reports -- into a single zip file, and can put them back into place later. The goal is to never have to redo all of that setup by hand again. It does NOT touch your logbook or message history (see section 3). It's a companion to install-sitrepnet-suite.sh, which installs these programs in the first place. 2. What you need before starting --------------------------------- - A Linux system with the FLDIGI-suite programs already installed (via install-sitrepnet-suite.sh or otherwise). - The zip/unzip command-line tools. These come pre-installed on most systems; if not, install them with: sudo apt install zip unzip 3. What gets backed up (and what doesn't) -------------------------------------------- This tool backs up settings only: FLDIGI - your saved preferences, colors, frequency list, and (most importantly) your net-control macro scripts FLRIG - your rig setup (which radio, serial port, etc.) FLMSG - preferences FLAMP - preferences JS8Call - your configuration file JS8Spotter - its settings database (only if installed at install-sitrepnet-suite.sh's default location -- see section 9 if you used a custom install location) SitRepMapper - its settings, plus your saved areas, flags, and logged reports It does NOT back up your logbook or message history -- that's your operating data, not settings, and mixing the two would make backups large and confusing. When you run a backup, the script prints out where that data lives so you can copy it separately by hand if you want to: FLDIGI logbook: ~/.fldigi/logs/logbook.adif FLDIGI contest data: ~/.fldigi/data/ JS8Call message log: ~/.local/share/JS8Call/ALL.TXT JS8Call directed log: ~/.local/share/JS8Call/DIRECTED.TXT JS8Call inbox: ~/.local/share/JS8Call/inbox.db3 (Just drag/copy those files wherever you're keeping the backup zip, and put them back in the same spot on the other machine.) 4. Make it runnable -------------------- Linux won't run a downloaded script until you mark it executable. Do that once with: chmod +x configbakrestore.sh 5. Back up your settings -------------------------- From the folder containing the script: ./configbakrestore.sh backup What you'll see: Backup written to: /home/kn4am/configbakrestore_kn4am-Meerkat_20260905_143022.zip Included: fldigi: .fldigi/fldigi.prefs fldigi: .fldigi/fldigi_def.xml fldigi: .fldigi/fldigi_UI_colors.colors fldigi: .fldigi/frequencies2.txt fldigi: .fldigi/macros/ flrig: .flrig/flrig.prefs flrig: .flrig/IC-7300.prefs flmsg: .nbems/FLMSG.prefs flamp: .nbems/FLAMP/FLAMP.prefs js8call: .config/JS8Call.ini js8spotter: src/fldigi-suite/js8spotter/js8spotter.db sitrepmapper: .config/sitrepmapper/config.json sitrepmapper: .config/sitrepmapper/areas.areas.json sitrepmapper: .config/sitrepmapper/flags.flags.json sitrepmapper: .config/sitrepmapper/reports.reports.json Data/log files NOT included in this backup (copy by hand if you want them): FLDIGI logbook: ~/.fldigi/logs/logbook.adif ... That's it -- everything is now in one zip file. If a program was never configured (or isn't installed), it just gets listed under "Skipped" -- that's normal, not an error. 6. Move the backup to a new machine -------------------------------------- The zip is just a regular file -- move it however you'd move any file: - A USB flash drive - scp over the network, e.g.: scp configbakrestore_kn4am-Meerkat_20260905_143022.zip pi@raspberrypi.local:~/ - A cloud drive / email attachment, if it's small (it usually is -- settings files are tiny, typically well under 1 MB total) 7. Restore your settings ---------------------------- On the new (or freshly reinstalled) machine, with the script and the zip file both present: ./configbakrestore.sh restore configbakrestore_kn4am-Meerkat_20260905_143022.zip What you'll see: Restored: fldigi: .fldigi/fldigi.prefs fldigi: .fldigi/fldigi_def.xml fldigi: .fldigi/fldigi_UI_colors.colors fldigi: .fldigi/frequencies2.txt fldigi: .fldigi/macros/505Net/505Net-v01.mdf flrig: .flrig/flrig.prefs flrig: .flrig/IC-7300.prefs flmsg: .nbems/FLMSG.prefs flamp: .nbems/FLAMP/FLAMP.prefs js8call: .config/JS8Call.ini js8spotter: src/fldigi-suite/js8spotter/js8spotter.db sitrepmapper: .config/sitrepmapper/config.json sitrepmapper: .config/sitrepmapper/areas.areas.json sitrepmapper: .config/sitrepmapper/flags.flags.json sitrepmapper: .config/sitrepmapper/reports.reports.json WARNING: JS8Call's CAT/PTT serial port was restored as-is (e.g. /dev/ttyUSB0) and may not match this machine. Open JS8Call and re-check Settings > Radio before using it. Two things worth knowing: - If a settings file already existed on this machine, it isn't simply overwritten -- the old copy is renamed alongside it with a ".bak-" ending, so nothing is ever silently lost. For example, an existing ~/.flrig/flrig.prefs becomes ~/.flrig/flrig.prefs.bak-20260905_143530 once the restored one is in place. - Always check that warning about JS8Call above when it appears -- see section 9 for why, and what to do about it. One more manual check, especially if you're moving between two different machines: fldigi_def.xml (restored above) is also where FLDIGI's audio device (soundcard) and direct rig-control settings live, and those can genuinely differ between machines -- the same kind of risk as JS8Call's serial port. After restoring, open FLDIGI's Configuration menu and check Soundcard (and Rig Control, if you're not just relying on FLRIG) to make sure the right audio device is selected for the machine you're on now. This is just a "look and confirm" step, not something the script does for you. One more manual check if you restored SitRepMapper: its config.json remembers an absolute path to the JS8Spotter database it last had open (last_db_path). This is restored as-is, so if JS8Spotter ended up in a different location on this machine (or wasn't restored at all), just reopen the database from SitRepMapper's own file picker. Now just launch the programs (fldigi, flrig, flmsg, flamp, js8call, js8spotter, sitrepmapper) and your settings should be exactly as you left them. 8. Common examples -------------------- You don't need to memorize these -- just come back to this section when you want to do something specific. Back up just one program (e.g. only FLRIG, before trying a new radio): ./configbakrestore.sh backup --only=flrig Back up a couple of programs together: ./configbakrestore.sh backup --only=fldigi,flrig Save the backup to a specific folder instead of the current one: ./configbakrestore.sh backup --outdir=~/backups Restore just one program from a full backup (e.g. you only want FLDIGI's macros back, and want to leave everything else alone): ./configbakrestore.sh restore my-backup.zip --only=fldigi See all available options: ./configbakrestore.sh --help 9. Troubleshooting / FAQ --------------------------- "Permission denied" when I try to run it You forgot step 4. Run chmod +x configbakrestore.sh, then try again. "'zip' is required but not installed" / "'unzip' is required but not installed" Install it with: sudo apt install zip unzip Then run the command again. I got a warning that a program "appears to be running" The script checks for this before backing up or restoring, because a running program may not have written its latest settings to disk yet (backup), or may overwrite the restored file again when it exits (restore). It's just a warning, not a hard stop -- close the program first if you want to be safe, or ignore it if you know what you're doing. Why did JS8Call warn me about the serial port after restoring? FLRIG remembers your radio by a stable ID tied to its USB cable, so its serial port setting is safe to copy between machines. JS8Call instead just remembers something like /dev/ttyUSB0, which is really "whichever USB-serial device Linux happened to find first" -- and that can be a completely different physical device on another machine, or even after plugging in a different peripheral. So after restoring, open JS8Call, go to Settings > Radio, and make sure the serial port shown there is actually correct for this machine before you start using it. I ran "restore" but nothing seems to have changed Check that the zip you pointed at actually contains that program's settings -- if you made the original backup with --only=flrig, for instance, restoring it will only ever restore FLRIG, no matter what you pass to restore's own --only. Run "unzip -l your-backup.zip" to see exactly what's inside a given backup file. Can I restore an old backup on top of a newer setup safely? Yes -- nothing is silently overwritten. Any file the restore would replace gets renamed first with a ".bak-" suffix, so you can always find and recover what was there before. Where do my logbook and message history go, then? They're intentionally left alone by this tool -- see section 3. Copy those files yourself if you want them on the new machine too. After restoring, FLDIGI seems to have the wrong sound card / audio isn't working right fldigi_def.xml (where audio device selection lives) is restored as-is from the source machine -- see the note at the end of section 7. Open FLDIGI's Configuration > Soundcard and pick the correct device for this machine if the hardware is different from the machine you backed up from. JS8Spotter's settings weren't included in my backup The script only looks for js8spotter.db at install-sitrepnet-suite.sh's default install location (~/src/fldigi-suite/js8spotter/). If you (or the installer) used a custom --build-dir=, the file lives elsewhere and this tool won't find it automatically -- copy it by hand instead. The backup output flags this for you under "Skipped", e.g.: js8spotter: src/fldigi-suite/js8spotter/js8spotter.db (not found) -- if installed with a custom --build-dir=, back it up by hand instead SitRepMapper opened the wrong (or no) JS8Spotter database after restoring That path is remembered in SitRepMapper's config.json as an absolute path from the original machine, and is restored exactly as it was -- see the note at the end of section 7. Just reopen the correct database from within SitRepMapper. 10. Full option reference ---------------------------- ./configbakrestore.sh backup [--only=NAME[,NAME...]] [--outdir=DIR] ./configbakrestore.sh restore [--only=NAME[,NAME...]] ./configbakrestore.sh -h | --help --only=NAME[,NAME...] Limit backup or restore to the named program(s) instead of all seven. NAME is one of: fldigi, flrig, flmsg, flamp, js8call, js8spotter, sitrepmapper. --outdir=DIR (backup only) Where to write the zip file. Default: current directory. -h, --help Show built-in help text 11. Need more help? ---------------------- Run ./configbakrestore.sh --help for the full built-in reference, or see README.txt included alongside this script for a more technical overview of exactly which files are captured and why.