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.

Airpipe logo

Self-host Airpipe

v4.4.0

Peer-to-peer encrypted file transfer via passphrase

ReleaseOpen SourceMIT
Updated9 hours ago
LanguageGo
Setup difficultyEasy
Stars
358
Port
8080 (HTTP/WebSocket relay server)
Docker
ghcr.io/sanyam-g/airpipe-relay
Install with Docker
Airpipe screenshot 1

What is Airpipe?

AirPipe moves files between two devices using a shared passphrase. The sender chooses a file and receives a short phrase; the recipient types it in a terminal, on a web page, or scans a QR code. The data then flows peer-to-peer with end-to-end encryption (NaCl secretbox over DTLS/WebRTC), so the relay never sees the plaintext. When the recipient is offline, a mailbox option stores the encrypted file for up to ten minutes. The relay is a single Go binary (~15 MB Docker image) with an embedded web UI, self-hostable via Docker or docker-compose. The command-line client runs on Linux, macOS, and Windows (amd64/arm64) and installs through a shell script or 'go install'. No accounts or authentication are needed — the passphrase is the only secret.

Should you self-host Airpipe?

Airpipe scores 49/100 on selfhost.directory (how scoring works) and ranks #50 of 86 in File Sharing. It has 358 GitHub stars.

It shipped 12 stable releases in the past year. The latest, v4.4.0, came out on 29 August 2026.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is MIT-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is copyparty (82/100, 47 153 stars). It scores higher overall, so compare the two before you pick. See Airpipe vs copyparty side by side.

Features

  • Browser-to-browser transfers
  • CLI with multi-file and folder support
  • End-to-end encryption
  • Health and metrics endpoints
  • Mailbox mode (offline receive)
  • NAT traversal with relay fallback
  • Passphrase-based pairing
  • Peer-to-peer file transfer
  • Self-hostable relay

Airpipe README

How to install Airpipe

Install Airpipe with Docker

Environment variables
PORT, AIRPIPE_ALLOWED_ORIGINS, AIRPIPE_RATE_LIMIT_PER_MIN, AIRPIPE_MAX_UPLOAD_MB, AIRPIPE_FILE_EXPIRY, AIRPIPE_MINIMAL_UI, AIRPIPE_PUBLIC_STATS, AIRPIPE_TRUST_PROXY_HEADERS

docker run -p 8080:8080 ghcr.io/sanyam-g/airpipe-relay

Maps container port 8080 to host port 8080; all config via environment variables.

How to configure Airpipe

  • AIRPIPE_ALLOWED_ORIGINSsame-originExtra origins if pages serve from another domain. '*' = any.

    Extra origins if pages serve from another domain. '*' = any.

  • AIRPIPE_FILE_EXPIRY10mMailbox expiry as Go duration

    Mailbox expiry as Go duration

  • AIRPIPE_MAX_UPLOAD_MB500Mailbox size cap in megabytes

    Mailbox size cap in megabytes

  • AIRPIPE_MINIMAL_UIoffServe just the send/receive page at '/' instead of the full site

    Serve just the send/receive page at '/' instead of the full site

    values: on/off

  • AIRPIPE_PUBLIC_STATSoffExpose /metrics and live stats in /health publicly

    Expose /metrics and live stats in /health publicly

    values: on/off

  • AIRPIPE_RATE_LIMIT_PER_MIN60Rate limit per minute per IP

    Rate limit per minute per IP

  • AIRPIPE_TRUST_PROXY_HEADERSoffRate-limit by Cf-Connecting-Ip / X-Forwarded-For. Set only behind a proxy that strips client-sent copies.

    Rate-limit by Cf-Connecting-Ip / X-Forwarded-For. Set only behind a proxy that strips client-sent copies.

    values: on/off

  • PORT8080Port the relay server listens on

    Port the relay server listens on

Airpipe releases & version history

More in File Sharing

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…