Download and obtain BibaVPN

This page lists official distribution channels and how to choose a version.

GitHub Releases

All published desktop, Android, and source artifacts are attached to releases:

https://github.com/Eljaja/BibaVPN/releases

Pick one release tag (for example v1.2.x) and use matching assets:

  • GUI installer / APK for end users
  • Or build client + server from the same tag if you run from source

Do not mix a client binary from one tag with a server from another without reading CHANGELOG.md.

Docker images (Linux server / client containers)

Multi-arch images (linux/amd64, linux/arm64) are published on Docker Hub:

Image Typical use
eljaja/bibavpn-server Entry node on a VPS
eljaja/bibavpn-client Sidecar or lab client exposing SOCKS5 / HTTP proxy

Image tags

Tag When to use
:latest Tracks main (CI may update frequently; good for trying edge builds)
:vX.Y.Z Recommended for anything you keep running
:sha-… Pin to an exact commit for rollback or reproducibility

Example pull:

docker pull eljaja/bibavpn-server:vX.Y.Z
docker pull eljaja/bibavpn-client:vX.Y.Z

(Replace vX.Y.Z with the Release tag you intend to run.)

Compose file without cloning the repo

The repository provides docker-compose.hub.yml which pulls Hub images and exposes:

  • SOCKS5 on the host at 127.0.0.1:11080
  • HTTP CONNECT on the host at 127.0.0.1:11880

Download and run:

curl -fsSL https://raw.githubusercontent.com/Eljaja/BibaVPN/main/docker-compose.hub.yml \
  -o docker-compose.hub.yml

export BIBA_VPN_TOKEN="$(openssl rand -hex 16)"
export BIBA_VPN_PSK="$(openssl rand -hex 32)"

docker compose -f docker-compose.hub.yml up -d

The default Hub compose tutorial uses self-signed TLS inside Docker and --insecure on the client. That is acceptable only for a localhost lab. For a public server, see Server setup.

Clone the repository (source and scripts)

git clone https://github.com/Eljaja/BibaVPN.git
cd BibaVPN

You get:

  • bibavpn Rust crate with bibavpn-server, bibavpn-client, bibavpn-mint-invite
  • docker-compose.yml — builds images from the Dockerfile in this tree (used by start.sh for a server-only local lab)
  • docker-compose.hub.yml — Hub images, client + server
  • start.sh — generates secrets, writes .biba-start.env, starts biba-server only, scrapes logs for a biba:// invite

Build from source

Requirements: Rust toolchain. The repo includes rust-toolchain.toml pinned to stable.

Release binaries:

cargo build --release -p bibavpn --bin bibavpn-server
cargo build --release -p bibavpn --bin bibavpn-client

Output paths (Unix-like):

  • target/release/bibavpn-server
  • target/release/bibavpn-client

Optional: run the workspace test suite:

cargo test --workspace

Advanced TLS stacks (e.g. BoringSSL) and feature flags are described in AGENTS.md.

What to download for each role

Goal Suggestion
Use BibaVPN on phone / desktop with a GUI Latest APK / desktop bundle from Releases
Run server on VPS with minimal setup Docker Hub bibavpn-server + compose or your orchestrator
Hack on protocol / flags Git clone + cargo build
Quick two-container lab on laptop docker-compose.hub.yml + secrets in env

Verification

  • Prefer checksums or GitHub’s release attestation when you publish your own mirror; upstream may add signing conventions per release notes—check the release page for each version.
  • After download, confirm client and server report the same release (or same commit) before debugging connectivity.

Next steps