Update

This page describes how to update Slurm-web to the latest version. It is important to keep your installation up to date to benefit from the latest features, improvements, and security patches.

The document provides a general procedure for updating the software and specific steps for updating to latest major version.

General Procedure

System packages

Depending on host Linux distribution, run this command to update Slurm-web packages:

  • RHEL, CentOS, Rocky Linux, AlmaLinux OS and Fedora

  • Debian and Ubuntu

  • SLES and openSUSE

# dnf update
# apt update && apt upgrade
# zypper update

Restart services:

  • Native service

  • Production HTTP server

When using default native service:

# systemctl restart slurm-web-gateway.service slurm-web-agent.service
# systemctl restart slurm-web-gateway-uwsgi.service slurm-web-agent-uwsgi.service

Check status:

  • Native service

  • Production HTTP server

When using default native service:

# systemctl status slurm-web-gateway.service slurm-web-agent.service
# systemctl status slurm-web-gateway-uwsgi.service slurm-web-agent-uwsgi.service

Services must be active and running.

Containers

Pull the latest Slurm-web images:

  • Docker

  • Podman

$ docker pull ghcr.io/rackslab/slurm-web-agent:latest
$ docker pull ghcr.io/rackslab/slurm-web-gateway:latest
$ podman pull ghcr.io/rackslab/slurm-web-agent:latest
$ podman pull ghcr.io/rackslab/slurm-web-gateway:latest

Pulling images does not update already running containers. Stop and remove the current containers, then create them again with the same options used at deployment, including the bind mounts and user options described in the containers install reference.

  • Docker

  • Podman

$ docker rm -f slurm-web-gateway slurm-web-agent
$ docker run -d --name slurm-web-agent [MOUNTS] \
    --user $(id -u slurm-web):$(id -g slurm-web) \
    ghcr.io/rackslab/slurm-web-agent:latest
$ docker run -d --name slurm-web-gateway [MOUNTS] \
    --user $(id -u slurm-web):$(id -g slurm-web) \
    ghcr.io/rackslab/slurm-web-gateway:latest
$ podman rm -f slurm-web-gateway slurm-web-agent
$ podman run -d --name slurm-web-agent [MOUNTS] \
    --userns=keep-id --user $(id -u slurm-web):$(id -g slurm-web) \
    ghcr.io/rackslab/slurm-web-agent:latest
$ podman run -d --name slurm-web-gateway [MOUNTS] \
    --userns=keep-id --user $(id -u slurm-web):$(id -g slurm-web) \
    ghcr.io/rackslab/slurm-web-gateway:latest

With rootful Podman, omit --userns=keep-id.

Check status:

  • Docker

  • Podman

$ docker ps --filter name=slurm-web-
$ podman ps --filter name=slurm-web-

Compose

Pull the latest Slurm-web images:

  • Docker Compose

  • Podman Compose

$ docker compose pull
$ podman compose pull

Apply the updated images:

  • Docker Compose

  • Podman Compose

$ LOCAL_UID=$(id -u) LOCAL_GID=$(id -g) docker compose up -d
$ LOCAL_UID=$(id -u) LOCAL_GID=$(id -g) podman compose up -d

Check status:

  • Docker Compose

  • Podman Compose

$ docker compose ps
$ podman compose ps

Connect to Slurm-web web interface with your browser to check it is up-and-running.

Notes for Slurm-web 7

To update Slurm-web from version 6 to version 7, some manual additional steps must be performed.

Package Repositories

To avoid impacting users with automatic upgrades, Slurm-web 7 packages are published to a separate repository. Package repositories settings must be updated to install this version.

DNF

This procedure works on RHEL, CentOS, Rocky Linux and AlmaLinux OS.

Edit /etc/yum.repos.d/rackslab.repo to change repository from slurmweb-6 to slurmweb-7:

  • RHEL 8

  • RHEL 9

  • RHEL 10

  • Fedora 43

  • Fedora 44

--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab

-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/el8/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/el8/slurmweb-7/$basearch/
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab

-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/el9/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/el9/slurmweb-7/$basearch/
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab

-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/el10/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/el10/slurmweb-7/$basearch/
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab

-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/fc43/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/fc43/slurmweb-7/$basearch/
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab

-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/fc44/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/fc44/slurmweb-7/$basearch/
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab

Run this command to update repositories and packages:

# dnf update

APT

This procedure works Debian and Ubuntu.

Edit /etc/apt/sources.list.d/rackslab.sources to change distribution from slurmweb-6 to slurmweb-7:

  • Debian 13 « trixie »

  • Debian 14 « forky »

  • Debian unstable « sid »

  • Ubuntu 26.04 LTS

--- a/etc/apt/sources.list.d/rackslab.sources
+++ b/etc/apt/sources.list.d/rackslab.sources
@@ -1,6 +1,6 @@
 Types: deb
 URIs: https://pkgs.rackslab.io/deb
 Suites: trixie
-Components: main slurmweb-6
+Components: main slurmweb-7
 Architectures: amd64
 Signed-By: /usr/share/keyrings/rackslab.gpg
