Tropic Host

Syncthing: რა არის და როგორ მოვაწყოთ ფაილების სინქრონიზაცია VPS-ზე

1 წაკითხვის წთ
Tropic
Syncthing: რა არის და როგორ მოვაწყოთ ფაილების სინქრონიზაცია VPS-ზე

Language: ka

Syncthing: ფაილების სინქრონიზაცია მოწყობილობებს შორის სხვისი ღრუბლის გარეშე

დილით ლეპტოპზე დოკუმენტს ასწორებთ და კომპიუტერს თიშავთ. საღამოს სახლის კომპიუტერს ხსნით — უახლესი ვერსია უკვე იქ არის. ფაილი Google Drive-სა და Dropbox-ში არ გასულა: ის თქვენმა Syncthing კვანძმა მიიღო.

Syncthing სანდო მოწყობილობებს შორის არჩეულ საქაღალდეებს პირდაპირ ასინქრონიზებს, ხოლო მონაცემების შენახვის ადგილის კონტროლი თქვენ გრჩებათ. ცენტრალური სერვერი სავალდებულო არ არის.

თუმცა, თუ ორი კომპიუტერი იშვიათად არის ონლაინ ერთდროულად, ცვლილებების გაცვლა რთულდება. მუდმივად ჩართული VPS ამ პრობლემას აგვარებს: ის ფაილებს ერთი მოწყობილობიდან იღებს და მოგვიანებით მეორეს გადასცემს.

მნიშვნელოვანია გაიგოთ, რისთვის არის შექმნილი Syncthing. ეს არ არის ქსელური დისკი ან ბრაუზერზე დაფუძნებული ფაილების მენეჯერი — ის არჩეული საქაღალდეების ავტომატური რეპლიკაციის ინსტრუმენტია.

Syncthing ხუთ ნაბიჯში

მინიმალური კონფიგურაცია ასე გამოიყურება:

  1. დააინსტალირეთ Syncthing საჭირო კომპიუტერებზე.
  2. გაუშვით Syncthing-ის კიდევ ერთი ინსტანცია VPS-ზე.
  3. გახსენით სერვერის მართვის პანელი SSH გვირაბით.
  4. გაცვალეთ მოწყობილობების იდენტიფიკატორები და დაამტკიცეთ კავშირი.
  5. დაამატეთ გაზიარებული საქაღალდე, აირჩიეთ სინქრონიზაციის რეჟიმი და ჩართეთ ფაილების ვერსიირება.

რა არის Syncthing და როგორ მუშაობს

Syncthing ფაილების უწყვეტი სინქრონიზაციისთვის განკუთვნილი უფასო, ღია კოდის პროგრამაა. ის მუშაობს Windows-ზე, macOS-ზე, Linux-ზე და სხვა დესკტოპისა და სერვერულ ოპერაციულ სისტემებზე.

ყოველი ინსტალაცია იღებს უნიკალურ Device ID-ს — კრიპტოგრაფიულ იდენტიფიკატორს. სანამ ორი კვანძი მონაცემებს გაცვლის, ისინი ერთმანეთის სიაში უნდა დაამატოთ და კონკრეტულ საქაღალდეზე წვდომა ცალსახად მიანიჭოთ. არ არსებობს ერთი Syncthing ანგარიში, რომელიც თქვენს მოწყობილობებსა და ფაილებს ინახავს.

ფაილის შეცვლისას Syncthing მას ბლოკებად ყოფს, checksum-ებს ადარებს და მხოლოდ დაკარგულ ნაწილებს გადასცემს. ამიტომ დიდი ფაილის მცირე ცვლილება ყოველთვის არ მოითხოვს მთელი ფაილის ხელახლა გაგზავნას.

Discovery სერვისები მოწყობილობებს ერთმანეთის პოვნაში ეხმარება, მაგრამ ფაილებს არ ინახავს. თუ პირდაპირი კავშირი შეუძლებელია, დაშიფრული ტრაფიკი უფრო ნელი relay-ის გავლით შეიძლება გადავიდეს.

რას ცვლის VPS

სერვერის გარეშე ლეპტოპს სახლის კომპიუტერთან პირდაპირი სინქრონიზაცია შეუძლია, მაგრამ ორივე მოწყობილობა ერთდროულად ონლაინ უნდა იყოს, თუნდაც მცირე ხნით. VPS კონფიგურაციას მუდმივად ხელმისაწვდომ გაცვლის წერტილად აქცევს.

