Syncthing: यह क्या है और VPS पर फ़ाइल सिंक्रोनाइज़ेशन कैसे सेट करें

1 मिनट पढ़ा
Tropic
Syncthing: यह क्या है और VPS पर फ़ाइल सिंक्रोनाइज़ेशन कैसे सेट करें

Language: hi

Syncthing: किसी दूसरे के क्लाउड के बिना डिवाइसों के बीच फ़ाइलें सिंक्रोनाइज़ करें

सुबह लैपटॉप पर दस्तावेज़ संपादित करके उसे बंद कर देते हैं। शाम को घर का कंप्यूटर खोलते हैं और नवीनतम संस्करण पहले से वहाँ मौजूद होता है। फ़ाइल कभी Google Drive या Dropbox से होकर नहीं गई: उसे आपके अपने Syncthing नोड ने प्राप्त किया।

Syncthing चुने हुए फ़ोल्डरों को विश्वसनीय डिवाइसों के बीच सीधे सिंक्रोनाइज़ करता है, जबकि डेटा कहाँ रखा जाए इसका नियंत्रण आपके पास रहता है। केंद्रीय सर्वर आवश्यक नहीं है।

लेकिन अगर दो कंप्यूटर एक ही समय पर बहुत कम ऑनलाइन रहते हैं, तो बदलावों का आदान-प्रदान कठिन हो जाता है। हमेशा चालू रहने वाला VPS इस समस्या को हल करता है: वह एक डिवाइस से फ़ाइलें प्राप्त करता है और बाद में उन्हें दूसरे डिवाइस तक पहुँचा देता है।

यह समझना महत्वपूर्ण है कि Syncthing किस काम के लिए बनाया गया है। यह नेटवर्क ड्राइव या ब्राउज़र आधारित फ़ाइल मैनेजर नहीं, बल्कि चुने हुए फ़ोल्डरों की स्वचालित प्रतिकृति बनाने वाला टूल है।

पाँच चरणों में Syncthing

न्यूनतम सेटअप इस तरह दिखता है:

  1. जिन कंप्यूटरों की आवश्यकता है उन पर Syncthing इंस्टॉल करें।
  2. VPS पर Syncthing का एक और इंस्टेंस चलाएँ।
  3. SSH टनल के ज़रिए सर्वर डैशबोर्ड खोलें।
  4. डिवाइस पहचानकर्ता साझा करें और कनेक्शन को स्वीकृत करें।
  5. साझा फ़ोल्डर जोड़ें, सिंक्रोनाइज़ेशन मोड चुनें और फ़ाइल वर्ज़निंग सक्षम करें।

Syncthing क्या है और यह कैसे काम करता है

Syncthing लगातार फ़ाइल सिंक्रोनाइज़ेशन के लिए मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर है। यह Windows, macOS, Linux और अन्य डेस्कटॉप तथा सर्वर ऑपरेटिंग सिस्टम पर चलता है।

हर इंस्टॉलेशन को एक विशिष्ट Device ID — क्रिप्टोग्राफ़िक पहचानकर्ता — मिलता है। दो नोड डेटा का आदान-प्रदान करने से पहले आपको उन्हें एक-दूसरे में जोड़ना और किसी विशिष्ट फ़ोल्डर की पहुँच स्पष्ट रूप से देना होता है। ऐसा कोई एक Syncthing खाता नहीं है जिसमें आपके डिवाइस और फ़ाइलें संग्रहीत हों।

फ़ाइल बदलने पर Syncthing उसे ब्लॉक में बाँटता है, चेकसम की तुलना करता है और केवल गायब हिस्से भेजता है। इसलिए बड़ी फ़ाइल के अंदर छोटा संपादन करने पर हर बार पूरी फ़ाइल भेजना आवश्यक नहीं होता।

डिस्कवरी सेवाएँ डिवाइसों को एक-दूसरे को खोजने में मदद करती हैं, लेकिन फ़ाइलें संग्रहीत नहीं करतीं। अगर सीधा कनेक्शन संभव न हो, तो एन्क्रिप्टेड ट्रैफ़िक धीमे रिले से होकर जा सकता है।

VPS क्या बदलता है

सर्वर के बिना लैपटॉप घर के कंप्यूटर से सीधे सिंक्रोनाइज़ हो सकता है, लेकिन दोनों डिवाइसों को कम समय के लिए ही सही, एक साथ ऑनलाइन रहना होगा। VPS इस सेटअप को हमेशा उपलब्ध एक्सचेंज पॉइंट में बदल देता है।

उदाहरण के लिए, सुबह लैपटॉप किसी प्रोजेक्ट को सर्वर पर अपलोड करता है और फिर बंद हो जाता है। शाम को घर का कंप्यूटर VPS से नया संस्करण डाउनलोड कर लेता है।

Syncthing दस्तावेज़ों, Obsidian नोट्स, सोर्स कोड, फ़ोटो और पारिवारिक फ़ोल्डरों के लिए अच्छी तरह काम करता है। कैश, node_modules और बिल्ड आउटपुट को .stignore से बाहर रखना बेहतर है। सक्रिय डेटाबेस और वर्चुअल मशीन इमेज को सिंक्रोनाइज़ नहीं करना चाहिए।

VPS आपके डेटा की एक कॉपी घर से बाहर भी बनाता है। लेकिन यह कॉपी तभी सही बैकअप बनती है जब इसके साथ वर्ज़निंग और अलग बैकअप आर्काइव भी हो: गलती से किया गया डिलीट हर डिवाइस तक पहुँच सकता है।

Syncthing या Nextcloud: किसे चुनना चाहिए?

दोनों टूल की तुलना अक्सर की जाती है, हालांकि वे अलग समस्याएँ हल करते हैं।

