Syncthing mi Nextcloud mu: VPS icin hangisi uygun?
Syncthing esler arasi senkronizasyon saglarken Nextcloud merkezi sunucu mimarisi sunar. VPS kurulumunda hangi sistemin neden yedekleme olmadigini detaylica inceleyin.
Syncthing ve Nextcloud: Karar Verdirici Fark
Syncthing ve Nextcloud arasındaki fark, yapısal bir ayrılığa dayanır ve diğer tüm özellikler bu temelden türetilir. Syncthing, eşler arası (peer-to-peer) bir yapıdadır. Her cihaz klasörün tamamını barındırır ve hiçbir kopya diğerinden üstün veya yetkili değildir. Nextcloud ise bir sunucu mimarisidir. Dosyalar tek bir makinede tutulur, kullanıcı hesapları bu dosyaların önünde bir katman oluşturur ve istemciler dosyaların kopyalarını bu merkezden çeker.
Syncthing'in paylaşım bağlantısı veya belgeler için web arayüzü sunmamasının nedeni budur. Sunulacak merkezi bir kopya bulunmadığından, tarayıcının talep edebileceği bir kaynak da yoktur. Nextcloud ise her ikisini de sunar; bunu yapabilmek için bir PHP çalışma zamanı, veritabanı sunucusu, web sunucusu ve TLS (transport layer security) için bir reverse proxy gerektirir.
İlgili tüm cihazlar size aitse Syncthing'i seçin. Dosyalara bir tarayıcı üzerinden erişilmesi veya başka bir kişinin dosyaları kullanması gerekiyorsa Nextcloud'u tercih edin.
Her tasarımda VPS'in gerçek işlevi
Nextcloud çalıştıran bir VPS, verilerinizin ana merkezidir. Dizüstü bilgisayarınızdaki yerel kopyayı silseniz bile dosya sunucuda kalmaya devam eder; çünkü sunucu her zaman orijinal kaynağı barındırır.
Syncthing çalıştıran bir VPS ise farklı bir görev üstlenir: sürekli çevrimiçi olan bir eş (peer) görevi görür. Syncthing, verileri aynı anda çevrimiçi olan iki cihaz arasında doğrudan aktarır. Bu nedenle, hiçbir zaman aynı anda açık olmayan iki dizüstü bilgisayar, ne kadar beklerseniz bekleyin asla eşleşemez. Hiç uyumayan bir VPS üzerinde üçüncü bir eş eklendiğinde bu sorun ortadan kalkar. Dizüstü bilgisayar A veriyi 09:00'da gönderir, dizüstü bilgisayar B 22:00'de çeker; VPS ise bu süre zarfında klasörü tutar.
Bu, gerçekten yararlı bir roldür ve "Dropbox alternatifi" iddiasından daha mütevazı bir tanımdır. Syncthing size bir müşteriye gönderebileceğiniz bir bağlantı asla vermez. Eğer gereksiniminiz buysa, burada durun ve bunun yerine self-hosted Dropbox alternatifleri özetini okuyun.
Küçük bir VPS üzerinde her birinin maliyeti
Syncthing tek bir Go binary dosyasından oluşur. Bir soket üzerinde dinleme yapar, dosyalarınızın dizinini yerel bir veritabanında tutar; tüm yığın bundan ibarettir. 2.0 sürümünden itibaren bu dizin LevelDB yerine SQLite kullanmaktadır, bu nedenle 1.x kurulumundan yükseltme yapıldığında ilk başlatmada tek seferlik bir geçiş işlemi çalıştırılır. Büyük bir klasör setinde bu geçiş uzun sürebilir. İşlemin tamamlanmasını bekleyin. Başka hiçbir şeyin kurulması veya yamalanması gerekmez.
Nextcloud daha fazlasına ihtiyaç duyar. Ağustos 2026 itibarıyla Nextcloud 35, arkasında MariaDB veya PostgreSQL ile PHP 8.3 ile 8.5 sürümlerini destekler ve Apache 2.4 veya php-fpm ile çalışan nginx tarafından sunulur. Yönetici kılavuzu "süreç başına minimum 512MB RAM" önermektedir ve php-fpm aynı anda birden fazla çalışan süreç (worker process) yürütür.
1 GB RAM'e sahip bir VPS üzerinde Syncthing rahat çalışırken Nextcloud için alan dardır. Bu, Nextcloud'un yanlış tercih olduğu anlamına gelmez. Sadece bir yerine güncel tutulması gereken dört bileşeniyle daha büyük bir sorumluluk getirdiği anlamına gelir. Docker, TLS ve yedeklemeleri kapsayan VPS üzerinde Nextcloud rehberi içindeki container yöntemi, bu yükü taşımanın en zahmetsiz yoludur. Bunun üzerine tarayıcı tabanlı belge düzenleme eklemek alt sınırı tekrar yükseltir; OnlyOffice ve Collabora karşılaştırması 2 ila 4 GB RAM'e sahip bir sunucu için bu konuyu detaylandırmaktadır.
VPS üzerinde Syncthing kurulumu
Ubuntu, bir syncthing paketi sunar ancak bu paket güncel sürümün oldukça gerisindedir. Projenin kendi deposunu kullanın.
sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing
syncthing --versionsyncthing --version komutu, syncthing v2 ile başlayan bir satır döndürmelidir. Orada bir v1 görmeniz, apt'nin hala dağıtım paketini tercih ettiği anlamına gelir. Upstream deposunu bunun üzerinde sabitleyin (pin) ve kurulumu tekrar çalıştırın.
printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.prefServisi, normal bir kullanıcı hesabı altında systemd servisi olarak çalıştırın; böylece kimse oturum açmamış olsa bile sistem açılışında otomatik olarak başlar.
sudo systemctl enable --now syncthing@youruser.service
systemctl status syncthing@youruser.servicesystemctl status komutu active (running) çıktısını vermelidir. Yapılandırma ve dizin dosyaları /home/youruser/.local/state/syncthing dizininde tutulur ve yapılandırma dosyası config.xml konumundadır. Syncthing 1.27 sürümünden önce oluşturulan kurulumlar bu dosyaları ~/.config/syncthing dizininde tutar; bu nedenle makineler arasında dosya kopyalamadan önce her iki yolu da kontrol edin.
Ardından portları açın. Syncthing, senkronizasyon protokolü için 22000/TCP, QUIC aktarımı için 22000/UDP ve yerel keşif için 21027/UDP portlarını kullanır. Keşif işlemi, internet üzerinden geçmeyen broadcast ve multicast trafiğini kullanır; bu nedenle bir VPS üzerinde yalnızca ilk iki portu açmanız yeterlidir.
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw statusufw status komutu her iki kuralı da listelemelidir. Eğer Status: inactive çıktısını alıyorsanız, ufw hiçbir trafiği filtrelemiyor demektir ve bu durumda yalnızca servis sağlayıcınızın ağ güvenlik duvarı devrededir. Çoğu sunucu sağlayıcısında bu ayrı bir kontrol paneli üzerinden yönetildiğinden, ilgili paneli de kontrol edin. Servis çalışır durumdayken uzak bir cihazın Disconnected durumunda takılı kalması, genellikle bu iki güvenlik duvarından birinin hala kapalı olduğu anlamına gelir.
Syncthing arayüzüne dışarıya açmadan erişim
Web arayüzü (GUI) varsayılan olarak 127.0.0.1:8384 üzerinde dinleme yapar, bu nedenle yalnızca sunucunun kendisinden gelen isteklere yanıt verir. Bu varsayılan ayar koruyucudur; çünkü arayüz, sunucudaki tüm klasör yollarını yeniden yazabilen bir API (uygulama programlama arayüzü) anahtarı barındırır.
İlk adım olarak arayüzü dış dünyaya açmayın. Belgeler, bir ağ adresine bağlamanın size ne kazandırdığı konusunda nettir: "bilgisayarınızın yerel ağ adresini belirtmek, erişimi yalnızca yerel ağınızdaki cihazlarla kısıtlamayacaktır!" Bunun yerine portu dizüstü bilgisayarınızdan SSH üzerinden yönlendirin.
ssh -L 8384:127.0.0.1:8384 youruser@your.vps.exampleOturum açıkken yerel tarayıcınızda http://127.0.0.1:8384 adresini açın. Tünel, SSH oturumu ile birlikte kapanır, bu nedenle sonrasında dinlemede kalan hiçbir şey olmaz.
Eğer arayüze doğrudan erişmeniz gerekiyorsa, önce kimlik bilgilerini ayarlayın. Sunucuda tarayıcı bulunmadığından, bu işlemi komut satırından yapın.
sudo systemctl stop syncthing@youruser.service
sudo -H -u youruser syncthing generate --gui-user=admin --gui-password=-
sudo systemctl start syncthing@youruser.service-H önemlidir, çünkü bu belirtilmezse sudo root kullanıcısının ev dizinini esas alır ve yanlış config.xml dosyasını düzenlersiniz. Parola değeri olarak tek bir tire kullanmak, syncthing generate aracının parolayı standart girdiden okumasını sağlar; bu sayede parola kabuk geçmişinize kaydedilmez ve değer dosyaya yazılmadan önce hash'lenir. Giriş yapabildiğinizde arayüz ayarlarından HTTPS'i etkinleştirin.
Syncthing hatalarınızı neden yayar
Syncthing FAQ, yedekleme sorusunu bizzat yanıtlar: "Syncthing harika bir yedekleme uygulaması değildir çünkü dosyalarınızdaki tüm değişiklikler (düzenlemeler, silmeler vb.) tüm cihazlarınıza yayılır."
Dizüstü bilgisayarınızda yanlışlıkla bir klasörü silerseniz, Syncthing tam olarak tasarlandığı gibi çalışır. O klasörü saniyeler içinde her yerde siler. Senkronizasyon mutabakat anlamına gelir ve mutabakat, bir dosyanın artık olmadığı konusunda hemfikir olmayı da içerir.
Dosya sürümleme (versioning) bu durum için bir önlemdir ancak siz açmadığınız sürece kapalıdır. Belgeler, sürümlemenin "varsayılan olarak 'dosya sürümleme yok' şeklinde ayarlandığını, yani dosyaların eski kopyalarının tutulmadığını" belirtir. Klasör başına dört strateji mevcuttur. Trash Can, uzak bir değişiklikten dolayı silinen veya değiştirilen her dosyanın bir kopyasını tutar. Simple, dosya başına belirli sayıda eski sürüm saklar. Staggered, geçmişi zamanla seyreltir; bir gün boyunca saatlik, bir ay boyunca günlük kopyalar tutar ve bu şekilde devam eder. External ise her kararı sizin yazdığınız bir komuta bırakır. Eski kopyalar, paylaşılan klasör içindeki bir .stversions dizinine gider.
Staggered stratejisini VPS eşi üzerinde ayarlayın ve dizüstü bilgisayarlarda sürümlemeyi kapalı bırakın. Böylece sürekli açık olan eş geçmişi taşır, dizüstü bilgisayarlar ise hafif kalır.
Nextcloud bu durumu daha iyi yönetir ancak yine de bir yedekleme aracı değildir. Silinen dosyalar çöp kutusuna gider ve düzenlemeler Versions uygulaması tarafından tutulur, ancak disk doldukça her ikisi de otomatik olarak temizlenir. Dizüstü bilgisayarınızda dosyaları şifreleyen bir süreç, bu şifrelenmiş sürümleri yukarı senkronize eder ve iyi kopyalar kendi zaman çizelgelerine göre eskiyerek silinir.
Her iki araç da altında gerçek bir yedekleme gerektirir: ayrı bir program tarafından alınan, senkronizasyon istemcisinin erişemeyeceği bir yere yazılan ve geri yüklemenin çalıştığından emin olmak için en az bir kez test edilen snapshot'lar. restic ve BorgBackup karşılaştırması bölümü, veri dizinini hangisine yönlendirmeniz gerektiğini ele alır.
İki araç arasındaki çakışma farkları
Her iki araç da iki tarafın eşitlemeler arasında aynı dosyayı değiştirmesi durumunda bir çakışma dosyası oluşturur. Farklılık, bunu kimin gördüğüdür.
Syncthing, kaybeden kopyayı <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext> olarak yeniden adlandırır. Daha eski değişiklik zamanına sahip kopya kaybeder. Zamanlar aynı olduğunda, cihaz kimliğinin ilk 63 bitinde daha büyük değere sahip olan cihaz kaybeder; bu rastgele bir seçimdir ancak her eşte aynı sonucu verir. Ardından insanların hazırlıklı olmadığı kısım gelir: bu dosyalar "oluşturulduktan sonra normal dosyalar gibi işlenir, bu nedenle cihazlar arasında yayılır". Her eş, çakışma kopyasını alır. Temizlemek, eşitlenen tek bir silme işlemidir ancak bunu önce tüm makinelerinizde görürsünüz.
Nextcloud masaüstü istemcisi <name> (conflicted copy YYYY-MM-DD HHMMSS).<ext> yazar, örneğin mydata (conflicted copy 2018-04-10 093612).txt ve varsayılan olarak bu dosyayı yüklemez. İstemci kılavuzu bunun nedenini açıklar: değişikliği yapan kişi, onu çözmek için en uygun kişidir ve çakışmayı diğer kullanıcılara göstermek yalnızca kafa karışıklığı yaratır. Tersini istiyorsanız istemcinin ortam değişkenlerinde OWNCLOUD_UPLOAD_CONFLICT_FILES=1 ayarını yapın.
Özetle, bir Syncthing çakışması küme genelinde bir olayken, bir Nextcloud çakışması tek bir masaüstünde kalır.
Klasör türleri Syncthing'i sunucuda daha güvenli hale getirir
Syncthing üç farklı klasör türüne sahiptir; VPS üzerinde doğru olanı seçmek, bir dizi kazara veri kaybı riskini ortadan kaldırır.
- Send & Receive varsayılan türdür. Değişiklikler her iki yönde de senkronize edilir.
- Send Only, kümeden gelen tüm değişiklikleri yok sayar. Yalnızca yayın yapması gereken cihazlarda kullanılmalıdır. Klasör senkronizasyon dışına çıktığında, arayüzde yerel durumu tüm küme üyelerine zorla gönderen kırmızı bir "Override Changes" butonu belirir.
- Receive Only, kümeden gelen değişiklikleri uygular ancak yerel düzenlemeleri asla geri göndermez. Bu tür, arşiv görevi gören bir VPS üzerinde kullanılmalıdır. VPS üzerindeki yerel düzenlemeler, arayüzde "Revert Local Changes" şeklinde kırmızı bir buton oluşturur.
VPS üzerinde Staggered versioning özelliği etkinleştirilmiş bir Receive Only klasörü, size sürümlendirilmiş bir yansıma sağlar. Bir dizüstü bilgisayarda yapılan silme işlemi, geçerli bir küme değişikliği olduğu için sunucuda da uygulanır; ancak eski kopya tamamen kaybolmak yerine .stversions dizinine taşınır.
Hangisini seçmelisiniz
Aşağıdaki 7 satır, insanların bu soruyu sormalarının gerçek nedenlerini kapsamaktadır.
The data behind this chart
[
{
"label": "Keep two of my own laptops in sync",
"pick": "Syncthing",
"notes": "No accounts to manage. The VPS is the peer that is always awake."
},
{
"label": "Send a download link to a client",
"pick": "Nextcloud",
"notes": "Syncthing has no public link sharing at all."
},
{
"label": "Open a file from a borrowed browser",
"pick": "Nextcloud",
"notes": "The Syncthing GUI shows sync state, never file contents."
},
{
"label": "Sync 200 GB between machines I own",
"pick": "Syncthing",
"notes": "Peers transfer directly. The VPS copy is optional."
},
{
"label": "Phone photo upload with a store app",
"pick": "Nextcloud",
"notes": "The official Syncthing Android app ended in December 2024."
},
{
"label": "Calendar and contacts alongside files",
"pick": "Nextcloud",
"notes": "Syncthing syncs files. That is the entire feature set."
},
{
"label": "1 GB VPS with nothing else to spare",
"pick": "Syncthing",
"notes": "One Go binary against PHP plus a database plus a web server."
}
]İlk satıra bakın. Kendi iki dizüstü bilgisayarınızı senkronize tutmak Syncthing seçeneğine işaret eder; bu, bir VPS'in hiç uyumayan bir eş (peer) olarak değerini kanıtladığı durumdur. Tarayıcı, bağlantı veya başka bir kişi içeren her satır diğer yöne işaret eder.
Eğer Nextcloud sürekli öne geçiyor ancak kapladığı alan sizi endişelendiriyorsa, bir sonraki adımda Seafile ve Nextcloud karşılaştırması okunmalıdır; çünkü Seafile, altında farklı bir senkronizasyon motoru kullanarak sunucu modelini korumaya devam eder.
Her ikisini de tek bir VPS üzerinde çalıştırmak
Bu araçlar birbirini dışlamaz. Dosyaları kendi makineleriniz arasında taşımak için Syncthing kullanırken, paylaşım ve takvim işlemleri için Nextcloud kullanmak yaygın bir yöntemdir.
Bunu yaparken uyulması gereken bir kural vardır: Syncthing'i asla Nextcloud'un veri dizinine yönlendirmeyin. Nextcloud, veritabanındaki her dosyayı takip eder; bu nedenle diskte dışarıdan oluşturulan dosyalar, veritabanı güncellenene kadar web arayüzünde görünmez kalır. Nextcloud kurulum dizininden şu komutu çalıştırabilirsiniz:
sudo -u www-data php occ files:scan --allBu komut, taranan dosya ve klasörlerin sayısını yazdırır. Bunu bir zamanlayıcı üzerinde çalıştırmak bir çözüm değil, geçici bir yamadır. Her araca kendi dizinini atayın. Sunucuda nelerin barındırılması gerektiğine hala karar veriyorsanız, 2026 yılında nelerin self-host edileceğine dair rehber, bir eşitleme aracı seçmekten daha iyi bir başlangıç noktasıdır.
FAQ
Syncthing, Dropbox'ın yerini alabilir mi?
Yalnızca kendi cihazlarınızın senkronize kalması gereken durumlar için alabilir. Syncthing'de herkese açık paylaşım bağlantıları veya kullanıcı hesapları yoktur. Web arayüzü dosya içeriklerini asla göstermez; çünkü tarayıcının talep edebileceği merkezi bir kopya bulunmaz. Resmi Android uygulaması, Aralık 2024 sürümünden sonra sonlandırılmış ve Play Store'dan kaldırılmıştır; bu nedenle mobil cihaz desteği artık topluluk tarafından geliştirilen bir çatala (fork) bağlıdır. Birine bağlantı göndermeniz gerekiyorsa bir sunucuya, yani Nextcloud veya benzeri bir araca ihtiyacınız vardır.
Syncthing bir yedekleme çözümü müdür?
Hayır, proje bunu doğrudan belirtmektedir. Silme ve değiştirme işlemleri tüm cihazlara yansıtılır; bu nedenle yanlışlıkla silinen bir dosya saniyeler içinde her yerden kaybolur. Klasör bazında dosya sürümleme özelliğini, özellikle sürekli açık olan bir eş üzerinde Staggered modunda etkinleştirmek, .stversions dizini aracılığıyla bir kurtarma penceresi sağlar. Bu, ayrı bir araçla farklı bir depolama alanına alınan anlık görüntülerin (snapshot) yerini tutmaz.
Dosyalarımı neden Syncthing web arayüzünde göremiyorum?
Çünkü arayüz bir dosya tarayıcısı değil, senkronizasyon durumunu yöneten bir kontrol panelidir. Klasörleri, cihazları, aktarım ilerlemesini ve çakışma sayılarını gösterir; dosya içeriklerini listelemez veya açmaz. Bu durum, eşler arası (peer-to-peer) tasarımın bir sonucudur: dosyalarınız cihazlarınızda barınır ve VPS üzerindeki arayüz yalnızca bu dosyaları taşıyan süreci yönetir.
Syncthing'in bir VPS üzerinde hangi portları açık olmalıdır?
Senkronizasyon protokolü için 22000/TCP ve QUIC aktarımı için 22000/UDP portları gereklidir. 21027/UDP portu, yerel keşif işlemlerini broadcast ve multicast üzerinden gerçekleştirir; bu trafik internet üzerinden iletilmediği için genel sunucularda kapalı tutulmalıdır. 8384 numaralı porttaki arayüzü 127.0.0.1 adresine bağlayın ve buraya bir SSH tüneli üzerinden erişin. Sağlayıcınızın ağ güvenlik duvarının yanı sıra ufw ayarlarını da kontrol edin; çünkü bunlar birbirinden bağımsız kontrollerdir.
Syncthing ve Nextcloud'u aynı VPS üzerinde çalıştırabilir miyim?
Evet, 2 GB veya daha fazla RAM'e sahip bir sunucuda bu oldukça makuldür. Dizinlerini birbirinden ayrı tutun. Nextcloud dosyaları kendi veritabanında indekslediği için, Syncthing'in Nextcloud depolama alanına yazdığı dosyalar occ files:scan çalıştırılana kadar web arayüzünde görünmez kalır. İki aracın aynı dizine yazması, her ikisinin de beklemediği çakışma dosyalarının oluşmasına neden olur.