მაგალითად, ლეპტოპი დილით პროექტს სერვერზე ტვირთავს და შემდეგ ითიშება. საღამოს სახლის კომპიუტერი ახალ ვერსიას VPS-იდან ჩამოტვირთავს.

Syncthing კარგად მუშაობს დოკუმენტებისთვის, Obsidian-ის ჩანაწერებისთვის, საწყისი კოდისთვის, ფოტოებისა და საოჯახო საქაღალდეებისთვის. ქეშები, node_modules და build-ის შედეგები უმჯობესია გამორიცხოთ .stignore-ით. აქტიური მონაცემთა ბაზები და ვირტუალური მანქანების სურათები არ უნდა დაასინქრონიზოთ.

VPS ქმნის თქვენი მონაცემების ასლს სახლის გარეთაც. თუმცა ეს ასლი ნამდვილ ბექაფად მხოლოდ ვერსიირებასა და ცალკე სარეზერვო არქივთან ერთად იქცევა: შემთხვევითი წაშლა ყველა მოწყობილობაზეც შეიძლება გავრცელდეს.

Syncthing თუ Nextcloud: რომელი ავირჩიოთ?

ამ ორ ინსტრუმენტს ხშირად ადარებენ, მიუხედავად იმისა, რომ ისინი სხვადასხვა ამოცანას ასრულებენ.

კრიტერიუმიSyncthingNextcloud
მოდელისაქაღალდეები მოწყობილობებს შორის კოპირდებაფაილები ცენტრალურ სერვერზე ინახება
სერვერი საჭიროაარა, VPS არჩევითიადიახ
ბრაუზერიდან ფაილებზე წვდომასრულფასოვანი ვებ-დისკი არადიახ
საჯარო ბმულებიარადიახ
ერთობლივი რედაქტირებაარ არისდამატება შესაძლებელია
საუკეთესო გამოყენებაერთნაირი საქაღალდეები თქვენს მოწყობილობებზეპირადი ან გუნდური ღრუბელი

Syncthing აირჩიეთ შეუმჩნეველი ფონური სინქრონიზაციისთვის. Nextcloud აირჩიეთ მაშინ, როცა გჭირდებათ ვებ-წვდომა, გასაზიარებელი ბმულები, მომხმარებლის ანგარიშები, კალენდარი და ერთობლივი მუშაობის ფუნქციები.

Syncthing-ის ინსტალაცია VPS-ზე Docker Compose-ით

ქვემოთ მოცემული ნაბიჯები Ubuntu 24.04-ზე მომუშავე VPS-ისთვისაა. მართვის პანელი სერვერის ლოკალურ მისამართზე დარჩება და მას SSH გვირაბით დაუკავშირდებით.

1. დააინსტალირეთ Docker

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

2. შექმენით საქაღალდე და Compose ფაილი

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

ჩასვით შემდეგი:

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

ეს კონფიგურაცია Syncthing-ის ოფიციალურ image-ს იყენებს. host ქსელური რეჟიმი პირდაპირ კავშირებს ამარტივებს, ხოლო ცარიელი STGUIADDRESS მნიშვნელობა მართვის პანელს 127.0.0.1:8384-ზე ტოვებს.

გაუშვით კონტეინერი:

sudo docker compose up -d
sudo docker compose ps

3. დაუშვით სინქრონიზაციის კავშირები

ჯერ დაუშვით SSH, რათა სერვერზე წვდომა არ დაკარგოთ:

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

22000/TCP ძირითად სინქრონიზაციის პროტოკოლს იყენებს, ხოლო 22000/UDP — QUIC-ს. მართვის პანელის პორტის 8384 გამოჩენა საჭირო არ არის. ლოკალური discovery პორტი 21027/UDP საჯარო VPS-ზე, როგორც წესი, ზედმეტია.

4. გახსენით მართვის პანელი SSH-ით

შემდეგი ბრძანება თქვენს კომპიუტერზე გაუშვით:

ssh -L 9999:127.0.0.1:8384 root@SERVER_IP

ტერმინალი ღია დატოვეთ და ეწვიეთ:

http://127.0.0.1:9999

მართვის პანელის გახსნის შემდეგ გადადით Actions → Settings → GUI-ში და დააყენეთ მომხმარებლის სახელი და პაროლი. თუ მოგვიანებით პანელზე დომენით წვდომა დაგჭირდებათ, განათავსეთ ის HTTPS reverse proxy-ის უკან და ავტორიზაცია ჩართული დატოვეთ.

