Web base path will be generated randomly

This commit is contained in:
mhsanaei 2024-10-04 11:17:59 +02:00
parent 02bc488c1c
commit c3ce1da0d6
No known key found for this signature in database
GPG key ID: 4DACC0663B5986F5
6 changed files with 71 additions and 35 deletions

View file

@ -284,11 +284,14 @@ Nuestra plataforma ofrece compatibilidad con una amplia gama de arquitecturas y
<details> <details>
<summary>Haz clic para ver los detalles de la configuración predeterminada</summary> <summary>Haz clic para ver los detalles de la configuración predeterminada</summary>
### Nombre de Usuario & Contraseña & Ruta Base Web: ### Nombre de usuario, Contraseña, Puerto y Ruta Base Web
Estos se generarán aleatoriamente si no los modificas. Si elige no modificar estas configuraciones, se generarán aleatoriamente (esto no se aplica a Docker).
- **Puerto:** el puerto predeterminado para el panel es `2053` **Configuraciones predeterminadas para Docker:**
- **Nombre de usuario:** admin
- **Contraseña:** admin
- **Puerto:** 2053
### Gestión de la Base de Datos: ### Gestión de la Base de Datos:

View file

@ -315,11 +315,14 @@ Our platform offers compatibility with a diverse range of architectures and devi
<details> <details>
<summary>Click for default settings details</summary> <summary>Click for default settings details</summary>
### Username & Password & webbasepath: ### Username, Password, Port, and Web Base Path
These will be generated randomly if you skip modifying them. If you choose not to modify these settings, they will be generated randomly (this does not apply to Docker).
- **Port:** the default port for panel is `2053` **Default Settings for Docker:**
- **Username:** admin
- **Password:** admin
- **Port:** 2053
### Database Management: ### Database Management:

View file

