Change Release Channel

Settings~3 minView script

One unified Settings option to switch ProxMenux between the Stable (main branch) and Beta (develop branch) channels. The previous one-way 'Deactivate Beta Program' has been replaced by a bidirectional dialog that always offers both directions and runs the official installer for whichever channel you pick.

What changed

Earlier versions of ProxMenux exposed two separate flows — “Deactivate Beta Program” (only visible when beta was active) and a manual rerun of the beta installer to re-join. They are merged into a single Change Release Channel entry that is always present, shows the current channel and lets you flip between Stable and Beta in either direction.

Why this option exists

ProxMenux ships from two git branches:

  • Stable — the main branch. What the README points at, what most operators want, with a slower release cadence and only changes that have already been through beta validation.
  • Beta — the develop branch. Newer features and Monitor builds; carries the tag the next stable release will inherit. Some things may not work perfectly — that's the deal you sign up for and the way new features get tested before they ship.

Hopping between channels used to require remembering the right installer URL, copying it in from the README, and editing config.json by hand if something got out of sync. The unified option does the whole flow as a single guided action.

The dialog

From the main menu, Settings → Change Release Channel. A two-line menu shows up:

  • stable — Stable (main branch)
  • beta — Beta (develop branch)

The current channel is pre-selected and shown at the top of the menu. Picking the same channel returns a friendly “This release channel is already active” message — the dialog is fully idempotent. Picking a different channel pops up a confirmation with channel-specific text:

  • Stable → Beta: warns that beta builds may contain bugs or incomplete features.
  • Beta → Stable: warns that beta update checks will stop and the stable installer will reinstall the Stable channel components.

What happens when you confirm

  1. Downloads the official installer for the target channel:
    • Stable: install_proxmenux.sh from main
    • Beta: install_proxmenux_beta.sh from develop
    The download is verified to exist and made executable before the next step.
  2. Runs the installer end-to-end. The installer is the same one the README publishes — no custom path, no shortcut. That means existing component detection, file backups, dependency installs, language preservation, etc. all behave identically to a fresh install of the target channel.
  3. When switching to Stable, the menu then prunes any leftover beta metadata from config.json: beta_program, beta_version, install_branch, update_available.beta* are deleted, and proxmenux_monitor.status = beta_updated is normalised to updated. The leftover beta_version.txt file and any downloaded beta installer are removed.
  4. When switching to Stable, the Monitor systemd unit file is also re-written from the Stable template (drops the “Beta” suffix from the unit description, points ExecStart back at the runtime dir) so a fresh systemctl status reflects the channel you're on.
  5. Reloads the configuration menu. The next visit to Show Version Information will show the new channel.

Switching back and forth

Both directions go through the same installer — they are not special-cased uninstall + reinstall flows. Each direction simply runs the channel's own installer, which is designed to be idempotent and safe to re-execute over an existing install. Practical consequences:

  • Your existing config, ProxMenux Monitor login (auth.json), notification channels, post-install registry, custom thresholds — none of those are touched. The channel switch only swaps the script tree and the binary AppImage.
  • A Monitor that was active before the switch stays active after; one that was deactivated stays deactivated.
  • ProxMenux Monitor auth.json, API tokens and the JWT secret are preserved across channel changes. Sessions don't get logged out.
  • You can flip channels as many times as you like — the dialog will accept it every time and rerun the installer. No restart of Proxmox is required.

Reporting issues from the beta

If something behaves unexpectedly while you're on the Beta channel, opening an issue with enough context is what closes the gap to a stable release. The most useful report includes:

  • What you did and what you expected to happen.
  • Any error messages shown on screen.
  • The relevant Monitor logs:
  • journalctl -u proxmenux-monitor -n 50 --no-pager
  • The current ProxMenux version (Settings → Show Version Information).

Open a GitHub Issue with that information and we get to the fix faster.

Manual equivalent

If you prefer the shell or are scripting the channel switch, the dialog is just a thin wrapper around these commands:

# Check current channel (returns "beta" or "stable")
jq -r '.beta_program.status // "stable"' /usr/local/share/proxmenux/config.json

# Switch to Stable
bash -c "$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh)"

# Switch to Beta
bash -c "$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/develop/install_proxmenux_beta.sh)"

Why both directions are now one option

The previous “Deactivate Beta Program” only existed if the host had ever joined the beta. Operators wanting to join had to find the beta installer URL elsewhere; operators wanting to leave sometimes had to manually clean up beta_* metadata to be sure. The unified Change Release Channel option always shows up, makes the current channel explicit, and treats both directions as the same kind of operation — runnable, repeatable, idempotent.

Troubleshooting

“Could not download the installer”

Outbound HTTPS to raw.githubusercontent.com failed. Check connectivity and DNS from the host:
curl -fsSL -o /tmp/test https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh && head -1 /tmp/test
If this fails outside ProxMenux, it's a network / proxy issue on the host.

“Installer finished with errors”

The installer surfaced a non-zero exit code. The previous channel and any already-installed components are left as they were before the switch. Re-run the action; if it keeps failing, run the installer manually from a shell (see the manual equivalent above) — that gives you the full output instead of the dialog summary.

“Could not update config file” after switching to Stable

The post-install cleanup of beta metadata failed — usually because config.json has a syntax error from a manual edit. Validate it:
jq . /usr/local/share/proxmenux/config.json
Fix or restore the file and rerun the option.

Related