मानदंडSyncthingNextcloud
मॉडलफ़ोल्डर डिवाइसों के बीच कॉपी किए जाते हैंफ़ाइलें केंद्रीय सर्वर पर संग्रहीत होती हैं
सर्वर आवश्यकनहीं, VPS वैकल्पिक हैहाँ
ब्राउज़र से फ़ाइल एक्सेसपूर्ण वेब ड्राइव नहींहाँ
सार्वजनिक लिंकनहींहाँ
सहयोगात्मक संपादनउपलब्ध नहींजोड़ा जा सकता है
सबसे अच्छा उपयोगअपने डिवाइसों पर समान फ़ोल्डर रखनानिजी या टीम क्लाउड

पृष्ठभूमि में बिना बाधा चलने वाला सिंक्रोनाइज़ेशन चाहिए तो Syncthing चुनें। वेब एक्सेस, साझा करने योग्य लिंक, उपयोगकर्ता खाते, कैलेंडर और सहयोग सुविधाएँ चाहिए तो Nextcloud बेहतर है।

Docker Compose के साथ VPS पर Syncthing कैसे इंस्टॉल करें

नीचे दिए गए चरण 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 इमेज का उपयोग करता है। 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 और QUIC के लिए 22000/UDP उपयोग होता है। डैशबोर्ड पोर्ट 8384 को सार्वजनिक करने की आवश्यकता नहीं है। स्थानीय डिस्कवरी पोर्ट 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 रिवर्स प्रॉक्सी के पीछे रखें और प्रमाणीकरण सक्षम रखें।

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 सक्षम करें।

व्यावहारिक विकल्प के रूप में 30–90 दिनों की रिटेंशन अवधि वाला Staggered File Versioning चुना जा सकता है। जब कोई दूरस्थ नोड फ़ाइल बदलता या हटाता है, तो पिछला संस्करण .stversions में चला जाता है। पुरानी कॉपियाँ डिस्क की जगह लेती हैं, इसलिए रिटेंशन सीमा तय करें।

विश्वसनीय सेटअप की तीन परतें होती हैं:

  1. Syncthing काम करने वाली कॉपियों को अद्यतन रखता है।
  2. वर्ज़निंग कुछ गलतियों को वापस लेने में मदद करती है।
  3. Syncthing से स्वतंत्र एक अलग शेड्यूल्ड बैकअप रखा जाता है।

क्या VPS फ़ाइलों की सामग्री देखे बिना उन्हें रख सकता है?

Syncthing में untrusted device मोड शामिल है। मुख्य कंप्यूटर पर फ़ोल्डर के लिए पासवर्ड सेट करें और VPS पर Receive Encrypted चुनें। सर्वर एन्क्रिप्टेड डेटा संग्रहीत कर सकता है और उसी पासवर्ड का उपयोग करने वाले किसी अन्य विश्वसनीय डिवाइस तक पहुँचा सकता है।

सामग्री, फ़ाइल नाम, टाइमस्टैम्प और डायरेक्टरी संरचना छिपी रहती है। साझा फ़ोल्डर और अनुमानित फ़ाइल आकार के बारे में जानकारी दिखाई देती रहती है।

डेवलपर अभी भी इस सुविधा को प्रयोगात्मक मानते हैं। पासवर्ड और Folder ID को अलग-अलग सुरक्षित रखें: इनके बिना एन्क्रिप्टेड फ़ोल्डर को पुनर्प्राप्त करना असंभव हो सकता है।

Syncthing को किस तरह का VPS चाहिए?

संसाधनों का उपयोग केवल डेटा की मात्रा पर नहीं, बल्कि फ़ाइलों की संख्या, उनके बदलने की आवृत्ति और शुरुआती इंडेक्सिंग प्रक्रिया पर भी निर्भर करता है। दस्तावेज़ों और कुछ दर्जन गीगाबाइट डेटा वाले निजी नोड के लिए आम तौर पर यह शुरुआती कॉन्फ़िगरेशन पर्याप्त है:

  • 1 vCPU;
  • 1 GB RAM;
  • SSD या NVMe स्टोरेज;
  • फ़ाइलों और .stversions के लिए पर्याप्त डिस्क स्पेस;
  • स्थिर नेटवर्क कनेक्शन।

बड़ी फ़ोटो लाइब्रेरी या सैकड़ों हज़ार फ़ाइलों के लिए अधिक संसाधन चाहिए होंगे। सबसे अधिक लोड आम तौर पर पहले स्कैन और चेकसम गणना के समय होता है।

इस काम के लिए tropic.host का बेसिक Ubuntu VPS उपयुक्त है। छोटी कॉन्फ़िगरेशन से शुरू करके संग्रह बढ़ने पर संसाधन बढ़ा सकते हैं। डिस्क क्षमता चुनते समय वर्तमान फ़ोल्डरों के साथ भविष्य की फ़ाइलों, अस्थायी डेटा और वर्ज़न हिस्ट्री के लिए भी जगह रखें।

पाँच गलतियाँ जिनसे बचना चाहिए

  • पूरे इंटरनेट के लिए पोर्ट 8384 खोल देना। सेटअप के लिए SSH टनल उपयोग करें। स्थायी वेब एक्सेस चाहिए तो HTTPS, पासवर्ड और रिवर्स प्रॉक्सी लगाएँ।
  • सर्वर की कॉपी को पूर्ण बैकअप समझना। वर्ज़निंग सक्षम करें और अलग बैकअप आर्काइव बनाएँ।
  • कैश और डिपेंडेंसी सिंक्रोनाइज़ करना। अनावश्यक डायरेक्टरी को .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 को सुरक्षित रखना आवश्यक है।