@ -312,11 +312,14 @@ location /sub {
<details> <details>
<summary>Нажмите для получения информации о настройках по умолчанию</summary> <summary>Нажмите для получения информации о настройках по умолчанию</summary>
### Имя пользователя и пароль & webbasepath: ### Имя пользователя, Пароль, Порт и Web Base Path
Эти параметры будут сгенерированы случайным образом, если вы пропустите их изменение. Если вы не измените эти настройки, они будут сгенерированы случайным образом (это не относится к Docker).
- **Порт:** порт панели по умолчанию — `2053` **Настройки по умолчанию для Docker:**
- **Имя пользователя:** admin
- **Пароль:** admin
- **Порт:** 2053
### Управление базой данных: ### Управление базой данных:

View file

@ -306,11 +306,14 @@ location /sub {
<details> <details>
<summary>点击查看默认设置详情</summary> <summary>点击查看默认设置详情</summary>
### 用户名 & 密码 & Web基础路径 ### 用户名、密码、端口和 Web Base Path
如果不修改这些,它们将随机生成。 如果您选择不修改这些设置,它们将随机生成(不适用于 Docker
- **端口号:** 面板的默认端口号是 `2053` **Docker 的默认设置:**
- **用户名:** admin
- **密码:** admin
- **端口:** 2053
### 数据库管理: ### 数据库管理:

View file

@ -131,44 +131,67 @@ gen_random_string() {
echo "$random_string" echo "$random_string"
} }
# This function will be called when user installed x-ui out of security
config_after_install() { config_after_install() {
echo -e "${yellow}Install/update finished! For security it's recommended to modify panel settings ${plain}" echo -e "${yellow}Install/update finished! For security, it's recommended to modify panel settings ${plain}"
read -p "Would you like to customize the panel settings? (If not, random settings will be applied) [y/n]: " config_confirm read -p "Would you like to customize the panel settings? (If not, random settings will be applied) [y/n]: " config_confirm
local config_webBasePath=$(gen_random_string 10)
if [[ "${config_confirm}" == "y" || "${config_confirm}" == "Y" ]]; then if [[ "${config_confirm}" == "y" || "${config_confirm}" == "Y" ]]; then
read -p "Please set up your username: " config_account read -p "Please set up your username: " config_account
echo -e "${yellow}Your username will be: ${config_account}${plain}" echo -e "${yellow}Your username will be: ${config_account}${plain}"
read -p "Please set up your password: " config_password read -p "Please set up your password: " config_password
echo -e "${yellow}Your password will be: ${config_password}${plain}" echo -e "${yellow}Your password will be: ${config_password}${plain}"
read -p "Please set up the panel port: " config_port read -p "Please set up the panel port: " config_port
echo -e "${yellow}Your panel port is: ${config_port}${plain}" echo -e "${yellow}Your panel port is: ${config_port}${plain}"
read -p "Please set up the web base path (ip:port/webbasepath/): " config_webBasePath
echo -e "${yellow}Your web base path is: ${config_webBasePath}${plain}" echo -e "${yellow}Your web base path will be generated randomly: ${config_webBasePath}${plain}"
echo -e "${yellow}Initializing, please wait...${plain}" echo -e "${yellow}Initializing, please wait...${plain}"
/usr/local/x-ui/x-ui setting -username ${config_account} -password ${config_password}
echo -e "${yellow}Account name and password set successfully!${plain}" /usr/local/x-ui/x-ui setting -username "${config_account}" -password "${config_password}" -port "${config_port}" -webBasePath "${config_webBasePath}"
/usr/local/x-ui/x-ui setting -port ${config_port} echo -e "${yellow}Settings applied successfully!${plain}"
echo -e "${yellow}Panel port set successfully!${plain}"
/usr/local/x-ui/x-ui setting -webBasePath ${config_webBasePath} echo -e "###############################################"
echo -e "${yellow}Web base path set successfully!${plain}" echo -e "${green}Username: ${config_account}${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 else
echo -e "${red}Cancel...${plain}" echo -e "${red}Cancel...${plain}"
if [[ ! -f "/etc/x-ui/x-ui.db" ]]; then if [[ ! -f "/etc/x-ui/x-ui.db" ]]; then
local usernameTemp=$(head -c 6 /dev/urandom | base64)
local passwordTemp=$(head -c 6 /dev/urandom | base64) local usernameTemp=$(gen_random_string 10)
local webBasePathTemp=$(gen_random_string 10) local passwordTemp=$(gen_random_string 10)
/usr/local/x-ui/x-ui setting -username ${usernameTemp} -password ${passwordTemp} -webBasePath ${webBasePathTemp} local portTemp=$(shuf -i 1024-62000 -n 1)
echo -e "This is a fresh installation, will generate random login info for security concerns:"
/usr/local/x-ui/x-ui setting -username "${usernameTemp}" -password "${passwordTemp}" -port "${portTemp}" -webBasePath "${config_webBasePath}"
echo -e "This is a fresh installation, generating random login info for security concerns:"
echo -e "###############################################" echo -e "###############################################"
echo -e "${green}Username: ${usernameTemp}${plain}" echo -e "${green}Username: ${usernameTemp}${plain}"
echo -e "${green}Password: ${passwordTemp}${plain}" echo -e "${green}Password: ${passwordTemp}${plain}"
echo -e "${green}WebBasePath: ${webBasePathTemp}${plain}" echo -e "${green}Port: ${portTemp}${plain}"
echo -e "${green}WebBasePath: ${config_webBasePath}${plain}"
echo -e "###############################################" 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 after installation${plain}"
else else
echo -e "${yellow}This is your upgrade, will keep old settings. If you forgot your login info, you can type "x-ui settings" to check${plain}" 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}"
local existing_webBasePath=$(/usr/local/x-ui/x-ui setting -show true | grep -Eo 'webBasePath: [^ ]+' | awk '{print $2}')
if [[ -z "$existing_webBasePath" ]]; then
echo -e "${yellow}WebBasePath is empty, generating a random one: ${config_webBasePath}${plain}"
/usr/local/x-ui/x-ui setting -webBasePath "${config_webBasePath}"
fi
fi fi
fi fi
/usr/local/x-ui/x-ui migrate /usr/local/x-ui/x-ui migrate
} }

11
x-ui.sh
View file

@ -265,13 +265,14 @@ gen_random_string() {
reset_webbasepath() { reset_webbasepath() {
echo -e "${yellow}Resetting Web Base Path${plain}" echo -e "${yellow}Resetting Web Base Path${plain}"
# Prompt user to set a new web base path read -rp "Are you sure you want to reset the web base path? (y/n): " confirm
read -rp "Please set the new web base path [press 'y' for a random path]: " config_webBasePath if [[ $confirm != "y" && $confirm != "Y" ]]; then
echo -e "${yellow}Operation canceled.${plain}"
if [[ $config_webBasePath == "y" ]]; then return
config_webBasePath=$(gen_random_string 10)
fi fi
config_webBasePath=$(gen_random_string 10)
# Apply the new web base path setting # Apply the new web base path setting
/usr/local/x-ui/x-ui setting -webBasePath "${config_webBasePath}" >/dev/null 2>&1 /usr/local/x-ui/x-ui setting -webBasePath "${config_webBasePath}" >/dev/null 2>&1
systemctl restart x-ui systemctl restart x-ui