--- a/etc/apt/sources.list.d/rackslab.sources
+++ b/etc/apt/sources.list.d/rackslab.sources
@@ -1,6 +1,6 @@
 Types: deb
 URIs: https://pkgs.rackslab.io/deb
 Suites: forky
-Components: main slurmweb-6
+Components: main slurmweb-7
 Architectures: amd64
 Signed-By: /usr/share/keyrings/rackslab.gpg
--- a/etc/apt/sources.list.d/rackslab.sources
+++ b/etc/apt/sources.list.d/rackslab.sources
@@ -1,6 +1,6 @@
 Types: deb
 URIs: https://pkgs.rackslab.io/deb
 Suites: sid
-Components: main slurmweb-6
+Components: main slurmweb-7
 Architectures: amd64
 Signed-By: /usr/share/keyrings/rackslab.gpg
--- a/etc/apt/sources.list.d/rackslab.sources
+++ b/etc/apt/sources.list.d/rackslab.sources
@@ -1,6 +1,6 @@
 Types: deb
 URIs: https://pkgs.rackslab.io/deb
 Suites: ubuntu26.04
-Components: main slurmweb-6
+Components: main slurmweb-7
 Architectures: amd64
 Signed-By: /usr/share/keyrings/rackslab.gpg

Run this command to update repositories and packages:

# apt update && apt upgrade

Zypper

This procedure works on SUSE Linux Entreprise Server (SLES) and openSUSE LEAP.

Rename file /etc/zypp/repos.d/rackslab-slurmweb-6.repo to /etc/zypp/repos.d/rackslab-slurmweb-7.repo and edit its content to change repository from slurmweb-6 to slurmweb-7:

  • SLES 15

  • SLES 16

--- /etc/zypp/repos.d/rackslab-slurmweb-6.repo
+++ /etc/zypp/repos.d/rackslab-slurmweb-7.repo
@@ -1,7 +1,7 @@
-[rackslab-slurmweb-6]
+[rackslab-slurmweb-7]
 enabled=1
 autorefresh=1
-baseurl=https://pkgs.rackslab.io/rpm/suse15/slurmweb-6/x86_64
+baseurl=https://pkgs.rackslab.io/rpm/suse15/slurmweb-7/x86_64
 type=rpm-md
 gpgcheck=1
 repo_gpgcheck=0
--- /etc/zypp/repos.d/rackslab-slurmweb-6.repo
+++ /etc/zypp/repos.d/rackslab-slurmweb-7.repo
@@ -1,7 +1,7 @@
-[rackslab-slurmweb-6]
+[rackslab-slurmweb-7]
 enabled=1
 autorefresh=1
-baseurl=https://pkgs.rackslab.io/rpm/suse16/slurmweb-6/x86_64
+baseurl=https://pkgs.rackslab.io/rpm/suse16/slurmweb-7/x86_64
 type=rpm-md
 gpgcheck=1
 repo_gpgcheck=0

Run this command to update repositories and packages:

# zypper update

Generate gateway session key

Slurm-web 7 requires a gateway session secret file to secure server-side login state during authentication flows. Installations upgraded from version 6 do not have this file. Generate it as root after upgrading packages and before restarting the gateway:

  • System packages

  • Docker

  • Podman

  • Compose

# slurm-web gen-session-key
$ docker run --rm \
    --user $(id -u slurm-web):$(id -g slurm-web) \
    -v /var/lib/slurm-web:/var/lib/slurm-web \
    ghcr.io/rackslab/slurm-web-gateway:latest gen-session-key
$ podman run --rm \
    --userns=keep-id --user $(id -u slurm-web):$(id -g slurm-web) \
    -v /var/lib/slurm-web:/var/lib/slurm-web \
    ghcr.io/rackslab/slurm-web-gateway:latest gen-session-key
With rootful Podman, omit --userns=keep-id.
$ LOCAL_UID=$(id -u) LOCAL_GID=$(id -g) docker compose run --rm gateway gen-session-key

With Podman Compose:

$ LOCAL_UID=$(id -u) LOCAL_GID=$(id -g) podman compose run --rm gateway gen-session-key
By default, the session secret key file is generated in /var/lib/slurm-web/session.key. You can set session_key in the [service] section of /etc/slurm-web/gateway.ini to use a custom path.

Authorization policy actions

Slurm-web 7 renames authorization policy actions from the legacy view-* prefix to <resource>-view, consistent with actions such as associations-view and cache-view.

If defined, the custom site policy in /etc/slurm-web/policy.ini must be updated to use the new action names:

Deprecated legacy action New action

view-stats

stats-view

view-jobs

jobs-view

view-nodes

nodes-view

view-partitions

partitions-view

view-qos

qos-view

view-accounts

accounts-view

view-reservations

reservations-view

For example, update a role definition from:

[user]
actions=view-stats,view-jobs,view-nodes

to:

[user]
actions=stats-view,jobs-view,nodes-view

Installations without a custom /etc/slurm-web/policy.ini file use the updated vendor default policy and do not require this change.

Deprecated legacy view-* action names remain accepted in custom policy.ini files. They are automatically mapped to the new names at load time, with a deprecation warning logged until the file is updated.

See authorization policy configuration guide for the full list of actions and roles.

Then follow the restart services and check status steps in the general procedure above to complete the upgrade.