SyncThing Nedir? SyncThing Kurulumu, Ayarlamaları ve Kullanımı

Merhabalar herkese;
Sizlere bu yazımda SyncThing hakkında bilgiler vermeye, ne işe yaradığını, ne yaptığını ve nasıl kurulumunun yapılacağını ve yapılması gereken ayarları anlatacağım.



SyncThing Nedir?

SyncThing; BitTorrent Sync ve Dropbox gibi cloud erişim programıdır. Bu ne demek oluyor, evinizde işyerinizde telefonuna herhangi bir belgede, dosyada değişik yaptığınız zaman; bu değişikliğin bütün cihazlarımızda eşitlenmesidir. Yani, işteyken üzerinden çalıştığınız bir dosyayla, metroda eve giderken çalışmaya devam edebilir ve eve geldiğinizde kaldığınız yerden çalışmanıza devam edebilirsiniz. Programın en büyük özelliği ise tamamen açık kaynak kodlu olmasıdır.



SyncThing Hangi Sistemleri Destekliyor?

SyncThing evinizdeki buzdolabında çalışacak kadar geniş sistem desteği veriyor desek yalan olmaz. Resmi olarak desteklediği sistemler aşağıda yer almaktadır;

  • Linux: 32 bit, 64 bit, ARM, arm64, ppc64, ppc64le
  • Windows: 32 bit, 64 bit
  • Mac OS X: 32 bit, 64 bit
  • FreeBSD: 32 bit, 64 bit
  • Solaris: 64 bit
  • Dragonfly BSD: 64 bit
  • NetBSD: 32 bit, 64 bit
  • OpenBSD: 32 bit, 64 bit
  • Source Code: v0.14.23, v0.14.23

Resmi olarak Android ve iOS desteği vermiyor. Ancak Play Store ve App Store’dan erişebileceğiniz ve sorunsuzca çalışabileceğiniz üçüncü parti uygulamalar mevcut.



SyncThing Çalışma Mantığı Nasıldır?

SyncThing aslında çok basit bir çalışma mantığına sahip. Sistem iki parçadan oluşuyor. Node olarak ifade edilen, uç birimler ve relay olarak ifade edilen merkezi sunucular. Relay dünya çapında gönüllü katılımlarla ortaya çıkmış büyük bir SyncThing ağıdır. (Dünya genelindeki ağ haritasını incelemek için Relay adresini ziyaret edebilirsiniz.)
Siz iki node birbirine eşleştiriyorsunuz ve daha sonrasında paylaşmak istediğiniz klasörleri, dosyaları belirtiyorsunuz. SyncThing clienti çalıştığı sürede, sürekli olarak dosya değişiklik tarihlerine kontrol ederek, en güncel sürümle belirtiğiniz dosya ve klasörleri değiştirecektir. Peki diyeceksiniz ki relay server ne işe yarıyor. Node aralarında eşleme yapılırken işte bu relay sunucuları kullanılıyor.

(Eğer isterseniz ki projeye destek olayım, çorbada benim de tuzum bulunsun, gönüllü olarak relay sunucu olabiliyorsunuz. Hiçbir kullanıcının dosyası sunucunuzda depolanmıyor, sadece eşleme yapmak için sizin hattınızı -bandwidth- kullanıyor o kadar. Gelecek günlerde relay sunucu kurulumu ile ilgili bir makale hazırlamayı da düşünüyorum.)



SyncThing Kurulumu

Programın Websitesi adresine girip, Syncthing Core (CLI & Web UI) kısmından sisteminize uygun dosyanın bağlantısını kopyalayın. Benim işletim sistemim Ubuntu 64 bit olduğu için, Linux 64 bit bağlantısını kullanıyorum.

wget ile paketi sunucumuza indirelim

wget https://github.com/syncthing/syncthing/releases/download/v0.14.23/syncthing-linux-amd64-v0.14.23.tar.gz

Sonuç aşağıdaki gibi olacaktır:

root@web:~# wget https://github.com/syncthing/syncthing/releases/download/v0.14.23/syncthing-linux-amd64-v0.14.23.tar.gz
--2017-02-10 11:54:36--  https://github.com/syncthing/syncthing/releases/download/v0.14.23/syncthing-linux-amd64-v0.14.23.tar.gz
Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113
Connecting to github.com (github.com)|192.30.253.112|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6146921 (5.9M) [application/octet-stream]
Saving to: 'syncthing-linux-amd64-v0.14.23.tar.gz'

