Skiff 1
- vCPU
- 1 × shared
- RAM
- 1 GB
- Storage
- 20 GB NVMe SSD
- Transfer
- 2 TB
- IPv4 / IPv6
- 1 / /64 routed
Solution
A personal VPN needs almost no CPU and almost no disk — it needs bandwidth and a jurisdiction you trust. One shared core, 1 GB of RAM and a WireGuard install will saturate a gigabit port. Choose the location by law, not by specification: a $4 Skiff 1 in Panama or Zurich outperforms a large instance in a Fourteen Eyes country for this purpose.
| Resource | What you actually need |
|---|---|
| vCPU | 1 shared core is sufficient up to ~900 Mbit/s with WireGuard |
| RAM | 1 GB (WireGuard uses under 30 MB) |
| Disk | 20 GB |
| Transfer | 2 TB covers roughly 8 hours a day of 1080p streaming |
| Network | Native IPv6 matters — many VPN clients prefer dual stack |
Location is usually the decision that matters most for this workload — either because latency dominates, or because jurisdiction does.
Panama, Switzerland, Iceland, Moldova or Malaysia. Provisioning takes under a minute.
apt install wireguard on Debian or Ubuntu; the kernel module is already present.
wg genkey | tee private.key | wg pubkey > public.key, then write /etc/wireguard/wg0.conf.
Set net.ipv4.ip_forward=1 and add an nftables masquerade rule for the tunnel subnet.
systemctl enable --now wg-quick@wg0, then add one [Peer] block per device.
It removes the provider from the trust equation but replaces the crowd. Your traffic is no longer mixed with thousands of other users, so the exit IP is uniquely yours. Self-hosting wins when your threat model is interception or geo-restriction; a large shared VPN wins when it is traffic correlation.
Budget your real usage plus 15% for protocol overhead. 1080p video is roughly 3 GB per hour, so 2 TB supports about 650 hours a month.
Yes. A single shared core handles 20+ concurrent WireGuard peers comfortably; the limit is your uplink, not the instance.