diff --git a/README.md b/README.md index 0ec8bc8..8a354ef 100644 --- a/README.md +++ b/README.md @@ -42,14 +42,51 @@ On wired gigabit links, expect line-rate performance in both TCP and UDP modes. cargo install --path . ``` -### Pre-built binary (Linux x86_64) +### Pre-built binaries + +Download from [releases](https://git.manko.yoga/manawenuz/btest-rs/releases) or [GitHub releases](https://github.com/manawenuz/btest-rs/releases): ```bash -# Cross-compile from macOS (requires Docker) -scripts/build-linux.sh +# Linux x86_64 +curl -L /btest-linux-x86_64.tar.gz | tar xz +sudo mv btest /usr/local/bin/ -# Copy to server -scp dist/btest root@yourserver:/usr/local/bin/btest +# Raspberry Pi 4/5 (64-bit OS) +curl -L /btest-linux-aarch64.tar.gz | tar xz +sudo mv btest /usr/local/bin/ + +# Raspberry Pi 3/Zero 2 (32-bit OS) +curl -L /btest-linux-armv7.tar.gz | tar xz +sudo mv btest /usr/local/bin/ + +# Windows +# Download btest-windows-x86_64.zip from releases +``` + +### Raspberry Pi + +The static musl binaries run on any Raspberry Pi without dependencies: + +```bash +# On the Pi — detect architecture and install +ARCH=$(uname -m) +case $ARCH in + aarch64) FILE=btest-linux-aarch64.tar.gz ;; + armv7l) FILE=btest-linux-armv7.tar.gz ;; + *) echo "Unsupported: $ARCH"; exit 1 ;; +esac + +curl -LO "https://github.com/manawenuz/btest-rs/releases/latest/download/$FILE" +tar xzf "$FILE" +sudo mv btest /usr/local/bin/ +rm "$FILE" + +# Run as server +btest -s -a admin -p password --ecsrp5 + +# Or install as systemd service +curl -LO https://raw.githubusercontent.com/manawenuz/btest-rs/main/scripts/install-service.sh +sudo bash install-service.sh --auth-user admin --auth-pass password ``` ### Docker diff --git a/docs/docker.md b/docs/docker.md index dc9a1d8..66a4f45 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -1,11 +1,12 @@ # Docker and Deployment Guide -## Container Registry +## Container Registries Images are published to: ``` -git.manko.yoga/manawenuz/btest-rs +git.manko.yoga/manawenuz/btest-rs # Gitea registry +ghcr.io/manawenuz/btest-rs # GitHub Container Registry ``` ## Quick Start diff --git a/scripts/push-docker-all.sh b/scripts/push-docker-all.sh new file mode 100755 index 0000000..2bfc80f --- /dev/null +++ b/scripts/push-docker-all.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# Build and push Docker image to both Gitea and GitHub Container Registry. +# +# Prerequisites: +# docker login git.manko.yoga (Gitea — your username + token) +# docker login ghcr.io (GitHub — your username + PAT with packages:write) +# +# Usage: +# ./scripts/push-docker-all.sh v0.6.0 +set -euo pipefail + +cd "$(dirname "$0")/.." + +if [[ -f .env ]]; then + set -a; source .env; set +a +fi + +TAG="${1:?Usage: $0 (e.g. v0.6.0)}" + +GITEA_IMAGE="git.manko.yoga/manawenuz/btest-rs" +GHCR_IMAGE="ghcr.io/manawenuz/btest-rs" + +echo "=== Building Docker image ===" +docker build \ + -t "${GITEA_IMAGE}:${TAG}" \ + -t "${GITEA_IMAGE}:latest" \ + -t "${GHCR_IMAGE}:${TAG}" \ + -t "${GHCR_IMAGE}:latest" \ + . + +echo "" +echo "=== Pushing to Gitea ===" +docker push "${GITEA_IMAGE}:${TAG}" +docker push "${GITEA_IMAGE}:latest" + +echo "" +echo "=== Pushing to GitHub Container Registry ===" +docker push "${GHCR_IMAGE}:${TAG}" +docker push "${GHCR_IMAGE}:latest" + +echo "" +echo "Done! Images pushed:" +echo " ${GITEA_IMAGE}:${TAG}" +echo " ${GITEA_IMAGE}:latest" +echo " ${GHCR_IMAGE}:${TAG}" +echo " ${GHCR_IMAGE}:latest" +echo "" +echo "Pull with:" +echo " docker pull ${GHCR_IMAGE}:${TAG}" +echo " docker run --rm -p 2000:2000 -p 2001-2100:2001-2100/udp ${GHCR_IMAGE}:${TAG} -s -v"