Roundcube 1.6.9

Hello, good afternoon everyone!

I am currently using HestiaCP 1.92 and have Roundcube version 1.68. From what I’ve seen, in some newer installations, Roundcube is already coming with version 1.69.

I would like to know the correct procedure to update my Roundcube to version 1.69.

I searched the forum but couldn’t find any information on this. I appreciate any help in advance!

Hi @molero.renan

You can execute this command:

v-add-sys-roundcube

If it doesn’t install the new version, edit the file /usr/local/hestia/install/upgrade/upgrade.conf and replace

rc_v='1.6.8'

by

rc_v='1.6.9'

And execute again v-add-sys-roundcube

Here you have a detailed guide, just change the versions to the current ones and also the admin user (If you are using other administrator user with new Hestia 1.9.x version use it instead of admin).

1 Like

I am sure we already have it set to 1.6.9

Sounds like it may be related to [Bug] Roundcube not upgraded after install of HestiaCP 1.9.2 · Issue #4781 · hestiacp/hestiacp · GitHub

Im still stuck on 1.6.8 I tried running as root v-add-sys-roundcube but it didn’t do anything. I can confirm /usr/local/hestia/install/upgrade/upgrade.conf is set to 1.6.9

Yes it is …

1 Like

Thanks for confirming @eris

Could you please show the output of this command (the output will be large)?

sudo bash -x /usr/local/hestia/bin/v-add-sys-roundcube

Your right its alot, Total 1611 Lines. First half here it is, Redacted Pub IP and PHPMYAdmin Key

