Upgrade
Upgrades are split into Dash upgrades and node upgrades.
Dash Upgrade
Dash installed from the Linux release package uses:
sudo bash /opt/Ithiltir-dash/update_dash_linux.sh --check
sudo bash /opt/Ithiltir-dash/update_dash_linux.sh -y --lang en
The default target is the latest stable release. Use --test for prereleases:
sudo bash /opt/Ithiltir-dash/update_dash_linux.sh --check --test
sudo bash /opt/Ithiltir-dash/update_dash_linux.sh -y --test --lang en
The updater:
- Checks the current version and release channel.
- Downloads the new package from GitHub Releases.
- Stops
dash.service. - Backs up
/opt/Ithiltir-dashto a temporary directory. - Replaces installed files.
- Tightens sensitive file permissions.
- Runs database migrations.
- Starts
dash.service.
--check checks the selected target channel. The default channel checks stable releases only; --test checks prereleases only. If the installed Dash is a prerelease newer than the latest stable release, the default update stops and tells you to use --test.
If migration fails, the script attempts to restore the install directory and restart the old service. Migration steps already committed to the database are not rolled back automatically, so back up the database before upgrading.
Manual Dash Upgrade
systemctl stop dash.service
cp -a /opt/Ithiltir-dash /opt/Ithiltir-dash.bak.$(date +%Y%m%d%H%M%S)
tar -xzf Ithiltir_dash_linux_amd64.tar.gz
cp -a Ithiltir-dash/. /opt/Ithiltir-dash/
env DASH_HOME=/opt/Ithiltir-dash /opt/Ithiltir-dash/bin/dash migrate -config /opt/Ithiltir-dash/configs/config.local.yaml
systemctl start dash.service
Back up the database before manual upgrades:
pg_dump -Fc -d <db_name> -f ithiltir-$(date +%Y%m%d%H%M%S).dump
Node Upgrade
Dash release packages include node assets. When the admin console triggers a node upgrade:
- Dash selects the asset from the node's last reported platform.
POST /api/admin/nodes/{id}/upgradewrites a volatile upgrade task.- The node receives an update manifest in the next
POST /api/node/metricsresponse. - Supported managed install layouts download, verify, switch, and restart node.
Supported scope:
- Windows: runner-managed only.
- Linux/macOS: requires the
/var/lib/ithiltir-node/releases/<version>and/var/lib/ithiltir-node/currentinstall layout.
:::warning Automatic Update Delivery
Automatic update delivery from the Dash admin console requires the current node version to be 0.2.1 or later. For older versions, the admin console shows a manual update notice and the install command must be rerun.
:::
Direct binaries outside the managed install layout ignore update manifests.
Linux/macOS Node Reinstall
When managed self-update cannot be used, rerun the install command. The script downloads the new binary, writes a new release directory, and updates the current symlink.
Version Channels
Versions must be strict SemVer:
MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
Do not use a v prefix. Stable releases cannot include a prerelease segment; prerelease builds can include segments such as -rc.1 or -alpha.1.