Skip to content

Commit 8ab66af

Browse files
authored
Merge pull request #1708 from master3395/v2.5.5-dev
V2.5.5 dev
2 parents 6c68dbf + feb9c91 commit 8ab66af

File tree

14 files changed

+2200
-197
lines changed

14 files changed

+2200
-197
lines changed

CyberCP/urls.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,15 @@
2626
# includes each installed plugin (under /plugins/<name>/) so settings and
2727
# other plugin pages work for any installed plugin.
2828

29-
# Optional app: may be missing after clean clone or git clean -fd (not in all repo trees)
29+
# Optional app: may be missing after clean clone or git clean -fd (not in all repo trees).
30+
# When missing or broken, register a placeholder so {% url 'emailMarketing' %} in templates never raises Reverse not found.
3031
_optional_email_marketing = []
3132
try:
3233
_optional_email_marketing.append(path('emailMarketing/', include('emailMarketing.urls')))
33-
except ModuleNotFoundError:
34-
pass
34+
except (ModuleNotFoundError, ImportError, AttributeError):
35+
_optional_email_marketing.append(
36+
path('emailMarketing/', RedirectView.as_view(url='/base/', permanent=False), name='emailMarketing')
37+
)
3538

3639
urlpatterns = [
3740
# Serve static files first (before catch-all routes)

baseTemplate/templates/baseTemplate/index.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2142,7 +2142,10 @@ <h3>Notifications</h3>
21422142
<a href="{% url 'installed' %}" class="menu-item">
21432143
<span>Installed</span>
21442144
</a>
2145-
</div>
2145+
<a href="{% url 'installed' %}?view=store" class="menu-item">
2146+
<span>{% trans "Plugin Store" %}</span>
2147+
</a>
2148+
</div>
21462149
{% endif %}
21472150
</div>
21482151

cyberpanel_upgrade_monolithic.sh

Lines changed: 100 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -350,58 +350,74 @@ MARIADB_VER="11.8"
350350
MARIADB_VER_REPO="11.8"
351351

352352
Check_Argument() {
353-
# Parse --branch / -b (extract first word after -b or --branch)
354-
if [[ "$*" = *"--branch "* ]]; then
355-
Branch_Name=$(echo "$*" | sed -n 's/.*--branch \([^ ]*\).*/\1/p' | head -1)
356-
[[ -n "$Branch_Name" ]] && Branch_Check "$Branch_Name"
357-
elif [[ "$*" = *"-b "* ]]; then
358-
Branch_Name=$(echo "$*" | sed -n 's/.*-b \([^ ]*\).*/\1/p' | head -1)
359-
[[ -n "$Branch_Name" ]] && Branch_Check "$Branch_Name"
360-
fi
361-
# Parse --repo / -r to use any GitHub user (same URL structure as usmannasir/cyberpanel)
362-
if [[ "$*" = *"--repo "* ]]; then
363-
Git_User_Override=$(echo "$*" | sed -n 's/.*--repo \([^ ]*\).*/\1/p' | head -1)
364-
fi
365-
if [[ "$*" = *"-r "* ]] && [[ -z "$Git_User_Override" ]]; then
366-
Git_User_Override=$(echo "$*" | sed -n 's/.*-r \([^ ]*\).*/\1/p' | head -1)
367-
fi
368-
# Parse --no-system-update to skip yum/dnf update -y (faster upgrade when system is already updated)
369-
if [[ "$*" = *"--no-system-update"* ]]; then
370-
Skip_System_Update="yes"
371-
echo -e "\nUsing --no-system-update: skipping full system package update.\n"
372-
fi
373-
# Parse --backup-db / --no-backup-db: pre-upgrade MariaDB backup. Default when neither set: ask user (may take a while).
374-
# --backup-db = always backup; --no-backup-db = never backup; omit both = prompt [y/N]
375-
Backup_DB_Before_Upgrade=""
376-
if [[ "$*" = *"--backup-db"* ]]; then
377-
Backup_DB_Before_Upgrade="yes"
378-
echo -e "\nUsing --backup-db: will create a full MariaDB backup before upgrade.\n"
379-
elif [[ "$*" = *"--no-backup-db"* ]]; then
380-
Backup_DB_Before_Upgrade="no"
381-
echo -e "\nUsing --no-backup-db: skipping MariaDB pre-upgrade backup.\n"
382-
fi
383-
# Parse --migrate-to-utf8: after upgrading to MariaDB 11.x/12.x, convert DBs/tables from latin1 to utf8mb4 (only if your apps support UTF-8)
384-
if [[ "$*" = *"--migrate-to-utf8"* ]]; then
385-
Migrate_MariaDB_To_UTF8_Requested="yes"
386-
echo -e "\nUsing --migrate-to-utf8: will convert databases to UTF-8 (utf8mb4) after MariaDB upgrade.\n"
387-
fi
388-
# Parse --mariadb-version (any version: 10.6, 10.11, 10.11.16, 11.8, 12.1, 12.2, 12.3, etc.). Default 11.8.
389-
# --mariadb is shorthand for --mariadb-version 10.11
390-
if [[ "$*" = *"--mariadb"* ]] && [[ "$*" != *"--mariadb-version "* ]]; then
391-
MARIADB_VER="10.11"
392-
echo -e "\nUsing --mariadb: MariaDB 10.11 selected (non-interactive).\n"
393-
elif [[ "$*" = *"--mariadb-version "* ]]; then
394-
MARIADB_VER=$(echo "$*" | sed -n 's/.*--mariadb-version \([^ ]*\).*/\1/p' | head -1)
395-
MARIADB_VER="${MARIADB_VER:-11.8}"
396-
fi
397-
# Allow any version; repo paths use major.minor (normalized later)
353+
# Parse arguments with exact next-token so -b v2.5.5-dev --mariadb-version 12.3 does not mangle Branch_Name
354+
set -- $*
355+
while [[ $# -ge 1 ]]; do
356+
case "$1" in
357+
-b|--branch)
358+
if [[ -n "${2:-}" ]] && [[ "$2" != -* ]]; then
359+
Branch_Name="$2"
360+
Branch_Check "$Branch_Name"
361+
shift 2
362+
continue
363+
fi
364+
shift
365+
;;
366+
--mariadb-version)
367+
if [[ -n "${2:-}" ]] && [[ "$2" != -* ]]; then
368+
MARIADB_VER="$2"
369+
echo -e "\nUsing --mariadb-version: MariaDB $MARIADB_VER selected.\n"
370+
shift 2
371+
continue
372+
fi
373+
shift
374+
;;
375+
-r|--repo)
376+
if [[ -n "${2:-}" ]] && [[ "$2" != -* ]]; then
377+
Git_User_Override="$2"
378+
echo -e "\nUsing --repo: GitHub user $Git_User_Override for cyberpanel.\n"
379+
shift 2
380+
continue
381+
fi
382+
shift
383+
;;
384+
--no-system-update)
385+
Skip_System_Update="yes"
386+
echo -e "\nUsing --no-system-update: skipping full system package update.\n"
387+
shift
388+
;;
389+
--backup-db)
390+
Backup_DB_Before_Upgrade="yes"
391+
echo -e "\nUsing --backup-db: will create a full MariaDB backup before upgrade.\n"
392+
shift
393+
;;
394+
--no-backup-db)
395+
Backup_DB_Before_Upgrade="no"
396+
echo -e "\nUsing --no-backup-db: skipping MariaDB pre-upgrade backup.\n"
397+
shift
398+
;;
399+
--migrate-to-utf8)
400+
Migrate_MariaDB_To_UTF8_Requested="yes"
401+
echo -e "\nUsing --migrate-to-utf8: will convert databases to UTF-8 (utf8mb4) after MariaDB upgrade.\n"
402+
shift
403+
;;
404+
--mariadb)
405+
MARIADB_VER="10.11"
406+
echo -e "\nUsing --mariadb: MariaDB 10.11 selected (non-interactive).\n"
407+
shift
408+
;;
409+
*)
410+
shift
411+
;;
412+
esac
413+
done
398414
}
399415

