P2P File Sharing Tanpa Batas Ukuran: Ulasan Teknikal Filesync

P2P File Sharing Tanpa Batas Ukuran: Ulasan Teknikal Filesync

By Reggi, 09 Aug 2026

Kirim file berukuran puluhan gigabyte antar perangkat sering kali bikin pusing kalau harus upload dulu ke Google Drive atau Dropbox. Proyek open source Filesync GitHub menawarkan pendekatan beda. Tool ini memungkinkan transfer file langsung antar browser memakai protokol WebRTC tanpa lewat server perantara.

Aplikasi ini tidak membutuhkan instalasi software tambahan di sisi penerima dan tidak perlu pendaftaran akun. Cukup buka link room atau scan QR code, file bisa langsung dikirim ke banyak perangkat sekaligus.

Bagaimana Cara Kerja di Belakang Layar?

Server pada ekosistem Filesync cuma bertugas sebagai agen signaling awal melalui WebSocket di jalur /ws. Tugasnya sederhana, yaitu menukar informasi SDP offer/answer dan ICE candidates antar browser.

Begitu koneksi peer-to-peer (P2P) terbangun, server langsung lepas tangan. Data file mengalir murni antar browser dalam kondisi terenkripsi. Server tidak pernah melihat atau menyimpan isi file yang dikirim.

Kalau kedua perangkat berada di belakang symmetric NAT atau firewall ketat yang memblokir koneksi P2P langsung, sistem secara otomatis mengalihkan jalur data melewati relay STUN/TURN menggunakan coturn.

Masalah RAM dan Alasan Wajib Pakai HTTPS

Satu hal krusial yang sering diabaikan saat mencoba tool P2P browser adalah manajemen memori. Jika mengirim file berukuran 5 GB, apakah RAM akan langsung habis?

Filesync menangani masalah ini berdasarkan jenis protokol dan dukungan browser.

Metode SavingBrowser yang MendukungSyarat ProtokolDampak ke Memori (RAM)
File System Access APIDesktop Chromium (Chrome, Edge, Brave)HTTPS / LocalhostHampir nol, bytes ditulis langsung ke disk
Service WorkerSemua browser modernHTTPS / LocalhostSangat rendah, di-stream ke folder download
BlobSemua browserHTTP biasaTinggi, menampung seluruh file di RAM

Menjalankan Filesync di jalur HTTP biasa bakal memaksa browser memakai metode Blob. File akan ditampung dulu di RAM sebelum disimpan. Metode ini rawan crash untuk file di atas 500 MB. Sebaliknya, berjalan di atas HTTPS mengaktifkan fitur streaming langsung ke media penyimpanan, membuat transfer file berukuran puluhan gigabyte tetap hemat RAM.

Panduan Self-Hosting dengan Docker

Menjalankan instance Filesync sendiri cukup simpel karena sudah disediakan image Docker resmi.

1. Buat Secret Key

Setiap deployment membutuhkan kunci rahasia untuk mengamankan kredensial TURN. Buat kunci acak menggunakan Python:

bash
python3 -c "import secrets, base64; print(base64.b64encode(secrets.token_bytes(32)).decode())"

Simpan string hasil generate tersebut.

2. Konfigurasi HTTP (Hanya untuk Lokal/LTP)

Jika cuma ingin mencoba di jaringan lokal (LAN), gunakan file deploy/docker-compose.yml. Masukkan kunci rahasia yang sudah dibuat ke dalam variabel lingkungan:

yaml
- --static-auth-secret=STRING_SECRET_KAMU - SECRET_KEY=STRING_SECRET_KAMU

Jalankan kontainer:

bash
docker compose up -d

3. Konfigurasi HTTPS (Rekomendasi Production)

Untuk penggunaan publik dengan domain sendiri, gunakan deploy/docker-compose-ssl.yml dan deploy/Caddyfile. Caddy akan menangani sertifikat SSL dari Let's Encrypt secara otomatis.

Ubah file Caddyfile:

text
filesync.domainkamu.com { reverse_proxy filesync:80 }

Lalu jalankan stack HTTPS:

bash
docker compose -f docker-compose-ssl.yml up -d

Port Networking yang Wajib Dibuka

Agar fitur NAT traversal berfungsi optimal dan transfer file tidak tersendat, pastikan port berikut dibuka di firewall atau VPS kamu.

PortProtokolPeruntukan
80 / 443TCPWeb interface dan WebSocket signaling
3478TCP & UDPHandshake awal STUN/TURN
50000-50100UDPJalur data relay TURN (jika P2P terhalang NAT)

Port 50000-50100 UDP ini sangat vital. Sekitar 5 sampai 10 persen koneksi internet tidak bisa terhubung secara P2P murni karena batasan provider atau firewall kantor. Jalur relay ini yang memastikan transfer file tetap berjalan meskipun koneksi langsung gagal.

Referensi


🔥 Sedang Ramai Dibaca