Skip to main content

FileWave Automation Scripts

This article contains the scripts used by the Downloads page. The scripts are here for documentation purposes. Note that you don't need to directly deal with this page aside from reference documentation. Each download page has the right 1-liner for upgrading to that version.

FileWave provides supported upgrade scripts to help you safely upgrade FileWave components on Debian-based systems. These scripts automate required checks, ensure compatibility, and guide you through the correct upgrade path for your environment.

The scripts have been used internally and by customers for many releases. This page explains what they do, how they behave, and what to expect during an upgrade.

What the Upgrade Scripts Do

At a high level, each upgrade script:

  • Detects the currently installed FileWave version (if present)

  • Validates system requirements and available disk space

  • Applies the requested FileWave upgrade

  • Applies recommended Debian OS updates when appropriate

  • Handles required service restarts and pre-upgrade checks

  • Writes a detailed log file to /var/log

  • Schedules a system reboot when required

The scripts are designed to be safe to re-run and will stop early if an unsupported upgrade or downgrade is detected.

Interactive and Unattended Use

The scripts support both interactive and unattended operation:

  • When run interactively, progress is displayed on screen and the script may pause briefly before rebooting.

     

    • You may press Enter to reboot immediately.

    • You may press Ctrl-C to cancel the reboot.

     

  • When run unattended, the script proceeds automatically and reboots without waiting for user input.

The scripts work correctly when run:

  • Over SSH

  • From a local console

  • Inside a screen session

  • Using wget | bash

Running upgrades inside a screen session is strongly recommended.


FileWave Server: Important Upgrade Behavior (16.3.0 and Later)

Starting with FileWave Server 16.3.0, significant changes were introduced, including:

  • An upgrade of the underlying operating system from Debian 12 to Debian 13

  • New PostgreSQL components used by FileWave Server

Because of these changes, the FileWave Server upgrade script includes additional safety logic.

Staged Upgrade Requirement (Older Versions)

If your system is running a very old FileWave Server version (prior to 16.0.0):

  • The script will first upgrade the server to FileWave Server 16.2.3

  • The upgrade will then stop and reboot

  • You must verify that FileWave Server 16.2.3 is working correctly

  • After verification, re-run the upgrade script to proceed to 16.3.0 or newer

This staged approach is required to ensure database compatibility and prevent data loss.

Why This Is Necessary

  • Older FileWave Server versions used older PostgreSQL components

  • FileWave Server 16.0–16.2 introduced newer PostgreSQL components while retaining compatibility for upgrades

  • FileWave Server 16.3.0 and later remove older PostgreSQL libraries and introduce newer database components

  • Attempting to skip directly from very old versions to 16.3.0 is not supported

The upgrade script automatically enforces this safe upgrade path and clearly explains what is happening when a staged upgrade is required.


Operating System Upgrades

  • FileWave Server versions prior to 16.3.0 run on Debian 12

  • FileWave Server 16.3.0 and later upgrade the system to Debian 13 as part of the process

The script will only perform a Debian OS upgrade when required by the target FileWave version.


Logging and Troubleshooting

Each script writes a detailed log file that can be used for troubleshooting or when opening a support case:

  • FileWave Server:

    /var/log/filewave_server_update.log

  • FileWave IVS:

    /var/log/filewave_ivs_update.log

  • FileWave Booster:

    /var/log/filewave_booster_update.log

If you contact FileWave Support, include the relevant log file along with a brief description of what you were upgrading to.


Best Practices

  • Always ensure you have a current backup before upgrading

  • Run upgrades during a maintenance window

  • Use a screen session for long upgrades

  • Allow the system to reboot when prompted

  • Follow any on-screen instructions if a staged upgrade is required


Scripts

FileWave Server Upgrade

fwxserver_upgrade.sh - This script is used by the Download page fro FileWave Server upgrades on Debian. Some details;

To run this script, use the following 1-liner for example:

sudo DEBIAN_FRONTEND=noninteractive bash -c 'set -e; apt-get update -y; apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" screen wget; ts=$(date +%Y%m%d%H%M%S); scr=fwxserver_upgrade_$ts; tmp=/tmp/fwxserver_upgrade_$ts.sh; wget -qO "$tmp" https://kb.filewave.com/attachments/411; chmod +x "$tmp"; echo "Starting upgrade in screen session: $scr"; echo "Detach with Ctrl-A then D, reattach with: sudo screen -r $scr"; exec screen -S "$scr" bash -lc "\"$tmp\" -v 16.3.0 -r 1 -p -y"'

FileWave Booster Upgrade

fwbooster_upgrade.sh - This script is used by the Download page fro FileWave Booster upgrades on Debian. Some details;

To run this script, use the following 1-liner for example:

sudo DEBIAN_FRONTEND=noninteractive bash -c 'set -e; apt-get update -y; apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" screen wget; ts=$(date +%Y%m%d%H%M%S); scr=fwbooster_upgrade_$ts; tmp=/tmp/fwbooster_upgrade_$ts.sh; wget -qO "$tmp" https://kb.filewave.com/attachments/412; chmod +x "$tmp"; echo "Starting upgrade in screen session: $scr"; echo "Detach with Ctrl-A then D, reattach with: sudo screen -r $scr"; exec screen -S "$scr" bash -lc "\"$tmp\" -v 16.3.0 -r 1 -p -y"'

FileWave IVS Upgrade

ivs_upgrade.sh - This script is used by the Download page for IVS upgrades on Debian. Some details;

To run this script, use the following 1-liner for example:

sudo DEBIAN_FRONTEND=noninteractive bash -c 'set -e; apt-get update -y; apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" screen wget; ts=$(date +%Y%m%d%H%M%S); scr=ivs_upgrade_$ts; tmp=/tmp/ivs_upgrade_$ts.sh; wget -qO "$tmp" https://kb.filewave.com/attachments/408; chmod +x "$tmp"; echo "Starting upgrade in screen session: $scr"; echo "Detach with Ctrl-A then D, reattach with: sudo screen -r $scr"; exec screen -S "$scr" bash -lc "\"$tmp\" -v 16.3.0 -r 1 -p -y"'

Universal One Liner

You can also use this more universal one liner that doesn't hard code anything and you can just enter what you want to do.

sudo DEBIAN_FRONTEND=noninteractive bash -c 'set -e; read -p "Component (Server/Booster/IVS): " c; case "${c,,}" in server) att=411; name=fwxserver ;; booster) att=412; name=fwbooster ;; ivs) att=408; name=ivs ;; *) echo "Invalid component"; exit 1 ;; esac; read -p "Version (e.g. 16.3.0): " v; [[ "$v" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "Invalid version format"; exit 1; }; read -p "Release (Prod/Dev/Beta): " r; case "${r,,}" in prod) f=-p ;; dev) f=-d ;; beta) f=-b ;; *) echo "Invalid release type"; exit 1 ;; esac; apt-get update -y; apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" screen wget; ts=$(date +%Y%m%d%H%M%S); scr=${name}_upgrade_$ts; tmp=/tmp/${name}_upgrade_$ts.sh; wget -qO "$tmp" https://kb.filewave.com/attachments/$att; chmod +x "$tmp"; echo "Starting upgrade in screen session: $scr"; echo "Detach with Ctrl-A then D, reattach with: sudo screen -r $scr"; exec screen -S "$scr" bash -lc "\"$tmp\" -v $v -r 1 $f -y"'