All Newbie, Semua Tentang Ilmu

Recent

Syncthing: Sinkronisasi File Antar Perangkat Tanpa Cloud

Ada satu kebiasaan kecil yang mengubah cara saya bekerja: semua file penting ada di dua tempat, dan saya tidak perlu mengingat mana yang terbaru. Bukan karena saya rajin, tapi karena Syncthing melakukannya di belakang layar sementara saya mengetik.

Antarmuka web Syncthing dalam mode gelap menampilkan daftar folder dan perangkat
Antarmuka Syncthing. Foto: Jakob Borg, MPL 2, via Wikimedia Commons

Syncthing menyinkronkan folder antar perangkat secara langsung. Tidak ada server pusat, tidak ada kuota, tidak ada tagihan per gigabyte. Dua laptop, satu ponsel, dan satu server kecil bisa saling bertukar perubahan dalam hitungan detik ketika berada di jaringan yang sama.

Yang membuat saya bertahan bukan fiturnya, tapi batasannya. Syncthing bukan Google Drive, dan justru karena itu saya percaya. Tidak ada AI yang membaca dokumen, tidak ada indeks pencarian, dan tidak ada perusahaan yang tiba-tiba mengubah kebijakan.

Pasang: Docker atau paket resmi

Di Ubuntu, repository resmi Syncthing sudah cukup baru:

sudo apt update
sudo apt install syncthing -y
sudo systemctl enable --now syncthing@$USER

Kalau lebih suka container:

services:
  syncthing:
    image: syncthing/syncthing:1
    container_name: syncthing
    hostname: homeserver
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - ./config:/var/syncthing/config
      - /srv/data:/data
    ports:
      - "8384:8384"
      - "22000:22000/tcp"
      - "22000:22000/udp"
      - "21027:21027/udp"
    restart: unless-stopped

Buka http://IP-SERVER:8384. Pertama kali, Syncthing akan meminta Anda memberi nama perangkat dan—ini penting—menyetel password untuk antarmuka web. Tanpa password, siapa pun di jaringan yang sama bisa mengubah konfigurasi sinkronisasi Anda.

Tiga port, tiga fungsi

PortDipakai untuk
8384Antarmuka web. Jangan pernah dibuka ke internet langsung.
22000 TCP/UDPTransfer data antar perangkat.
21027 UDPPenemuan perangkat di jaringan lokal.

Kalau semua perangkat ada di rumah yang sama, Anda cukup membuka 22000 di firewall lokal. Untuk perangkat di luar rumah, Syncthing memakai relay publik secara otomatis — lambat, tapi biasanya tetap jalan. Cara yang lebih baik: pasang VPN seperti WireGuard atau Tailscale, lalu biarkan Syncthing berbicara lewat jaringan privat itu.

Menambahkan perangkat dan folder

Alurnya sederhana, tapi urutannya penting:

  1. Di perangkat A, buka Actions → Show ID. Salin device ID.
  2. Di perangkat B, klik Add Remote Device, tempel ID tersebut, beri nama.
  3. Setujui permintaan di perangkat A. Kedua perangkat harus saling menyetujui — ini yang mencegah orang asing menambahkan dirinya.
  4. Di perangkat A, tambahkan folder, lalu di tab Sharing centang perangkat B.
  5. Di perangkat B, setujui folder yang masuk dan tentukan lokasinya.

Jangan menyalin folder secara manual sebelum sinkronisasi dimulai. Itu terlihat membantu, tapi justru membuat Syncthing mengira ada dua versi berbeda dan memunculkan konflik.

Versioning: pengaman dari salah hapus

Ini fitur yang paling sering dilewatkan dan paling sering dibutuhkan. Aktifkan File Versioning dengan mode Staggered atau Simple. Ketika file berubah atau terhapus, versi lama disimpan sementara di folder .stversions.

Bagi saya, ini menyelamatkan satu naskah yang terhapus karena saya mengira folder lain sudah jadi cadangan. Syncthing menyinkronkan penghapusan juga — itu perilaku yang benar, bukan bug.

Karena itu, satu aturan yang saya pegang: sinkronisasi bukan backup. Kalau satu file rusak di satu perangkat, kerusakan itu ikut tersebar. Backup tetap harus punya versi yang tidak ikut berubah, disimpan di tempat lain — misalnya snapshot ZFS atau backup terjadwal.

Mengabaikan file yang tidak perlu

Folder proyek penuh node_modules dan .venv. Menyinkronkan semuanya membuang bandwidth dan membuat indeks lambat. Buat file .stignore di akar folder:

// .stignore
node_modules
.venv
__pycache__
*.tmp
.DS_Store

Perubahan pada .stignore langsung berlaku, tapi file yang sudah tersinkron tidak otomatis terhapus di perangkat lain. Bersihkan manual kalau perlu.

Keamanan yang masuk akal

  • Jangan ekspos 8384 ke internet. Kalau butuh akses jauh, pakai VPN atau reverse proxy dengan autentikasi.
  • Setel password GUI sejak awal. Syncthing tidak memasangnya untuk Anda.
  • Pahami arti device ID. ID itu adalah kunci publik; membagikannya tidak berbahaya, tapi tetap hanya berikan ke perangkat yang Anda percaya.
  • Batasi folder yang dibagikan. Jangan bagikan folder home penuh ke ponsel. Buat folder khusus.

Masalah yang sering muncul

  • Status "Relay only". Kedua perangkat tidak bisa saling menghubungi langsung. Biasanya firewall atau NAT. Transfer tetap jalan, hanya lambat.
  • Folder ditandai "Unshared". Perangkat lain belum menyetujui folder, atau folder lokal sudah berisi file yang berbeda.
  • Konflik .sync-conflict. Dua perangkat mengubah file yang sama saat tidak terhubung. Buka kedua versi, gabungkan manual — jangan asal pilih yang terbaru.
  • Permission denied. Container berjalan dengan UID berbeda dari pemilik folder. Samakan PUID/PGID.
  • Baterai ponsel terkuras. Matikan sinkronisasi otomatis untuk folder besar saat memakai data seluler.

Pertanyaan yang sering muncul

Apakah file saya lewat server orang lain?

Hanya kalau kedua perangkat tidak bisa terhubung langsung dan Anda membiarkan relay aktif. Transfer tetap terenkripsi end-to-end; relay tidak bisa membaca isinya. Untuk memastikan tidak ada relay, matikan opsi relay di pengaturan.

Bisa menggantikan Nextcloud?

Untuk sinkronisasi file, sering kali ya. Tapi Nextcloud punya kalender, kontak, dan berbagi lewat tautan. Syncthing tidak punya konsep "bagikan file ke orang lain lewat URL" — dan itu memang di luar tujuannya.

Berapa perangkat yang bisa disinkronkan?

Banyak. Batas praktisnya adalah kapasitas server dan kesabaran Anda saat memecahkan konflik, bukan angka teknis.

Sumber





0 comments:

Post a Comment