Skip to content

Commit

Permalink
Update install.sh (#1495)
Browse files Browse the repository at this point in the history
* Update install.sh

* legacy version
  • Loading branch information
MHSanaei authored Oct 28, 2024
1 parent d1725db commit ebf45c2
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 51 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/x-ui/master/install.sh)
```

## Install Custom Version
## Install Legacy Version

**Step 1:** To install an old version, use following installation command. e.g., version `1.8.0`:

Expand Down
80 changes: 33 additions & 47 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -137,69 +137,55 @@ gen_random_string() {
}

config_after_install() {

local existing_username=$(/usr/local/x-ui/x-ui setting -show true | grep -Eo 'username: .+' | awk '{print $2}')
local existing_password=$(/usr/local/x-ui/x-ui setting -show true | grep -Eo 'password: .+' | awk '{print $2}')
local existing_webBasePath=$(/usr/local/x-ui/x-ui setting -show true | grep -Eo 'webBasePath: .+' | awk '{print $2}')

# Check if username and password exist
if [[ -n "$existing_username" && -n "$existing_password" ]]; then
# If webBasePath is missing, generate a new one
if [[ ${#existing_webBasePath} -lt 4 ]]; then
if [[ ${#existing_webBasePath} -lt 4 ]]; then
if [[ "$existing_username" == "admin" && "$existing_password" == "admin" ]]; then
local config_webBasePath=$(gen_random_string 15)
local config_username=$(gen_random_string 10)
local config_password=$(gen_random_string 10)

read -p "Would you like to customize the Panel Port settings? (If not, random port will be applied) [y/n]: " config_confirm
if [[ "${config_confirm}" == "y" || "${config_confirm}" == "Y" ]]; then
read -p "Please set up the panel port: " config_port
echo -e "${yellow}Your Panel Port is: ${config_port}${plain}"
else
local config_port=$(shuf -i 1024-62000 -n 1)
echo -e "${yellow}Generated random port: ${config_port}${plain}"
fi

/usr/local/x-ui/x-ui setting -username "${config_username}" -password "${config_password}" -port "${config_port}" -webBasePath "${config_webBasePath}"
echo -e "This is a fresh installation, generating random login info for security concerns:"
echo -e "###############################################"
echo -e "${green}Username: ${config_username}${plain}"
echo -e "${green}Password: ${config_password}${plain}"
echo -e "${green}Port: ${config_port}${plain}"
echo -e "${green}WebBasePath: ${config_webBasePath}${plain}"
echo -e "###############################################"
echo -e "${yellow}If you forgot your login info, you can type 'x-ui settings' to check${plain}"
else
local config_webBasePath=$(gen_random_string 15)
echo -e "${yellow}WebBasePath is missing or too short. Generating a new one...${plain}"
/usr/local/x-ui/x-ui setting -webBasePath "${config_webBasePath}"
echo -e "${green}New WebBasePath: ${config_webBasePath}${plain}"
else
echo -e "${green}Username, Password, and WebBasePath are already set. Exiting...${plain}"
fi
/usr/local/x-ui/x-ui migrate
return 0
fi

read -p "Would you like to customize the Panel Port settings? (If not, random settings will be applied) [y/n]: " config_confirm

local config_webBasePath=$(gen_random_string 15)
local config_username=$(gen_random_string 10)
local config_password=$(gen_random_string 10)

if [[ "${config_confirm}" == "y" || "${config_confirm}" == "Y" ]]; then
read -p "Please set up the panel port: " config_port
echo -e "${yellow}Your Panel Port is: ${config_port}${plain}"

echo -e "${yellow}Your Username will be generated randomly: ${config_username}${plain}"
echo -e "${yellow}Your Password will be generated randomly: ${config_password}${plain}"
echo -e "${yellow}Your Web Base Path will be generated randomly: ${config_webBasePath}${plain}"

echo -e "${yellow}Initializing, please wait...${plain}"

/usr/local/x-ui/x-ui setting -username "${config_username}" -password "${config_password}" -port "${config_port}" -webBasePath "${config_webBasePath}"
echo -e "${green}Settings applied successfully!${plain}"

echo -e "###############################################"
echo -e "${green}Username: ${config_username}${plain}"
echo -e "${green}Password: ${config_password}${plain}"
echo -e "${green}Port: ${config_port}${plain}"
echo -e "${green}WebBasePath: ${config_webBasePath}${plain}"
echo -e "###############################################"
else
echo -e "${red}Cancel...${plain}"

if [[ ! -f "/etc/x-ui/x-ui.db" ]]; then
local portTemp=$(shuf -i 1024-62000 -n 1)
if [[ "$existing_username" == "admin" && "$existing_password" == "admin" ]]; then
local config_username=$(gen_random_string 10)
local config_password=$(gen_random_string 10)

/usr/local/x-ui/x-ui setting -username "${config_username}" -password "${config_password}" -port "${portTemp}" -webBasePath "${config_webBasePath}"
echo -e "This is a fresh installation, generating random login info for security concerns:"
echo -e "${yellow}Default credentials detected. Security update required...${plain}"
/usr/local/x-ui/x-ui setting -username "${config_username}" -password "${config_password}"
echo -e "Generated new random login credentials:"
echo -e "###############################################"
echo -e "${green}Username: ${config_username}${plain}"
echo -e "${green}Password: ${config_password}${plain}"
echo -e "${green}Port: ${portTemp}${plain}"
echo -e "${green}WebBasePath: ${config_webBasePath}${plain}"
echo -e "###############################################"
echo -e "${yellow}If you forgot your login info, you can type 'x-ui settings' to check after installation${plain}"
echo -e "${yellow}If you forgot your login info, you can type 'x-ui settings' to check${plain}"
else
echo -e "${yellow}This is your upgrade, keeping old settings. If you forgot your login info, you can type 'x-ui settings' to check${plain}"

echo -e "${green}Username, Password, and WebBasePath are properly set. Exiting...${plain}"
fi
fi

Expand Down
6 changes: 3 additions & 3 deletions x-ui.sh
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ update() {
fi
}

custom_version() {
legacy_version() {
echo "Enter the panel version (like 1.6.0):"
read panel_version

Expand Down Expand Up @@ -1123,7 +1123,7 @@ show_menu() {
————————————————
${green}1.${plain} Install
${green}2.${plain} Update
${green}3.${plain} Custom Version
${green}3.${plain} Legacy Version
${green}4.${plain} Uninstall
————————————————
${green}5.${plain} Reset Username and Password
Expand Down Expand Up @@ -1163,7 +1163,7 @@ show_menu() {
check_install && update
;;
3)
check_install && custom_version
check_install && legacy_version
;;
4)
check_install && uninstall
Expand Down

0 comments on commit ebf45c2

Please sign in to comment.