diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 96ef2d7b..1c36c5cc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -146,3 +146,79 @@ jobs: asset_name: x-ui-linux-${{ matrix.platform }}.tar.gz overwrite: true prerelease: true + + # ================================= + # Windows Build + # ================================= + build-windows: + name: Build for Windows + permissions: + contents: write + strategy: + matrix: + platform: + - amd64 + runs-on: windows-latest + steps: + - name: Checkout repository + uses: actions/checkout@v5 + + - name: Setup Go + uses: actions/setup-go@v6 + with: + go-version-file: go.mod + check-latest: true + + - name: Build 3X-UI for Windows + shell: pwsh + run: | + $env:CGO_ENABLED="1" + $env:GOOS="windows" + $env:GOARCH="amd64" + go build -ldflags "-w -s" -o xui-release.exe -v main.go + + mkdir x-ui + Copy-Item xui-release.exe x-ui\ + mkdir x-ui\bin + cd x-ui\bin + + # Download Xray for Windows + $Xray_URL = "https://github.com/XTLS/Xray-core/releases/download/v25.6.8/" + Invoke-WebRequest -Uri "${Xray_URL}Xray-windows-64.zip" -OutFile "Xray-windows-64.zip" + Expand-Archive -Path "Xray-windows-64.zip" -DestinationPath . + Remove-Item "Xray-windows-64.zip" + Remove-Item geoip.dat, geosite.dat -ErrorAction SilentlyContinue + Invoke-WebRequest -Uri "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat" -OutFile "geoip.dat" + Invoke-WebRequest -Uri "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat" -OutFile "geosite.dat" + Invoke-WebRequest -Uri "https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geoip.dat" -OutFile "geoip_IR.dat" + Invoke-WebRequest -Uri "https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geosite.dat" -OutFile "geosite_IR.dat" + Invoke-WebRequest -Uri "https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/geoip.dat" -OutFile "geoip_RU.dat" + Invoke-WebRequest -Uri "https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/geosite.dat" -OutFile "geosite_RU.dat" + Rename-Item xray.exe xray-windows-amd64.exe + cd .. + Copy-Item -Path ..\windows_files\* -Destination . -Recurse + cd .. + + - name: Package to Zip + shell: pwsh + run: | + Compress-Archive -Path .\x-ui -DestinationPath "x-ui-windows-amd64.zip" + + - name: Upload files to Artifacts + uses: actions/upload-artifact@v4 + with: + name: x-ui-windows-amd64 + path: ./x-ui-windows-amd64.zip + + - name: Upload files to GH release + uses: svenstaro/upload-release-action@v2 + if: | + (github.event_name == 'release' && github.event.action == 'published') || + (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ github.ref }} + file: x-ui-windows-amd64.zip + asset_name: x-ui-windows-amd64.zip + overwrite: true + prerelease: true \ No newline at end of file diff --git a/windows_files/SSL/Win64OpenSSL_Light-3_5_2.exe b/windows_files/SSL/Win64OpenSSL_Light-3_5_2.exe new file mode 100644 index 00000000..a93dc62a Binary files /dev/null and b/windows_files/SSL/Win64OpenSSL_Light-3_5_2.exe differ diff --git a/windows_files/readme.txt b/windows_files/readme.txt new file mode 100644 index 00000000..a66aa671 --- /dev/null +++ b/windows_files/readme.txt @@ -0,0 +1,13 @@ +you can't install fail2ban on windows +we don't have bash menu for windows +if you forgot your password you need to check your database with https://sqlitebrowser.org/ +the app need to be open all the time + +default setting: +http://localhost:2053/ +user: admin +pass: admin +port: 2053 + + +openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt