mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-08 19:27:14 +00:00
chore: point install/update/self-update at this fork instead of upstream
install.sh, update.sh, and x-ui.sh all hardcoded MHSanaei/3x-ui as the release/raw-file source (release tarball downloads, the self-update script fetch, service unit fallback downloads). Left as-is, merging AmneziaWG into main and cutting a release here would still silently install upstream's stock binary — none of our work would ever reach a machine that runs the curl-from-GitHub one-liner. Repointed all of it at Kuzz007/3x-ui, plus two more functional (not just doc/attribution) spots the same grep turned up: the panel's own in-app update checker (internal/web/service/panel/panel.go's panelUpdaterURL and the GitHub releases API calls in fetchPanelRelease) and deploy/cloud-init/cloud-init.yaml's auto-provisioning curl line. Left README/docs/CONTRIBUTING/FUNDING attribution to the upstream project untouched — this is still a fork of MHSanaei's work, that credit stays. Third-party dependency downloads in .github/workflows/release.yml (Xray-core, geoip/geosite data, mtg-multi) intentionally still point at their own respective upstream projects, not this fork. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -44,7 +44,7 @@ write_files:
|
|||||||
# export XUI_DB_DSN="postgres://user:pass@host:5432/db?sslmode=disable"
|
# export XUI_DB_DSN="postgres://user:pass@host:5432/db?sslmode=disable"
|
||||||
# ------------------------------------------------------------------------
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
curl -fsSL https://raw.githubusercontent.com/MHSanaei/3x-ui/main/install.sh | bash
|
curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash
|
||||||
|
|
||||||
# Surface the generated credentials. Full creds (incl. password + API token)
|
# Surface the generated credentials. Full creds (incl. password + API token)
|
||||||
# go ONLY to the serial console (/dev/console, owner-only). /etc/motd is
|
# go ONLY to the serial console (/dev/console, owner-only). /etc/motd is
|
||||||
|
|||||||
+8
-8
@@ -1418,13 +1418,13 @@ install_x-ui() {
|
|||||||
|
|
||||||
# Download resources
|
# Download resources
|
||||||
if [ $# == 0 ]; then
|
if [ $# == 0 ]; then
|
||||||
tag_version=$(curl -Ls --retry 5 --retry-delay 3 --connect-timeout 15 --max-time 60 "https://api.github.com/repos/MHSanaei/3x-ui/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
tag_version=$(curl -Ls --retry 5 --retry-delay 3 --connect-timeout 15 --max-time 60 "https://api.github.com/repos/Kuzz007/3x-ui/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
||||||
if [[ ! -n "$tag_version" ]]; then
|
if [[ ! -n "$tag_version" ]]; then
|
||||||
echo -e "${red}Failed to fetch x-ui version, it may be due to GitHub API restrictions, please try it later${plain}"
|
echo -e "${red}Failed to fetch x-ui version, it may be due to GitHub API restrictions, please try it later${plain}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo -e "Got x-ui latest version: ${tag_version}, beginning the installation..."
|
echo -e "Got x-ui latest version: ${tag_version}, beginning the installation..."
|
||||||
curl -fLR --retry 5 --retry-delay 3 --connect-timeout 15 --speed-limit 1 --speed-time 300 -o ${xui_folder}-linux-$(arch).tar.gz https://github.com/MHSanaei/3x-ui/releases/download/${tag_version}/x-ui-linux-$(arch).tar.gz
|
curl -fLR --retry 5 --retry-delay 3 --connect-timeout 15 --speed-limit 1 --speed-time 300 -o ${xui_folder}-linux-$(arch).tar.gz https://github.com/Kuzz007/3x-ui/releases/download/${tag_version}/x-ui-linux-$(arch).tar.gz
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
echo -e "${red}Downloading x-ui failed, please be sure that your server can access GitHub ${plain}"
|
echo -e "${red}Downloading x-ui failed, please be sure that your server can access GitHub ${plain}"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -1452,7 +1452,7 @@ install_x-ui() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
url="https://github.com/MHSanaei/3x-ui/releases/download/${tag_version}/x-ui-linux-$(arch).tar.gz"
|
url="https://github.com/Kuzz007/3x-ui/releases/download/${tag_version}/x-ui-linux-$(arch).tar.gz"
|
||||||
echo -e "Beginning to install x-ui ${tag_version}"
|
echo -e "Beginning to install x-ui ${tag_version}"
|
||||||
curl -fLR --retry 5 --retry-delay 3 --connect-timeout 15 --speed-limit 1 --speed-time 300 -o ${xui_folder}-linux-$(arch).tar.gz ${url}
|
curl -fLR --retry 5 --retry-delay 3 --connect-timeout 15 --speed-limit 1 --speed-time 300 -o ${xui_folder}-linux-$(arch).tar.gz ${url}
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
@@ -1467,7 +1467,7 @@ install_x-ui() {
|
|||||||
fi
|
fi
|
||||||
local xui_script_temp="/usr/bin/x-ui-temp.$$"
|
local xui_script_temp="/usr/bin/x-ui-temp.$$"
|
||||||
rm -f "${xui_script_temp}"
|
rm -f "${xui_script_temp}"
|
||||||
curl -fLRo "${xui_script_temp}" https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.sh
|
curl -fLRo "${xui_script_temp}" https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.sh
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
rm -f "${xui_script_temp}"
|
rm -f "${xui_script_temp}"
|
||||||
echo -e "${red}Failed to download x-ui.sh${plain}"
|
echo -e "${red}Failed to download x-ui.sh${plain}"
|
||||||
@@ -1559,7 +1559,7 @@ install_x-ui() {
|
|||||||
if [[ $release == "alpine" ]]; then
|
if [[ $release == "alpine" ]]; then
|
||||||
xui_rc_temp="/etc/init.d/x-ui.tmp.$$"
|
xui_rc_temp="/etc/init.d/x-ui.tmp.$$"
|
||||||
rm -f "${xui_rc_temp}"
|
rm -f "${xui_rc_temp}"
|
||||||
curl -fLRo "${xui_rc_temp}" https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.rc
|
curl -fLRo "${xui_rc_temp}" https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.rc
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
rm -f "${xui_rc_temp}"
|
rm -f "${xui_rc_temp}"
|
||||||
echo -e "${red}Failed to download x-ui.rc${plain}"
|
echo -e "${red}Failed to download x-ui.rc${plain}"
|
||||||
@@ -1624,13 +1624,13 @@ install_x-ui() {
|
|||||||
echo -e "${yellow}Service files not found in tar.gz, downloading from GitHub...${plain}"
|
echo -e "${yellow}Service files not found in tar.gz, downloading from GitHub...${plain}"
|
||||||
case "${release}" in
|
case "${release}" in
|
||||||
ubuntu | debian | armbian)
|
ubuntu | debian | armbian)
|
||||||
service_unit_url="https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.debian"
|
service_unit_url="https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.service.debian"
|
||||||
;;
|
;;
|
||||||
arch | manjaro | parch)
|
arch | manjaro | parch)
|
||||||
service_unit_url="https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.arch"
|
service_unit_url="https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.service.arch"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
service_unit_url="https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.rhel"
|
service_unit_url="https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.service.rhel"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ type PanelUpdateInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
panelUpdaterURL = "https://raw.githubusercontent.com/MHSanaei/3x-ui/main/update.sh"
|
panelUpdaterURL = "https://raw.githubusercontent.com/Kuzz007/3x-ui/main/update.sh"
|
||||||
maxPanelUpdaterBytes = 2 << 20
|
maxPanelUpdaterBytes = 2 << 20
|
||||||
// devReleaseTag is the fixed-tag rolling pre-release the CI force-moves to the
|
// devReleaseTag is the fixed-tag rolling pre-release the CI force-moves to the
|
||||||
// newest main commit; the dev update channel installs from it.
|
// newest main commit; the dev update channel installs from it.
|
||||||
@@ -413,9 +413,9 @@ func fetchLatestPanelVersion() (string, error) {
|
|||||||
// fetchPanelRelease fetches a release from GitHub. An empty tag resolves the
|
// fetchPanelRelease fetches a release from GitHub. An empty tag resolves the
|
||||||
// latest stable release; a non-empty tag (e.g. dev-latest) resolves that tag.
|
// latest stable release; a non-empty tag (e.g. dev-latest) resolves that tag.
|
||||||
func fetchPanelRelease(tag string) (*service.Release, error) {
|
func fetchPanelRelease(tag string) (*service.Release, error) {
|
||||||
url := "https://api.github.com/repos/MHSanaei/3x-ui/releases/latest"
|
url := "https://api.github.com/repos/Kuzz007/3x-ui/releases/latest"
|
||||||
if tag != "" {
|
if tag != "" {
|
||||||
url = "https://api.github.com/repos/MHSanaei/3x-ui/releases/tags/" + tag
|
url = "https://api.github.com/repos/Kuzz007/3x-ui/releases/tags/" + tag
|
||||||
}
|
}
|
||||||
client := (&service.SettingService{}).NewProxiedHTTPClient(10 * time.Second)
|
client := (&service.SettingService{}).NewProxiedHTTPClient(10 * time.Second)
|
||||||
req, reqErr := http.NewRequestWithContext(context.Background(), http.MethodGet, url, nil)
|
req, reqErr := http.NewRequestWithContext(context.Background(), http.MethodGet, url, nil)
|
||||||
|
|||||||
@@ -987,13 +987,13 @@ update_x-ui() {
|
|||||||
tag_version="${XUI_UPDATE_TAG}"
|
tag_version="${XUI_UPDATE_TAG}"
|
||||||
echo -e "${green}Using update tag: ${tag_version}${plain}"
|
echo -e "${green}Using update tag: ${tag_version}${plain}"
|
||||||
else
|
else
|
||||||
tag_version=$(${curl_bin} -Ls "https://api.github.com/repos/MHSanaei/3x-ui/releases/latest" 2> /dev/null | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
tag_version=$(${curl_bin} -Ls "https://api.github.com/repos/Kuzz007/3x-ui/releases/latest" 2> /dev/null | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
||||||
if [[ ! -n "$tag_version" ]]; then
|
if [[ ! -n "$tag_version" ]]; then
|
||||||
_fail "ERROR: Failed to fetch x-ui version, it may be due to GitHub API restrictions, please try it later"
|
_fail "ERROR: Failed to fetch x-ui version, it may be due to GitHub API restrictions, please try it later"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo -e "Got x-ui latest version: ${tag_version}, beginning the installation..."
|
echo -e "Got x-ui latest version: ${tag_version}, beginning the installation..."
|
||||||
${curl_bin} -fLRo ${xui_folder}-linux-$(arch).tar.gz https://github.com/MHSanaei/3x-ui/releases/download/${tag_version}/x-ui-linux-$(arch).tar.gz 2> /dev/null
|
${curl_bin} -fLRo ${xui_folder}-linux-$(arch).tar.gz https://github.com/Kuzz007/3x-ui/releases/download/${tag_version}/x-ui-linux-$(arch).tar.gz 2> /dev/null
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
_fail "ERROR: Failed to download x-ui, please be sure that your server can access GitHub"
|
_fail "ERROR: Failed to download x-ui, please be sure that your server can access GitHub"
|
||||||
fi
|
fi
|
||||||
@@ -1086,7 +1086,7 @@ update_x-ui() {
|
|||||||
echo -e "${green}Downloading and installing x-ui.sh script...${plain}"
|
echo -e "${green}Downloading and installing x-ui.sh script...${plain}"
|
||||||
local xui_script_temp="/usr/bin/x-ui-temp.$$"
|
local xui_script_temp="/usr/bin/x-ui-temp.$$"
|
||||||
rm -f "${xui_script_temp}"
|
rm -f "${xui_script_temp}"
|
||||||
${curl_bin} -fLRo "${xui_script_temp}" https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.sh > /dev/null 2>&1
|
${curl_bin} -fLRo "${xui_script_temp}" https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.sh > /dev/null 2>&1
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
rm -f "${xui_script_temp}"
|
rm -f "${xui_script_temp}"
|
||||||
_fail "ERROR: Failed to download x-ui.sh script, please be sure that your server can access GitHub"
|
_fail "ERROR: Failed to download x-ui.sh script, please be sure that your server can access GitHub"
|
||||||
@@ -1117,7 +1117,7 @@ update_x-ui() {
|
|||||||
echo -e "${green}Downloading and installing startup unit x-ui.rc...${plain}"
|
echo -e "${green}Downloading and installing startup unit x-ui.rc...${plain}"
|
||||||
xui_rc_temp="/etc/init.d/x-ui.tmp.$$"
|
xui_rc_temp="/etc/init.d/x-ui.tmp.$$"
|
||||||
rm -f "${xui_rc_temp}"
|
rm -f "${xui_rc_temp}"
|
||||||
${curl_bin} -fLRo "${xui_rc_temp}" https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.rc > /dev/null 2>&1
|
${curl_bin} -fLRo "${xui_rc_temp}" https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.rc > /dev/null 2>&1
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
rm -f "${xui_rc_temp}"
|
rm -f "${xui_rc_temp}"
|
||||||
_fail "ERROR: Failed to download startup unit x-ui.rc, please be sure that your server can access GitHub"
|
_fail "ERROR: Failed to download startup unit x-ui.rc, please be sure that your server can access GitHub"
|
||||||
@@ -1176,13 +1176,13 @@ update_x-ui() {
|
|||||||
echo -e "${yellow}Service files not found in tar.gz, downloading from GitHub...${plain}"
|
echo -e "${yellow}Service files not found in tar.gz, downloading from GitHub...${plain}"
|
||||||
case "${release}" in
|
case "${release}" in
|
||||||
ubuntu | debian | armbian)
|
ubuntu | debian | armbian)
|
||||||
service_unit_url="https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.debian"
|
service_unit_url="https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.service.debian"
|
||||||
;;
|
;;
|
||||||
arch | manjaro | parch)
|
arch | manjaro | parch)
|
||||||
service_unit_url="https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.arch"
|
service_unit_url="https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.service.arch"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
service_unit_url="https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.rhel"
|
service_unit_url="https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.service.rhel"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ before_show_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
install() {
|
install() {
|
||||||
bash <(curl -Ls https://raw.githubusercontent.com/MHSanaei/3x-ui/main/install.sh)
|
bash <(curl -Ls https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh)
|
||||||
if [[ $? == 0 ]]; then
|
if [[ $? == 0 ]]; then
|
||||||
if [[ $# == 0 ]]; then
|
if [[ $# == 0 ]]; then
|
||||||
start
|
start
|
||||||
@@ -148,7 +148,7 @@ update() {
|
|||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
bash <(curl -Ls https://raw.githubusercontent.com/MHSanaei/3x-ui/main/update.sh)
|
bash <(curl -Ls https://raw.githubusercontent.com/Kuzz007/3x-ui/main/update.sh)
|
||||||
if [[ $? == 0 ]]; then
|
if [[ $? == 0 ]]; then
|
||||||
LOGI "Update is complete, Panel has automatically restarted "
|
LOGI "Update is complete, Panel has automatically restarted "
|
||||||
before_show_menu
|
before_show_menu
|
||||||
@@ -166,7 +166,7 @@ update_dev() {
|
|||||||
fi
|
fi
|
||||||
# XUI_UPDATE_TAG tells update.sh to install the dev-latest pre-release
|
# XUI_UPDATE_TAG tells update.sh to install the dev-latest pre-release
|
||||||
# instead of the latest stable tag.
|
# instead of the latest stable tag.
|
||||||
XUI_UPDATE_TAG="dev-latest" bash <(curl -Ls https://raw.githubusercontent.com/MHSanaei/3x-ui/main/update.sh)
|
XUI_UPDATE_TAG="dev-latest" bash <(curl -Ls https://raw.githubusercontent.com/Kuzz007/3x-ui/main/update.sh)
|
||||||
if [[ $? == 0 ]]; then
|
if [[ $? == 0 ]]; then
|
||||||
LOGI "Dev update is complete, Panel has automatically restarted "
|
LOGI "Dev update is complete, Panel has automatically restarted "
|
||||||
before_show_menu
|
before_show_menu
|
||||||
@@ -219,7 +219,7 @@ update_menu() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if replace_xui_script "https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.sh" "false"; then
|
if replace_xui_script "https://raw.githubusercontent.com/Kuzz007/3x-ui/main/x-ui.sh" "false"; then
|
||||||
chmod +x ${xui_folder}/x-ui.sh
|
chmod +x ${xui_folder}/x-ui.sh
|
||||||
echo -e "${green}Update successful. The panel has automatically restarted.${plain}"
|
echo -e "${green}Update successful. The panel has automatically restarted.${plain}"
|
||||||
exit 0
|
exit 0
|
||||||
@@ -836,7 +836,7 @@ enable_bbr() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
update_shell() {
|
update_shell() {
|
||||||
if replace_xui_script "https://github.com/MHSanaei/3x-ui/raw/main/x-ui.sh" "true"; then
|
if replace_xui_script "https://github.com/Kuzz007/3x-ui/raw/main/x-ui.sh" "true"; then
|
||||||
LOGI "Upgrade script succeeded, Please rerun the script"
|
LOGI "Upgrade script succeeded, Please rerun the script"
|
||||||
before_show_menu
|
before_show_menu
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user