Tropic Host

Syncthing: nedir ve VPS'te dosya eşzamanlama nasıl kurulur?

7 dk okuma
Tropic
Syncthing: nedir ve VPS'te dosya eşzamanlama nasıl kurulur?

Syncthing: başka birinin bulutu olmadan cihazlar arasında dosya eşzamanlama

Sabah dizüstü bilgisayarınızda bir belgeyi düzenleyip kapatırsınız. Akşam ev bilgisayarınızı açtığınızda en güncel sürüm zaten oradadır. Dosya Google Drive veya Dropbox'tan geçmemiştir; onu kendi Syncthing node'unuz almıştır.

Syncthing, seçilen klasörleri güvenilir cihazlar arasında doğrudan eşzamanlar; verilerin nerede tutulacağı üzerindeki kontrol sizde kalır. Merkezi bir sunucu zorunlu değildir.

Ancak iki bilgisayar nadiren aynı anda çevrimiçiyse değişiklikleri aktarmak zorlaşır. Sürekli açık bir VPS bu sorunu çözer: bir cihazdan dosyaları alır ve daha sonra diğerine iletir.

Syncthing'in ne için tasarlandığını anlamak önemlidir. Bu bir ağ sürücüsü veya tarayıcı tabanlı dosya yöneticisi değil, seçtiğiniz klasörleri otomatik olarak çoğaltan bir araçtır.

Syncthing beş adımda

Minimum kurulum şöyledir:

  1. İhtiyacınız olan bilgisayarlara Syncthing'i kurun.
  2. VPS'te başka bir Syncthing instance'ı çalıştırın.
  3. SSH tüneli üzerinden sunucu dashboard'unu açın.
  4. Cihaz tanımlayıcılarını değiş tokuş edip bağlantıyı onaylayın.
  5. Paylaşılan bir klasör ekleyin, eşzamanlama modunu seçin ve dosya sürümlemeyi etkinleştirin.

Syncthing nedir ve nasıl çalışır?

Syncthing sürekli dosya eşzamanlama için ücretsiz ve açık kaynaklı bir yazılımdır. Windows, macOS, Linux ve diğer masaüstü ve sunucu işletim sistemlerinde çalışır.

Her kurulum benzersiz bir Device ID, yani kriptografik bir tanımlayıcı alır. İki node veri alışverişi yapmadan önce onları karşılıklı eklemeniz ve belirli bir klasöre açıkça erişim vermeniz gerekir. Cihazlarınızı ve dosyalarınızı saklayan tek bir Syncthing hesabı yoktur.

Bir dosya değiştiğinde Syncthing onu bloklara böler, checksum'ları karşılaştırır ve yalnızca eksik bölümleri aktarır. Böylece büyük bir dosyanın içindeki küçük bir düzenleme her zaman dosyanın tamamının yeniden gönderilmesini gerektirmez.

Discovery hizmetleri cihazların birbirini bulmasına yardımcı olur, ancak dosya saklamaz. Doğrudan bağlantı mümkün değilse şifreli trafik daha yavaş bir relay üzerinden geçebilir.

VPS neyi değiştirir?

Sunucu olmadan dizüstü bilgisayar ev bilgisayarıyla doğrudan eşzamanlanabilir, ancak yalnızca kısa bir süre için bile olsa iki cihazın aynı anda çevrimiçi olması gerekir. VPS, kurulumu her zaman erişilebilir bir değişim noktasına dönüştürür.

Örneğin dizüstü bilgisayarınız sabah projeyi sunucuya yükleyip kapanır. Akşam ev bilgisayarınız yeni sürümü VPS'ten indirir.

Syncthing belgeler, Obsidian notları, kaynak kodu, fotoğraflar ve aile klasörleri için iyi çalışır. Cache'ler, node_modules ve build çıktıları .stignore ile hariç tutulmalıdır. Aktif veritabanları ve sanal makine imajları eşzamanlanmamalıdır.

VPS ayrıca verilerinizin evinizin dışında bir kopyasını oluşturur. Ancak bu kopya, sürümleme ve ayrı bir yedek arşiviyle birlikte kullanıldığında gerçek bir yedeğe dönüşür: yanlışlıkla silme işlemi tüm cihazlara yayılabilir.

Syncthing mi Nextcloud mu: hangisini seçmelisiniz?

İki araç farklı sorunları çözmelerine rağmen sıklıkla karşılaştırılır.

ÖlçütSyncthingNextcloud
ModelKlasörler cihazlar arasında kopyalanırDosyalar merkezi sunucuda tutulur
Sunucu gerekir mi?Hayır, VPS isteğe bağlıdırEvet
Tarayıcı tabanlı dosya erişimiTam özellikli web sürücüsü yokEvet
Genel bağlantılarHayırEvet
Ortak düzenlemeSunulmazEklenebilir
En uygun kullanımAynı klasörleri kendi cihazlarınızda tutmakKişisel veya ekip bulutu

