diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 48cc075..eaff93f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: --add-data "voxvera/templates:voxvera/templates" \ --add-data "voxvera/resources:voxvera/resources" \ --add-data "requirements.txt:." \ - --name voxvera \ + --name voxvera-linux \ voxvera/cli.py - name: Create AppImage run: | @@ -58,5 +58,5 @@ jobs: files: | dist/*.whl dist/*.tar.gz - dist/voxvera + dist/voxvera-linux dist/VoxVera.AppImage diff --git a/README.md b/README.md index a0cf4b3..a108fb9 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,9 @@ VoxVera is designed for maximum portability and censorship resistance. ### 1. Standalone Binaries (Recommended) Download the zero-dependency executable for your OS: -- 🐧 [**Linux**](voxvera/resources/bin/voxvera-linux) -- 🪟 **Windows** (Coming soon - use Portable ZIP) -- 🍏 **macOS** (Coming soon - use Portable ZIP) +- 🐧 [**Linux**](https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/voxvera-linux) +- 🪟 [**Windows**](https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/voxvera-windows.exe) +- 🍏 [**macOS**](https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/voxvera-macos) ### 2. Universal Mirroring (The "Viral" Method) If you found a physical VoxVera flyer, scan it and click **"Download Tool & Source"**. You will receive a `voxvera-portable.zip` containing the full tool, all dependencies, and all 14 languages—ready to run offline. diff --git a/docs/en/usage.md b/docs/en/usage.md index 573c0c4..8c6af9c 100644 --- a/docs/en/usage.md +++ b/docs/en/usage.md @@ -8,9 +8,9 @@ VoxVera is designed to be highly portable and requires minimal system dependenci ### 1. Standalone Binaries (Recommended) You can download standalone, zero-dependency binaries for your operating system: -- **Linux:** `voxvera-linux` -- **Windows:** `voxvera-windows.exe` -- **macOS:** `voxvera-macos` +- **Linux:** [voxvera-linux](https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/voxvera-linux) +- **Windows:** [voxvera-windows.exe](https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/voxvera-windows.exe) +- **macOS:** [voxvera-macos](https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/voxvera-macos) These binaries include everything needed to run VoxVera (except `onionshare-cli`). diff --git a/install.sh b/install.sh index 176444d..b6f569a 100755 --- a/install.sh +++ b/install.sh @@ -128,7 +128,17 @@ if command_exists pipx; then echo "pipx install failed, downloading binary" install_dir="$HOME/.local/bin" mkdir -p "$install_dir" - url="https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/voxvera" + + # Detect OS for binary selection + OS="$(uname -s | tr '[:upper:]' '[:lower:]')" + case "$OS" in + linux*) BINARY="voxvera-linux" ;; + darwin*) BINARY="voxvera-macos" ;; + msys*|cygwin*|mingw*) BINARY="voxvera-windows.exe" ;; + *) BINARY="voxvera-linux" ;; # fallback to linux + esac + + url="https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/${BINARY}" dest="$install_dir/voxvera" if download_binary "$url" "$dest"; then check_local_bin @@ -146,7 +156,17 @@ if command_exists pipx; then else install_dir="$HOME/.local/bin" mkdir -p "$install_dir" - url="https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/voxvera" + + # Detect OS for binary selection + OS="$(uname -s | tr '[:upper:]' '[:lower:]')" + case "$OS" in + linux*) BINARY="voxvera-linux" ;; + darwin*) BINARY="voxvera-macos" ;; + msys*|cygwin*|mingw*) BINARY="voxvera-windows.exe" ;; + *) BINARY="voxvera-linux" ;; # fallback to linux + esac + + url="https://github.com/PR0M3TH3AN/VoxVera/releases/latest/download/${BINARY}" dest="$install_dir/voxvera" if download_binary "$url" "$dest"; then check_local_bin diff --git a/packaging/build_appimage.sh b/packaging/build_appimage.sh index 9c0a768..a48f22c 100755 --- a/packaging/build_appimage.sh +++ b/packaging/build_appimage.sh @@ -1,14 +1,14 @@ #!/usr/bin/env bash set -e -if [ ! -f dist/voxvera ]; then +if [ ! -f dist/voxvera-linux ]; then echo "Run PyInstaller first" >&2 exit 1 fi APPDIR=dist/AppDir mkdir -p "$APPDIR/usr/bin" -cp dist/voxvera "$APPDIR/usr/bin/voxvera" +cp dist/voxvera-linux "$APPDIR/usr/bin/voxvera" chmod +x "$APPDIR/usr/bin/voxvera" mkdir -p "$APPDIR/usr/lib/voxvera/resources" cp -r voxvera/resources/tor "$APPDIR/usr/lib/voxvera/resources/" diff --git a/voxvera-install.sh b/voxvera-install.sh index 16e9289..636f3a7 100644 --- a/voxvera-install.sh +++ b/voxvera-install.sh @@ -46,7 +46,7 @@ install_voxvera() { url=$(curl -fsSLI -o /dev/null -w '%{url_effective}' \ https://github.com/PR0M3TH3AN/VoxVera/releases/latest) latest="${url%/}" ; latest="${latest##*/}" # vX.Y.Z tag - url="https://github.com/PR0M3TH3AN/VoxVera/releases/download/${latest/\/}/voxvera" + url="https://github.com/PR0M3TH3AN/VoxVera/releases/download/${latest/\/}/voxvera-linux" if curl -fsSL "$url" -o "$dest"; then chmod +x "$dest" PATH="$install_dir:$PATH"