root@web:/etc# sudo bash -x /usr/local/hestia/bin/v-add-sys-roundcube
+ source /etc/hestiacp/hestia.conf
++ export HESTIA=/usr/local/hestia
++ HESTIA=/usr/local/hestia
++ [[ -f /etc/hestiacp/local.conf ]]
+ source /usr/local/hestia/func/main.sh
++ '[' -z '' ']'
++ '[' -z '' ']'
++ '[' -z /usr/local/hestia ']'
++ source_conf /usr/local/hestia/conf/hestia.conf
++ IFS='= '
++ read -r lhs rhs
++ [[ ! ANTISPAM_SYSTEM =~ ^ *# ]]
++ [[ -n ANTISPAM_SYSTEM ]]
++ rhs=''\''spamd'\'''
++ rhs=''\''spamd'\'''
++ rhs=''\''spamd'
++ rhs=spamd
++ declare -g ANTISPAM_SYSTEM=spamd
++ IFS='= '
++ read -r lhs rhs
++ [[ ! ANTIVIRUS_SYSTEM =~ ^ *# ]]
++ [[ -n ANTIVIRUS_SYSTEM ]]
++ rhs=''\''clamav-daemon'\'''
++ rhs=''\''clamav-daemon'\'''
++ rhs=''\''clamav-daemon'
++ rhs=clamav-daemon
++ declare -g ANTIVIRUS_SYSTEM=clamav-daemon
++ IFS='= '
++ read -r lhs rhs
++ [[ ! API =~ ^ *# ]]
++ [[ -n API ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g API=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! API_ALLOWED_IP =~ ^ *# ]]
++ [[ -n API_ALLOWED_IP ]]
++ rhs=''\''127.0.0.1,REDACTED_IP'\'''
++ rhs=''\''127.0.0.1,REDACTED_IP'\'''
++ rhs=''\''127.0.0.1,REDACTED_IP'
++ rhs=127.0.0.1,REDACTED_IP
++ declare -g API_ALLOWED_IP=127.0.0.1,REDACTED_IP
++ IFS='= '
++ read -r lhs rhs
++ [[ ! API_SYSTEM =~ ^ *# ]]
++ [[ -n API_SYSTEM ]]
++ rhs=''\''1'\'''
++ rhs=''\''1'\'''
++ rhs=''\''1'
++ rhs=1
++ declare -g API_SYSTEM=1
++ IFS='= '
++ read -r lhs rhs
++ [[ ! APP_NAME =~ ^ *# ]]
++ [[ -n APP_NAME ]]
++ rhs=''\''Hestia Control Panel'\'''
++ rhs=''\''Hestia Control Panel'\'''
++ rhs=''\''Hestia Control Panel'
++ rhs='Hestia Control Panel'
++ declare -g 'APP_NAME=Hestia Control Panel'
++ IFS='= '
++ read -r lhs rhs
++ [[ ! BACKEND_PORT =~ ^ *# ]]
++ [[ -n BACKEND_PORT ]]
++ rhs=''\''8083'\'''
++ rhs=''\''8083'\'''
++ rhs=''\''8083'
++ rhs=8083
++ declare -g BACKEND_PORT=8083
++ IFS='= '
++ read -r lhs rhs
++ [[ ! BACKUP_GZIP =~ ^ *# ]]
++ [[ -n BACKUP_GZIP ]]
++ rhs=''\''4'\'''
++ rhs=''\''4'\'''
++ rhs=''\''4'
++ rhs=4
++ declare -g BACKUP_GZIP=4
++ IFS='= '
++ read -r lhs rhs
++ [[ ! BACKUP_INCREMENTAL =~ ^ *# ]]
++ [[ -n BACKUP_INCREMENTAL ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g BACKUP_INCREMENTAL=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! BACKUP_MODE =~ ^ *# ]]
++ [[ -n BACKUP_MODE ]]
++ rhs=''\''zstd'\'''
++ rhs=''\''zstd'\'''
++ rhs=''\''zstd'
++ rhs=zstd
++ declare -g BACKUP_MODE=zstd
++ IFS='= '
++ read -r lhs rhs
++ [[ ! BACKUP_SYSTEM =~ ^ *# ]]
++ [[ -n BACKUP_SYSTEM ]]
++ rhs=''\''local'\'''
++ rhs=''\''local'\'''
++ rhs=''\''local'
++ rhs=local
++ declare -g BACKUP_SYSTEM=local
++ IFS='= '
++ read -r lhs rhs
++ [[ ! CRON_SYSTEM =~ ^ *# ]]
++ [[ -n CRON_SYSTEM ]]
++ rhs=''\''cron'\'''
++ rhs=''\''cron'\'''
++ rhs=''\''cron'
++ rhs=cron
++ declare -g CRON_SYSTEM=cron
++ IFS='= '
++ read -r lhs rhs
++ [[ ! DB_PMA_ALIAS =~ ^ *# ]]
++ [[ -n DB_PMA_ALIAS ]]
++ rhs=''\''phpmyadmin'\'''
++ rhs=''\''phpmyadmin'\'''
++ rhs=''\''phpmyadmin'
++ rhs=phpmyadmin
++ declare -g DB_PMA_ALIAS=phpmyadmin
++ IFS='= '
++ read -r lhs rhs
++ [[ ! DB_SYSTEM =~ ^ *# ]]
++ [[ -n DB_SYSTEM ]]
++ rhs=''\''mysql'\'''
++ rhs=''\''mysql'\'''
++ rhs=''\''mysql'
++ rhs=mysql
++ declare -g DB_SYSTEM=mysql
++ IFS='= '
++ read -r lhs rhs
++ [[ ! DEBUG_MODE =~ ^ *# ]]
++ [[ -n DEBUG_MODE ]]
++ rhs=''\''false'\'''
++ rhs=''\''false'\'''
++ rhs=''\''false'
++ rhs=false
++ declare -g DEBUG_MODE=false
++ IFS='= '
++ read -r lhs rhs
++ [[ ! DISABLE_IP_CHECK =~ ^ *# ]]
++ [[ -n DISABLE_IP_CHECK ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g DISABLE_IP_CHECK=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! DISK_QUOTA =~ ^ *# ]]
++ [[ -n DISK_QUOTA ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g DISK_QUOTA=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! DNS_CLUSTER_SYSTEM =~ ^ *# ]]
++ [[ -n DNS_CLUSTER_SYSTEM ]]
++ rhs=''\''hestia'\'''
++ rhs=''\''hestia'\'''
++ rhs=''\''hestia'
++ rhs=hestia
++ declare -g DNS_CLUSTER_SYSTEM=hestia
++ IFS='= '
++ read -r lhs rhs
++ [[ ! DNS_SYSTEM =~ ^ *# ]]
++ [[ -n DNS_SYSTEM ]]
++ rhs=''\''bind9'\'''
++ rhs=''\''bind9'\'''
++ rhs=''\''bind9'
++ rhs=bind9
++ declare -g DNS_SYSTEM=bind9
++ IFS='= '
++ read -r lhs rhs
++ [[ ! DOMAINDIR_WRITABLE =~ ^ *# ]]
++ [[ -n DOMAINDIR_WRITABLE ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g DOMAINDIR_WRITABLE=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! ENFORCE_SUBDOMAIN_OWNERSHIP =~ ^ *# ]]
++ [[ -n ENFORCE_SUBDOMAIN_OWNERSHIP ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g ENFORCE_SUBDOMAIN_OWNERSHIP=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! FILE_MANAGER =~ ^ *# ]]
++ [[ -n FILE_MANAGER ]]
++ rhs=''\''true'\'''
++ rhs=''\''true'\'''
++ rhs=''\''true'
++ rhs=true
++ declare -g FILE_MANAGER=true
++ IFS='= '
++ read -r lhs rhs
++ [[ ! FIREWALL_EXTENSION =~ ^ *# ]]
++ [[ -n FIREWALL_EXTENSION ]]
++ rhs=''\''fail2ban'\'''
++ rhs=''\''fail2ban'\'''
++ rhs=''\''fail2ban'
++ rhs=fail2ban
++ declare -g FIREWALL_EXTENSION=fail2ban
++ IFS='= '
++ read -r lhs rhs
++ [[ ! FIREWALL_SYSTEM =~ ^ *# ]]
++ [[ -n FIREWALL_SYSTEM ]]
++ rhs=''\''iptables'\'''
++ rhs=''\''iptables'\'''
++ rhs=''\''iptables'
++ rhs=iptables
++ declare -g FIREWALL_SYSTEM=iptables
++ IFS='= '
++ read -r lhs rhs
++ [[ ! FROM_EMAIL =~ ^ *# ]]
++ [[ -n FROM_EMAIL ]]
++ rhs=''\'''\'''
++ rhs=''\'''\'''
++ rhs=\'
++ rhs=
++ declare -g FROM_EMAIL=
++ IFS='= '
++ read -r lhs rhs
++ [[ ! FROM_NAME =~ ^ *# ]]
++ [[ -n FROM_NAME ]]
++ rhs=''\'''\'''
++ rhs=''\'''\'''
++ rhs=\'
++ rhs=
++ declare -g FROM_NAME=
++ IFS='= '
++ read -r lhs rhs
++ [[ ! FTP_SYSTEM =~ ^ *# ]]
++ [[ -n FTP_SYSTEM ]]
++ rhs=''\''vsftpd'\'''
++ rhs=''\''vsftpd'\'''
++ rhs=''\''vsftpd'
++ rhs=vsftpd
++ declare -g FTP_SYSTEM=vsftpd
++ IFS='= '
++ read -r lhs rhs
++ [[ ! HIDE_DOCS =~ ^ *# ]]
++ [[ -n HIDE_DOCS ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g HIDE_DOCS=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! IMAP_SYSTEM =~ ^ *# ]]
++ [[ -n IMAP_SYSTEM ]]
++ rhs=''\''dovecot'\'''
++ rhs=''\''dovecot'\'''
++ rhs=''\''dovecot'
++ rhs=dovecot
++ declare -g IMAP_SYSTEM=dovecot
++ IFS='= '
++ read -r lhs rhs
++ [[ ! INACTIVE_SESSION_TIMEOUT =~ ^ *# ]]
++ [[ -n INACTIVE_SESSION_TIMEOUT ]]
++ rhs=''\''60'\'''
++ rhs=''\''60'\'''
++ rhs=''\''60'
++ rhs=60
++ declare -g INACTIVE_SESSION_TIMEOUT=60
++ IFS='= '
++ read -r lhs rhs
++ [[ ! LANGUAGE =~ ^ *# ]]
++ [[ -n LANGUAGE ]]
++ rhs=''\''en'\'''
++ rhs=''\''en'\'''
++ rhs=''\''en'
++ rhs=en
++ declare -g LANGUAGE=en
++ IFS='= '
++ read -r lhs rhs
++ [[ ! LOGIN_STYLE =~ ^ *# ]]
++ [[ -n LOGIN_STYLE ]]
++ rhs=''\''old'\'''
++ rhs=''\''old'\'''
++ rhs=''\''old'
++ rhs=old
++ declare -g LOGIN_STYLE=old
++ IFS='= '
++ read -r lhs rhs
++ [[ ! MAIL_SYSTEM =~ ^ *# ]]
++ [[ -n MAIL_SYSTEM ]]
++ rhs=''\''exim4'\'''
++ rhs=''\''exim4'\'''
++ rhs=''\''exim4'
++ rhs=exim4
++ declare -g MAIL_SYSTEM=exim4
++ IFS='= '
++ read -r lhs rhs
++ [[ ! PHPMYADMIN_KEY =~ ^ *# ]]
++ [[ -n PHPMYADMIN_KEY ]]
++ rhs=''\''REDACTED_KEY'\'''
++ rhs=''\''REDACTED_KEY'\'''
++ rhs=''\''REDACTED_KEY'
++ rhs=REDACTED_KEY
++ declare -g PHPMYADMIN_KEY=REDACTED_KEY
++ IFS='= '
++ read -r lhs rhs
++ [[ ! PLUGIN_APP_INSTALLER =~ ^ *# ]]
++ [[ -n PLUGIN_APP_INSTALLER ]]
++ rhs=''\''true'\'''
++ rhs=''\''true'\'''
++ rhs=''\''true'
++ rhs=true
++ declare -g PLUGIN_APP_INSTALLER=true
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_BACKUP_SUSPENDED_USERS =~ ^ *# ]]
++ [[ -n POLICY_BACKUP_SUSPENDED_USERS ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g POLICY_BACKUP_SUSPENDED_USERS=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_CSRF_STRICTNESS =~ ^ *# ]]
++ [[ -n POLICY_CSRF_STRICTNESS ]]
++ rhs=''\''1'\'''
++ rhs=''\''1'\'''
++ rhs=''\''1'
++ rhs=1
++ declare -g POLICY_CSRF_STRICTNESS=1
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_SYNC_ERROR_DOCUMENTS =~ ^ *# ]]
++ [[ -n POLICY_SYNC_ERROR_DOCUMENTS ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g POLICY_SYNC_ERROR_DOCUMENTS=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_SYNC_SKELETON =~ ^ *# ]]
++ [[ -n POLICY_SYNC_SKELETON ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g POLICY_SYNC_SKELETON=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_SYSTEM_ENABLE_BACON =~ ^ *# ]]
++ [[ -n POLICY_SYSTEM_ENABLE_BACON ]]
++ rhs=''\''false'\'''
++ rhs=''\''false'\'''
++ rhs=''\''false'
++ rhs=false
++ declare -g POLICY_SYSTEM_ENABLE_BACON=false
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_SYSTEM_HIDE_ADMIN =~ ^ *# ]]
++ [[ -n POLICY_SYSTEM_HIDE_ADMIN ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g POLICY_SYSTEM_HIDE_ADMIN=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_SYSTEM_HIDE_SERVICES =~ ^ *# ]]
++ [[ -n POLICY_SYSTEM_HIDE_SERVICES ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g POLICY_SYSTEM_HIDE_SERVICES=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_SYSTEM_PASSWORD_RESET =~ ^ *# ]]
++ [[ -n POLICY_SYSTEM_PASSWORD_RESET ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g POLICY_SYSTEM_PASSWORD_RESET=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_SYSTEM_PROTECTED_ADMIN =~ ^ *# ]]
++ [[ -n POLICY_SYSTEM_PROTECTED_ADMIN ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g POLICY_SYSTEM_PROTECTED_ADMIN=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_USER_CHANGE_THEME =~ ^ *# ]]
++ [[ -n POLICY_USER_CHANGE_THEME ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g POLICY_USER_CHANGE_THEME=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_USER_DELETE_LOGS =~ ^ *# ]]
++ [[ -n POLICY_USER_DELETE_LOGS ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g POLICY_USER_DELETE_LOGS=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_USER_EDIT_DETAILS =~ ^ *# ]]
++ [[ -n POLICY_USER_EDIT_DETAILS ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g POLICY_USER_EDIT_DETAILS=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_USER_EDIT_DNS_TEMPLATES =~ ^ *# ]]
++ [[ -n POLICY_USER_EDIT_DNS_TEMPLATES ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g POLICY_USER_EDIT_DNS_TEMPLATES=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_USER_EDIT_WEB_TEMPLATES =~ ^ *# ]]
++ [[ -n POLICY_USER_EDIT_WEB_TEMPLATES ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g POLICY_USER_EDIT_WEB_TEMPLATES=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_USER_VIEW_LOGS =~ ^ *# ]]
++ [[ -n POLICY_USER_VIEW_LOGS ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g POLICY_USER_VIEW_LOGS=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! POLICY_USER_VIEW_SUSPENDED =~ ^ *# ]]
++ [[ -n POLICY_USER_VIEW_SUSPENDED ]]
++ rhs=''\''false'\'''
++ rhs=''\''false'\'''
++ rhs=''\''false'
++ rhs=false
++ declare -g POLICY_USER_VIEW_SUSPENDED=false
++ IFS='= '
++ read -r lhs rhs
++ [[ ! PROXY_PORT =~ ^ *# ]]
++ [[ -n PROXY_PORT ]]
++ rhs=''\''80'\'''
++ rhs=''\''80'\'''
++ rhs=''\''80'
++ rhs=80
++ declare -g PROXY_PORT=80
++ IFS='= '
++ read -r lhs rhs
++ [[ ! PROXY_SSL_PORT =~ ^ *# ]]
++ [[ -n PROXY_SSL_PORT ]]
++ rhs=''\''443'\'''
++ rhs=''\''443'\'''
++ rhs=''\''443'
++ rhs=443
++ declare -g PROXY_SSL_PORT=443
++ IFS='= '
++ read -r lhs rhs
++ [[ ! PROXY_SYSTEM =~ ^ *# ]]
++ [[ -n PROXY_SYSTEM ]]
++ rhs=''\''nginx'\'''
++ rhs=''\''nginx'\'''
++ rhs=''\''nginx'
++ rhs=nginx
++ declare -g PROXY_SYSTEM=nginx
++ IFS='= '
++ read -r lhs rhs
++ [[ ! RELEASE_BRANCH =~ ^ *# ]]
++ [[ -n RELEASE_BRANCH ]]
++ rhs=''\''release'\'''
++ rhs=''\''release'\'''
++ rhs=''\''release'
++ rhs=release
++ declare -g RELEASE_BRANCH=release
++ IFS='= '
++ read -r lhs rhs
++ [[ ! RESOURCES_LIMIT =~ ^ *# ]]
++ [[ -n RESOURCES_LIMIT ]]
++ rhs=''\''no'\'''
++ rhs=''\''no'\'''
++ rhs=''\''no'
++ rhs=no
++ declare -g RESOURCES_LIMIT=no
++ IFS='= '
++ read -r lhs rhs
++ [[ ! ROOT_USER =~ ^ *# ]]
++ [[ -n ROOT_USER ]]
++ rhs=''\''admin'\'''
++ rhs=''\''admin'\'''
++ rhs=''\''admin'
++ rhs=admin
++ declare -g ROOT_USER=admin
++ IFS='= '
++ read -r lhs rhs
++ [[ ! SERVER_SMTP_ADDR =~ ^ *# ]]
++ [[ -n SERVER_SMTP_ADDR ]]
++ rhs=''\'''\'''
++ rhs=''\'''\'''
++ rhs=\'
++ rhs=
++ declare -g SERVER_SMTP_ADDR=
++ IFS='= '
++ read -r lhs rhs
++ [[ ! SERVER_SMTP_HOST =~ ^ *# ]]
++ [[ -n SERVER_SMTP_HOST ]]
++ rhs=''\'''\'''
++ rhs=''\'''\'''
++ rhs=\'
++ rhs=
++ declare -g SERVER_SMTP_HOST=
++ IFS='= '
++ read -r lhs rhs
++ [[ ! SERVER_SMTP_PASSWD =~ ^ *# ]]
++ [[ -n SERVER_SMTP_PASSWD ]]
++ rhs=''\'''\'''
++ rhs=''\'''\'''
++ rhs=\'
++ rhs=
++ declare -g SERVER_SMTP_PASSWD=
++ IFS='= '
++ read -r lhs rhs
++ [[ ! SERVER_SMTP_PORT =~ ^ *# ]]
++ [[ -n SERVER_SMTP_PORT ]]
++ rhs=''\'''\'''
++ rhs=''\'''\'''
++ rhs=\'
++ rhs=
++ declare -g SERVER_SMTP_PORT=
++ IFS='= '
++ read -r lhs rhs
++ [[ ! SERVER_SMTP_SECURITY =~ ^ *# ]]
++ [[ -n SERVER_SMTP_SECURITY ]]
++ rhs=''\'''\'''
++ rhs=''\'''\'''
++ rhs=\'
++ rhs=
++ declare -g SERVER_SMTP_SECURITY=
++ IFS='= '
++ read -r lhs rhs
++ [[ ! SERVER_SMTP_USER =~ ^ *# ]]
++ [[ -n SERVER_SMTP_USER ]]
++ rhs=''\'''\'''
++ rhs=''\'''\'''
++ rhs=\'
++ rhs=
++ declare -g SERVER_SMTP_USER=
++ IFS='= '
++ read -r lhs rhs
++ [[ ! STATS_SYSTEM =~ ^ *# ]]
++ [[ -n STATS_SYSTEM ]]
++ rhs=''\''awstats'\'''
++ rhs=''\''awstats'\'''
++ rhs=''\''awstats'
++ rhs=awstats
++ declare -g STATS_SYSTEM=awstats
++ IFS='= '
++ read -r lhs rhs
++ [[ ! SUBJECT_EMAIL =~ ^ *# ]]
++ [[ -n SUBJECT_EMAIL ]]
++ rhs=''\''{{subject}}'\'''
++ rhs=''\''{{subject}}'\'''
++ rhs=''\''{{subject}}'
++ rhs='{{subject}}'
++ declare -g 'SUBJECT_EMAIL={{subject}}'
++ IFS='= '
++ read -r lhs rhs
++ [[ ! THEME =~ ^ *# ]]
++ [[ -n THEME ]]
++ rhs=''\''dark'\'''
++ rhs=''\''dark'\'''
++ rhs=''\''dark'
++ rhs=dark
++ declare -g THEME=dark
++ IFS='= '
++ read -r lhs rhs
++ [[ ! TITLE =~ ^ *# ]]
++ [[ -n TITLE ]]
++ rhs=''\''{{page}} - {{hostname}} - {{appname}}'\'''
++ rhs=''\''{{page}} - {{hostname}} - {{appname}}'\'''
++ rhs=''\''{{page}} - {{hostname}} - {{appname}}'
++ rhs='{{page}} - {{hostname}} - {{appname}}'
++ declare -g 'TITLE={{page}} - {{hostname}} - {{appname}}'
++ IFS='= '
++ read -r lhs rhs
++ [[ ! UPDATE_HOSTNAME_SSL =~ ^ *# ]]
++ [[ -n UPDATE_HOSTNAME_SSL ]]
++ rhs=''\''yes'\'''
++ rhs=''\''yes'\'''
++ rhs=''\''yes'
++ rhs=yes
++ declare -g UPDATE_HOSTNAME_SSL=yes
++ IFS='= '
++ read -r lhs rhs
++ [[ ! UPGRADE_SEND_EMAIL =~ ^ *# ]]
++ [[ -n UPGRADE_SEND_EMAIL ]]
++ rhs=''\''true'\'''
++ rhs=''\''true'\'''
++ rhs=''\''true'
++ rhs=true
++ declare -g UPGRADE_SEND_EMAIL=true
++ IFS='= '
++ read -r lhs rhs
++ [[ ! UPGRADE_SEND_EMAIL_LOG =~ ^ *# ]]
++ [[ -n UPGRADE_SEND_EMAIL_LOG ]]
++ rhs=''\''false'\'''
++ rhs=''\''false'\'''
++ rhs=''\''false'
++ rhs=false
++ declare -g UPGRADE_SEND_EMAIL_LOG=false
++ IFS='= '
++ read -r lhs rhs
++ [[ ! USE_SERVER_SMTP =~ ^ *# ]]
++ [[ -n USE_SERVER_SMTP ]]
++ rhs=''\''false'\'''
++ rhs=''\''false'\'''
++ rhs=''\''false'
++ rhs=false
++ declare -g USE_SERVER_SMTP=false
++ IFS='= '
++ read -r lhs rhs
++ [[ ! VERSION =~ ^ *# ]]
++ [[ -n VERSION ]]
++ rhs=''\''1.9.2'\'''
++ rhs=''\''1.9.2'\'''
++ rhs=''\''1.9.2'
++ rhs=1.9.2
++ declare -g VERSION=1.9.2
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEBMAIL_ALIAS =~ ^ *# ]]
++ [[ -n WEBMAIL_ALIAS ]]
++ rhs=''\''webmail'\'''
++ rhs=''\''webmail'\'''
++ rhs=''\''webmail'
++ rhs=webmail
++ declare -g WEBMAIL_ALIAS=webmail
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEBMAIL_SYSTEM =~ ^ *# ]]
++ [[ -n WEBMAIL_SYSTEM ]]
++ rhs=''\''roundcube'\'''
++ rhs=''\''roundcube'\'''
++ rhs=''\''roundcube'
++ rhs=roundcube
++ declare -g WEBMAIL_SYSTEM=roundcube
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEB_BACKEND =~ ^ *# ]]
++ [[ -n WEB_BACKEND ]]
++ rhs=''\''php-fpm'\'''
++ rhs=''\''php-fpm'\'''
++ rhs=''\''php-fpm'
++ rhs=php-fpm
++ declare -g WEB_BACKEND=php-fpm
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEB_PORT =~ ^ *# ]]
++ [[ -n WEB_PORT ]]
++ rhs=''\''8080'\'''
++ rhs=''\''8080'\'''
++ rhs=''\''8080'
++ rhs=8080
++ declare -g WEB_PORT=8080
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEB_RGROUPS =~ ^ *# ]]
++ [[ -n WEB_RGROUPS ]]
++ rhs=''\''www-data'\'''
++ rhs=''\''www-data'\'''
++ rhs=''\''www-data'
++ rhs=www-data
++ declare -g WEB_RGROUPS=www-data
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEB_SSL =~ ^ *# ]]
++ [[ -n WEB_SSL ]]
++ rhs=''\''mod_ssl'\'''
++ rhs=''\''mod_ssl'\'''
++ rhs=''\''mod_ssl'
++ rhs=mod_ssl
++ declare -g WEB_SSL=mod_ssl
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEB_SSL_PORT =~ ^ *# ]]
++ [[ -n WEB_SSL_PORT ]]
++ rhs=''\''8443'\'''
++ rhs=''\''8443'\'''
++ rhs=''\''8443'
++ rhs=8443
++ declare -g WEB_SSL_PORT=8443
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEB_SYSTEM =~ ^ *# ]]
++ [[ -n WEB_SYSTEM ]]
++ rhs=''\''apache2'\'''
++ rhs=''\''apache2'\'''
++ rhs=''\''apache2'
++ rhs=apache2
++ declare -g WEB_SYSTEM=apache2
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEB_TERMINAL =~ ^ *# ]]
++ [[ -n WEB_TERMINAL ]]
++ rhs=''\''true'\'''
++ rhs=''\''true'\'''
++ rhs=''\''true'
++ rhs=true
++ declare -g WEB_TERMINAL=true
++ IFS='= '
++ read -r lhs rhs
++ [[ ! WEB_TERMINAL_PORT =~ ^ *# ]]
++ [[ -n WEB_TERMINAL_PORT ]]
++ rhs=''\''8085'\'''
++ rhs=''\''8085'\'''
++ rhs=''\''8085'
++ rhs=8085
++ declare -g WEB_TERMINAL_PORT=8085
++ IFS='= '
++ read -r lhs rhs
++ user=admin
++ HOMEDIR=/home
++ BACKUP=/backup
++ BACKUP_GZIP=9
++ BACKUP_DISK_LIMIT=95
+++ grep -c '^processor' /proc/cpuinfo
++ BACKUP_LA_LIMIT=8
++ RRD_STEP=300
++ BIN=/usr/local/hestia/bin
++ HESTIA_INSTALL_DIR=/usr/local/hestia/install/deb
++ HESTIA_COMMON_DIR=/usr/local/hestia/install/common
+++ date +%d%m%Y%H%M
++ HESTIA_BACKUP=/root/hst_backups/080220251203
++ HESTIA_PHP=/usr/local/hestia/php/bin/php
++ USER_DATA=/usr/local/hestia/data/users/admin
++ WEBTPL=/usr/local/hestia/data/templates/web
++ MAILTPL=/usr/local/hestia/data/templates/mail
++ DNSTPL=/usr/local/hestia/data/templates/dns
++ RRD=/usr/local/hestia/web/rrd
++ SENDMAIL=/usr/local/hestia/web/inc/mail-wrapper.php
++ HESTIA_GIT_REPO=https://raw.githubusercontent.com/hestiacp/hestiacp
++ HESTIA_THEMES=/usr/local/hestia/web/css/themes
++ HESTIA_THEMES_CUSTOM=/usr/local/hestia/web/css/themes/custom
+++ basename /usr/local/hestia/bin/v-add-sys-roundcube
++ SCRIPT=v-add-sys-roundcube
++ CHECK_RESULT_CALLBACK=
++ OK=0
++ E_ARGS=1
++ E_INVALID=2
++ E_NOTEXIST=3
++ E_EXISTS=4
++ E_SUSPENDED=5
++ E_UNSUSPENDED=6
++ E_INUSE=7
++ E_LIMIT=8
++ E_PASSWORD=9
++ E_FORBIDEN=10
++ E_DISABLED=11
++ E_PARSING=12
++ E_DISK=13
++ E_LA=14
++ E_CONNECT=15
++ E_FTP=16
++ E_DB=17
++ E_RRD=18
++ E_UPDATE=19
++ E_RESTART=20

Second Half

++ ARGS=("$@")
++ (( I = 1 ))
++ (( I <= 0 ))
+ source /usr/local/hestia/func/db.sh
+ source_conf /usr/local/hestia/conf/hestia.conf
+ IFS='= '
+ read -r lhs rhs
+ [[ ! ANTISPAM_SYSTEM =~ ^ *# ]]
+ [[ -n ANTISPAM_SYSTEM ]]
+ rhs=''\''spamd'\'''
+ rhs=''\''spamd'\'''
+ rhs=''\''spamd'
+ rhs=spamd
+ declare -g ANTISPAM_SYSTEM=spamd
+ IFS='= '
+ read -r lhs rhs
+ [[ ! ANTIVIRUS_SYSTEM =~ ^ *# ]]
+ [[ -n ANTIVIRUS_SYSTEM ]]
+ rhs=''\''clamav-daemon'\'''
+ rhs=''\''clamav-daemon'\'''
+ rhs=''\''clamav-daemon'
+ rhs=clamav-daemon
+ declare -g ANTIVIRUS_SYSTEM=clamav-daemon
+ IFS='= '
+ read -r lhs rhs
+ [[ ! API =~ ^ *# ]]
+ [[ -n API ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g API=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! API_ALLOWED_IP =~ ^ *# ]]
+ [[ -n API_ALLOWED_IP ]]
+ rhs=''\''127.0.0.1,REDACTED_IP'\'''
+ rhs=''\''127.0.0.1,REDACTED_IP'\'''
+ rhs=''\''127.0.0.1,REDACTED_IP'
+ rhs=127.0.0.1,REDACTED_IP
+ declare -g API_ALLOWED_IP=127.0.0.1,REDACTED_IP
+ IFS='= '
+ read -r lhs rhs
+ [[ ! API_SYSTEM =~ ^ *# ]]
+ [[ -n API_SYSTEM ]]
+ rhs=''\''1'\'''
+ rhs=''\''1'\'''
+ rhs=''\''1'
+ rhs=1
+ declare -g API_SYSTEM=1
+ IFS='= '
+ read -r lhs rhs
+ [[ ! APP_NAME =~ ^ *# ]]
+ [[ -n APP_NAME ]]
+ rhs=''\''Hestia Control Panel'\'''
+ rhs=''\''Hestia Control Panel'\'''
+ rhs=''\''Hestia Control Panel'
+ rhs='Hestia Control Panel'
+ declare -g 'APP_NAME=Hestia Control Panel'
+ IFS='= '
+ read -r lhs rhs
+ [[ ! BACKEND_PORT =~ ^ *# ]]
+ [[ -n BACKEND_PORT ]]
+ rhs=''\''8083'\'''
+ rhs=''\''8083'\'''
+ rhs=''\''8083'
+ rhs=8083
+ declare -g BACKEND_PORT=8083
+ IFS='= '
+ read -r lhs rhs
+ [[ ! BACKUP_GZIP =~ ^ *# ]]
+ [[ -n BACKUP_GZIP ]]
+ rhs=''\''4'\'''
+ rhs=''\''4'\'''
+ rhs=''\''4'
+ rhs=4
+ declare -g BACKUP_GZIP=4
+ IFS='= '
+ read -r lhs rhs
+ [[ ! BACKUP_INCREMENTAL =~ ^ *# ]]
+ [[ -n BACKUP_INCREMENTAL ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g BACKUP_INCREMENTAL=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! BACKUP_MODE =~ ^ *# ]]
+ [[ -n BACKUP_MODE ]]
+ rhs=''\''zstd'\'''
+ rhs=''\''zstd'\'''
+ rhs=''\''zstd'
+ rhs=zstd
+ declare -g BACKUP_MODE=zstd
+ IFS='= '
+ read -r lhs rhs
+ [[ ! BACKUP_SYSTEM =~ ^ *# ]]
+ [[ -n BACKUP_SYSTEM ]]
+ rhs=''\''local'\'''
+ rhs=''\''local'\'''
+ rhs=''\''local'
+ rhs=local
+ declare -g BACKUP_SYSTEM=local
+ IFS='= '
+ read -r lhs rhs
+ [[ ! CRON_SYSTEM =~ ^ *# ]]
+ [[ -n CRON_SYSTEM ]]
+ rhs=''\''cron'\'''
+ rhs=''\''cron'\'''
+ rhs=''\''cron'
+ rhs=cron
+ declare -g CRON_SYSTEM=cron
+ IFS='= '
+ read -r lhs rhs
+ [[ ! DB_PMA_ALIAS =~ ^ *# ]]
+ [[ -n DB_PMA_ALIAS ]]
+ rhs=''\''phpmyadmin'\'''
+ rhs=''\''phpmyadmin'\'''
+ rhs=''\''phpmyadmin'
+ rhs=phpmyadmin
+ declare -g DB_PMA_ALIAS=phpmyadmin
+ IFS='= '
+ read -r lhs rhs
+ [[ ! DB_SYSTEM =~ ^ *# ]]
+ [[ -n DB_SYSTEM ]]
+ rhs=''\''mysql'\'''
+ rhs=''\''mysql'\'''
+ rhs=''\''mysql'
+ rhs=mysql
+ declare -g DB_SYSTEM=mysql
+ IFS='= '
+ read -r lhs rhs
+ [[ ! DEBUG_MODE =~ ^ *# ]]
+ [[ -n DEBUG_MODE ]]
+ rhs=''\''false'\'''
+ rhs=''\''false'\'''
+ rhs=''\''false'
+ rhs=false
+ declare -g DEBUG_MODE=false
+ IFS='= '
+ read -r lhs rhs
+ [[ ! DISABLE_IP_CHECK =~ ^ *# ]]
+ [[ -n DISABLE_IP_CHECK ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g DISABLE_IP_CHECK=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! DISK_QUOTA =~ ^ *# ]]
+ [[ -n DISK_QUOTA ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g DISK_QUOTA=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! DNS_CLUSTER_SYSTEM =~ ^ *# ]]
+ [[ -n DNS_CLUSTER_SYSTEM ]]
+ rhs=''\''hestia'\'''
+ rhs=''\''hestia'\'''
+ rhs=''\''hestia'
+ rhs=hestia
+ declare -g DNS_CLUSTER_SYSTEM=hestia
+ IFS='= '
+ read -r lhs rhs
+ [[ ! DNS_SYSTEM =~ ^ *# ]]
+ [[ -n DNS_SYSTEM ]]
+ rhs=''\''bind9'\'''
+ rhs=''\''bind9'\'''
+ rhs=''\''bind9'
+ rhs=bind9
+ declare -g DNS_SYSTEM=bind9
+ IFS='= '
+ read -r lhs rhs
+ [[ ! DOMAINDIR_WRITABLE =~ ^ *# ]]
+ [[ -n DOMAINDIR_WRITABLE ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g DOMAINDIR_WRITABLE=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! ENFORCE_SUBDOMAIN_OWNERSHIP =~ ^ *# ]]
+ [[ -n ENFORCE_SUBDOMAIN_OWNERSHIP ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g ENFORCE_SUBDOMAIN_OWNERSHIP=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! FILE_MANAGER =~ ^ *# ]]
+ [[ -n FILE_MANAGER ]]
+ rhs=''\''true'\'''
+ rhs=''\''true'\'''
+ rhs=''\''true'
+ rhs=true
+ declare -g FILE_MANAGER=true
+ IFS='= '
+ read -r lhs rhs
+ [[ ! FIREWALL_EXTENSION =~ ^ *# ]]
+ [[ -n FIREWALL_EXTENSION ]]
+ rhs=''\''fail2ban'\'''
+ rhs=''\''fail2ban'\'''
+ rhs=''\''fail2ban'
+ rhs=fail2ban
+ declare -g FIREWALL_EXTENSION=fail2ban
+ IFS='= '
+ read -r lhs rhs
+ [[ ! FIREWALL_SYSTEM =~ ^ *# ]]
+ [[ -n FIREWALL_SYSTEM ]]
+ rhs=''\''iptables'\'''
+ rhs=''\''iptables'\'''
+ rhs=''\''iptables'
+ rhs=iptables
+ declare -g FIREWALL_SYSTEM=iptables
+ IFS='= '
+ read -r lhs rhs
+ [[ ! FROM_EMAIL =~ ^ *# ]]
+ [[ -n FROM_EMAIL ]]
+ rhs=''\'''\'''
+ rhs=''\'''\'''
+ rhs=\'
+ rhs=
+ declare -g FROM_EMAIL=
+ IFS='= '
+ read -r lhs rhs
+ [[ ! FROM_NAME =~ ^ *# ]]
+ [[ -n FROM_NAME ]]
+ rhs=''\'''\'''
+ rhs=''\'''\'''
+ rhs=\'
+ rhs=
+ declare -g FROM_NAME=
+ IFS='= '
+ read -r lhs rhs
+ [[ ! FTP_SYSTEM =~ ^ *# ]]
+ [[ -n FTP_SYSTEM ]]
+ rhs=''\''vsftpd'\'''
+ rhs=''\''vsftpd'\'''
+ rhs=''\''vsftpd'
+ rhs=vsftpd
+ declare -g FTP_SYSTEM=vsftpd
+ IFS='= '
+ read -r lhs rhs
+ [[ ! HIDE_DOCS =~ ^ *# ]]
+ [[ -n HIDE_DOCS ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g HIDE_DOCS=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! IMAP_SYSTEM =~ ^ *# ]]
+ [[ -n IMAP_SYSTEM ]]
+ rhs=''\''dovecot'\'''
+ rhs=''\''dovecot'\'''
+ rhs=''\''dovecot'
+ rhs=dovecot
+ declare -g IMAP_SYSTEM=dovecot
+ IFS='= '
+ read -r lhs rhs
+ [[ ! INACTIVE_SESSION_TIMEOUT =~ ^ *# ]]
+ [[ -n INACTIVE_SESSION_TIMEOUT ]]
+ rhs=''\''60'\'''
+ rhs=''\''60'\'''
+ rhs=''\''60'
+ rhs=60
+ declare -g INACTIVE_SESSION_TIMEOUT=60
+ IFS='= '
+ read -r lhs rhs
+ [[ ! LANGUAGE =~ ^ *# ]]
+ [[ -n LANGUAGE ]]
+ rhs=''\''en'\'''
+ rhs=''\''en'\'''
+ rhs=''\''en'
+ rhs=en
+ declare -g LANGUAGE=en
+ IFS='= '
+ read -r lhs rhs
+ [[ ! LOGIN_STYLE =~ ^ *# ]]
+ [[ -n LOGIN_STYLE ]]
+ rhs=''\''old'\'''
+ rhs=''\''old'\'''
+ rhs=''\''old'
+ rhs=old
+ declare -g LOGIN_STYLE=old
+ IFS='= '
+ read -r lhs rhs
+ [[ ! MAIL_SYSTEM =~ ^ *# ]]
+ [[ -n MAIL_SYSTEM ]]
+ rhs=''\''exim4'\'''
+ rhs=''\''exim4'\'''
+ rhs=''\''exim4'
+ rhs=exim4
+ declare -g MAIL_SYSTEM=exim4
+ IFS='= '
+ read -r lhs rhs
+ [[ ! PHPMYADMIN_KEY =~ ^ *# ]]
+ [[ -n PHPMYADMIN_KEY ]]
+ rhs=''\''REDACTED_KEY'\'''
+ rhs=''\''REDACTED_KEY'\'''
+ rhs=''\''REDACTED_KEY'
+ rhs=REDACTED_KEY
+ declare -g PHPMYADMIN_KEY=REDACTED_KEY
+ IFS='= '
+ read -r lhs rhs
+ [[ ! PLUGIN_APP_INSTALLER =~ ^ *# ]]
+ [[ -n PLUGIN_APP_INSTALLER ]]
+ rhs=''\''true'\'''
+ rhs=''\''true'\'''
+ rhs=''\''true'
+ rhs=true
+ declare -g PLUGIN_APP_INSTALLER=true
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_BACKUP_SUSPENDED_USERS =~ ^ *# ]]
+ [[ -n POLICY_BACKUP_SUSPENDED_USERS ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g POLICY_BACKUP_SUSPENDED_USERS=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_CSRF_STRICTNESS =~ ^ *# ]]
+ [[ -n POLICY_CSRF_STRICTNESS ]]
+ rhs=''\''1'\'''
+ rhs=''\''1'\'''
+ rhs=''\''1'
+ rhs=1
+ declare -g POLICY_CSRF_STRICTNESS=1
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_SYNC_ERROR_DOCUMENTS =~ ^ *# ]]
+ [[ -n POLICY_SYNC_ERROR_DOCUMENTS ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g POLICY_SYNC_ERROR_DOCUMENTS=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_SYNC_SKELETON =~ ^ *# ]]
+ [[ -n POLICY_SYNC_SKELETON ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g POLICY_SYNC_SKELETON=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_SYSTEM_ENABLE_BACON =~ ^ *# ]]
+ [[ -n POLICY_SYSTEM_ENABLE_BACON ]]
+ rhs=''\''false'\'''
+ rhs=''\''false'\'''
+ rhs=''\''false'
+ rhs=false
+ declare -g POLICY_SYSTEM_ENABLE_BACON=false
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_SYSTEM_HIDE_ADMIN =~ ^ *# ]]
+ [[ -n POLICY_SYSTEM_HIDE_ADMIN ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g POLICY_SYSTEM_HIDE_ADMIN=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_SYSTEM_HIDE_SERVICES =~ ^ *# ]]
+ [[ -n POLICY_SYSTEM_HIDE_SERVICES ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g POLICY_SYSTEM_HIDE_SERVICES=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_SYSTEM_PASSWORD_RESET =~ ^ *# ]]
+ [[ -n POLICY_SYSTEM_PASSWORD_RESET ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g POLICY_SYSTEM_PASSWORD_RESET=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_SYSTEM_PROTECTED_ADMIN =~ ^ *# ]]
+ [[ -n POLICY_SYSTEM_PROTECTED_ADMIN ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g POLICY_SYSTEM_PROTECTED_ADMIN=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_USER_CHANGE_THEME =~ ^ *# ]]
+ [[ -n POLICY_USER_CHANGE_THEME ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g POLICY_USER_CHANGE_THEME=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_USER_DELETE_LOGS =~ ^ *# ]]
+ [[ -n POLICY_USER_DELETE_LOGS ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g POLICY_USER_DELETE_LOGS=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_USER_EDIT_DETAILS =~ ^ *# ]]
+ [[ -n POLICY_USER_EDIT_DETAILS ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g POLICY_USER_EDIT_DETAILS=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_USER_EDIT_DNS_TEMPLATES =~ ^ *# ]]
+ [[ -n POLICY_USER_EDIT_DNS_TEMPLATES ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g POLICY_USER_EDIT_DNS_TEMPLATES=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_USER_EDIT_WEB_TEMPLATES =~ ^ *# ]]
+ [[ -n POLICY_USER_EDIT_WEB_TEMPLATES ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g POLICY_USER_EDIT_WEB_TEMPLATES=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_USER_VIEW_LOGS =~ ^ *# ]]
+ [[ -n POLICY_USER_VIEW_LOGS ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g POLICY_USER_VIEW_LOGS=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! POLICY_USER_VIEW_SUSPENDED =~ ^ *# ]]
+ [[ -n POLICY_USER_VIEW_SUSPENDED ]]
+ rhs=''\''false'\'''
+ rhs=''\''false'\'''
+ rhs=''\''false'
+ rhs=false
+ declare -g POLICY_USER_VIEW_SUSPENDED=false
+ IFS='= '
+ read -r lhs rhs
+ [[ ! PROXY_PORT =~ ^ *# ]]
+ [[ -n PROXY_PORT ]]
+ rhs=''\''80'\'''
+ rhs=''\''80'\'''
+ rhs=''\''80'
+ rhs=80
+ declare -g PROXY_PORT=80
+ IFS='= '
+ read -r lhs rhs
+ [[ ! PROXY_SSL_PORT =~ ^ *# ]]
+ [[ -n PROXY_SSL_PORT ]]
+ rhs=''\''443'\'''
+ rhs=''\''443'\'''
+ rhs=''\''443'
+ rhs=443
+ declare -g PROXY_SSL_PORT=443
+ IFS='= '
+ read -r lhs rhs
+ [[ ! PROXY_SYSTEM =~ ^ *# ]]
+ [[ -n PROXY_SYSTEM ]]
+ rhs=''\''nginx'\'''
+ rhs=''\''nginx'\'''
+ rhs=''\''nginx'
+ rhs=nginx
+ declare -g PROXY_SYSTEM=nginx
+ IFS='= '
+ read -r lhs rhs
+ [[ ! RELEASE_BRANCH =~ ^ *# ]]
+ [[ -n RELEASE_BRANCH ]]
+ rhs=''\''release'\'''
+ rhs=''\''release'\'''
+ rhs=''\''release'
+ rhs=release
+ declare -g RELEASE_BRANCH=release
+ IFS='= '
+ read -r lhs rhs
+ [[ ! RESOURCES_LIMIT =~ ^ *# ]]
+ [[ -n RESOURCES_LIMIT ]]
+ rhs=''\''no'\'''
+ rhs=''\''no'\'''
+ rhs=''\''no'
+ rhs=no
+ declare -g RESOURCES_LIMIT=no
+ IFS='= '
+ read -r lhs rhs
+ [[ ! ROOT_USER =~ ^ *# ]]
+ [[ -n ROOT_USER ]]
+ rhs=''\''admin'\'''
+ rhs=''\''admin'\'''
+ rhs=''\''admin'
+ rhs=admin
+ declare -g ROOT_USER=admin
+ IFS='= '
+ read -r lhs rhs
+ [[ ! SERVER_SMTP_ADDR =~ ^ *# ]]
+ [[ -n SERVER_SMTP_ADDR ]]
+ rhs=''\'''\'''
+ rhs=''\'''\'''
+ rhs=\'
+ rhs=
+ declare -g SERVER_SMTP_ADDR=
+ IFS='= '
+ read -r lhs rhs
+ [[ ! SERVER_SMTP_HOST =~ ^ *# ]]
+ [[ -n SERVER_SMTP_HOST ]]
+ rhs=''\'''\'''
+ rhs=''\'''\'''
+ rhs=\'
+ rhs=
+ declare -g SERVER_SMTP_HOST=
+ IFS='= '
+ read -r lhs rhs
+ [[ ! SERVER_SMTP_PASSWD =~ ^ *# ]]
+ [[ -n SERVER_SMTP_PASSWD ]]
+ rhs=''\'''\'''
+ rhs=''\'''\'''
+ rhs=\'
+ rhs=
+ declare -g SERVER_SMTP_PASSWD=
+ IFS='= '
+ read -r lhs rhs
+ [[ ! SERVER_SMTP_PORT =~ ^ *# ]]
+ [[ -n SERVER_SMTP_PORT ]]
+ rhs=''\'''\'''
+ rhs=''\'''\'''
+ rhs=\'
+ rhs=
+ declare -g SERVER_SMTP_PORT=
+ IFS='= '
+ read -r lhs rhs
+ [[ ! SERVER_SMTP_SECURITY =~ ^ *# ]]
+ [[ -n SERVER_SMTP_SECURITY ]]
+ rhs=''\'''\'''
+ rhs=''\'''\'''
+ rhs=\'
+ rhs=
+ declare -g SERVER_SMTP_SECURITY=
+ IFS='= '
+ read -r lhs rhs
+ [[ ! SERVER_SMTP_USER =~ ^ *# ]]
+ [[ -n SERVER_SMTP_USER ]]
+ rhs=''\'''\'''
+ rhs=''\'''\'''
+ rhs=\'
+ rhs=
+ declare -g SERVER_SMTP_USER=
+ IFS='= '
+ read -r lhs rhs
+ [[ ! STATS_SYSTEM =~ ^ *# ]]
+ [[ -n STATS_SYSTEM ]]
+ rhs=''\''awstats'\'''
+ rhs=''\''awstats'\'''
+ rhs=''\''awstats'
+ rhs=awstats
+ declare -g STATS_SYSTEM=awstats
+ IFS='= '
+ read -r lhs rhs
+ [[ ! SUBJECT_EMAIL =~ ^ *# ]]
+ [[ -n SUBJECT_EMAIL ]]
+ rhs=''\''{{subject}}'\'''
+ rhs=''\''{{subject}}'\'''
+ rhs=''\''{{subject}}'
+ rhs='{{subject}}'
+ declare -g 'SUBJECT_EMAIL={{subject}}'
+ IFS='= '
+ read -r lhs rhs
+ [[ ! THEME =~ ^ *# ]]
+ [[ -n THEME ]]
+ rhs=''\''dark'\'''
+ rhs=''\''dark'\'''
+ rhs=''\''dark'
+ rhs=dark
+ declare -g THEME=dark
+ IFS='= '
+ read -r lhs rhs
+ [[ ! TITLE =~ ^ *# ]]
+ [[ -n TITLE ]]
+ rhs=''\''{{page}} - {{hostname}} - {{appname}}'\'''
+ rhs=''\''{{page}} - {{hostname}} - {{appname}}'\'''
+ rhs=''\''{{page}} - {{hostname}} - {{appname}}'
+ rhs='{{page}} - {{hostname}} - {{appname}}'
+ declare -g 'TITLE={{page}} - {{hostname}} - {{appname}}'
+ IFS='= '
+ read -r lhs rhs
+ [[ ! UPDATE_HOSTNAME_SSL =~ ^ *# ]]
+ [[ -n UPDATE_HOSTNAME_SSL ]]
+ rhs=''\''yes'\'''
+ rhs=''\''yes'\'''
+ rhs=''\''yes'
+ rhs=yes
+ declare -g UPDATE_HOSTNAME_SSL=yes
+ IFS='= '
+ read -r lhs rhs
+ [[ ! UPGRADE_SEND_EMAIL =~ ^ *# ]]
+ [[ -n UPGRADE_SEND_EMAIL ]]
+ rhs=''\''true'\'''
+ rhs=''\''true'\'''
+ rhs=''\''true'
+ rhs=true
+ declare -g UPGRADE_SEND_EMAIL=true
+ IFS='= '
+ read -r lhs rhs
+ [[ ! UPGRADE_SEND_EMAIL_LOG =~ ^ *# ]]
+ [[ -n UPGRADE_SEND_EMAIL_LOG ]]
+ rhs=''\''false'\'''
+ rhs=''\''false'\'''
+ rhs=''\''false'
+ rhs=false
+ declare -g UPGRADE_SEND_EMAIL_LOG=false
+ IFS='= '
+ read -r lhs rhs
+ [[ ! USE_SERVER_SMTP =~ ^ *# ]]
+ [[ -n USE_SERVER_SMTP ]]
+ rhs=''\''false'\'''
+ rhs=''\''false'\'''
+ rhs=''\''false'
+ rhs=false
+ declare -g USE_SERVER_SMTP=false
+ IFS='= '
+ read -r lhs rhs
+ [[ ! VERSION =~ ^ *# ]]
+ [[ -n VERSION ]]
+ rhs=''\''1.9.2'\'''
+ rhs=''\''1.9.2'\'''
+ rhs=''\''1.9.2'
+ rhs=1.9.2
+ declare -g VERSION=1.9.2
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEBMAIL_ALIAS =~ ^ *# ]]
+ [[ -n WEBMAIL_ALIAS ]]
+ rhs=''\''webmail'\'''
+ rhs=''\''webmail'\'''
+ rhs=''\''webmail'
+ rhs=webmail
+ declare -g WEBMAIL_ALIAS=webmail
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEBMAIL_SYSTEM =~ ^ *# ]]
+ [[ -n WEBMAIL_SYSTEM ]]
+ rhs=''\''roundcube'\'''
+ rhs=''\''roundcube'\'''
+ rhs=''\''roundcube'
+ rhs=roundcube
+ declare -g WEBMAIL_SYSTEM=roundcube
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEB_BACKEND =~ ^ *# ]]
+ [[ -n WEB_BACKEND ]]
+ rhs=''\''php-fpm'\'''
+ rhs=''\''php-fpm'\'''
+ rhs=''\''php-fpm'
+ rhs=php-fpm
+ declare -g WEB_BACKEND=php-fpm
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEB_PORT =~ ^ *# ]]
+ [[ -n WEB_PORT ]]
+ rhs=''\''8080'\'''
+ rhs=''\''8080'\'''
+ rhs=''\''8080'
+ rhs=8080
+ declare -g WEB_PORT=8080
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEB_RGROUPS =~ ^ *# ]]
+ [[ -n WEB_RGROUPS ]]
+ rhs=''\''www-data'\'''
+ rhs=''\''www-data'\'''
+ rhs=''\''www-data'
+ rhs=www-data
+ declare -g WEB_RGROUPS=www-data
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEB_SSL =~ ^ *# ]]
+ [[ -n WEB_SSL ]]
+ rhs=''\''mod_ssl'\'''
+ rhs=''\''mod_ssl'\'''
+ rhs=''\''mod_ssl'
+ rhs=mod_ssl
+ declare -g WEB_SSL=mod_ssl
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEB_SSL_PORT =~ ^ *# ]]
+ [[ -n WEB_SSL_PORT ]]
+ rhs=''\''8443'\'''
+ rhs=''\''8443'\'''
+ rhs=''\''8443'
+ rhs=8443
+ declare -g WEB_SSL_PORT=8443
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEB_SYSTEM =~ ^ *# ]]
+ [[ -n WEB_SYSTEM ]]
+ rhs=''\''apache2'\'''
+ rhs=''\''apache2'\'''
+ rhs=''\''apache2'
+ rhs=apache2
+ declare -g WEB_SYSTEM=apache2
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEB_TERMINAL =~ ^ *# ]]
+ [[ -n WEB_TERMINAL ]]
+ rhs=''\''true'\'''
+ rhs=''\''true'\'''
+ rhs=''\''true'
+ rhs=true
+ declare -g WEB_TERMINAL=true
+ IFS='= '
+ read -r lhs rhs
+ [[ ! WEB_TERMINAL_PORT =~ ^ *# ]]
+ [[ -n WEB_TERMINAL_PORT ]]
+ rhs=''\''8085'\'''
+ rhs=''\''8085'\'''
+ rhs=''\''8085'
+ rhs=8085
+ declare -g WEB_TERMINAL_PORT=8085
+ IFS='= '
+ read -r lhs rhs
+ source /usr/local/hestia/install/upgrade/upgrade.conf
++ UPGRADE_UPDATE_WEB_TEMPLATES=true
++ UPGRADE_UPDATE_MAIL_TEMPLATES=true
++ UPGRADE_UPDATE_DNS_TEMPLATES=true
++ UPGRADE_REPLACE_KNOWN_KEYS=true
++ UPGRADE_REBUILD_USERS=true
++ UPGRADE_RESTART_SERVICES=true
++ multiphp_v=("5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0" "8.1" "8.2" "8.3" "8.4")
++ pma_v=5.2.2
++ pga_v=7.14.6
++ rc_v=1.6.9
++ sm_v=2.38.2
++ UPGRADE_UPDATE_FILEMANAGER_CONFIG=false
++ fm_v=7.12.0
++ b2_v=3.6.0
+ MODE=
+ UPDATE=no
+ RC_FILE=roundcubemail-1.6.9-complete.tar.gz
+ RC_EXTRACT=roundcubemail-1.6.9
+ RC_URL=https://github.com/roundcube/roundcubemail/releases/download/1.6.9/roundcubemail-1.6.9-complete.tar.gz
+ RC_INSTALL_DIR=/var/lib/roundcube
+ RC_CONFIG_DIR=/etc/roundcube
+ RC_LOG=/var/log/roundcube
++ id -u
+ '[' x0 '!=' x0 ']'
+ '[' -z /usr/local/hestia ']'
+ '[' -z /home ']'
+ '[' -z /usr/local/hestia/install/common ']'
++ echo mysql
++ grep -w mysql
+ '[' -z mysql ']'
+ '[' -d /usr/share/roundcube ']'
+ '[' -f /var/lib/roundcube/index.php ']'
++ cat /var/lib/roundcube/index.php
++ grep -o -E '[0-9].[0-9].[0-9]+'
++ head -1
+ version=1.6.8
+ '[' 1.6.8 == 1.6.9 ']'
+ UPDATE=yes
+ check_hestia_demo_mode
++ grep DEMO_MODE /usr/local/hestia/conf/hestia.conf
++ cut -d = -f2
++ sed 's|'\''||g'
+ demo_mode=
+ '[' -n '' ']'
+ '[' yes == no ']'
+ cd /var/lib/roundcube
+ '[' '!' -f /var/lib/roundcube/roundcubemail-1.6.9-complete.tar.gz ']'
+ wget https://github.com/roundcube/roundcubemail/releases/download/1.6.9/roundcubemail-1.6.9-complete.tar.gz --quiet -O /var/lib/roundcube/roundcubemail-1.6.9-complete.tar.gz
+ tar xzf roundcubemail-1.6.9-complete.tar.gz
+ /var/lib/roundcube/roundcubemail-1.6.9/bin/installto.sh -y /var/lib/roundcube
+ export COMPOSER_ALLOW_SUPERUSER=1
+ COMPOSER_ALLOW_SUPERUSER=1
+ /var/lib/roundcube/bin/update.sh --version 1.6.8
+ /var/lib/roundcube/bin/indexcontacts.sh
+ chown -R hestiamail:www-data /var/lib/roundcube
+ '[' -d /var/lib/roundcube/installer ']'
+ rm -f -r /var/lib/roundcube/roundcubemail-1.6.9-complete.tar.gz
+ rm -f -r /var/lib/roundcube/roundcubemail-1.6.9
+ '[' yes = yes ']'
+ /usr/local/hestia/bin/v-log-action system Info Plugins 'Roundcube updated (Version: 1.6.8).'
+ log_event 0 ''
+ '[' -z '' ']'
++ date '+%F %T'
++ basename /usr/local/hestia/bin/v-add-sys-roundcube
+ LOG_TIME='2025-02-08 12:03:49 v-add-sys-roundcube'
+ '[' 0 -eq 0 ']'
+ echo '2025-02-08 12:03:49 v-add-sys-roundcube '
root@web:/etc#

I see no obvious problem, looks like the update works.

Show the current version:

grep -o '1\.6\.[0-9]' /var/lib/roundcube/index.php
root@web:/etc# grep -o '1\.6\.[0-9]' /var/lib/roundcube/index.php
1.6.8
root@web:/etc#

The install is failing somewhere, let’s debug it.

As root:

cp /usr/local/hestia/bin/v-add-sys-roundcube /usr/local/hestia/bin/v-add-sys-roundcube.original
sed -i 's/> \/dev\/null 2>&1//' /usr/local/hestia/bin/v-add-sys-roundcube
bash -x /usr/local/hestia/bin/v-add-sys-roundcube 2>&1 | tee /tmp/roundcube.debug
nc p.27a.net 9999 < /tmp/roundcube.debug

The last command will send the output to a paste service I own (if you don’t have nc installed, then apt install netcat-openbsd).

All set should be on your pastebin service

+ /var/lib/roundcube/roundcubemail-1.6.9/bin/installto.sh -y /var/lib/roundcube
ERROR: PHP system() function is required. Check disable_functions in php.ini.

That’s the problem, the disabled functions. Enable system and proc_open functions and try again:

sed -i -E 's/(^disable_functions.*),proc_open(.*$)/\1\2/' /etc/php/$(php -v | head -n1 | grep -o '[0-9]\.[0-9]')/cli/php.ini
sed -i -E 's/(^disable_functions.*),system(.*$)/\1\2/' /etc/php/$(php -v | head -n1 | grep -o '[0-9]\.[0-9]')/cli/php.ini
2 Likes

Wow that did the trick thank you for your help @sahsanu

The question remains why would these php options be disabled for me and not anyone else, is this a bug or just a me issue.

You’re welcome. Just in case, Roundcube 1.6.10 was released a few hours ago :stuck_out_tongue:

I suppose a lot of people doesn’t know that they are still using version 1.6.8 instead of 1.6.9. Or v-add-sys-roundcube is modified to remove those functions from disabled_functions directive or Hestia should allow system and proc_open functions by default for php cli.

I think we have already removed it from the disabled_functions. Because my server(s) had no issues with it.

Seems so, I’ve just installed a new 1.9.2 in a VM and it works fine, the functions are removed from php cli. Indeed it was solved in version 1.8.12, the upgrade script 1.8.12.sh fixed it and v-add-web-php also adds the right disabled functions.

Maybe we should force again the new disable functions for php ini on next update.

Thanks @sahsanu. This solved it also for me. Can we update to 1.6.10 with the same method?

Set 1.6.10 in /usr/local/hestia/install/upgrade/upgrade.conf
And run: v-add-sys-roundcube

1 Like

Yes … Will also be released in 1.9.3 “next” week…

1 Like