400416
Pre_Upgrade_Setup_Git_URL() {
401417
if [[ $Server_Country != "CN" ]] ; then
402418
if [[ -n "$Git_User_Override" ]]; then
403419
Git_User="$Git_User_Override"
404-
echo -e "\nUsing GitHub repo: ${Git_User}/cyberpanel (same URL structure as usmannasir)\n"
420+
echo -e "\nUsing GitHub repo: ${Git_User}/cyberpanel\n"
405421
else
406422
Git_User="usmannasir"
407423
fi
@@ -778,6 +794,7 @@ EOF
778794
dnf clean metadata --disablerepo='*' --enablerepo=mariadb 2>/dev/null || true
779795
# MariaDB 10 -> 11 or 11 -> 12: RPM scriptlet blocks in-place upgrade; do manual stop, remove old server, install target, start, mariadb-upgrade
780796
MARIADB_OLD_10=$(rpm -qa 'MariaDB-server-10*' 2>/dev/null | head -1)
797+
[[ -z "$MARIADB_OLD_10" ]] && MARIADB_OLD_10=$(rpm -qa 2>/dev/null | grep -E '^MariaDB-server-10\.' | head -1)
781798
MARIADB_OLD_11=$(rpm -qa 'MariaDB-server-11*' 2>/dev/null | head -1)
782799
# Also detect 11.x by package version (e.g. MariaDB-server-11.8.6-1.el9)
783800
[[ -z "$MARIADB_OLD_11" ]] && MARIADB_OLD_11=$(rpm -qa 'MariaDB-server*' 2>/dev/null | grep -E 'MariaDB-server-11\.' | head -1)
@@ -791,7 +808,7 @@ EOF
791808
rpm -e "$MARIADB_OLD_10" --nodeps 2>/dev/null || true
792809
dnf install -y --enablerepo=mariadb MariaDB-server MariaDB-client MariaDB-devel 2>/dev/null || true
793810
mkdir -p /etc/my.cnf.d
794-
printf "[client]\nskip-ssl = true\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
811+
printf "[client]\nssl=0\nskip-ssl\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
795812
systemctl start mariadb 2>/dev/null || true
796813
sleep 2
797814
mariadb-upgrade -u root 2>/dev/null || true
@@ -805,7 +822,7 @@ EOF
805822
rpm -e "$MARIADB_OLD_11" --nodeps 2>/dev/null || true
806823
dnf install -y --enablerepo=mariadb MariaDB-server MariaDB-client MariaDB-devel 2>/dev/null || true
807824
mkdir -p /etc/my.cnf.d
808-
printf "[client]\nskip-ssl = true\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
825+
printf "[client]\nssl=0\nskip-ssl\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
809826
systemctl start mariadb 2>/dev/null || true
810827
sleep 2
811828
mariadb-upgrade -u root 2>/dev/null || true
@@ -828,7 +845,7 @@ EOF
828845
rpm -e "$STILL_11" --nodeps 2>/dev/null || true
829846
dnf install -y --enablerepo=mariadb MariaDB-server MariaDB-client MariaDB-devel 2>/dev/null || true
830847
mkdir -p /etc/my.cnf.d
831-
printf "[client]\nskip-ssl = true\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
848+
printf "[client]\nssl=0\nskip-ssl\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
832849
systemctl start mariadb 2>/dev/null || true
833850
sleep 2
834851
mariadb-upgrade -u root 2>/dev/null || true
@@ -838,7 +855,11 @@ EOF
838855
fi
839856
# Allow local client to connect without SSL (11.x client defaults to SSL; 10.x server may not have it)
840857
mkdir -p /etc/my.cnf.d
841-
printf "[client]\nskip-ssl = true\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
858+
printf "[client]\nssl=0\nskip-ssl\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
859+
# Ensure main my.cnf has [client] without SSL when server has SSL disabled (ERROR 2026 fix)
860+
if [[ -f /etc/my.cnf ]] && ! grep -q '^\[client\]' /etc/my.cnf 2>/dev/null; then
861+
echo -e "\n[client]\nssl=0\nskip-ssl" >> /etc/my.cnf
862+
fi
842863
# Optional: migrate from latin1 to UTF-8 (utf8mb4) when --migrate-to-utf8 and 11.x/12.x
843864
if [[ "$Migrate_MariaDB_To_UTF8_Requested" = "yes" ]] && { [[ "$MARIADB_VER_REPO" =~ ^11\. ]] || [[ "$MARIADB_VER_REPO" =~ ^12\. ]]; }; then
844865
Migrate_MariaDB_To_UTF8
@@ -863,6 +884,7 @@ EOF
863884

864885
# Install/upgrade MariaDB from our repo (any version: 10.11, 11.8, 12.x). Manual path for 10->11 and 11->12.
865886
MARIADB_OLD_10_AL9=$(rpm -qa 'MariaDB-server-10*' 2>/dev/null | head -1)
887+
[[ -z "$MARIADB_OLD_10_AL9" ]] && MARIADB_OLD_10_AL9=$(rpm -qa 2>/dev/null | grep -E '^MariaDB-server-10\.' | head -1)
866888
MARIADB_OLD_11_AL9=$(rpm -qa 'MariaDB-server-11*' 2>/dev/null | head -1)
867889
[[ -z "$MARIADB_OLD_11_AL9" ]] && MARIADB_OLD_11_AL9=$(rpm -qa 'MariaDB-server*' 2>/dev/null | grep -E 'MariaDB-server-11\.' | head -1)
868890
if [[ -n "$MARIADB_OLD_10_AL9" ]] && { [[ "$MARIADB_VER_REPO" =~ ^11\. ]] || [[ "$MARIADB_VER_REPO" =~ ^12\. ]]; }; then
@@ -874,7 +896,7 @@ EOF
874896
rpm -e "$MARIADB_OLD_10_AL9" --nodeps 2>/dev/null || true
875897
dnf install -y --enablerepo=mariadb MariaDB-server MariaDB-devel 2>/dev/null || dnf install -y mariadb-server mariadb-devel
876898
mkdir -p /etc/my.cnf.d
877-
printf "[client]\nskip-ssl = true\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
899+
printf "[client]\nssl=0\nskip-ssl\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
878900
systemctl start mariadb 2>/dev/null || true
879901
sleep 2
880902
mariadb-upgrade -u root 2>/dev/null || true
@@ -888,7 +910,7 @@ EOF
888910
rpm -e "$MARIADB_OLD_11_AL9" --nodeps 2>/dev/null || true
889911
dnf install -y --enablerepo=mariadb MariaDB-server MariaDB-devel 2>/dev/null || dnf install -y mariadb-server mariadb-devel
890912
mkdir -p /etc/my.cnf.d
891-
printf "[client]\nskip-ssl = true\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
913+
printf "[client]\nssl=0\nskip-ssl\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
892914
systemctl start mariadb 2>/dev/null || true
893915
sleep 2
894916
mariadb-upgrade -u root 2>/dev/null || true
@@ -900,7 +922,7 @@ EOF
900922
fi
901923
# Allow local client to connect without SSL
902924
mkdir -p /etc/my.cnf.d
903-
printf "[client]\nskip-ssl = true\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
925+
printf "[client]\nssl=0\nskip-ssl\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
904926

905927
# Install additional required packages (omit curl - AlmaLinux 9 has curl-minimal, avoid conflict)
906928
dnf install -y wget unzip zip rsync firewalld psmisc git python3 python3-pip python3-devel 2>/dev/null || dnf install -y --allowerasing wget unzip zip rsync firewalld psmisc git python3 python3-pip python3-devel
@@ -1007,6 +1029,17 @@ if [[ "$Server_OS" = "openEuler" ]] ; then
10071029
dnf install python3 -y
10081030
fi
10091031
#all pre-upgrade operation for openEuler
1032+
1033+
# Ensure MariaDB client no-SSL on every upgrade path (avoids ERROR 2026 when server has have_ssl=DISABLED)
1034+
mkdir -p /etc/my.cnf.d
1035+
printf "[client]\nssl=0\nskip-ssl\n" > /etc/my.cnf.d/cyberpanel-client.cnf 2>/dev/null || true
1036+
if [[ -f /etc/my.cnf ]] && ! grep -q '^\[client\]' /etc/my.cnf 2>/dev/null; then
1037+
echo -e "\n[client]\nssl=0\nskip-ssl" >> /etc/my.cnf
1038+
fi
1039+
if [[ -d /etc/mysql/mariadb.conf.d ]]; then
1040+
printf "[client]\nssl=0\nskip-ssl\n" > /etc/mysql/mariadb.conf.d/99-cyberpanel-client.cnf 2>/dev/null || true
1041+
fi
1042+
echo -e "[$(date +"%Y-%m-%d %H:%M:%S")] MariaDB client no-SSL config ensured." | tee -a /var/log/cyberpanel_upgrade_debug.log
10101043
}
10111044

