diff options
| author | Gaspard d'Hautefeuille <github@dhautefeuille.eu> | 2025-07-09 07:55:37 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-09 07:55:37 +0200 |
| commit | f798ddd4922d793d5e6ccb7c4111810d549ff4f4 (patch) | |
| tree | 223aa9d26deb176d983cd8e1bed51ff2cff71eff /utils/lib_valkey.sh | |
| parent | bd593d0bad2189f57657bbcfa2c5e86f795c680e (diff) | |
[mod] migrate from Redis to Valkey (#4795)
This patch migrates from `redis==5.2.1` [1] to `valkey==6.1.0` [2].
The migration to valkey is necessary because the company behind Redis has decided
to abandon the open source license. After experiencing a drop in user numbers,
they now want to run it under a dual license again. But this move demonstrates
once again how unreliable the company is and how it treats open source
developers.
To review first, read the docs::
$ make docs.live
Follow the instructions to remove redis:
- http://0.0.0.0:8000/admin/settings/settings_redis.html
Config and install a local valkey DB:
- http://0.0.0.0:8000/admin/settings/settings_valkey.html
[1] https://pypi.org/project/redis/
[2] https://pypi.org/project/valkey/
Co-authored-by: HLFH <gaspard@dhautefeuille.eu>
Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'utils/lib_valkey.sh')
| -rwxr-xr-x | utils/lib_valkey.sh | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/utils/lib_valkey.sh b/utils/lib_valkey.sh new file mode 100755 index 000000000..7e7beb948 --- /dev/null +++ b/utils/lib_valkey.sh @@ -0,0 +1,73 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: AGPL-3.0-or-later + +valkey.distro.setup() { + # shellcheck disable=SC2034 + + case $DIST_ID in + ubuntu|debian) + VALKEY_PACKAGES="valkey-server" + ;; + arch|fedora|centos) + VALKEY_PACKAGES="valkey" + ;; + *) + err_msg "$DIST_ID: valkey not yet implemented" + ;; + esac +} + +valkey.backports() { + + case $DIST_ID in + debian) + info_msg "APT:: install debian-stable-backports.source / ${DIST_ID}-${DIST_VERS} (${DIST_VERSION_CODENAME})" + install_template /etc/apt/sources.list.d/debian-stable-backports.sources + apt update + ;; + ubuntu) + info_msg "APT:: install ubuntu-stable-backports.source / ${DIST_ID}-${DIST_VERS} (${DIST_VERSION_CODENAME})" + install_template /etc/apt/sources.list.d/ubuntu-stable-backports.sources + apt update + ;; + *) + info_msg "APT:: valkey.backports no implementation / ${DIST_ID}-${DIST_VERS} (${DIST_VERSION_CODENAME})" + ;; + esac +} + +valkey.install(){ + info_msg "installing valkey ..." + valkey.distro.setup + + case $DIST_ID in + debian|ubuntu) + apt-cache show "${VALKEY_PACKAGES}" &> /dev/null || valkey.backports + pkg_install "${VALKEY_PACKAGES}" + + # do some fix ... + # chown -R valkey:valkey /var/log/valkey/ /var/lib/valkey/ /etc/valkey/ + + # https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#PrivateUsers= + sed -i 's/PrivateUsers=true/# PrivateUsers=true/' /lib/systemd/system/valkey-server.service + sed -i 's/PrivateUsers=true/# PrivateUsers=true/' /lib/systemd/system/valkey-server@.service + + systemd_activate_service valkey-server + ;; + arch|fedora|centos) + pkg_install "${VALKEY_PACKAGES}" + systemd_activate_service valkey + ;; + *) + # install backports if package is not in the current APT repos + pkg_install "${VALKEY_PACKAGES}" + ;; + esac + + # case $DIST_ID-$DIST_VERS in + # arch-*|fedora-*|centos-7) + # systemctl enable nginx + # systemctl start nginx + # ;; + # esac +} |