Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorquydang <81231812+quydang04@users.noreply.github.com>2023-12-19 13:27:04 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2023-12-19 13:29:26 +0300
commita2bdf23940ffafabbee5329472aea8473af1aec5 (patch)
treee657e0a5366b2f47223326fe30ce719724c2a8cc
parentd08aaa006849e6318aee61e7b4ff828bc4bd3272 (diff)
Update support for new architecture ARM devices and added support for more OS. (#1389)
* Add files via upload * Delete web/translation/translate.vi_VN.toml * Add files via upload * Update translate.vi_VN.toml * Update release.yml * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update x-ui.sh * Update docker.yml * Update DockerInit.sh * Update install.sh * Update install.sh * Update install.sh * Update .github/workflows/release.yml * Update README.md --------- Co-authored-by: Ho3ein <ho3ein.sanaei@gmail.com>
-rw-r--r--.github/workflows/docker.yml2
-rw-r--r--.github/workflows/release.yml17
-rwxr-xr-xDockerInit.sh8
-rw-r--r--README.md2
-rw-r--r--install.sh19
-rw-r--r--x-ui.sh8
6 files changed, 41 insertions, 15 deletions
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 5c27dd31..5844cca3 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -36,6 +36,6 @@ jobs:
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
- platforms: linux/amd64, linux/arm64/v8
+ platforms: linux/amd64, linux/arm64/v8, linux/arm/v7
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index c8eb33dd..865efcda 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -10,7 +10,7 @@ jobs:
build:
strategy:
matrix:
- platform: [amd64, arm64]
+ platform: [amd64, arm64, arm]
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
@@ -21,11 +21,14 @@ jobs:
with:
go-version: '1.21'
- - name: Install dependencies for arm64
- if: matrix.platform == 'arm64'
+ - name: Install dependencies for arm64 and arm
+ if: matrix.platform == 'arm64' || matrix.platform == 'arm'
run: |
sudo apt-get update
sudo apt install gcc-aarch64-linux-gnu
+ if [ "${{ matrix.platform }}" == "arm" ]; then
+ sudo apt install gcc-arm-linux-gnueabihf
+ fi
- name: Build x-ui
run: |
@@ -34,6 +37,8 @@ jobs:
export GOARCH=${{ matrix.platform }}
if [ "${{ matrix.platform }}" == "arm64" ]; then
export CC=aarch64-linux-gnu-gcc
+ elif [ "${{ matrix.platform }}" == "arm" ]; then
+ export CC=arm-linux-gnueabihf-gcc
fi
go build -o xui-release -v main.go
@@ -50,10 +55,14 @@ jobs:
wget https://github.com/XTLS/Xray-core/releases/download/v1.8.6/Xray-linux-64.zip
unzip Xray-linux-64.zip
rm -f Xray-linux-64.zip
- else
+ elif [ "${{ matrix.platform }}" == "arm64" ]; then
wget https://github.com/XTLS/Xray-core/releases/download/v1.8.6/Xray-linux-arm64-v8a.zip
unzip Xray-linux-arm64-v8a.zip
rm -f Xray-linux-arm64-v8a.zip
+ else
+ wget https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-arm32-v7a.zip
+ unzip Xray-linux-arm32-v7a.zip
+ rm -f Xray-linux-arm32-v7a.zip
fi
rm -f geoip.dat geosite.dat geoip_IR.dat geosite_IR.dat geoip_VN.dat geosite_VN.dat
wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
diff --git a/DockerInit.sh b/DockerInit.sh
index 0949c640..a3c23278 100755
--- a/DockerInit.sh
+++ b/DockerInit.sh
@@ -9,6 +9,10 @@ case $1 in
ARCH="arm64-v8a"
FNAME="arm64"
;;
+ armv7 | arm | arm32)
+ ARCH="arm32-v7a"
+ FNAME="arm32"
+ ;;
*)
ARCH="64"
FNAME="amd64"
@@ -20,10 +24,12 @@ cd build/bin
wget "https://github.com/XTLS/Xray-core/releases/download/v1.8.6/Xray-linux-${ARCH}.zip"
unzip "Xray-linux-${ARCH}.zip"
-rm -f "Xray-linux-${ARCH}.zip" geoip.dat geosite.dat geoip_IR.dat geosite_IR.dat
+rm -f "Xray-linux-${ARCH}.zip" geoip.dat geosite.dat geoip_IR.dat geosite_IR.dat geoip_VN.dat geosite_VN.dat
mv xray "xray-linux-${FNAME}"
wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
wget -O geoip_IR.dat https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geoip.dat
wget -O geosite_IR.dat https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geosite.dat
+wget -O geoip_VN.dat https://github.com/vuong2023/vn-v2ray-rules/releases/latest/download/geoip.dat
+wget -O geosite_VN.dat https://github.com/vuong2023/vn-v2ray-rules/releases/latest/download/geosite.dat
diff --git a/README.md b/README.md
index 224e7e64..5f1abfad 100644
--- a/README.md
+++ b/README.md
@@ -362,6 +362,8 @@ XUI_BIN_FOLDER="bin" XUI_DB_FOLDER="/etc/x-ui" go build main.go
- CentOS 8+
- Fedora 36+
- Arch Linux
+- Manjaro
+- Armbian (for ARM devices)
# Pictures
diff --git a/install.sh b/install.sh
index 3338b64f..1dc61e23 100644
--- a/install.sh
+++ b/install.sh
@@ -26,7 +26,8 @@ echo "The OS release is: $release"
arch3xui() {
case "$(uname -m)" in
x86_64 | x64 | amd64) echo 'amd64' ;;
- armv8 | arm64 | aarch64) echo 'arm64' ;;
+ armv8* | armv8 | arm64 | aarch64) echo 'arm64' ;;
+ armv7* | armv7 | arm | arm32 ) echo 'arm32' ;;
*) echo -e "${green}Unsupported CPU architecture! ${plain}" && rm -f install.sh && exit 1 ;;
esac
}
@@ -54,7 +55,11 @@ elif [[ "${release}" == "debian" ]]; then
echo -e "${red} Please use Debian 10 or higher ${plain}\n" && exit 1
fi
elif [[ "${release}" == "arch" ]]; then
- echo "OS is ArchLinux"
+ echo "Your OS is ArchLinux"
+elif [[ "${release}" == "manjaro" ]]; then
+ echo "Your OS is Manjaro"
+elif [[ "${release}" == "armbian" ]]; then
+ echo "Your OS is Armbian"
else
echo -e "${red}Failed to check the OS version, please contact the author!${plain}" && exit 1
@@ -63,13 +68,13 @@ fi
install_base() {
case "${release}" in
centos|fedora)
- yum install -y -q wget curl tar
+ yum -y update && yum install -y -q wget curl tar
;;
- arch)
- pacman -Syu --noconfirm wget curl tar
+ arch|manjaro)
+ pacman -Syu && pacman -Syu --noconfirm wget curl tar
;;
*)
- apt install -y -q wget curl tar
+ apt-get update && apt-get upgrade -y && apt install -y -q wget curl tar
;;
esac
}
@@ -78,7 +83,7 @@ install_base() {
# This function will be called when user installed x-ui out of security
config_after_install() {
echo -e "${yellow}Install/update finished! For security it's recommended to modify panel settings ${plain}"
- read -p "Do you want to continue with the modification [y/n]? ": config_confirm
+ read -p "Do you want to continue with the modification [y/n]?": config_confirm
if [[ "${config_confirm}" == "y" || "${config_confirm}" == "Y" ]]; then
read -p "Please set up your username:" config_account
echo -e "${yellow}Your username will be:${config_account}${plain}"
diff --git a/x-ui.sh b/x-ui.sh
index fd411311..144c377a 100644
--- a/x-ui.sh
+++ b/x-ui.sh
@@ -55,7 +55,11 @@ elif [[ "${release}" == "debian" ]]; then
echo -e "${red} Please use Debian 10 or higher ${plain}\n" && exit 1
fi
elif [[ "${release}" == "arch" ]]; then
- echo "OS is ArchLinux"
+ echo "Your OS is ArchLinux"
+elif [[ "${release}" == "manjaro" ]]; then
+ echo "Your OS is Manjaro"
+elif [[ "${release}" == "armbian" ]]; then
+ echo "Your OS is Armbian"
fi
@@ -581,7 +585,7 @@ ssl_cert_issue() {
fi
# install socat second
case "${release}" in
- ubuntu|debian)
+ ubuntu|debian|armbian)
apt update && apt install socat -y ;;
centos)
yum -y update && yum -y install socat ;;