Göze batmayan arka plan eşzamanlaması için Syncthing'i seçin. Web erişimi, paylaşılabilir bağlantılar, kullanıcı hesapları, takvim ve ortak çalışma özelliklerine ihtiyacınız varsa Nextcloud'u seçin.

Docker Compose ile VPS'e Syncthing kurulumu

Aşağıdaki adımlar Ubuntu 24.04 çalıştıran bir VPS içindir. Dashboard sunucunun yerel adresine bağlı kalacak ve SSH tüneli üzerinden bağlanacaksınız.

1. Docker'ı kurun

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker

2. Dizini ve Compose dosyasını oluşturun

sudo mkdir -p /opt/syncthing/data
sudo chown -R 1000:1000 /opt/syncthing/data
cd /opt/syncthing
sudo nano compose.yaml

Aşağıdakini yapıştırın:

services:
  syncthing:
    image: syncthing/syncthing:latest
    container_name: syncthing
    hostname: syncthing-vps
    environment:
      - PUID=1000
      - PGID=1000
      - STGUIADDRESS=
    volumes:
      - ./data:/var/syncthing
    network_mode: host
    restart: unless-stopped

Bu yapılandırma resmî Syncthing image'ını kullanır. host ağ modu doğrudan bağlantıları kolaylaştırır; boş STGUIADDRESS değeri dashboard'u 127.0.0.1:8384 üzerinde tutar.

Container'ı başlatın:

sudo docker compose up -d
sudo docker compose ps

3. Eşzamanlama bağlantılarına izin verin

Önce SSH'ye izin verin ki erişiminizi kilitlemeyin:

sudo ufw allow OpenSSH
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw enable

Ana eşzamanlama protokolü 22000/TCP, QUIC ise 22000/UDP kullanır. Dashboard portu 8384'ü açmanız gerekmez. Yerel keşif portu 21027/UDP, genel bir VPS'te genellikle gereksizdir.

4. Dashboard'u SSH üzerinden açın

Aşağıdaki komutu bilgisayarınızda çalıştırın:

ssh -L 9999:127.0.0.1:8384 root@SERVER_IP

Terminali açık tutup şurayı ziyaret edin:

http://127.0.0.1:9999

Dashboard'u açtıktan sonra Actions → Settings → GUI bölümüne gidip kullanıcı adı ve parola belirleyin. Daha sonra dashboard'a bir alan adı üzerinden erişmek isterseniz HTTPS reverse proxy arkasına koyun ve kimlik doğrulamayı açık tutun.

5. Cihaz ve klasör ekleyin

Bilgisayarınıza Syncthing'i kurun, sonra:

  1. Hem bilgisayarda hem VPS'te Actions → Show ID seçeneğini açın.
  2. Her node'un Device ID'sini diğer cihaza ekleyin.
  3. Bilgisayarda Add Folder düğmesine tıklayın, bir dizin seçin ve sunucuyla paylaşın.
  4. VPS'te klasörü kabul edip /var/syncthing/Files gibi bir yol seçin.

İki yönlü eşzamanlama için bilgisayarlarda Send & Receive seçeneğini açık bırakın. VPS'te Receive Only çoğu zaman daha uygundur: sunucu node'lar arasındaki değişiklikleri almaya ve iletmeye devam eder, ancak VPS'te doğrudan yapılan yanlışlıkla bir yerel düzenleme tüm ağa yayılmaz.

Syncthing neden yedeğin yerini tutmaz?

Bir cihazdaki dosya silinir veya şifrelenirse bu değişiklik diğerlerine yayılabilir. Bu nedenle VPS'teki klasör ayarlarını açıp File Versioning seçeneğini etkinleştirin.

Pratik bir seçenek, 30–90 günlük saklama süresine sahip Staggered File Versioning'dir. Uzak bir node dosyayı değiştirdiğinde veya sildiğinde önceki sürüm .stversions içine taşınır. Eski kopyalar disk alanı kullanır; bu nedenle bir saklama sınırı belirleyin.

Güvenilir bir kurulum üç katmana sahiptir:

  1. Syncthing çalışan kopyaları güncel tutar.
  2. Sürümleme bazı hataları geri almayı sağlar.
  3. Ayrı bir zamanlanmış yedek, Syncthing'den bağımsız şekilde saklanır.

VPS içerikleri görmeden dosya saklayabilir mi?

Syncthing güvenilmeyen cihaz modu içerir. Ana bilgisayarda klasör için bir parola belirleyin ve VPS'te Receive Encrypted seçeneğini kullanın. Sunucu şifreli verileri saklar ve aynı parolayı kullanan başka bir güvenilir cihaza aktarabilir.

