selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

rustatio logo

Self-host rustatio

v2.14.1

BitTorrent ratio management tool with client emulation

ReleaseOpen SourceMIT
Docker ComposeCompose file & guide
docker compose up -d
Updated9 hours ago
LanguageRust
Setup difficultyModerate
ThemeDark mode
Stars
306
Port
8080 (Web UI)
Docker
ghcr.io/takitsu21/rustatio
Main interface in dark themeMain interface in light themeActive torrent with performance chartsAuthentication screen for self-hosted versionMulti-session grid viewWatch folder configuration screen

What is rustatio?

Rustatio manages BitTorrent ratios by pretending to be well-known torrent programs. It copies the network fingerprints of several popular clients so trackers see familiar peer IDs and headers. You set upload and download speeds, add randomness, and define when the session should stop. A live dashboard shows charts of transfer rates, peer counts, and ratio changes. A watched directory can drop in new torrent files automatically. On a server the container can follow a VPN's forwarded port through Gluetun. The software is written in Rust with a Tauri front end, giving native installers for Windows, macOS, and Linux, plus a WebAssembly build that runs in a browser. Everything is MIT licensed and marked for educational use only.

Should you self-host rustatio?

rustatio scores 49/100 on selfhost.directory (how scoring works) and ranks #9 of 12 in Bittorrent. It has 306 GitHub stars.

It shipped 17 stable releases in the past year. The latest, v2.14.1, came out on 25 October 2026. New versions land roughly every 8 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Rust.

Its closest alternative on selfhost.directory is qBittorrent (84/100, 41 184 stars). It scores higher overall, so compare the two before you pick. See rustatio vs qBittorrent side by side.

Features

  • Authentication token
  • Client emulation
  • Cross-platform Desktop App
  • Idle handling
  • Live analytics
  • Multi-Instance Support
  • Realistic statistics simulation
  • Stop conditions
  • VPN port sync
  • Watch Folder
  • WebAssembly browser buildRequires CORS proxy for most trackers
  • Web UI

rustatio README

How to install rustatio

Install rustatio with Docker Compose

Environment variables
PORT, RUST_LOG, VPN_PORT_SYNC, GLUETUN_CONTROL_SERVER_API_KEY, PUID, PGID, AUTH_TOKEN, WEBUI_PORT, VPN_SERVICE_PROVIDER, VPN_TYPE, VPN_PORT_FORWARDING, WIREGUARD_PRIVATE_KEY, SERVER_COUNTRIES, GLUETUN_API_KEY

Create a docker-compose.yml:

services:
  gluetun:
    image: qmcgaw/gluetun
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    environment:
      # Configure your VPN provider - see https://github.com/qdm12/gluetun-wiki
      - VPN_SERVICE_PROVIDER=protonvpn # or: mullvad, nordvpn, expressvpn, etc.
      - VPN_TYPE=wireguard # or: openvpn
      - VPN_PORT_FORWARDING=on # if you want to enable port forwarding
      # Provider-specific settings (example for ProtonVPN WireGuard)
      - WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
      - SERVER_COUNTRIES=${SERVER_COUNTRIES:-Switzerland}
      # Gluetun control server auth (v3.39.1+ defaults to private routes)
      # Generate a key with: docker run --rm qmcgaw/gluetun genkey
      - HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE={"auth":"apikey","apikey":"${GLUETUN_API_KEY:-CHANGE_ME}"}
    ports:
      - "${WEBUI_PORT:-8080}:8080" # Rustatio Web UI
    restart: unless-stopped

  rustatio:
    image: ghcr.io/takitsu21/rustatio:latest
    container_name: rustatio
    environment:
      - PORT=8080
      - RUST_LOG=${RUST_LOG:-trace}
      - VPN_PORT_SYNC=${VPN_PORT_SYNC:-on} # follow gluetun's forwarded port
      - GLUETUN_CONTROL_SERVER_API_KEY=${GLUETUN_API_KEY:-CHANGE_ME}
      - PUID=${PUID:-1000}
      - PGID=${PGID:-1000}
      # Optional: protect the web UI with a secret token
      # - AUTH_TOKEN=${AUTH_TOKEN:-CHANGE_ME}
    volumes:
      - rustatio_data:/data
      # Optional: mount a folder to auto-load torrents from
      # - ${TORRENTS_DIR:-/path/to/your/torrents}:/torrents
    restart: unless-stopped
    network_mode: service:gluetun
    depends_on:
      gluetun:
        condition: service_healthy

volumes:
  rustatio_data:

Set your VPN provider credentials, then start it and open the web UI:

docker compose up -d
# http://localhost:8080 (or your server's IP)

Recommended setup with Gluetun VPN. VPN is optional but recommended.

rustatio releases & version history

FAQ

Where should I start?

Use the desktop app if you want the quickest path, or Docker if you want a persistent instance with remote access.

Is the browser build enough on its own?

It works, but most trackers block browser requests, so a CORS proxy is usually required for the web build.

Does the web UI support authentication?

Yes, self-hosted deployments can require an AUTH_TOKEN for UI and API access.

Can I run it on a server or NAS?

Yes, the Docker image is designed for self-hosted deployments and works well on servers, homelabs, and NAS devices.

Which torrent clients can Rustatio emulate?

The current presets include uTorrent, BitTorrent, qBittorrent, Transmission, and Deluge.

What versions are available?

Rustatio ships as a desktop app, a Docker-hosted server, and a browser-based web build.

More in Bittorrent

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…