syncthing-linux-amd 100%[===================>]   5.86M  4.17MB/s    in 1.4s

2017-02-10 11:54:38 (4.17 MB/s) - 'syncthing-linux-amd64-v0.14.23.tar.gz' saved [6146921/6146921]

root@web:~#

tar ile sıkıştırılmış dosyayı açalım

tar xzvf syncthing*.tar.gz

Sonuç aşağıdaki gibi olacaktır:

root@web:~# tar xzvf syncthing*.tar.gz
syncthing-linux-amd64-v0.14.23/
syncthing-linux-amd64-v0.14.23/syncthing
syncthing-linux-amd64-v0.14.23/LICENSE.txt
syncthing-linux-amd64-v0.14.23/etc/
syncthing-linux-amd64-v0.14.23/etc/README.md
syncthing-linux-amd64-v0.14.23/etc/linux-systemd/
syncthing-linux-amd64-v0.14.23/etc/linux-systemd/README.md
syncthing-linux-amd64-v0.14.23/etc/linux-systemd/system/
syncthing-linux-amd64-v0.14.23/etc/linux-systemd/system/syncthing-resume.service
syncthing-linux-amd64-v0.14.23/etc/linux-systemd/system/[email protected]
syncthing-linux-amd64-v0.14.23/etc/linux-systemd/user/
syncthing-linux-amd64-v0.14.23/etc/linux-systemd/user/syncthing.service
syncthing-linux-amd64-v0.14.23/etc/firewall-ufw/
syncthing-linux-amd64-v0.14.23/etc/firewall-ufw/syncthing
syncthing-linux-amd64-v0.14.23/etc/firewall-ufw/README.md
syncthing-linux-amd64-v0.14.23/etc/linux-runit/
syncthing-linux-amd64-v0.14.23/etc/linux-runit/README.md
syncthing-linux-amd64-v0.14.23/etc/linux-runit/run
syncthing-linux-amd64-v0.14.23/etc/linux-runit/log/
syncthing-linux-amd64-v0.14.23/etc/linux-runit/log/run
syncthing-linux-amd64-v0.14.23/etc/linux-upstart/
syncthing-linux-amd64-v0.14.23/etc/linux-upstart/README.md
syncthing-linux-amd64-v0.14.23/etc/linux-upstart/system/
syncthing-linux-amd64-v0.14.23/etc/linux-upstart/system/syncthing.conf
syncthing-linux-amd64-v0.14.23/etc/linux-upstart/user/
syncthing-linux-amd64-v0.14.23/etc/linux-upstart/user/syncthing.conf
syncthing-linux-amd64-v0.14.23/etc/solaris-smf/
syncthing-linux-amd64-v0.14.23/etc/solaris-smf/README.md
syncthing-linux-amd64-v0.14.23/etc/solaris-smf/syncthing.xml
syncthing-linux-amd64-v0.14.23/etc/macosx-launchd/
syncthing-linux-amd64-v0.14.23/etc/macosx-launchd/README.md
syncthing-linux-amd64-v0.14.23/etc/macosx-launchd/syncthing.plist
syncthing-linux-amd64-v0.14.23/.metadata/
syncthing-linux-amd64-v0.14.23/.metadata/release.sig
syncthing-linux-amd64-v0.14.23/syncthing.sig
syncthing-linux-amd64-v0.14.23/README.txt
syncthing-linux-amd64-v0.14.23/AUTHORS.txt
syncthing-linux-amd64-v0.14.23/extra/
syncthing-linux-amd64-v0.14.23/extra/Getting-Started.pdf
syncthing-linux-amd64-v0.14.23/extra/FAQ.pdf
root@web:~#

SyncThing klasörüne girelim

cd syncthing*

Sonuç aşağıdaki gibi olacaktır:

root@web:~# cd syncthing*
root@web:~/syncthing-linux-amd64-v0.14.23#

Programı, uygulamalar klasörüne kopyalayalım

cp syncthing /usr/local/bin

Sonuç aşağıdaki gibi olacaktır:

