diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-01-03 09:27:39 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-01-03 09:27:39 +0300 |
| commit | 947fd4fae109503fcc00a21991a51de0e7f392db (patch) | |
| tree | e2ab00cbe76d57760ec4732a331bdd5f737a9714 | |
| parent | e69a31dd5940af51a88d477ffd3dfe14330c7810 (diff) | |
fix
| -rw-r--r-- | install.sh | 63 | ||||
| -rwxr-xr-x | update.sh | 42 |
2 files changed, 94 insertions, 11 deletions
@@ -671,21 +671,70 @@ install_x-ui() { rc-update add x-ui rc-service x-ui start else + # Install systemd service file + service_installed=false + if [ -f "x-ui.service" ]; then - cp -f x-ui.service ${xui_service}/ - else + echo -e "${green}Found x-ui.service in extracted files, installing...${plain}" + cp -f x-ui.service ${xui_service}/ >/dev/null 2>&1 + if [[ $? -eq 0 ]]; then + service_installed=true + fi + fi + + if [ "$service_installed" = false ]; then + case "${release}" in + ubuntu | debian | armbian) + if [ -f "x-ui.service.debian" ]; then + echo -e "${green}Found x-ui.service.debian in extracted files, installing...${plain}" + cp -f x-ui.service.debian ${xui_service}/x-ui.service >/dev/null 2>&1 + if [[ $? -eq 0 ]]; then + service_installed=true + fi + fi + ;; + *) + if [ -f "x-ui.service.rhel" ]; then + echo -e "${green}Found x-ui.service.rhel in extracted files, installing...${plain}" + cp -f x-ui.service.rhel ${xui_service}/x-ui.service >/dev/null 2>&1 + if [[ $? -eq 0 ]]; then + service_installed=true + fi + fi + ;; + esac + fi + + # If service file not found in tar.gz, download from GitHub + if [ "$service_installed" = false ]; then + echo -e "${yellow}Service files not found in tar.gz, downloading from GitHub...${plain}" case "${release}" in ubuntu | debian | armbian) - cp -f x-ui.service.debian ${xui_service}/x-ui.service + curl -4fLRo ${xui_service}/x-ui.service https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.debian >/dev/null 2>&1 ;; *) - cp -f x-ui.service.rhel ${xui_service}/x-ui.service + curl -4fLRo ${xui_service}/x-ui.service https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.rhel >/dev/null 2>&1 ;; esac + + if [[ $? -ne 0 ]]; then + echo -e "${red}Failed to install x-ui.service from GitHub${plain}" + exit 1 + fi + service_installed=true + fi + + if [ "$service_installed" = true ]; then + echo -e "${green}Setting up systemd unit...${plain}" + chown root:root ${xui_service}/x-ui.service >/dev/null 2>&1 + chmod 644 ${xui_service}/x-ui.service >/dev/null 2>&1 + systemctl daemon-reload + systemctl enable x-ui + systemctl start x-ui + else + echo -e "${red}Failed to install x-ui.service file${plain}" + exit 1 fi - systemctl daemon-reload - systemctl enable x-ui - systemctl start x-ui fi echo -e "${green}x-ui ${tag_version}${plain} installation finished, it is running now..." @@ -679,19 +679,53 @@ update_x-ui() { if [ -f "x-ui.service" ]; then echo -e "${green}Installing systemd unit...${plain}" cp -f x-ui.service ${xui_service}/ >/dev/null 2>&1 + if [[ $? -ne 0 ]]; then + echo -e "${red}Failed to copy x-ui.service${plain}" + exit 1 + fi else + service_installed=false case "${release}" in ubuntu | debian | armbian) - echo -e "${green}Installing debian-like systemd unit...${plain}" - cp -f x-ui.service.debian ${xui_service}/x-ui.service >/dev/null 2>&1 + if [ -f "x-ui.service.debian" ]; then + echo -e "${green}Installing debian-like systemd unit...${plain}" + cp -f x-ui.service.debian ${xui_service}/x-ui.service >/dev/null 2>&1 + if [[ $? -eq 0 ]]; then + service_installed=true + fi + fi ;; *) - echo -e "${green}Installing rhel-like systemd unit...${plain}" - cp -f x-ui.service.rhel ${xui_service}/x-ui.service >/dev/null 2>&1 + if [ -f "x-ui.service.rhel" ]; then + echo -e "${green}Installing rhel-like systemd unit...${plain}" + cp -f x-ui.service.rhel ${xui_service}/x-ui.service >/dev/null 2>&1 + if [[ $? -eq 0 ]]; then + service_installed=true + fi + fi ;; esac + + # If service file not found in tar.gz, download from GitHub + if [ "$service_installed" = false ]; then + echo -e "${yellow}Service files not found in tar.gz, downloading from GitHub...${plain}" + case "${release}" in + ubuntu | debian | armbian) + ${curl_bin} -4fLRo ${xui_service}/x-ui.service https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.debian >/dev/null 2>&1 + ;; + *) + ${curl_bin} -4fLRo ${xui_service}/x-ui.service https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.service.rhel >/dev/null 2>&1 + ;; + esac + + if [[ $? -ne 0 ]]; then + echo -e "${red}Failed to install x-ui.service from GitHub${plain}" + exit 1 + fi + fi fi chown root:root ${xui_service}/x-ui.service >/dev/null 2>&1 + chmod 644 ${xui_service}/x-ui.service >/dev/null 2>&1 systemctl daemon-reload >/dev/null 2>&1 systemctl enable x-ui >/dev/null 2>&1 systemctl start x-ui >/dev/null 2>&1 |
