Skip to content

Self-host PsiTransfer

updated Sep 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

A file-sharing web app without user accounts: upload files into a bucket, set an expiry time or one-time download, optionally password-protect it, and share the link. Uploads and downloads are resumable and there is no end-to-end encryption.

Key facts

CategoryFile sharing
LicenseBSD-2-Clause
StackNode.js, Vue
Min RAM256 MB
Official imageyes
Measured idle RAM22 MB
Difficulty

What you need

  • Any VPS with at least 256 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install

Run these commands on your server:

# PsiTransfer — the data folder must be owned by UID 1000
mkdir -p ~/psitransfer && sudo chown 1000 ~/psitransfer
UPLOAD_PASS=$(openssl rand -hex 12); ADMIN_PASS=$(openssl rand -hex 12)
echo "upload password: $UPLOAD_PASS  /admin password: $ADMIN_PASS"
docker run -d --name psitransfer --restart unless-stopped -p 3000:3000 \
  -e PSITRANSFER_UPLOAD_PASS="$UPLOAD_PASS" -e PSITRANSFER_ADMIN_PASS="$ADMIN_PASS" \
  -v ~/psitransfer:/data psitrax/psitransfer:2
# open http://SERVER_IP:3000 — the upload password stops strangers using your server; download links need none

An alternative to

More self-hosted tools

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.