root@web:~/syncthing-linux-amd64-v0.14.23#  cp syncthing /usr/local/bin
root@web:~/syncthing-linux-amd64-v0.14.23#

Bir üst klasöre geri gelip, kurulum dosyalarını silelim

cd ~
rm -rf syncthing*

Sonuç aşağıdaki gibi olacaktır:

root@web:~/syncthing-linux-amd64-v0.14.23# cd ~
root@web:~# rm -rf syncthing*
root@web:~#

Kurulum tamamlamış olduk. Gördüğünüz gibi çok basit bir kurulum mekanizmasına sahip.



SyncThing Ayarları

Öncelikle SyncThing çalıştıralım

syncthing

Sonuç aşağıdaki gibi olacaktır:

root@web:~# syncthing
[monitor] 12:35:55 INFO: Starting syncthing
[start] 12:35:55 INFO: Generating ECDSA key and certificate for syncthing...
[QL72E] 12:35:55 INFO: syncthing v0.14.23 "Dysprosium Dragonfly" (go1.8rc3 linu-amd64) [email protected] 2017-02-07 20:25:33 UTC
[QL72E] 12:35:55 INFO: My ID: QL72EHR-Z73JE6L-DNTMNMR-I2KG6NU-X5VNFCU-PTTM7KV-7FM6GH-PLUISQ4

SyncThing ilk çalıştırılmada size ID oluşturacaktır.

CTRL+C tuş kombinasyonu ile programı durduralım.

[QL72E] 12:35:57 INFO: Device QL72EHR-Z73JE6L-DNTMNMR-I2KG6NU-X5VNFCU-PTTM7KV-7FM6GH-PLUISQ4 is "web" at [dynamic]
[QL72E] 12:35:58 INFO: Detected 0 NAT devices
^C[monitor] 12:36:00 INFO: Signal 2 received; exiting
root@web:~#

config.xml dosyasını düzenleyelim

nano ~/.config/syncthing/config.xml

Dosya içinde aşağıdaki satırları bulalım

<gui enabled="true" tls="false" debugging="false">
    <address>127.0.0.1:8384</address>
    <apikey>dKnWV2hR3xbhhZrbrcQ9x6THcqmGxAjf</apikey>
    <theme>default</theme>
</gui>
Syncthing Server Edit

127.0.0.1:8384 olarak değeri 0.0.0.0:8384 olarak değiştirelim. SyncThing tüm ip adresleri için 8384 portunu dinleyerek arayüze erişmemizi sağlayacaktır.

Syncthing Server Listen

CTRL+X ile çıkış isteyip, Y ve Enter tuşları ile değişiklikleri kaydedelim.

Syncthing Server Save

Daha sonrasında SyncThing çalıştıralım

syncthing
root@web:~# syncthing
[monitor] 12:43:24 INFO: Starting syncthing
[QL72E] 12:43:24 INFO: syncthing v0.14.23 "Dysprosium Dragonfly" (go1.8rc3 linu x-amd64) [email protected] 2017-02-07 20:25:33 UTC
[QL72E] 12:43:24 INFO: My ID: QL72EHR-Z73JE6L-DNTMNMR-I2KG6NU-X5VNFCU-PTTM7KV-7 EFM6GH-PLUISQ4
[QL72E] 12:43:24 INFO: Single thread SHA256 performance is 244 MB/s using crypt o/sha256 (239 MB/s using minio/sha256-simd).

X simgesine tıklayarak bağlantıyı sonlandırın. SyncThing arkaplanda çalışmaya devam edecektir.

Syncthing Server Start


SyncThing GUI Ayarları

http://sunucuipadresi:8384 adresine giriş yapalım. Kendi sunucunuzun IP adresi ve hostname yazmayı unutmayın.

Giriş yaptığınızda “The Syncthing admin interface is configured to allow remote access without a password. This can easily give hackers access to read and change any files on your computer. Please set a GUI Authentication User and Password in the Settings dialog.” uyarısı ile karşılaşacaksınız.

Syncthing Danger

Bu hatanın sebebi GUI için herhangi bir oturum açma şifresi belirlenmemiş olmasından dolayıdır.

Settings tıklayarak gerekli ayarlamaları yapabiliriz.