5. დაამატეთ მოწყობილობები და საქაღალდე

დააინსტალირეთ Syncthing კომპიუტერზე, შემდეგ:

  1. კომპიუტერზეც და VPS-ზეც აირჩიეთ Actions → Show ID.
  2. თითოეული კვანძის Device ID მეორე მოწყობილობას დაამატეთ.
  3. კომპიუტერზე დააწკაპუნეთ Add Folder-ზე, აირჩიეთ საქაღალდე და გაუზიარეთ სერვერს.
  4. VPS-ზე მიიღეთ საქაღალდე და აირჩიეთ გზა, მაგალითად /var/syncthing/Files.

ორმხრივი სინქრონიზაციისთვის კომპიუტერებზე Send & Receive ჩართული დატოვეთ. VPS-ზე ხშირად მოსახერხებელია Receive Only: სერვერი კვანძებს შორის ცვლილებების მიღებასა და გადაგზავნას გააგრძელებს, მაგრამ თავად VPS-ზე შემთხვევით გაკეთებული ადგილობრივი ცვლილება მთელ ქსელში არ გავრცელდება.

რატომ ვერ ცვლის Syncthing ბექაფს

თუ ერთ მოწყობილობაზე ფაილი წაიშალა ან დაიშიფრა, ცვლილება სხვებზეც შეიძლება გავრცელდეს. ამიტომ VPS-ზე საქაღალდის პარამეტრები გახსენით და File Versioning ჩართეთ.

პრაქტიკული არჩევანია Staggered File Versioning 30–90-დღიანი შენახვის ვადით. როცა დისტანციური კვანძი ფაილს ცვლის ან შლის, წინა ვერსია .stversions-ში გადადის. ძველი ასლები დისკის ადგილს იკავებს, ამიტომ შენახვის ლიმიტი დააყენეთ.

სანდო კონფიგურაციას სამი ფენა აქვს:

  1. Syncthing სამუშაო ასლებს აქტუალურ მდგომარეობაში ინარჩუნებს.
  2. ვერსიირება ზოგიერთი შეცდომის გაუქმებაში გეხმარებათ.
  3. ცალკე დაგეგმილი ბექაფი Syncthing-ისგან დამოუკიდებლად ინახება.

შეუძლია VPS-ს ფაილების შენახვა მათი შიგთავსის ნახვის გარეშე?

Syncthing-ს აქვს არასანდო მოწყობილობის რეჟიმი. მთავარ კომპიუტერზე საქაღალდისთვის პაროლი დააყენეთ, ხოლო VPS-ზე აირჩიეთ Receive Encrypted. სერვერი დაშიფრულ მონაცემებს შეინახავს და მათ იმავე პაროლის მქონე სხვა სანდო მოწყობილობას გადასცემს.

შიგთავსი, ფაილების სახელები, დროის ნიშნულები და დირექტორიების სტრუქტურა დამალულია. გაზიარებული საქაღალდისა და ფაილების დაახლოებით ზომების შესახებ ინფორმაცია ხილული რჩება.

დეველოპერები ამ ფუნქციას ჯერ კიდევ ექსპერიმენტულად მიიჩნევენ. პაროლი და Folder ID ცალ-ცალკე შეინახეთ: მათ გარეშე დაშიფრული საქაღალდის აღდგენა შეიძლება შეუძლებელი გახდეს.

როგორი VPS სჭირდება Syncthing-ს?

რესურსების გამოყენება მხოლოდ მონაცემების მოცულობაზე არ არის დამოკიდებული — მნიშვნელობა აქვს ფაილების რაოდენობას, ცვლილებების სიხშირესა და საწყის ინდექსირებასაც. დოკუმენტებისა და რამდენიმე ათეული გიგაბაიტის მქონე პირადი კვანძისთვის, ჩვეულებრივ, ასეთი საწყისი კონფიგურაცია საკმარისია:

  • 1 vCPU;
  • 1 GB RAM;
  • SSD ან NVMe საცავი;
  • საკმარისი ადგილი ფაილებისა და .stversions-ისთვის;
  • სტაბილური ქსელური კავშირი.

დიდ ფოტოარქივს ან ასიათასობით ფაილს მეტი რესურსი დასჭირდება. ყველაზე მაღალი დატვირთვა, როგორც წესი, პირველი სკანირებისა და checksum-ების დათვლისას ჩნდება.

