Files
server/opt/psa/admin/sbin/modules/ruby/installer
cutemeli 0bfc6c8425 Initial
2025-12-22 10:32:59 +00:00

75 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
set -eu
die ()
{
echo "$@" 1>&2;
exit 1
}
do_install ()
{
local packages="plesk-rbenv passenger"
local plesk_ruby_version="1.5.0"
# Note: EoL Ruby versions are still built but not installed by default
local versions="3.2.9 3.3.9 3.4.5"
local base_url="${REPOSITORY_URL:-https://autoinstall.plesk.com}"
local gpg_key_url="$base_url/plesk-2025-03-05.gpg"
[ "$OS_ARCH" = "x86_64" -o "$OS_ARCH" = "aarch64" ] || die "Unsupported architecture"
case "$OS_PKGTYPE" in
rpm)
local os_name
local os_version
if [ "$OS_SHORT_VERSION" = "7" ]; then
os_name="CentOS"
os_version="7"
else
os_name="RedHat"
os_version="el$OS_SHORT_VERSION"
fi
plesk sbin repository --create --persistent \
--baseurl "$base_url/RUBY_${plesk_ruby_version}/dist-rpm-$os_name-$os_version-$OS_ARCH" \
--gpg-key "$gpg_key_url"
packages+=" mod_passenger"
;;
deb)
local arch_spec=
case "$OS_ARCH" in
x86_64) arch_spec="[arch=amd64]" ;;
aarch64) arch_spec="[arch=arm64]" ;;
esac
plesk sbin repository --create --persistent \
--source "deb $arch_spec $base_url/RUBY_${plesk_ruby_version} $OS_CODENAME all" \
--gpg-key "$gpg_key_url"
packages+=" libapache2-mod-passenger-plesk"
;;
*)
die "Unsupported package type $OS_PKGTYPE ($OS_NAME $OS_VERSION): only rpm and deb are supported"
;;
esac
for v in $versions; do
packages+=" plesk-ruby$v"
done
plesk sbin package --install $packages
plesk sbin httpd_modules_ctl --enable 'passenger'
# since Plesk 18.0.57 the nginx passenger module is disabled by default
# before Plesk 18.0.57 nginx_modules_ctl doesn't rule passenger module
# and this is the reason why the error is skipped here
plesk sbin nginx_modules_ctl --enable 'phusion-passenger' || true
}
if [ "${1:-}" = "remove" ] ; then
:
else
do_install
fi