How do I choose the Stable or Beta update channel and set a maintenance window?
Software updates can follow the Stable channel (the default) or the Beta channel, and automatic installs can be limited to a maintenance window such as 02:00 to 05:00. These controls are new: they are not in build v278 and ship with the next release.
Availability
The update channel, the explicit automatic-update switch and the maintenance window were added to the updater after build v278 (committed 2026-11-16) and are not part of the shipped build yet. Until they ship, Settings → Software updates offers only the three policies Off, Notify and Automatic. See Software updates settings. This article describes what the next release adds.
The controls
In Settings → Software updates:
- Check for software updates (a switch): off means the policy Off (no checks, no downloads, no installs).
- Install updates automatically (a switch): off means Notify (you approve each release); on means Automatic.
- Release channel card: choose Stable or Beta.
- Maintenance window card: Only install automatically during a maintenance window, with a start time, an end time and a time zone, and Save maintenance window.
Stable and Beta
| Channel | What you get |
|---|---|
| Stable (the default) | Releases that have been out the longest. Recommended for production servers. |
| Beta | Earlier, less-tested releases. You get new features sooner, with a higher chance of a rough edge. |
The server tells the licence service which channel you chose with every licence request, and the licence service decides what it offers. The offer travels inside the signed lease, so a switch takes effect once the licence service has issued a lease for the new channel. BackupWall asks for one at once; if it cannot, the next 6-hourly check-in does. Until then, the page says "Switched to the Beta channel. The licence service is being asked what it offers there; this takes a few minutes, and nothing from the previous channel is installed in the meantime." So switching from Beta to Stable can never install a Beta release that was downloaded earlier. An older policy file with no channel reads as Stable.
Maintenance window
A maintenance window limits automatic installs to a time range.
- In Settings → Software updates, open the Maintenance window card and switch on Only install automatically during a maintenance window.
- Enter a start and an end time in 24-hour form (
HH:MM, for example02:00and05:00). - Choose a time zone (an IANA name such as
Europe/BerlinorUTC), or leave it empty to use the server's own zone. - Choose Save maintenance window.
Rules:
- The start is inside the window, the end is not. A start later than the end crosses midnight:
22:00to04:00is open from 22:00 until 03:59 the next morning. - A start equal to the end is refused.
- With no window set, an automatic install can happen at any time.
- The window holds back only the automatic install. Checking, downloading and notifying are never held back, an administrator's own approval in Notify mode installs without waiting for the window, and a manual root
applyand crash recovery ignore it. - Inside the window, an install still waits until no backup, restore, migration or download is running, and tries again every 5 minutes until the window closes.
- A window that cannot be understood (a bad time, an unknown zone) counts as closed, so a bad setting can only delay an automatic install, never let one through at the wrong time. The page then says the release "will not be installed automatically: the maintenance window cannot be used".
- When a release is downloaded and waiting, the page says "<version> is downloaded and waits for the maintenance window (02:00 to 05:00 Europe/Berlin)."
From the command line
cd /opt/backupwall
.venv/bin/python -m app.updates policy automatic --channel stable \
--window on --window-start 02:00 --window-end 05:00 --window-tz Europe/Berlin
--channel stable|beta, --window on|off, --window-start HH:MM, --window-end HH:MM and --window-tz NAME|default set the channel and window; what you do not pass stays as it is. The API takes the same fields on PUT /updates/policy.