Add RPi install docs, GHCR support, push-docker-all script
All checks were successful
CI / test (push) Successful in 2m10s
All checks were successful
CI / test (push) Successful in 2m10s
- README: Raspberry Pi install section with auto-detect architecture - README: pre-built binary download section for all platforms - Docker docs: dual registry (Gitea + GHCR) - scripts/push-docker-all.sh: push to both registries in one command Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
47
README.md
47
README.md
@@ -42,14 +42,51 @@ On wired gigabit links, expect line-rate performance in both TCP and UDP modes.
|
|||||||
cargo install --path .
|
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
|
```bash
|
||||||
# Cross-compile from macOS (requires Docker)
|
# Linux x86_64
|
||||||
scripts/build-linux.sh
|
curl -L <release-url>/btest-linux-x86_64.tar.gz | tar xz
|
||||||
|
sudo mv btest /usr/local/bin/
|
||||||
|
|
||||||
# Copy to server
|
# Raspberry Pi 4/5 (64-bit OS)
|
||||||
scp dist/btest root@yourserver:/usr/local/bin/btest
|
curl -L <release-url>/btest-linux-aarch64.tar.gz | tar xz
|
||||||
|
sudo mv btest /usr/local/bin/
|
||||||
|
|
||||||
|
# Raspberry Pi 3/Zero 2 (32-bit OS)
|
||||||
|
curl -L <release-url>/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
|
### Docker
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
# Docker and Deployment Guide
|
# Docker and Deployment Guide
|
||||||
|
|
||||||
## Container Registry
|
## Container Registries
|
||||||
|
|
||||||
Images are published to:
|
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
|
## Quick Start
|
||||||
|
|||||||
50
scripts/push-docker-all.sh
Executable file
50
scripts/push-docker-all.sh
Executable file
@@ -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 <tag> (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"
|
||||||
Reference in New Issue
Block a user