ამ ამოცანისთვის tropic.host-ის საბაზისო Ubuntu VPS გამოდგება. დაიწყეთ მცირე კონფიგურაციით და რესურსები კოლექციის ზრდასთან ერთად გაზარდეთ. დისკის მოცულობის არჩევისას გაითვალისწინეთ არა მხოლოდ მიმდინარე საქაღალდეები, არამედ მომავალი ფაილები, დროებითი მონაცემები და ვერსიების ისტორიაც.

ხუთი შეცდომა, რომელსაც უნდა მოერიდოთ

  • პორტი 8384 მთელ ინტერნეტზე გამოაჩინოთ. დასაყენებლად SSH გვირაბი გამოიყენეთ. მუდმივი ვებ-წვდომისთვის გამოიყენეთ HTTPS, პაროლი და reverse proxy.
  • სერვერზე არსებული ასლი სრულ ბექაფად ჩათვალოთ. ჩართეთ ვერსიირება და შექმენით ცალკე სარეზერვო არქივები.
  • ქეშებისა და დამოკიდებულებების სინქრონიზაცია მოახდინოთ. არასაჭირო დირექტორიები .stignore-ით გამორიცხეთ.
  • დისკის გამოყენება უგულებელყოთ. .stversions დირექტორია დროთა განმავლობაში მნიშვნელოვნად შეიძლება გაიზარდოს.
  • დაკარგული მოწყობილობა სანდოდ დატოვოთ. ის სხვა კვანძებიდან წაშალეთ და დაიცავით Syncthing-ის კონფიგურაცია, რომელიც მოწყობილობის გასაღებებს შეიცავს.

რა უნდა იცოდეთ სმარტფონების შესახებ

ოფიციალური Android აპი 2024 წლის ბოლოს შეწყდა, თუმცა საზოგადოებრივი კლიენტები ხელმისაწვდომია. ოფიციალური iOS კლიენტიც არ არსებობს: ფონური შესრულების შეზღუდვები უწყვეტ სინქრონიზაციას ართულებს. მთავარი ფოტოარქივის შეერთებამდე არჩეული მობილური აპი პატარა საქაღალდით გამოცადეთ.

დასკვნა

Syncthing შესაფერისია მათთვის, ვისაც ერთნაირი საქაღალდეები რამდენიმე მოწყობილობაზე სურს და სავალდებულო ღრუბელზე დამოკიდებულება არ უნდა. VPS სისტემას უფრო მოსახერხებელს ხდის: კომპიუტერებს ერთდროულად ონლაინ ყოფნა აღარ სჭირდებათ და სახლის გარეთ მუდმივად ხელმისაწვდომ ასლს იღებთ.

უსაფრთხო კონფიგურაციისთვის ადმინისტრაციული პანელი პირდაპირ არ გამოაჩინოთ, ჩართეთ ვერსიირება და სინქრონიზაციას დამოუკიდებელი ბექაფი დაუმატეთ.

FAQ

Syncthing-სთვის VPS მჭირდება?

არა. მოწყობილობებს პირდაპირი სინქრონიზაცია შეუძლიათ. VPS მუდმივად ჩართული კვანძის როლს ასრულებს და მათ სხვადასხვა დროს მომხდარი ცვლილებების გაცვლის საშუალებას აძლევს.

შემიძლია Syncthing-ის ფაილები ბრაუზერში გავხსნა?

ვებ-პანელი კონფიგურაციისთვისაა განკუთვნილი და არა დოკუმენტების Google Drive-ის მსგავსად დასათვალიერებლად. თუ ვებ-დისკი გჭირდებათ, Nextcloud უკეთესი არჩევანია.

არის Syncthing ბექაფის გადაწყვეტა?

არა. წაშლა და დაზიანება სხვა მოწყობილობებზეც შეიძლება გავრცელდეს. ვერსიირება გეხმარებათ, მაგრამ დამოუკიდებელ ბექაფს ვერ ცვლის.

საჭიროა 8384 პორტის გახსნა?

არა. პანელი 127.0.0.1:8384-ზე დატოვეთ და SSH გვირაბით დაუკავშირდით. სინქრონიზაციისთვის გახსენით 22000/TCP და 22000/UDP.

შეუძლია VPS-ის მფლობელს ფაილების წაკითხვა?

სტანდარტული კონფიგურაციისას — პოტენციურად კი. Receive Encrypted მათ დაშიფრულად ინახავს, თუმცა ეს ფუნქცია ჯერ ექსპერიმენტულია და პაროლი და Folder ID უსაფრთხოდ უნდა შეინახოთ.