#!/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