ما هو Syncthing؟

Syncthing هو برنامج مفتوح المصدر يحافظ على مزامنة المجلدات بين أجهزتك، مباشرةً ومن دون خادم مركزي. يوفّر المشروع صورة رسمية، syncthing/syncthing، تستمع واجهة الويب الخاصة بها على المنفذ 8384، ويستخدم بروتوكول المزامنة المنفذ 22000 عبر TCP وQUIC. تتعرّف الأجهزة الموجودة على الشبكة نفسها إلى بعضها باستخدام عمليات البث على المنفذ 21027.

وصف الأداة

تنشئ هذه الأداة ملف compose.yaml لـ Syncthing وفقًا لملف README الخاص بمشروع Docker. تستخدم الأداة شبكة المضيف افتراضيًا، وهو الوضع الذي يوصي به ملف README، لأن Syncthing سيتمكن عندها من رؤية الأجهزة الموجودة على شبكتك المحلية. في هذا الوضع، تلغي الأداة تعيين STGUIADDRESS، لذلك تستمع واجهة الويب إلى العنوان المحدد في إعدادات Syncthing، وهو 127.0.0.1:8384 افتراضيًا. يمكنك أيضًا اختيار وضع الجسر. عندها تنشر الأداة منفذ واجهة الويب، ومنفذ المزامنة لـ TCP وUDP، ومنفذ الاكتشاف، وتعرض تحذيرًا بشأن تكلفة استخدام وضع الجسر. يمكنك تعيين اسم المضيف، والمستخدم والمجموعة باستخدام PUID وPGID، وUMASK وPCAP اختياريين، ومجلد البيانات، والمزيد من المجلدات من المضيف. تتم إضافة فحص صحة يتبع عنوان واجهة الويب. يتم إنشاء كل شيء في متصفحك.

الميزات

  • استخدام شبكة المضيف كما هو موصى به، أو وضع الجسر مع نشر المنافذ 8384 و22000/tcp و22000/udp و21027/udp
  • عنوان الاستماع لواجهة الويب في وضع المضيف، مع تحذير عند إمكانية الوصول إليها من أجهزة أخرى
  • عنوان ربط لمنفذ واجهة الويب في وضع الجسر، مثل 127.0.0.1
  • PUID وPGID وUMASK وPCAP، بالإضافة إلى اسم مضيف لاسم الجهاز
  • مجلد بيانات على المضيف أو وحدة تخزين Docker مسماة، يتم تعريفها نيابةً عنك
  • المزيد من المجلدات لمزامنتها، مع إمكانية جعل كل منها للقراءة فقط
  • فحص الصحة الوارد في ملف README، مع ضبطه وفق منفذ واجهة الويب وعنوانها
  • أي متغير بيئة آخر، وتعليقات تشرح الملف، وتنزيل باسم compose.yaml

أمثلة

توفّر الإعدادات الافتراضية المثال الوارد في ملف README الخاص بـ Syncthing Docker:

services:
  syncthing:
    image: syncthing/syncthing
    container_name: syncthing
    hostname: syncthing
    network_mode: host
    environment:
      PUID: "1000"
      PGID: "1000"
      STGUIADDRESS: ""
    volumes:
      - ./st-sync:/var/syncthing
    healthcheck:
      test: curl -fkLsS -m 2 127.0.0.1:8384/rest/noauth/health | grep -o --color=never OK || exit 1
      interval: 1m
      timeout: 10s
      retries: 3
    restart: unless-stopped

نصائح

  • احفظ النتيجة باسم compose.yaml وشغّلها باستخدام docker compose up -d. ثم افتح http://127.0.0.1:8384
  • يخفي وضع الجسر الافتراضي في Docker العناوين المحلية لأجهزتك، لذلك تتصل الأجهزة ببطء أو عبر خوادم الترحيل. استخدم وضع المضيف متى أمكنك ذلك
  • تستمع الصورة إلى 0.0.0.0:8384 افتراضيًا. ولهذا يلغي وضع المضيف تعيين STGUIADDRESS، ولهذا ينبغي لوضع الجسر ربط منفذ واجهة الويب المنشور بالعنوان 127.0.0.1 ما لم ترغب في الوصول إليه من أجهزة أخرى
  • عندما يمكن الوصول إلى واجهة الويب من أجهزة أخرى، عيّن كلمة مرور للواجهة وفعّل TLS في إعدادات Syncthing
  • يجب أن يكون مجلد البيانات والمجلدات التي تضيفها قابلين للكتابة بواسطة PUID وPGID
  • تظهر المجلدات التي تضيفها هنا في Syncthing ضمن المسار الموجود في الحاوية، لذا اختر ذلك المسار عند إضافة المجلد في واجهة الويب
  • يظل منفذ المزامنة 22000، لأن Syncthing يخبر الأجهزة الأخرى بالاتصال بهذا المنفذ