Device Name, Node isminiz.
GUI Authentication User, kullanıcı adı.
GUI Authentication Password, kullanıcı şifresi.

Ayarlarınızı tamamladıktan sonra Save ile kaydedin.

Syncthing This Device

kısmında yer alan Default Folder isterseniz silebilirsiniz. Edit tıklayından sonra Remove tıklayabilirsiniz.

Syncthing Folder Label


SyncThing Node Ekleme ve Paylaşım

Sıra geldi eşleştirme ayarları için başka bir Node eklemeye. Sağ altta yer alan Remote Devices kısmından Add Remove Device tıklayın.

Syncthing Remove Devices

Diğer Node sunucuna bağlanıp, sağ üstte yer alan Actions menüsünden, Show ID seçeneğine tıklayın.

Syncthing Actions

Eşleme yapılacak olan Node ID sini göreceksiniz.

Syncthing Device Identification

ID kopyalayıp, diğer Node ekranına dönün.

En üstte yer alan Device ID kısmına kopyaladığınız ID yazın. Device Name olarak da hatırlatıcı bir isim girin. Daha sonra Save seçeneği ile kaydedin.

Syncthing Add Device

Ekleme talebinde bulunduğunuz Node, eklenme talebinde bulunduğunuz Node ile ID üzerinden iletişim kuracaktır ve paylaşım için sizden yetki isteyecektir.

Syncthing New Device

Add Device ile eşleştirmeyi onaylayalım ve Save ile kayıt edelim.

Syncthing Device Name

Cihazlarımızı eşleştirme işlemini başarı ile tamamlamış bulunuyoruz. Şimdi sıra geldi klasör ve dosya paylaşımı için iletişim kurmaya.

Folders altında yer alan Add Folder seçeneğine tıklayalım.

Syncthing Folders

Folder Label paylaşmak istediğimiz klasörün tanımı. Belirleyici bir isim girebilirsiniz. Folder ID sistem tarafından otomatik atanacaktır. Folder Path paylaşmak istediğiniz klasörün tam yolunu gösterecektir. Share With Devices paylaşmak istediğiniz cihazları. Gerekli düzenlemeleri yaptıktan sonra Save tıklayarak paylaşımı başlatabilirsiniz.

Folder Labels

SyncThing kısa bir süre dosya ve klasörleri taradıktan sonra, Node ile iletişime geçecektir. İletişim tamamlandıktan sonra, paylaşım isteğinin olduğuna dair bir uyarı karşınızda çıkacaktır. Add diyerek isteği kabul ediyoruz.

New Folder

Folder Path kısmına kaydetmek istediğimiz klasörü belirterek Save seçeneğine tıklıyoruz.

Add Folder

Kısa bir süre sonra, tüm dosya ve klasörleriniz eşitlenecektir.

Syncing

Eşitleme işlemi bittikten sonra, aynı dosya ve klasörleriniz bire bir kopyasına sahip olacaksınız. Eşleştirme ve paylaşım yaptığınız tüm cihazlarınızda ortak ve eş zamanlı çalışma imkanızı bu şekilde sağlamış oldunuz.

Herhangi bir dosya üzerinden yaptığınız herhangi bir değişiklik, SyncThing client çalıştığı sürece tüm cihazlarınızda eşitlenmiş olacaktır.



SyncThing GUI

SyncThing herhangi bir eşitleme yapmazken, GUI incelediğinizde üç farklı bölümden oluştuğunu görüyoruz.

Synced

Sol tarafta yer alan Folders kısmı, paylaşım yaptığımız klasörleri gösteriyor. Sağ üstte yer alan This Device bölümü anlık olarak indirme, yükleme hızımızı, toplam paylaşılan dosya boyutunu, RAM ve CPU kullanımını, çalışma süresini, sürüm bilgisini ve bağlı olduğumuz relay sunucuları hakkında bilgi vermektedir. Remote Devices kısmında ise, eşleme yaptığımız tüm cihazları görebilirsiniz, isterseniz yenilerini buradan ekleyebilirsiniz.

Konu ile ilgili herhangi bir sorunuz ve sorununuz olursa seve seve yardımcı olmaya hazırım. Bir sonraki makalemde görüşmek üzere.

Yorum yapın