10121045
Download_Requirement() {
@@ -1336,6 +1369,16 @@ fi
13361369

13371370
echo -e "[$(date +"%Y-%m-%d %H:%M:%S")] Running: $CP_PYTHON upgrade.py $Branch_Name" | tee -a /var/log/cyberpanel_upgrade_debug.log
13381371

1372+
# Export Git user so upgrade.py clones from the same repo (master3395 or --repo override)
1373+
export CYBERPANEL_GIT_USER="${Git_User:-usmannasir}"
1374+
# So upgrade.py can import plogical (it runs from /root/cyberpanel_upgrade_tmp)
1375+
export PYTHONPATH="/usr/local/CyberCP${PYTHONPATH:+:$PYTHONPATH}"
1376+
1377+
# Run from dir that contains upgrade.py
1378+
for d in /root/cyberpanel_upgrade_tmp /usr/local/CyberCP; do
1379+
if [[ -f "$d/upgrade.py" ]]; then cd "$d" || true; break; fi
1380+
done
1381+
13391382
# Run upgrade.py and capture output
13401383
upgrade_output=$("$CP_PYTHON" upgrade.py "$Branch_Name" 2>&1)
13411384
RETURN_CODE=$?
@@ -1402,6 +1445,8 @@ elif [[ "$Server_OS" = "openEuler" ]] ; then
14021445
fi
14031446

14041447
echo -e "[$(date +"%Y-%m-%d %H:%M:%S")] Running fallback: /usr/local/CyberPanelTemp/bin/python upgrade.py $Branch_Name" | tee -a /var/log/cyberpanel_upgrade_debug.log
1448+
export CYBERPANEL_GIT_USER="${Git_User:-usmannasir}"
1449+
export PYTHONPATH="/usr/local/CyberCP${PYTHONPATH:+:$PYTHONPATH}"
14051450
/usr/local/CyberPanelTemp/bin/python upgrade.py "$Branch_Name" 2>&1 | tee -a /var/log/cyberpanel_upgrade_debug.log
14061451
FALLBACK_CODE=$?
14071452
echo -e "[$(date +"%Y-%m-%d %H:%M:%S")] Fallback upgrade returned code: $FALLBACK_CODE" | tee -a /var/log/cyberpanel_upgrade_debug.log
@@ -1662,7 +1707,8 @@ Sync_CyberCP_To_Latest() {
16621707
cd /usr/local/CyberCP
16631708
git fetch origin 2>&1 | tee -a /var/log/cyberpanel_upgrade_debug.log
16641709
if git show-ref -q "refs/remotes/origin/$Branch_Name"; then
1665-
git checkout -B "$Branch_Name" "origin/$Branch_Name" 2>&1 | tee -a /var/log/cyberpanel_upgrade_debug.log
1710+
# Force tree to match remote so local changes/untracked files do not block (settings.py restored below)
1711+
git reset --hard "origin/$Branch_Name" 2>&1 | tee -a /var/log/cyberpanel_upgrade_debug.log
16661712
else
16671713
git checkout "$Branch_Name" 2>/dev/null || true
16681714
git pull --ff-only origin "$Branch_Name" 2>&1 | tee -a /var/log/cyberpanel_upgrade_debug.log || true

install/install.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2149,6 +2149,27 @@ def ensure_mysql_password_file(self):
21492149
logging.InstallLog.writeToFile(error_msg)
21502150
raise Exception(error_msg)
21512151

2152+
def _ensure_mariadb_client_no_ssl(self):
2153+
"""Ensure MariaDB client connects without SSL (avoids ERROR 2026 when server has have_ssl=DISABLED)."""
2154+
client_cnf = "[client]\nssl=0\nskip-ssl\n"
2155+
try:
2156+
# RHEL/AlmaLinux: /etc/my.cnf.d/cyberpanel-client.cnf
2157+
if not os.path.exists('/etc/my.cnf.d'):
2158+
os.makedirs('/etc/my.cnf.d', mode=0o755, exist_ok=True)
2159+
with open('/etc/my.cnf.d/cyberpanel-client.cnf', 'w') as f:
2160+
f.write(client_cnf)
2161+
logging.InstallLog.writeToFile("Created /etc/my.cnf.d/cyberpanel-client.cnf (client SSL disabled)")
2162+
except Exception as e:
2163+
logging.InstallLog.writeToFile("_ensure_mariadb_client_no_ssl: /etc/my.cnf.d: %s" % str(e))
2164+
try:
2165+
# Debian/Ubuntu: /etc/mysql/mariadb.conf.d/99-cyberpanel-client.cnf
2166+
if os.path.exists('/etc/mysql/mariadb.conf.d'):
2167+
with open('/etc/mysql/mariadb.conf.d/99-cyberpanel-client.cnf', 'w') as f:
2168+
f.write(client_cnf)
2169+
logging.InstallLog.writeToFile("Created /etc/mysql/mariadb.conf.d/99-cyberpanel-client.cnf (client SSL disabled)")
2170+
except Exception as e:
2171+
logging.InstallLog.writeToFile("_ensure_mariadb_client_no_ssl: mariadb.conf.d: %s" % str(e))
2172+
21522173
def command_exists(self, command):
21532174
"""Check if a command exists in PATH"""
21542175
try:
@@ -3225,10 +3246,13 @@ def download_install_CyberPanel(self, mysqlPassword, mysql):
32253246
# all the other control panels allow
32263247
# reference: https://oracle-base.com/articles/mysql/mysql-password-less-logins-using-option-files
32273248
mysql_my_root_cnf = '/root/.my.cnf'
3249+
# Include skip-ssl/ssl=0 so client does not require SSL (avoids ERROR 2026 when server has have_ssl=DISABLED)
32283250
mysql_root_cnf_content = """
32293251
[client]
32303252
user=root
32313253
password="%s"
3254+
ssl=0
3255+
skip-ssl
32323256
""" % password
32333257

32343258
with open(mysql_my_root_cnf, 'w') as f:
@@ -3239,6 +3263,10 @@ def download_install_CyberPanel(self, mysqlPassword, mysql):
32393263

32403264
logging.InstallLog.writeToFile("Updating /root/.my.cnf!")
32413265

3266+
# Ensure system-wide MariaDB client uses no SSL (all installs: avoids ERROR 2026 on servers with SSL disabled)
3267+
if self.remotemysql == 'OFF':
3268+
self._ensure_mariadb_client_no_ssl()
3269+
32423270
logging.InstallLog.writeToFile("Generating secure environment configuration!")
32433271

32443272
# Determine the correct MySQL root password to use

plogical/upgrade.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,8 @@ class MinimalSettings:
296296
settings = MinimalSettings()
297297
print("Recovery complete. Continuing with upgrade...")
298298

299-
VERSION = '2.4'
300-
BUILD = 4
299+
VERSION = '2.5.5'
300+
BUILD = 5
301301

302302
CENTOS7 = 0
303303
CENTOS8 = 1
@@ -3974,9 +3974,10 @@ def downloadAndUpgrade(versionNumbring, branch):
39743974
Upgrade.restoreCriticalFiles(backup_dir, backed_up_files)
39753975
return 0, 'Failed to remove old CyberCP directory'
39763976

3977-
# Clone the new repository directly to CyberCP
3977+
# Clone the new repository (use CYBERPANEL_GIT_USER for fork, e.g. master3395)
3978+
git_user = os.environ.get('CYBERPANEL_GIT_USER', 'master3395')
39783979
Upgrade.stdOut("Cloning fresh CyberPanel repository...")
3979-
command = 'git clone https://github.com/usmannasir/cyberpanel CyberCP'
3980+
command = 'git clone https://github.com/%s/cyberpanel CyberCP' % git_user
39803981
if not Upgrade.executioner(command, command, 1):
39813982
# Try to restore backup if clone fails
39823983
Upgrade.stdOut("Clone failed, attempting to restore backup...")

0 commit comments

Comments
 (0)