İçerikler, dosya adları, zaman damgaları ve dizin yapısı gizlenir. Paylaşılan klasör hakkındaki bilgiler ve yaklaşık dosya boyutları görünür kalır.

Geliştiriciler bu özelliği hâlâ deneysel kabul ediyor. Parolayı ve Folder ID'yi ayrı saklayın; bunlar olmadan şifreli klasörü kurtarmak imkânsız olabilir.

Syncthing ne tür bir VPS ister?

Kaynak kullanımı yalnızca veri miktarına değil, dosya sayısına, ne sıklıkta değiştiklerine ve ilk indeksleme işlemine de bağlıdır. Belgeleri ve birkaç düzine gigabayt verisi olan kişisel bir node için şu başlangıç yapılandırması genellikle yeterlidir:

  • 1 vCPU;
  • 1 GB RAM;
  • SSD veya NVMe depolama;
  • dosyalar ve .stversions için yeterli disk alanı;
  • kararlı bir ağ bağlantısı.

Büyük bir fotoğraf kütüphanesi veya yüz binlerce dosya daha fazla kaynak gerektirir. En yüksek yük genellikle ilk tarama ve checksum hesaplaması sırasında oluşur.

Bu iş için tropic.host üzerinde temel bir Ubuntu VPS uygundur. Küçük bir yapılandırmayla başlayıp koleksiyonunuz büyüdükçe kaynakları artırabilirsiniz. Disk kapasitesi seçerken yalnızca mevcut klasörleri değil, gelecekteki dosyaları, geçici verileri ve sürüm geçmişini de hesaba katın.

Kaçınılması gereken beş hata

  • 8384 portunu tüm internete açmak. Kurulum için SSH tüneli kullanın. Kalıcı web erişimi için HTTPS, parola ve reverse proxy kullanın.
  • Sunucu kopyasını tam bir yedek sanmak. Sürümlemeyi etkinleştirin ve ayrı yedek arşivleri oluşturun.
  • Cache'leri ve bağımlılıkları eşzamanlamak. Gereksiz dizinleri .stignore ile hariç tutun.
  • Disk kullanımını görmezden gelmek. .stversions dizini zaman içinde ciddi biçimde büyüyebilir.
  • Kayıp bir cihaza güvenmeye devam etmek. Cihazı diğer node'lar üzerinden kaldırın ve cihaz anahtarlarını içeren Syncthing yapılandırmasını koruyun.

Akıllı telefonlar hakkında bilinmesi gerekenler

Resmî Android uygulamasının geliştirilmesi 2024 sonlarında durduruldu, ancak topluluk istemcileri mevcut. Resmî bir iOS istemcisi de yoktur; arka planda çalıştırma kısıtlamaları sürekli eşzamanlamayı zorlaştırır. Ana fotoğraf kütüphanenizi bağlamadan önce seçtiğiniz mobil uygulamayı küçük bir klasörle test edin.

Sonuç

Zorunlu bir bulut aracısına bağlı kalmadan birkaç cihazda aynı klasörleri tutmak isteyenler için Syncthing uygundur. VPS sistemi daha kullanışlı hâle getirir: bilgisayarların aynı anda çevrimiçi olması gerekmez ve evinizin dışında her zaman erişilebilir bir kopya bulunur.

Güvenli bir kurulum için yönetim dashboard'unu doğrudan açmayın, sürümlemeyi etkinleştirin ve eşzamanlamayı bağımsız bir yedekle tamamlayın.

SSS

Syncthing için VPS'e ihtiyacım var mı?

Hayır. Cihazlar doğrudan eşzamanlanabilir. VPS, cihazların farklı zamanlarda değişiklik alışverişi yapmasını sağlayan sürekli açık bir node görevi görür.

Syncthing dosyalarını tarayıcıda açabilir miyim?

Web dashboard yapılandırma içindir; Google Drive gibi belgeleri taramak için tasarlanmamıştır. Web sürücüsüne ihtiyacınız varsa Nextcloud daha iyi bir seçimdir.

Syncthing bir yedekleme çözümü müdür?

Hayır. Silme ve bozulma diğer cihazlara yayılabilir. Sürümleme yardımcı olur, ancak bağımsız bir yedeğin yerini tutmaz.

8384 portunu açmam gerekir mi?

Hayır. Dashboard'u 127.0.0.1:8384 üzerinde tutup SSH tüneliyle bağlanın. Eşzamanlama için 22000/TCP ve 22000/UDP portlarını açın.

VPS sahibi dosyaları okuyabilir mi?

Standart kurulumda potansiyel olarak evet. Receive Encrypted dosyaları şifreli biçimde saklar, ancak bu özellik hâlâ deneysel kabul edilir; parolayı ve Folder ID'yi güvenli tutmanız gerekir.