aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build-infra-dockers.yaml2
-rw-r--r--.github/workflows/build-syncthing.yaml4
-rw-r--r--AUTHORS1
-rw-r--r--etc/linux-sysctl/30-syncthing.conf6
-rw-r--r--go.mod2
-rw-r--r--go.sum4
-rw-r--r--gui/default/assets/lang/lang-ar.json64
-rw-r--r--gui/default/assets/lang/lang-hi.json555
-rw-r--r--gui/default/assets/lang/prettyprint.js2
-rw-r--r--gui/default/assets/lang/valid-langs.js2
-rw-r--r--gui/default/syncthing/core/aboutModalView.html2
-rw-r--r--lib/connections/metrics.go27
-rw-r--r--lib/connections/quic_listen.go3
-rw-r--r--lib/connections/service.go9
-rw-r--r--lib/db/backend/leveldb_open.go2
-rw-r--r--lib/db/namespaced.go2
-rw-r--r--lib/db/structs.go2
-rw-r--r--lib/protocol/metrics.go1
-rw-r--r--man/stdiscosrv.1100
-rw-r--r--man/strelaysrv.164
-rw-r--r--man/syncthing-bep.7119
-rw-r--r--man/syncthing-config.582
-rw-r--r--man/syncthing-device-ids.728
-rw-r--r--man/syncthing-event-api.7226
-rw-r--r--man/syncthing-faq.7104
-rw-r--r--man/syncthing-globaldisco.78
-rw-r--r--man/syncthing-localdisco.716
-rw-r--r--man/syncthing-networking.748
-rw-r--r--man/syncthing-relay.769
-rw-r--r--man/syncthing-rest-api.7362
-rw-r--r--man/syncthing-security.712
-rw-r--r--man/syncthing-stignore.542
-rw-r--r--man/syncthing-versioning.744
-rw-r--r--man/syncthing.118
34 files changed, 1137 insertions, 895 deletions
diff --git a/.github/workflows/build-infra-dockers.yaml b/.github/workflows/build-infra-dockers.yaml
index d785153a4..f899a3524 100644
--- a/.github/workflows/build-infra-dockers.yaml
+++ b/.github/workflows/build-infra-dockers.yaml
@@ -7,7 +7,7 @@ on:
- infra-*
env:
- GO_VERSION: "~1.22.0"
+ GO_VERSION: "~1.22.3"
CGO_ENABLED: "0"
BUILD_USER: docker
BUILD_HOST: github.syncthing.net
diff --git a/.github/workflows/build-syncthing.yaml b/.github/workflows/build-syncthing.yaml
index eba9709d7..1fa99dc07 100644
--- a/.github/workflows/build-syncthing.yaml
+++ b/.github/workflows/build-syncthing.yaml
@@ -12,7 +12,7 @@ env:
# The go version to use for builds. We set check-latest to true when
# installing, so we get the latest patch version that matches the
# expression.
- GO_VERSION: "~1.22.0"
+ GO_VERSION: "~1.22.3"
# Optimize compatibility on the slow archictures.
GO386: softfloat
@@ -48,7 +48,7 @@ jobs:
runner: ["windows-latest", "ubuntu-latest", "macos-latest"]
# The oldest version in this list should match what we have in our go.mod.
# Variables don't seem to be supported here, or we could have done something nice.
- go: ["~1.21.7", "~1.22.0"]
+ go: ["~1.21.7", "~1.22.3"]
runs-on: ${{ matrix.runner }}
steps:
- name: Set git to use LF
diff --git a/AUTHORS b/AUTHORS
index 2056e30f2..e55a0b989 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -300,6 +300,7 @@ Scott Klupfel (kluppy) <kluppy@going2blue.com>
sec65 <106604020+sec65@users.noreply.github.com>
Sergey Mishin (ralder) <ralder@yandex.ru>
Sertonix <83883937+Sertonix@users.noreply.github.com>
+Severin von Wnuck-Lipinski <ss7@live.de>
Shaarad Dalvi <60266155+shaaraddalvi@users.noreply.github.com> <shdalv@microsoft.com>
Simon Frei (imsodin) <freisim93@gmail.com>
Simon Mwepu <simonmwepu@gmail.com>
diff --git a/etc/linux-sysctl/30-syncthing.conf b/etc/linux-sysctl/30-syncthing.conf
index 6a364618b..08cfb20f5 100644
--- a/etc/linux-sysctl/30-syncthing.conf
+++ b/etc/linux-sysctl/30-syncthing.conf
@@ -1,4 +1,4 @@
-# Increase maximum socket buffer sizes to 2.5MiB for QUIC connections
+# Increase maximum socket buffer sizes to 7MiB for QUIC connections
# see https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes
-net.core.rmem_max = 2621440
-net.core.wmem_max = 2621440
+net.core.rmem_max = 7340032
+net.core.wmem_max = 7340032
diff --git a/go.mod b/go.mod
index d630181c0..e0a89690f 100644
--- a/go.mod
+++ b/go.mod
@@ -29,7 +29,7 @@ require (
github.com/oschwald/geoip2-golang v1.9.0
github.com/pierrec/lz4/v4 v4.1.21
github.com/prometheus/client_golang v1.19.0
- github.com/quic-go/quic-go v0.42.0
+ github.com/quic-go/quic-go v0.43.0
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475
github.com/shirou/gopsutil/v3 v3.24.3
github.com/syncthing/notify v0.0.0-20210616190510-c6b7342338d2
diff --git a/go.sum b/go.sum
index d0b776849..7da5eb8c7 100644
--- a/go.sum
+++ b/go.sum
@@ -180,8 +180,8 @@ github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO
github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q=
github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o=
github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g=
-github.com/quic-go/quic-go v0.42.0 h1:uSfdap0eveIl8KXnipv9K7nlwZ5IqLlYOpJ58u5utpM=
-github.com/quic-go/quic-go v0.42.0/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M=
+github.com/quic-go/quic-go v0.43.0 h1:sjtsTKWX0dsHpuMJvLxGqoQdtgJnbAPWY+W+5vjYW/g=
+github.com/quic-go/quic-go v0.43.0/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/riywo/loginshell v0.0.0-20200815045211-7d26008be1ab h1:ZjX6I48eZSFetPb41dHudEyVr5v953N15TsNZXlkcWY=
diff --git a/gui/default/assets/lang/lang-ar.json b/gui/default/assets/lang/lang-ar.json
index df9b3f935..23f6063d4 100644
--- a/gui/default/assets/lang/lang-ar.json
+++ b/gui/default/assets/lang/lang-ar.json
@@ -15,19 +15,19 @@
"Add filter entry": "إضافة عامل التصفية",
"Add ignore patterns": "أضف أنماط التجاهل",
"Add new folder?": "إضافة مجلد جديد؟",
- "Additionally the full rescan interval will be increased (times 60, i.e. new default of 1h). You can also configure it manually for every folder later after choosing No.": "بالإضافة إلى ذلك ، سيتم زيادة الفاصل الزمني لإعادة الفحص الكامل (60 مرة، وهو الافتراضي الجديد من 1H). يمكنك أيضًا التحكم بالإعدادات وتعديلها يدويًا لكل مجلد لاحقًا بعد اختيار \"لا\".",
+ "Additionally the full rescan interval will be increased (times 60, i.e. new default of 1h). You can also configure it manually for every folder later after choosing No.": "بالإضافة إلى ذلك ، سيُزاد الفاصل الزمني لإعادة الفحص الكامل (60 مرة، وهو الافتراضي الجديد من 1H). يمكنك أيضًا التحكم بالإعدادات وتعديلها يدويًا لكل مجلد لاحقًا بعد اختيار \"لا\".",
"Address": "العنوان",
"Addresses": "العناوين",
"Advanced": "متقدم",
"Advanced Configuration": "ضبط متقدم",
"All Data": "كل البيانات",
"All Time": "كل الوقت",
- "All folders shared with this device must be protected by a password, such that all sent data is unreadable without the given password.": "يجب حماية جميع المجلدات التي تمت مشاركتها مع هذا الجهاز بكلمة مرور ، بحيث تكون جميع البيانات المرسلة غير قابلة للقراءة بدون كلمة المرور المقدمة.",
+ "All folders shared with this device must be protected by a password, such that all sent data is unreadable without the given password.": "يجب حماية جميع المجلدات التي شاركتها مع هذا الجهاز بكلمة مرور ، بحيث تكون جميع البيانات المرسلة غير قابلة للقراءة بدون كلمة المرور المقدمة.",
"Allow Anonymous Usage Reporting?": "السماح بإرسال تقارير الإستخدام المجهولة؟",
"Allowed Networks": "الشبكات المسموح بها",
"Alphabetic": "أبجدية",
- "Altered by ignoring deletes.": "تم التغيير بتجاهل عمليات الحذف.",
- "An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.": "الإصدار يتم معالجته بواسطة أمر خارجي. يجب إزالة الملف من المجلدات المشتركة. إذا كان المسار للتطبيق يحتوي على مسافات، يجب وضعها بين علامتي تنصيص دلالة على الاقتباس.",
+ "Altered by ignoring deletes.": "تغير بتجاهل عمليات الحذف.",
+ "An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.": "الإصدار يعالج بواسطة أمر خارجي. يجب إزالة الملف من المجلدات المشتركة. إذا كان المسار للتطبيق يحتوي على مسافات، يجب وضعها بين علامتي تنصيص دلالة على الاقتباس.",
"Anonymous Usage Reporting": "تقارير الإستخدام المجهولة",
"Anonymous usage report format has changed. Would you like to move to the new format?": "هل تريد الانتقال الى التصميم الجديد لتقرير الاستخدام المجهول ؟",
"Applied to LAN": "الشبكة المحلية",
@@ -70,13 +70,13 @@
"Connection Type": "نوع الاتصال",
"Connections": "اتصالات",
"Connections via relays might be rate limited by the relay": "قد يكون معدل التوصيلات عبر المرحلات محدودًا بواسطة المرحل",
- "Continuously watching for changes is now available within Syncthing. This will detect changes on disk and issue a scan on only the modified paths. The benefits are that changes are propagated quicker and that less full scans are required.": "مراقبة الملفات بشكل مستمر متوفر في Syncthing. يتم فحص الملفات التي تم تغييرها في المسار فقط. هذا يساعد على تجنب فحص كامل المسار لأداء اسرع.",
+ "Continuously watching for changes is now available within Syncthing. This will detect changes on disk and issue a scan on only the modified paths. The benefits are that changes are propagated quicker and that less full scans are required.": "مراقبة الملفات بشكل مستمر متوفر في Syncthing. تفحص الملفات التي تغيرت في المسار فقط. هذا يساعد على تجنب فحص كامل المسار لأداء اسرع.",
"Copied from elsewhere": "منسوخ من مكان أخر",
"Copied from original": "منسوخ من الأصل",
- "Copied!": "تم النسخ!",
+ "Copied!": "نُسِخَ!",
"Copy": "نسخ",
"Copy failed! Try to select and copy manually.": "فشل النسخ! حاول التحديد والنسخ يدويًا.",
- "Currently Shared With Devices": "حاليًا تم مشاركته مع الأجهزة",
+ "Currently Shared With Devices": "مُشارَك مع الأجهزة حاليا",
"Custom Range": "نطاق مخصص",
"Danger!": "خطر!",
"Database Location": "موقع قاعدة البيانات",
@@ -158,9 +158,9 @@
"Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "يُتوقع فشل الاتصال بخوادم IPv6، إذا لم يكن IPv6 متاحا.",
"File Pull Order": "ترتيب استيراد الملفات",
"File Versioning": "إصدارات الملف",
- "Files are moved to .stversions directory when replaced or deleted by Syncthing.": "الملفات يتم نقلها إلى مجلد `.stversions` عند الاستبدال أو الحذف بواسطة البرنامج.",
- "Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "يتم نقل الملفات إلى الإصدارات المؤرخة المختومة في مجلد `.stversions` عند استبدالها أو حذفها بواسطة Syncthing.",
- "Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "الملفات محمية من التغييرات التي تم إجراؤها على الأجهزة الأخرى ، ولكن سيتم إرسال التغييرات التي تم إجراؤها على هذا الجهاز إلى بقية الأجهزة.",
+ "Files are moved to .stversions directory when replaced or deleted by Syncthing.": "تنقل الملفات إلى مجلد `.stversions` عند الاستبدال أو الحذف بواسطة البرنامج.",
+ "Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "تنقل الملفات إلى الإصدارات المؤرخة المختومة في مجلد `.stversions` عند استبدالها أو حذفها بواسطة Syncthing.",
+ "Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "الملفات محمية من التغييرات التي أجريت على الأجهزة الأخرى ، ولكن سترسل التغييرات التي أجريت على هذا الجهاز إلى بقية الأجهزة.",
"Files are synchronized from the cluster, but any changes made locally will not be sent to other devices.": "تُزامَنُ الملفات من العنقود، لكن التغيرات المحلية على هذا الجهاز لاتُطَبَّقُ على غيره من الأجهزة.",
"Filesystem Watcher Errors": "أخطاء مراقب نظام الملفات",
"Filter by date": "فلترة بالتاريخ",
@@ -174,7 +174,7 @@
"Folder type \"{%receiveEncrypted%}\" can only be set when adding a new folder.": "نوع المجلد \"{{receiveEncrypted}}\" لا يمكن إعداده إلا أثناء إنشاء الملف.",
"Folder type \"{%receiveEncrypted%}\" cannot be changed after adding the folder. You need to remove the folder, delete or decrypt the data on disk, and add the folder again.": "نوع المجلد \"{{receiveEncrypted}}\" لا يمكن إعداده بعد إضافة المجلد. يجب أن تحذف المجلد وأن تفك تشفير البيانات على قرص التخزين أو تحذفها، بعدها تنشئ المجلد مجددا.",
"Folders": "المجلدات",
- "For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't.": "للمجلدات التالية، حدث خطأ قبل بدء مشاهدة التغييرات. ستتم إعادة المحاولة كل دقيقة، نظرًا لذلك قد تختفي الأخطاء قريبًا. لكن إذا استمرت، فحاول حل المشكلة واطلب المساعدة إذا لم تستطع حل المشكلة.",
+ "For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't.": "للمجلدات التالية، حدث خطأ قبل بدء مشاهدة التغييرات. ستعاد المحاولة كل دقيقة، نظرًا لذلك قد تختفي الأخطاء قريبًا. لكن إذا استمرت، فحاول حل المشكلة واطلب المساعدة إذا لم تستطع حل المشكلة.",
"Forever": "للأبد",
"Full Rescan Interval (s)": "مدة إعادة الفحص الكامل (ثانية)",
"GUI": "واجهة المستخدم الرسومية",
@@ -182,7 +182,7 @@
"GUI Authentication Password": "كلمة السر لتوثيق الواجهة",
"GUI Authentication User": "اسم المستخدم لدخول واجهة الرسومية",
"GUI Authentication: Set User and Password": "توثيق الواجهة: أنشئ كلمة مرور للمستخدم",
- "GUI Listen Address": "واجهة الرسومية الاستماع الى العنوان",
+ "GUI Listen Address": "عنوان ترقب الواجهة الرسومية",
"GUI Override Directory": "مجلد إحلال الواجهة",
"GUI Theme": "شكل الواجهة",
"General": "عام",
@@ -193,7 +193,7 @@
"Help": "مساعدة",
"Hint: only deny-rules detected while the default is deny. Consider adding \"permit any\" as last rule.": "ملحوظة: إذا كان الإعداد الافتراضي هو الرفض، وحدها قواعد الرفض تُرصد. جرب إضافة \"السماح للكل\" كخيار أخير.",
"Home page": "الصفحة الرئيسية",
- "However, your current settings indicate you might not want it enabled. We have disabled automatic crash reporting for you.": "ومع ذلك، تشير إعداداتك الحالية إلى أنك قد لا ترغب في تمكينه. لذلك تم تعطيل الإبلاغ التلقائي عن الأعطال.",
+ "However, your current settings indicate you might not want it enabled. We have disabled automatic crash reporting for you.": "ومع ذلك، تشير إعداداتك الحالية إلى أنك قد لا ترغب في تمكينه. لذلك توقف الإبلاغ التلقائي عن الأعطال.",
"Identification": "المُعرِّف",
"If untrusted, enter encryption password": "في حالة الرِّيبة، أدخل كلمة سر التشفير",
"If you want to prevent other users on this computer from accessing Syncthing and through it your files, consider setting up authentication.": "إذا أردت منع المستخدمين الآخرين على هذا الحاسب من الوصول لملفاتك من خلال Syncthing، يُنصَح بإعداد وثائق الملكية.",
@@ -225,9 +225,9 @@
"Learn more": "اعرف أكثر",
"Learn more at {%url%}": "اطلع على المزيد في {{url}}",
"Limit": "الحد",
- "Listener Failures": "فشل المستمع",
- "Listener Status": "حالة المستمع",
- "Listeners": "المستمعين",
+ "Listener Failures": "أعطال المنصت",
+ "Listener Status": "حالة المنصت",
+ "Listeners": "المنصتين",
"Loading data...": "تحميل بيانات...",
"Loading...": "تحميل...",
"Local Additions": "الإضافات المحلِّيَّة",
@@ -264,7 +264,7 @@
"Newest First": "الأحدث أولا",
"No": "لا",
"No File Versioning": "لا تقسيم لإصدارات الملفات",
- "No files will be deleted as a result of this operation.": "لن يتم حذف أي ملفات بسبب هذا العملية.",
+ "No files will be deleted as a result of this operation.": "لن يحذف أي ملف بسبب هذه العملية.",
"No rules set": "لم تحدد قواعد",
"No upgrades": "لا يوجد ترقيات",
"Not shared": "لم يُشارَك",
@@ -328,7 +328,7 @@
"Rescans": "يعيد الفحص",
"Restart": "إعادة تشغيل",
"Restart Needed": "مطلوب أعادة تشغيل",
- "Restarting": "يتم إعادة التشغيل",
+ "Restarting": "يُعاد التشغيل",
"Restore": "استعادة",
"Restore Versions": "استعادة إصدارات",
"Resume": "استرد",
@@ -339,7 +339,7 @@
"Save": "حفظ",
"Saving changes": "تُحفَظ التعديلات",
"Scan Time Remaining": "فحص الوقت المتبقي",
- "Scanning": "يتم الفحص",
+ "Scanning": "جار الفحص",
"See external versioning help for supported templated command line parameters.": "راجع تعليمات الإصدارات الخارجية لمعرفة القيم المدعومة في سطر الأوامر.",
"Select All": "تحديد الكل",
"Select a version": "اختر إصداراً",
@@ -364,12 +364,12 @@
"Show ID": "عرض المُعرِّف",
"Show QR": "اظهار QR",
"Show detailed discovery status": "اعرض حالة الاكتشاف تفصيليا",
- "Show detailed listener status": "اعرض حالة الاستماع تفصيليا",
+ "Show detailed listener status": "اعرض حالة الإنصات تفصيليا",
"Show diff with previous version": "أظهر الفرق مقارنةً بالنسخة السابقة",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "يُعرَض بدلا من المُعرِّف ضمن العناقيد. سيُروَّج للأجهزة الأخرى على أنه اسم أساسي محتمل.",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "يُعرَض بدلا من المُعرِّف ضمن العناقيد. إذا تُرك فارغا، سيُحدَّث إلى الاسم المختار من قِبَل الجهاز.",
"Shutdown": "إغلاق",
- "Shutdown Complete": "تم الإغلاق",
+ "Shutdown Complete": "أُغلِق",
"Simple": "بسيط",
"Simple File Versioning": "التقسيم البسيط لإصدارات الملفات",
"Single level wildcard (matches within a directory only)": "المقارنة على مستوى واحد (المقارنة مع الملفات في المجلد الحالي فقط)",
@@ -377,10 +377,10 @@
"Smallest First": "الأصغر أولا",
"Some discovery methods could not be established for finding other devices or announcing this device:": "بعض أساليب الاستكشاف يمكن استخدامها للبحث عن أجهزة أخرى أو الإعلان عن هذا الجهاز:",
"Some items could not be restored:": "بعض العناصر لا يمكن استرجاعها:",
- "Some listening addresses could not be enabled to accept connections:": "بعض عناوين الاستماع لا يمكن تفعيلها لقبول الاتصالات:",
+ "Some listening addresses could not be enabled to accept connections:": "بعض عناوين الإنصات لا يمكن تفعيلها لقبول الاتصالات:",
"Source Code": "مصدر الشفرة",
"Stable releases and release candidates": "الإصدارات المستقرة والإصدارات المرشحة",
- "Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "الإصدارات المستقرة تأخرت بنحو أسبوعين. خلال هذه الفترة يتم إجراء الاختبارات كإصدارات مرشحة.",
+ "Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "الإصدارات المستقرة تأخرت نحو أسبوعين. خلال هذه الفترة نُجري الاختبارات عن طريق الإصدارات المرشحة.",
"Stable releases only": "الإصدارات المستقرة فقط",
"Staggered": "مترنِّح",
"Staggered File Versioning": "تقسمات إصدارات الملف مهترئة",
@@ -396,17 +396,17 @@
"Sync Ownership": "زامن الملكية",
"Sync Protocol Listen Addresses": "عناوين بروتوكول استقبال المزامنة",
"Sync Status": "وضع المزامنة",
- "Syncing": "يتم التزامن",
+ "Syncing": "يُزامَن",
"Syncthing device ID for \"{%devicename%}\"": "مُعرِّف Syncthing للجهاز {{devicename}}",
- "Syncthing has been shut down.": "تم إيقاف Syncthing.",
+ "Syncthing has been shut down.": "أُوقِف Syncthing.",
"Syncthing includes the following software or portions thereof:": "المزامنة تتضمن البرامج التالية أو أجزائها:",
"Syncthing is Free and Open Source Software licensed as MPL v2.0.": "Syncthing هو برنامج حر مفتوح المصدر تحت ترخيص MPL v2.0 (ترخيص موزيلا العام النسخة الثانية).",
- "Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it's transmitted over the internet.": "Syncthing هو تطبيق للمزامنة المستمرة للملفات. يزامن الملفات بين جهازين أو أكثر بشكل لحظي، آمن من الأعين المتربصة. بياناتك ملك لك وحدك، من حقك أن تختار أين تُخَزَّن، وهل يطلع عليها طرف ثالث أم لا، وكيف تتنقل عبر الشبكة.",
+ "Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it's transmitted over the internet.": "Syncthing هو تطبيق للمزامنة المستمرة للملفات. يزامن الملفات بين جهازين أو أكثر بشكل لحظي، آمن من الأعين المتربصة. بياناتك ملك لك وحدك، من حقك أن تختار أين تُخَزَّن، وهل يطلع عليها غيرك أم لا، وكيف تتنقل عبر الشبكة.",
"Syncthing is listening on the following network addresses for connection attempts from other devices:": "Syncthing يترقب محاولات الاتصال على العنوان التالي:",
"Syncthing is not listening for connection attempts from other devices on any address. Only outgoing connections from this device may work.": "Syncthing لا يترقب أي محاولة للاتصال على أي من عناوين الشبكة. الاتصالات الصادرة فقط هي التي يمكن أن تعمل.",
- "Syncthing is restarting.": "يتم إعادة تشغيل Syncthing.",
+ "Syncthing is restarting.": "يعاد تشغيل Syncthing.",
"Syncthing is saving changes.": "Syncthing يحفظ التعديلات.",
- "Syncthing is upgrading.": "يتم تطوير Syncthing.",
+ "Syncthing is upgrading.": "نطور Syncthing.",
"Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.": "Syncthing يدعم إعادة التشغيل التلقائي للمطورين. هذه الخاصية مفعلة بشكل افتراضي.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Syncthing معطل على ما يبدو، ربما يكون العطل في شبكتك. إعادة المحاولة…",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Syncthing يواجه مشكلة في معالجة طلبك. إذا استعصت المشكلة، أعد تحميل الصفحة رجاء.",
@@ -418,7 +418,7 @@
"The Syncthing admin interface is configured to allow remote access without a password.": "واجهة مدير Syncthing معدة للسماح بالوصول بغير كلمة مرور.",
"The aggregated statistics are publicly available at the URL below.": "الإحصاءات المجمعة متاحة للجميع على العنوان التالي.",
"The cleanup interval cannot be blank.": "المدة بين عمليات التنظيف لا يمكن تركها فارغة.",
- "The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "تم حفظ الإعدادات ولكن لم يتم تفعيلها بعد. يجب أعادة تشغيل Syncthing حتى تم تفعيل الإعدادات.",
+ "The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "حفظت الإعدادات ولكن لم تفعَّل بعد. يجب أعادة تشغيل Syncthing حتى تفعَّل الإعدادات.",
"The device ID cannot be blank.": "مُعرِّف الجهاز لا يمكن أن يكون فارغاً.",
"The device ID to enter here can be found in the \"Actions > Show ID\" dialog on the other device. Spaces and dashes are optional (ignored).": "يمكنك أن تجد مُعرِّف الجهاز الذي ينبغي استخدامه هنا في قائمة \"الإجراءات > عرض المُعرِّف\" على الجهاز الآخر. المسافات والخطوط الاعتراضية تُتجاهَل.",
"The encrypted usage report is sent daily. It is used to track common platforms, folder sizes, and app versions. If the reported data set is changed you will be prompted with this dialog again.": "تقارير الاستخدام المشفرة ترسل يوميا. تُستخدم هذه التقارير لتتبع المنصات الشائعة، أحجام المجلدات، إصدارات التطبيق. إذا تغيرت بنود هذا التقرير، ستواجَهُ بهذه النافذة مرة أخرى.",
@@ -452,7 +452,7 @@
"There are no devices to share this folder with.": "لا توجد أجهزة أخرى لتشاركها هذا المجلد.",
"There are no file versions to restore.": "لا توجد إصدارات يمكن استعادتها لهذا الملف.",
"There are no folders to share with this device.": "لا توجد مجلدات لمشاركتها مع هذا الجهاز.",
- "They are retried automatically and will be synced when the error is resolved.": "تتم إعادة المحاولة تلقائيًا وسيتم مزامنتها عند إصلاح الخطأ.",
+ "They are retried automatically and will be synced when the error is resolved.": "تُعاد المحاولة تلقائيًا وستزامن عند إصلاح الخطأ.",
"This Device": "هذا الجهاز",
"This Month": "هذا الشهر",
"This can easily give hackers access to read and change any files on your computer.": "هذا قد يسبب في اختراق جهازك.",
@@ -473,7 +473,7 @@
"Undecided (will prompt)": "غير محدد ( ستظهر نافذة للتحديد لاحقًا )",
"Unexpected Items": "المحتويات المفاجِئة",
"Unexpected items have been found in this folder.": "عُثِر على محتويات غير متوقعة في هذا المجلد.",
- "Unignore": "لا يتم التجاهل",
+ "Unignore": "لا تتجاهل",
"Unknown": "غير معرف",
"Unshared": "غير مشترك",
"Unshared Devices": "الأجهزة غير المُشَارَكة",
@@ -499,7 +499,7 @@
"Version": "الإصدار",
"Versions": "نسخ",
"Versions Path": "مسار النسخ",
- "Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "يتم حذف الإصدارات تلقائيًا إذا تجاوزت العمر الأقصى أو تجاوزت عدد الملفات المسموح بها خلال فاصل زمني محدد.",
+ "Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "تحذف الإصدارات تلقائيًا إذا تجاوزت العمر الأقصى أو تجاوزت عدد الملفات المسموح بها خلال فاصل زمني محدد.",
"Waiting to Clean": "في انتظار التنظيف",
"Waiting to Scan": "في انتظار الفحص",
"Waiting to Sync": "في انتظار المزامنة",
diff --git a/gui/default/assets/lang/lang-hi.json b/gui/default/assets/lang/lang-hi.json
new file mode 100644
index 000000000..cd0e527a4
--- /dev/null
+++ b/gui/default/assets/lang/lang-hi.json
@@ -0,0 +1,555 @@
+{
+ "A device with that ID is already added.": "उस ID वाला उपकरण पहले से ही जुड़ा है।",
+ "A negative number of days doesn't make sense.": "दिनों की नकारात्मक संख्या का कोई मतलब नहीं है।",
+ "A new major version may not be compatible with previous versions.": "नया प्रमुख संस्करण पिछले संस्करणों के साथ संगत नहीं हो सकता है।",
+ "API Key": "API कुंजी",
+ "About": "हमारे बारे में",
+ "Action": "कार्रवाई",
+ "Actions": "कार्रवाइयां",
+ "Active filter rules": "सक्रिय फिल्टर नियम",
+ "Add": "जोड़ें",
+ "Add Device": "उपकरण जोड़ें",
+ "Add Folder": "फोल्डर जोड़ें",
+ "Add Remote Device": "रिमोट उपकरण जोड़ें",
+ "Add devices from the introducer to our device list, for mutually shared folders.": "पारस्परिक रूप से साझा किए गए फोल्डरों के लिए, परिचयकर्ता से हमारी उपकरण सूची में उपकरण जोड़ें।",
+ "Add filter entry": "फिल्टर प्रविष्टि जोड़ें",
+ "Add ignore patterns": "नजरअंदाज प्रतिमान जोड़ें",
+ "Add new folder?": "नया फोल्डर जोड़ें?",
+ "Additionally the full rescan interval will be increased (times 60, i.e. new default of 1h). You can also configure it manually for every folder later after choosing No.": "इसके अतिरिक्त पूर्ण पुन: स्कैन अंतराल बढ़ाया जाएगा (60 गुना, यानी 1घं का नया तयशुदा अंतराल)। आप नंबर चुनने के बाद में इसे प्रत्येक फोल्डर के लिए मैन्युअल रूप से विन्यस्त भी कर सकते हैं।",
+ "Address": "पता",
+ "Addresses": "पते",
+ "Advanced": "उन्नत",
+ "Advanced Configuration": "उन्नत विन्यास",
+ "All Data": "सभी डेटा",
+ "All Time": "हर समय",
+ "All folders shared with this device must be protected by a password, such that all sent data is unreadable without the given password.": "इस उपकरण के साथ साझा किए गए सभी फोल्डरों को पासवर्ड द्वारा संरक्षित किया जाना चाहिए, जैसे कि दिए गए पासवर्ड के बिना भेजा गया सभी डेटा अपठनीय हो।",
+ "Allow Anonymous Usage Reporting?": "अज्ञात उपयोग रिपोर्टिंग की अनुमति दें?",
+ "Allowed Networks": "अनुमत नेटवर्क",
+ "Alphabetic": "वर्णानुक्रमक",
+ "Altered by ignoring deletes.": "मिटाए गए को अनदेखा करके बदला गया।",
+ "An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.": "एक बाहरी कमांड संस्करणीकरण को संभालता है। इसे साझा फोल्डर से फाइल को हटाना होगा। यदि अनुप्रयोग के पथ में रिक्त स्थान हैं, तो उसे उद्धृत किया जाना चाहिए।",
+ "Anonymous Usage Reporting": "अनाम उपयोग रिपोर्टिंग",
+ "Anonymous usage report format has changed. Would you like to move to the new format?": "अनाम उपयोग रिपोर्ट प्रारूप बदल गया है। क्या आप नए प्रारूप में जाना चाहेंगे?",
+ "Applied to LAN": "LAN पर लागू किया गया",
+ "Apply": "लागू करें",
+ "Are you sure you want to override all remote changes?": "क्या आप वाकई सभी रिमोट परिवर्तनों का अध्यारोहण करना चाहते हैं?",
+ "Are you sure you want to permanently delete all these files?": "क्या आप वाकई इन सभी फाइलों को स्थायी रूप से मिटाना चाहते हैं?",
+ "Are you sure you want to remove device {%name%}?": "क्या आप वाकई उपकरण {{name}} को हटाना चाहते हैं?",
+ "Are you sure you want to remove folder {%label%}?": "क्या आप वाकई फोल्डर {{label}} हटाना चाहते हैं?",
+ "Are you sure you want to restore {%count%} files?": "क्या आप वाकई {{count}} फाइलें पुनर्स्थापित करना चाहते हैं?",
+ "Are you sure you want to revert all local changes?": "क्या आप वाकई सभी स्थानीय परिवर्तन पूर्ववत करना चाहते हैं?",
+ "Are you sure you want to upgrade?": "क्या आप वाकई उन्नयन करना चाहते हैं?",
+ "Authentication Required": "प्रमाणीकरण आवश्यक",
+ "Authors": "रचयिता",
+ "Auto Accept": "स्वतः स्वीकारें",
+ "Automatic Crash Reporting": "स्वचालित क्रैश रिपोर्टिंग",
+ "Automatic upgrade now offers the choice between stable releases and release candidates.": "स्वचालित उन्नयन अब स्थिर रिलीज़ और रिलीज़ उम्मीदवारों के बीच विकल्प प्रदान करता है।",
+ "Automatic upgrades": "स्वचालित उन्नयन",
+ "Automatic upgrades are always enabled for candidate releases.": "उम्मीदवार रिलीज़ के लिए स्वचालित उन्नयन हमेशा सक्षम होते हैं।",
+ "Automatically create or share folders that this device advertises at the default path.": "स्वचालित रूप से वे फोल्डर बनाएं या साझा करें जिन्हें यह उपकरण तयशुदा पथ पर विज्ञापित करता है।",
+ "Available debug logging facilities:": "उपलब्ध डिबग लॉगिंग सुविधाएं:",
+ "Be careful!": "ध्यान से!",
+ "Body:": "ढांचा:",
+ "Bugs": "बग",
+ "Cancel": "रद्द करें",
+ "Changelog": "चेंजलॉग",
+ "Clean out after": "इतने समय के बाद साफ़ करें",
+ "Cleaning Versions": "सफाई संस्करण",
+ "Cleanup Interval": "सफाई अंतराल",
+ "Click to see full identification string and QR code.": "पूर्ण पहचान स्ट्रिंग और QR कोड देखने के लिए क्लिक करें।",
+ "Close": "बंद करें",
+ "Command": "कमांड",
+ "Comment, when used at the start of a line": "टिप्पणी, जब किसी पंक्ति के आरंभ में उपयोग किया जाता है",
+ "Compression": "संपीड़न",
+ "Configuration Directory": "विन्यास निर्देशिका",
+ "Configuration File": "विन्यास फाइल",
+ "Configured": "विन्यस्त",
+ "Connected (Unused)": "जुड़े हुए (अप्रयुक्त)",
+ "Connection Error": "कनेक्शन त्रुटि",
+ "Connection Management": "कनेक्शन प्रबंधन",
+ "Connection Type": "कनेक्शन प्रकार",
+ "Connections": "कनेक्शन",
+ "Connections via relays might be rate limited by the relay": "रिले के माध्यम से कनेक्शन की दर रिले द्वारा सीमित हो सकती है",
+ "Continuously watching for changes is now available within Syncthing. This will detect changes on disk and issue a scan on only the modified paths. The benefits are that changes are propagated quicker and that less full scans are required.": "परिवर्तनों पर लगातार नजर रखना अब Syncthing के भीतर उपलब्ध है। यह डिस्क पर परिवर्तनों का पता लगाएगा और केवल संशोधित पथों पर स्कैन जारी करेगा। लाभ यह है कि परिवर्तन तेजी से प्रसारित होते हैं और कम पूर्ण स्कैन की आवश्यकता होती है।",
+ "Copied from elsewhere": "अन्यत्र से कॉपी किया गया",
+ "Copied from original": "मूल से कॉपी किया गया",
+ "Copied!": "कॉपी किया गया!",
+ "Copy": "कॉपी करें",
+ "Copy failed! Try to select and copy manually.": "कॉपी विफल! मैन्युअल रूप से चयन करने और कॉपी करने का प्रयास करें।",
+ "Currently Shared With Devices": "वर्तमान में उपकरणों के साथ साझा किया गया",
+ "Custom Range": "तदनुकूल दायरा",
+ "Danger!": "खतरा!",
+ "Database Location": "डेटाबेस स्थान",
+ "Debugging Facilities": "डिबगिंग सुविधाएं",
+ "Default": "तयशुदा",
+ "Default Configuration": "तयशुदा विन्यास",
+ "Default Device": "तयशुदा उपकरण",
+ "Default Folder": "तयशुदा फोल्डर",
+ "Default Ignore Patterns": "तयशुदा नजरअंदाज प्रतिमान",
+ "Defaults": "तयशुदा मान",
+ "Delete": "मिटाएं",
+ "Delete Unexpected Items": "अप्रत्याशित वस्तुएं मिटाएं",
+ "Deleted {%file%}": "{{file}} मिटाई गई",
+ "Deselect All": "सभी अचयनित करें",
+ "Deselect devices to stop sharing this folder with.": "इस फोल्डर को साझा करना बंद करने के लिए उपकरण का चयन रद्द करें।",
+ "Deselect folders to stop sharing with this device.": "इस उपकरण के साथ साझा करना बंद करने के लिए फोल्डरों का चयन रद्द करें।",
+ "Device": "उपकरण",
+ "Device \"{%name%}\" ({%device%} at {%address%}) wants to connect. Add new device?": "उपकरण \"{{name}}\" ({{device}} {{address}} पर) जुड़ना चाहता है। नया उपकरण जोड़ें?",
+ "Device Certificate": "उपकरण प्रमाणपत्र",
+ "Device ID": "उपकरण ID",
+ "Device Identification": "उपकरण पहचान",
+ "Device Name": "उपकरण का नाम",
+ "Device Status": "उपकरण की स्थिति",
+ "Device is untrusted, enter encryption password": "उपकरण अविश्वसनीय है, कूटलेखन पासवर्ड दर्ज करें",
+ "Device rate limits": "उपकरण दर सीमा",
+ "Device that last modified the item": "वह उपकरण जिसने अंतिम बार वस्तु को संशोधित किया था",
+ "Devices": "उपकरण",
+ "Disable Crash Reporting": "क्रैश रिपोर्टिंग अक्षम करें",
+ "Disabled": "अक्षम",
+ "Disabled periodic scanning and disabled watching for changes": "आवधिक स्कैनिंग और परिवर्तनों को देखना अक्षम किया गया",
+ "Disabled periodic scanning and enabled watching for changes": "आवधिक स्कैनिंग अक्षम की गई और परिवर्तनों को देखना सक्षम किया गया",
+ "Disabled periodic scanning and failed setting up watching for changes, retrying every 1m:": "आवधिक स्कैनिंग अक्षम और परिवर्तनों को देखने के लिए स्थापना विफल, हर 1मि में पुन: प्रयास:",
+ "Disables comparing and syncing file permissions. Useful on systems with nonexistent or custom permissions (e.g. FAT, exFAT, Synology, Android).": "फाइल अनुमतियों की तुलना और समन्वयन अक्षम करता है। अस्तित्वहीन या तदनुकूल अनुमतियों (जैसे FAT, exFAT, Synology, Android) वाले सिस्टम पर उपयोगी।",
+ "Discard": "त्यागें",
+ "Disconnected": "वियोजीत",
+ "Disconnected (Inactive)": "वियोजीत (निष्क्रिय)",
+ "Disconnected (Unused)": "वियोजीत (अप्रयुक्त)",
+ "Discovered": "खोजे गए",
+ "Discovery": "खोज",
+ "Discovery Failures": "खोज विफलताएं",
+ "Discovery Status": "खोज स्थिति",
+ "Dismiss": "खारिज करें",
+ "Do not add it to the ignore list, so this notification may recur.": "इसे अनदेखा सूची में न जोड़ें, ताकि यह अधिसूचना दोबारा आ सके।",
+ "Do not restore": "पुनर्स्थापित न करें",
+ "Do not restore all": "सभी को पुनर्स्थापित न करें",
+ "Do you want to enable watching for changes for all your folders?": "क्या आप अपने सभी फोल्डरों के लिए परिवर्तनों को देखना सक्षम करना चाहते हैं?",
+ "Documentation": "दस्तावेज़ीकरण",
+ "Download Rate": "डाउनलोड दर",
+ "Downloaded": "डाउनलोड किए गए",
+ "Downloading": "डाउनलोड किया जा रहा है",
+ "Edit": "संपादित करें",
+ "Edit Device": "उपकरण संपादित करें",
+ "Edit Device Defaults": "उपकरण तयशुदा संपादित करें",
+ "Edit Folder": "फोल्डर संपादित करें",
+ "Edit Folder Defaults": "फोल्डर तयशुदा संपादित करें",
+ "Editing {%path%}.": "{{path}} का संपादन।",
+ "Enable Crash Reporting": "क्रैश रिपोर्टिंग सक्षम करें",
+ "Enable NAT traversal": "NAT ट्रैवर्सल सक्षम करें",
+ "Enable Relaying": "रिले करना सक्षम करें",
+ "Enabled": "सक्षम",
+ "Enables sending extended attributes to other devices, and applying incoming extended attributes. May require running with elevated privileges.": "अन्य उपकरणों पर विस्तारित विशेषताएं भेजने और आने वाली विस्तारित विशेषताएं लागू करने में सक्षम बनाता है। उन्नत विशेषाधिकारों के साथ चलने की आवश्यकता हो सकती है।",
+ "Enables sending extended attributes to other devices, but not applying incoming extended attributes. This can have a significant performance impact. Always enabled when \"Sync Extended Attributes\" is enabled.": "अन्य उपकरणों पर विस्तारित विशेषताएं भेजने में सक्षम बनाता है, लेकिन आने वाली विस्तारित विशेषताओं को लागू नहीं करता है। इससे प्रदर्शन पर महत्वपूर्ण प्रभाव पड़ सकता है। \"विस्तारित विशेषताएं समन्वयित करें\" सक्षम होने पर हमेशा सक्षम होता है।",
+ "Enables sending ownership information to other devices, and applying incoming ownership information. Typically requires running with elevated privileges.": "अन्य उपकरणों पर स्वामित्व जानकारी भेजने और आने वाली स्वामित्व जानकारी लागू करने में सक्षम बनाता है। आमतौर पर उन्नत विशेषाधिकारों के साथ चलने की आवश्यकता होती है।",
+ "Enables sending ownership information to other devices, but not applying incoming ownership information. This can have a significant performance impact. Always enabled when \"Sync Ownership\" is enabled.": "अन्य उपकरणों पर स्वामित्व जानकारी भेजने में सक्षम बनाता है, लेकिन आने वाली स्वामित्व जानकारी को लागू नहीं करता है। इससे प्रदर्शन पर महत्वपूर्ण प्रभाव पड़ सकता है। \"स्वामित्व समन्वयित करें\" सक्षम होने पर हमेशा सक्षम रहें।",
+ "Enter a non-negative number (e.g., \"2.35\") and select a unit. Percentages are as part of the total disk size.": "एक गैर-नकारात्मक संख्या दर्ज करें (उदाहरण के लिए, \"2.35\") और एक इकाई का चयन करें। प्रतिशत कुल डिस्क आकार के भाग के रूप में हैं।",
+ "Enter a non-privileged port number (1024 - 65535).": "एक गैर-विशेषाधिकार प्राप्त पोर्ट नंबर (1024 - 65535) दर्ज करें।",
+ "Enter comma separated (\"tcp://ip:port\", \"tcp://host:port\") addresses or \"dynamic\" to perform automatic discovery of the address.": "पते की स्वचालित खोज करने के लिए अल्पविराम से अलग किए गए पते (\"tcp://ip:port\", \"tcp://host:port\") या \"dynamic\" दर्ज करें।",
+ "Enter ignore patterns, one per line.": "नजरअंदाज प्रतिमान दर्ज करें, प्रति पंक्ति एक।",
+ "Enter up to three octal digits.": "तीन अष्टक अंक तक दर्ज करें।",
+ "Error": "त्रुटि",
+ "Extended Attributes": "विस्तारित विशेषताएं",
+ "Extended Attributes Filter": "विस्तारित विशेषताएं फिल्टर",
+ "External": "बाहरी",
+ "External File Versioning": "बाहरी फाइल संस्करणीकरण",
+ "Failed Items": "विफल वस्तुएं",
+ "Failed to load file versions.": "फाइल संस्करण लोड करने में विफल।",
+ "Failed to load ignore patterns.": "नजरअंदाज प्रतिमान लोड करने में विफल।",
+ "Failed to setup, retrying": "स्थापना करने में विफल, पुनः प्रयास किया जा रहा है",
+ "Failure to connect to IPv6 servers is expected if there is no IPv6 connectivity.": "यदि IPv6 संयोजकता नहीं है तो IPv6 सर्वर से जुड़ने में विफलता अपेक्षित है।",
+ "File Pull Order": "फाइल खींचने का क्रम",
+ "File Versioning": "फाइल संस्करणीकरण",
+ "Files are moved to .stversions directory when replaced or deleted by Syncthing.": "Syncthing द्वारा प्रतिस्थापित या हटाए जाने पर फाइलों को .stversions निर्देशिका में ले जाया जाता है।",
+ "Files are moved to date stamped versions in a .stversions directory when replaced or deleted by Syncthing.": "Syncthing द्वारा प्रतिस्थापित या हटाए जाने पर फाइलों को .stversions निर्देशिका में दिनांक अंकित संस्करणों में ले जाया जाता है।",
+ "Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.": "फाइलें अन्य उपकरण पर किए गए परिवर्तनों से सुरक्षित रहती हैं, लेकिन इस उपकरण पर किए गए परिवर्तन शेष समूह में भेजे जाएंगे।",
+ "Files are synchronized from the cluster, but any changes made locally will not be sent to other devices.": "फाइलें समूह से समन्वयित की जाती हैं, लेकिन स्थानीय रूप से किया गया कोई भी परिवर्तन अन्य उपकरणों पर नहीं भेजा जाएगा।",
+ "Filesystem Watcher Errors": "फाइलसिस्टम वॉचर त्रुटियां",
+ "Filter by date": "दिनांक अनुसार फिल्टर करें",
+ "Filter by name": "नाम अनुसार फिल्टर करें",
+ "Folder": "फोल्डर",
+ "Folder ID": "फोल्डर ID",
+ "Folder Label": "फोल्डर लेबल",
+ "Folder Path": "फोल्डर पथ",
+ "Folder Status": "फोल्डर स्थिति",
+ "Folder Type": "फोल्डर प्रकार",
+ "Folder type \"{%receiveEncrypted%}\" can only be set when adding a new folder.": "फोल्डर प्रकार \"{{receiveEncrypted}}\" केवल नया फोल्डर जोड़ते समय ही निर्धारित किया जा सकता है।",
+ "Folder type \"{%receiveEncrypted%}\" cannot be changed after adding the folder. You need to remove the folder, delete or decrypt the data on disk, and add the folder again.": "फोल्डर जोड़ने के बाद फोल्डर प्रकार \"{{receiveEncrypted}}\" को बदला नहीं जा सकता। आपको फोल्डर को हटाना होगा, डिस्क पर डेटा को मिटाना या विकोड करना होगा और फोल्डर को फिर से जोड़ना होगा।",
+ "Folders": "फोल्डर",
+ "For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't.": "निम्नलिखित फोल्डरों के लिए परिवर्तनों को देखना प्रारंभ करते समय एक त्रुटि उत्पन्न हुई। इसे हर मिनट पुनः प्रयास किया जाएगा, इसलिए त्रुटियां जल्द ही दूर हो सकती हैं। यदि वे बने रहते हैं, तो अंतर्निहित समस्या को ठीक करने का प्रयास करें और यदि आप नहीं कर सकते तो मदद मांगें।",
+ "Forever": "सदैव",
+ "Full Rescan Interval (s)": "पूर्ण पुनःस्कैन अंतराल (से)",
+ "GUI": "GUI",
+ "GUI / API HTTPS Certificate": "GUI / API HTTPS प्रमाणपत्र",
+ "GUI Authentication Password": "GUI प्रमाणीकरण पासवर्ड",
+ "GUI Authentication User": "GUI प्रमाणीकरण उपयोक्ता",
+ "GUI Authentication: Set User and Password": "जीयूआई प्रमाणीकरण: उपयोक्ता और पासवर्ड निर्धारित करें",
+ "GUI Listen Address": "GUI सुनने का पता",
+ "GUI Override Directory": "GUI अध्यारोहण निर्देशिका",
+ "GUI Theme": "GUI थीम",
+ "General": "सामान्य",
+ "Generate": "उत्पन्न करें",
+ "Global Discovery": "वैश्विक खोज",
+ "Global Discovery Servers": "वैश्विक खोज सर्वर",
+ "Global State": "वैश्विक स्थिति",
+ "Help": "सहायता",
+ "Hint: only deny-rules detected while the default is deny. Consider adding \"permit any\" as last rule.": "संकेत: केवल deny-rules का पता चला है जबकि तयशुदा deny है। अंतिम नियम के रूप में \"permit any\" जोड़ने पर विचार करें।",
+ "Home page": "घर पृष्ठ",
+ "However, your current settings indicate you might not want it enabled. We have disabled automatic crash reporting for you.": "हालांकि, आपकी वर्तमान सेटिंग्स इंगित करती हैं कि आप शायद इसे सक्षम नहीं करना चाहेंगे। हमने आपके लिए स्वचालित क्रैश रिपोर्टिंग अक्षम कर दी है।",
+ "Identification": "पहचान",
+ "If untrusted, enter encryption password": "यदि अविश्वसनीय है, तो कूटलेखन पासवर्ड दर्ज करें",
+ "If you want to prevent other users on this computer from accessing Syncthing and through it your files, consider setting up authentication.": "यदि आप इस कंप्यूटर पर अन्य उपयोक्ताओं को Syncthing और इसके माध्यम से अपनी फाइलों तक पहुँचने से रोकना चाहते हैं, तो प्रमाणीकरण स्थापित करने पर विचार करें।",
+ "Ignore": "नजरअंदाज करें",
+ "Ignore Patterns": "नजरअंदाज प्रतिमान",
+ "Ignore Permissions": "अनुमतियां नजरअंदाज करें",
+ "Ignore patterns can only be added after the folder is created. If checked, an input field to enter ignore patterns will be presented after saving.": "फोल्डर बनने के बाद ही नजरअंदाज प्रतिमान जोड़े जा सकते हैं। यदि जांच की जाती है, तो सहेजने के बाद नजरअंदाज प्रतिमान दर्ज करने के लिए एक आगत क्षेत्र प्रस्तुत किया जाएगा।",
+ "Ignored Devices": "नजरअंदाज उपकरण",
+ "Ignored Folders": "नजरअंदाज किये फोल्डर",
+ "Ignored at": "यहां पर नजरअंदाज",
+ "Included Software": "सम्मिलित सॉफ्टवेयर",
+ "Incoming Rate Limit (KiB/s)": "आवक दर सीमा (KiB/s)",
+ "Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "गलत विन्यास आपके फोल्डर की सामग्री को नुकसान पहुंचा सकता है और Syncthing को निष्क्रिय कर सकता है।",
+ "Incorrect user name or password.": "गलत उपयोक्ता नाम या पासवर्ड।",
+ "Internally used paths:": "आंतरिक प्रयुक्त पथ:",
+ "Introduced By": "इनके द्वारा परिचय",
+ "Introducer": "परिचयकर्ता",
+ "Introduction": "परिचय",
+ "Inversion of the given condition (i.e. do not exclude)": "दी गई शर्त का व्युत्क्रमण (अर्थात् बहिष्कृत न करें)",
+ "Keep Versions": "संस्करण रखें",
+ "LDAP": "LDAP",
+ "Largest First": "सबसे बड़ा प्रथम",
+ "Last 30 Days": "पिछले 30 दिन",
+ "Last 7 Days": "पिछले 7 दिन",
+ "Last Month": "पिछला महीना",
+ "Last Scan": "अंतिम स्कैन",
+ "Last seen": "अंतिम बार देखा गया",
+ "Latest Change": "नवीनतम परिवर्तन",
+ "Learn more": "अधिक जानें",
+ "Learn more at {%url%}": "{{url}} पर और जानें",
+ "Limit": "सीमा",
+ "Listener Failures": "श्रोता की विफलता",
+ "Listener Status": "श्रोता स्थिति",
+ "Listeners": "श्रोता",
+ "Loading data...": "डेटा लोड हो रहा है..।",
+ "Loading...": "लोड हो रहा है..।",
+ "Local Additions": "स्थानीय परिवर्धन",
+ "Local Discovery": "स्थानीय खोज",
+ "Local State": "स्थानिक स्थिति",
+ "Local State (Total)": "स्थानिक स्थिति (कुल)",
+ "Locally Changed Items": "स्थानीय रूप से परिवर्तित वस्तुएं",
+ "Log": "लॉग",
+ "Log File": "लॉग फाइल",
+ "Log In": "लॉगिन",
+ "Log Out": "लॉग आउट",
+ "Log in to see paths information.": "पथ जानकारी देखने के लिए लॉगिन करें।",
+ "Log in to see version information.": "संस्करण जानकारी देखने के लिए लॉगिन करें।",
+ "Log tailing paused. Scroll to the bottom to continue.": "लॉग ट्रैकिंग रोक दी गई है। जारी रखने के लिए नीचे स्क्रॉल करें।",
+ "Login failed, see Syncthing logs for details.": "लॉगिन विफल, विवरण के लिए Syncthing लॉग देखें।",
+ "Logs": "लॉग",
+ "Major Upgrade": "प्रमुख उन्नयन",
+ "Mass actions": "सामूहिक कार्रवाई",
+ "Maximum Age": "अधिकतम आयु",
+ "Maximum single entry size": "अधिकतम एकल प्रविष्टि आकार",
+ "Maximum total size": "अधिकतम कुल आकार",
+ "Metadata Only": "केवल मेटाडेटा",
+ "Minimum Free Disk Space": "न्यूनतम मुक्त डिस्क स्थान",
+ "Mod. Device": "संशोधित उपकरण",
+ "Mod. Time": "संशोधन समय",
+ "More than a month ago": "एक महीने से भी पहले",
+ "More than a week ago": "एक सप्ताह से भी पहले",
+ "More than a year ago": "एक साल से भी पहले",
+ "Move to top of queue": "कतार के शीर्ष पर जाएं",
+ "Multi level wildcard (matches multiple directory levels)": "बहुस्तरीय वाइल्डकार्ड (एकाधिक निर्देशिका स्तरों से मेल खाता है)",
+ "Never": "कभी नहीं",
+ "New Device": "नया उपकरण",
+ "New Folder": "नया फोल्डर",
+ "Newest First": "नवीनतम पहले",
+ "No": "नहीं",
+ "No File Versioning": "कोई फाइल संस्करण नहीं",
+ "No files will be deleted as a result of this operation.": "इस अभियान के परिणामस्वरूप कोई भी फाइल मिटाई नहीं जाएगी।",
+ "No rules set": "कोई नियम निर्धारित नहीं",
+ "No upgrades": "कोई उन्नयन नहीं",
+ "Not shared": "साझा नहीं किया गया",
+ "Notice": "सूचना",
+ "Number of Connections": "कनेक्शनों की संख्या",
+ "OK": "ठीक है",
+ "Off": "बंद",
+ "Oldest First": "पुराना पहले",
+ "Optional descriptive label for the folder. Can be different on each device.": "फोल्डर के लिए वैकल्पिक वर्णनात्मक लेबल। प्रत्येक उपकरण पर भिन्न हो सकता है।",
+ "Options": "विकल्प",
+ "Out of Sync": "समन्वयन से बाहर",
+ "Out of Sync Items": "समन्वयन से बाहर वस्तुएं",
+ "Outgoing Rate Limit (KiB/s)": "जावक दर सीमा (KiB/s)",
+ "Override": "अध्यारोहण",
+ "Override Changes": "परिवर्तनों का अध्यारोहण",
+ "Ownership": "स्वामित्व",
+ "Password": "पासवर्ड",
+ "Path": "पथ",
+ "Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "स्थानीय कंप्यूटर पर फोल्डर का पथ। अगर यह मौजूद नहीं है तो इसे बनाया जाएगा। टिल्ड वर्ण (~) का उपयोग शॉर्टकट के रूप में किया जा सकता है",
+ "Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "पथ जहां संस्करण संग्रहीत किए जाने चाहिए (साझा फोल्डर में तयशुदा .stversions निर्देशिका के लिए खाली छोड़ दें)।",
+ "Paths": "पथ",
+ "Pause": "विराम",
+ "Pause All": "सभी विराम करें",
+ "Paused": "विरामित",
+ "Paused (Unused)": "विरामित (अप्रयुक्त)",
+ "Pending changes": "लंबित परिवर्तन",
+ "Periodic scanning at given interval and disabled watching for changes": "दिए गए अंतराल पर आवधिक स्कैनिंग और परिवर्तनों पर नजर रखने में अक्षम",
+ "Periodic scanning at given interval and enabled watching for changes": "दिए गए अंतराल पर आवधिक स्कैनिंग और परिवर्तनों को देखने में सक्षम",
+ "Periodic scanning at given interval and failed setting up watching for changes, retrying every 1m:": "दिए गए अंतराल पर आवधिक स्कैनिंग और परिवर्तनों को देखने के लिए स्थापना विफल, हर 1मि में पुन: प्रयास:",
+ "Permanently add it to the ignore list, suppressing further notifications.": "आगे की सूचनाओं को दबाते हुए, इसे स्थायी रूप से अनदेखा सूची में जोड़ें।",
+ "Please consult the release notes before performing a major upgrade.": "कृपया कोई बड़ा उन्नयन करने से पहले रिलीज़ नोट्स से परामर्श लें।",
+ "Please set a GUI Authentication User and Password in the Settings dialog.": "कृपया सेटिंग्स संवाद में एक GUI प्रमाणीकरण उपयोक्ता और पासवर्ड निर्धारित करें।",
+ "Please wait": "कृपया प्रतीक्षा करें",
+ "Prefix indicating that the file can be deleted if preventing directory removal": "उपसर्ग यह दर्शाता है कि निर्देशिका हटाने से रोकने पर फाइल को मिटाया जा सकता है",
+ "Prefix indicating that the pattern should be matched without case sensitivity": "उपसर्ग यह दर्शाता है कि प्रतिमान को केस संवेदनशीलता के बिना मिलान किया जाना चाहिए",
+ "Preparing to Sync": "समन्वयन की तैयारी",
+ "Preview": "पूर्वावलोकन",
+ "Preview Usage Report": "उपयोग रिपोर्ट का पूर्वावलोकन करें",
+ "QR code": "QR कोड",
+ "QUIC LAN": "QUIC LAN",
+ "QUIC WAN": "QUIC WAN",
+ "Quick guide to supported patterns": "समर्थित प्रतिमान के लिए त्वरित मार्गदर्शिका",
+ "Random": "यादृच्छिक",
+ "Receive Encrypted": "कूटलेखित प्राप्त करें",
+ "Receive Only": "केवल प्राप्त करें",
+ "Received data is already encrypted": "प्राप्त डेटा पहले से ही कूटलेखित है",
+ "Recent Changes": "हालिया परिवर्तन",
+ "Reduced by ignore patterns": "नजरअंदाज प्रतिमान से कम किया गया",
+ "Relay LAN": "रिले LAN",
+ "Relay WAN": "रिले WAN",
+ "Release Notes": "रिलीज नोट्स",
+ "Release candidates contain the latest features and fixes. They are similar to the traditional bi-weekly Syncthing releases.": "रिलीज़ उम्मीदवारों में नवीनतम सुविधाएं और सुधार शामिल हैं। वे पारंपरिक द्वि-साप्ताहिक Syncthing रिलीज़ के समान हैं।",
+ "Remote Devices": "रिमोट उपकरण",
+ "Remote GUI": "रिमोट GUI",
+ "Remove": "हटाएं",
+ "Remove Device": "उपकरण हटाएं",
+ "Remove Folder": "फोल्डर हटाएं",
+ "Required identifier for the folder. Must be the same on all cluster devices.": "फोल्डर के लिए आवश्यक पहचानकर्ता। समूह के सभी उपकरणों पर समान होना चाहिए।",
+ "Rescan": "पुनः स्कैन करें",
+ "Rescan All": "सभी पुनः स्कैन करें",
+ "Rescans": "पुनः स्कैन करता है",
+ "Restart": "पुनः प्रारंभ करें",
+ "Restart Needed": "पुनरारंभ की आवश्यकता है",
+ "Restarting": "पुनः प्रारंभ हो रहा है",
+ "Restore": "पुनर्स्थापित करें",
+ "Restore Versions": "संस्करण पुनर्स्थापित करें",
+ "Resume": "पुनः आरम्भ करें",
+ "Resume All": "सभी पुनः आरंभ करें",
+ "Reused": "पुन:प्रयुक्त",
+ "Revert": "पूर्ववत करें",
+ "Revert Local Changes": "स्थानीय परिवर्तन पूर्ववत करें",
+ "Save": "सहेजें",
+ "Saving changes": "परिवर्तन सहेजे जा रहे हैं",
+ "Scan Time Remaining": "स्कैन समय शेष",
+ "Scanning": "स्कैनिंग",
+ "See external versioning help for supported templated command line parameters.": "समर्थित खाका कमांड लाइन पैरामीटर के लिए बाहरी संस्करण सहायता देखें।",
+ "Select All": "सभी चुनें",
+ "Select a version": "एक संस्करण चुनें",
+ "Select additional devices to share this folder with.": "इस फोल्डर को साझा करने के लिए अतिरिक्त उपकरणों का चयन करें।",
+ "Select additional folders to share with this device.": "इस उपकरण के साथ साझा करने के लिए अतिरिक्त फोल्डर चुनें।",
+ "Select latest version": "नवीनतम संस्करण चुनें",
+ "Select oldest version": "सबसे पुराना संस्करण चुनें",
+ "Send & Receive": "भेजें एवं प्राप्त करें",
+ "Send Extended Attributes": "विस्तारित विशेषताएं भेजें",
+ "Send Only": "केवल भेजें",
+ "Send Ownership": "स्वामित्व भेजें",
+ "Set Ignores on Added Folder": "नए फोल्डर के लिए नजरअंदाज प्रतिमान निर्धारित करें",
+ "Settings": "सेटिंग्स",
+ "Share": "साझा करें",
+ "Share Folder": "फोल्डर साझा करें",
+ "Share by Email": "ईमेल द्वारा साझा करें",
+ "Share by SMS": "SMS द्वारा साझा करें",
+ "Share this folder?": "यह फोल्डर साझा करें?",
+ "Shared Folders": "सांझे फोल्डर",
+ "Shared With": "इसके साथ साझा",
+ "Sharing": "साझाकरण",
+ "Show ID": "ID दिखाएं",
+ "Show QR": "QR दिखाएं",
+ "Show detailed discovery status": "विस्तृत खोज स्थिति दिखाएं",
+ "Show detailed listener status": "विस्तृत श्रोता स्थिति दिखाएं",
+ "Show diff with previous version": "पिछले संस्करण के साथ अंतर दिखाएं",
+ "Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "समूह स्थिति में उपकरण ID के बजाय दिखाया गया। वैकल्पिक तयशुदा नाम के रूप में अन्य उपकरणों पर विज्ञापित किया जाएगा।",
+ "Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "समूह स्थिति में उपकरण ID के बजाय दिखाया गया। खाली छोड़े जाने पर उपकरण द्वारा विज्ञापित नाम में अद्यतित कर दिया जाएगा।",
+ "Shutdown": "शटडाउन",
+ "Shutdown Complete": "शटडाउन पूर्ण",
+ "Simple": "सरल",
+ "Simple File Versioning": "सरल फाइल संस्करण",
+ "Single level wildcard (matches within a directory only)": "एकल स्तरीय वाइल्डकार्ड (केवल एक निर्देशिका के भीतर मेल खाता है)",
+ "Size": "आकार",
+ "Smallest First": "सबसे छोटा पहले",
+ "Some discovery methods could not be established for finding other devices or announcing this device:": "अन्य उपकरणों को खोजने या इस उपकरण की घोषणा करने के लिए कुछ खोज विधियां स्थापित नहीं की जा सकीं:",
+ "Some items could not be restored:": "कुछ वस्तुएं पुनर्स्थापित नहीं किए जा सके:",
+ "Some listening addresses could not be enabled to accept connections:": "कुछ श्रवण पते कनेक्शन स्वीकार करने के लिए सक्षम नहीं किए जा सके:",
+ "Source Code": "स्रोत कोड",
+ "Stable releases and release candidates": "स्थिर रिलीज़ और रिलीज़ उम्मीदवार",
+ "Stable releases are delayed by about two weeks. During this time they go through testing as release candidates.": "स्थिर रिलीज़ में लगभग दो सप्ताह की देरी हो रही है। इस दौरान वे रिलीज़ उम्मीदवारों के रूप में परीक्षण से गुजरते हैं।",
+ "Stable releases only": "केवल स्थिर रिलीज़",
+ "Staggered": "विचलता",
+ "Staggered File Versioning": "विचलता फाइल संस्करण",
+ "Start Browser": "ब्राउज़र प्रारंभ करें",
+ "Statistics": "आंकडे",
+ "Stay logged in": "लॉगिन रहें",
+ "Stopped": "रुका हुआ",
+ "Stores and syncs only encrypted data. Folders on all connected devices need to be set up with the same password or be of type \"{%receiveEncrypted%}\" too.": "केवल कूटलेखित डेटा को स्टोर और समन्वयित करें। सभी जुड़ें उपकरणों पर फोल्डरों को एक ही पासवर्ड के साथ स्थापित किया जाना चाहिए या \"{{receiveEncrypted}}\" प्रकार का भी होना चाहिए।",
+ "Subject:": "विषय:",
+ "Support": "समर्थन",
+ "Support Bundle": "समर्थन बंडल",
+ "Sync Extended Attributes": "विस्तारित विशेषताएं समन्वयित करें",
+ "Sync Ownership": "स्वामित्व समन्वयित करें",
+ "Sync Protocol Listen Addresses": "समन्वयन प्रोटोकॉल का श्रवण पता",
+ "Sync Status": "समन्वयन स्थिति",
+ "Syncing": "समन्वयित हो रहा है",
+ "Syncthing device ID for \"{%devicename%}\"": "\"{{devicename}}\" के लिए Syncthing उपकरण ID",
+ "Syncthing has been shut down.": "Syncthing बंद कर दिया गया है।",
+ "Syncthing includes the following software or portions thereof:": "Syncthing में निम्नलिखित सॉफ़्टवेयर या उसके भाग शामिल हैं:",
+ "Syncthing is Free and Open Source Software licensed as MPL v2.0.": "Syncthing मुक्त और खुले-स्त्रोत सॉफ़्टवेयर है जिसे MPL v2.0 के रूप में लाइसेंस प्राप्त है।",
+ "Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it's transmitted over the internet.": "Syncthing एक सतत फाइल समन्वयन प्रोग्राम है। यह वास्तविक समय में दो या दो से अधिक कंप्यूटरों के बीच फाइलों को समन्वयित करता है, जो कि लोगों की नज़रों से सुरक्षित रूप से सुरक्षित रहता है। आपका डेटा केवल आपका डेटा है और आप यह चुनने के हकदार हैं कि इसे कहाँ संग्रहीत किया जाता है, क्या इसे किसी तीसरे पक्ष के साथ साझा किया जाता है, और इसे इंटरनेट पर कैसे प्रसारित किया जाता है।",
+ "Syncthing is listening on the following network addresses for connection attempts from other devices:": "अन्य उपकरणों से कनेक्शन प्रयासों के लिए Syncthing निम्नलिखित नेटवर्क पतों पर सुन रहा है:",
+ "Syncthing is not listening for connection attempts from other devices on any address. Only outgoing connections from this device may work.": "Syncthing किसी भी पते पर अन्य उपकरणों से कनेक्शन प्रयासों को नहीं सुन रहा है। इस उपकरण से केवल जावक कनेक्शन ही काम कर सकते हैं।",
+ "Syncthing is restarting.": "Syncthing पुनः प्रारंभ हो रहा है।",
+ "Syncthing is saving changes.": "Syncthing परिवर्तनों को सहेज रहा है।",
+ "Syncthing is upgrading.": "Syncthing उन्नयन हो रहा है।",
+ "Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.": "Syncthing अब विकासकर्ता को क्रैश की स्वचालित रूप से रिपोर्ट करने का समर्थन करता है। यह सुविधा तयशुदा रूप से सक्षम है।",
+ "Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "ऐसा लगता है कि Syncthing बंद है, या आपके इंटरनेट कनेक्शन में कोई समस्या है। पुनः प्रयास किया जा रहा है…",
+ "Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "ऐसा लगता है कि Syncthing को आपके अनुरोध को संसाधित करने में समस्या आ रही है। यदि समस्या बनी रहती है तो कृपया पृष्ठ को ताज़ा करें या Syncthing को पुनरारंभ करें।",
+ "TCP LAN": "TCP LAN",
+ "TCP WAN": "TCP WAN",
+ "Take me back": "मुझे वापस ले जाएं",
+ "The GUI address is overridden by startup options. Changes here will not take effect while the override is in place.": "GUI पता स्टार्टअप विकल्पों द्वारा अध्यारोहण किया गया है। अध्यारोहण लागू होने तक यहां परिवर्तन प्रभावी नहीं होंगे।",
+ "The Syncthing Authors": "Syncthing के रचयिता",
+ "The Syncthing admin interface is configured to allow remote access without a password.": "Syncthing व्यवस्थापक इंटरफ़ेस को पासवर्ड के बिना रिमोट पहुंच की अनुमति देने के लिए विन्यस्त किया गया है।",
+ "The aggregated statistics are publicly available at the URL below.": "एकत्रित आंकड़े नीचे दिए गए URL पर सार्वजनिक रूप से उपलब्ध हैं।",
+ "The cleanup interval cannot be blank.": "सफाई अंतराल रिक्त नहीं हो सकता।",
+ "The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.": "विन्यास सहेजा गया है लेकिन सक्रिय नहीं किया गया है। नए विन्यास को सक्रिय करने के लिए Syncthing को पुनरारंभ करना होगा।",
+ "The device ID cannot be blank.": "उपकरण ID रिक्त नहीं हो सकती।",
+ "The device ID to enter here can be found in the \"Actions > Show ID\" dialog on the other device. Spaces and dashes are optional (ignored).": "यहां दर्ज की जाने वाली उपकरण ID अन्य उपकरण पर \"कार्रवाइयां > ID3 दिखाएं\" संवाद में पाई जा सकती है। रिक्त स्थान और डैश वैकल्पिक हैं (अनदेखा)।",
+ "The encrypted usage report is sent daily. It is used to track common platforms, folder sizes, and app versions. If the reported data set is changed you will be prompted with this dialog again.": "कूटलेखित उपयोग रिपोर्ट प्रतिदिन भेजी जाती है। इसका उपयोग सामान्य प्लेटफ़ॉर्म, फोल्डर आकार और ऐप संस्करणों को ट्रैक करने के लिए किया जाता है। यदि रिपोर्ट किया गया डेटा सेट बदल दिया गया है तो आपको इस संवाद के साथ फिर से संकेत दिया जाएगा।",
+ "The entered device ID does not look valid. It should be a 52 or 56 character string consisting of letters and numbers, with spaces and dashes being optional.": "दर्ज की गई उपकरण ID वैध नहीं लगती। यह 52 या 56 वर्णमाला होनी चाहिए जिसमें अक्षर और संख्याएं हों, रिक्त स्थान और डैश वैकल्पिक हों।",
+ "The folder ID cannot be blank.": "फोल्डर ID रिक्त नहीं हो सकती।",
+ "The folder ID must be unique.": "फोल्डर ID अद्वितीय होनी चाहिए।",
+ "The folder content on other devices will be overwritten to become identical with this device. Files not present here will be deleted on other devices.": "इस उपकरण के समान बनने के लिए अन्य उपकरण पर फोल्डर सामग्री को अधिलेखित कर दिया जाएगा। यहां मौजूद नहीं होने वाली फाइलें अन्य उपकरण पर मिटा दी जाएंगी।",
+ "The folder content on this device will be overwritten to become identical with other devices. Files newly added here will be deleted.": "इस उपकरण पर फोल्डर सामग्री को अन्य उपकरण के समान बनाने के लिए अधिलेखित कर दिया जाएगा। यहां नई जोड़ी गई फाइलें मिटा दी जाएंगी।",
+ "The folder path cannot be blank.": "फोल्डर पथ रिक्त नहीं हो सकता।",
+ "The following intervals are used: for the first hour a version is kept every 30 seconds, for the first day a version is kept every hour, for the first 30 days a version is kept every day, until the maximum age a version is kept every week.": "निम्नलिखित अंतरालों का उपयोग किया जाता है: पहले घंटे के लिए हर 30 सेकंड में एक संस्करण रखा जाता है, पहले दिन के लिए हर घंटे एक संस्करण रखा जाता है, पहले 30 दिनों के लिए हर दिन एक संस्करण रखा जाता है, अधिकतम आयु तक हर एक संस्करण रखा जाता है सप्ताह।",
+ "The following items could not be synchronized.": "निम्नलिखित वस्तुएं समन्वयित नहीं किए जा सके।",
+ "The following items were changed locally.": "निम्नलिखित वस्तुएं स्थानीय रूप से बदले गए थे।",
+ "The following methods are used to discover other devices on the network and announce this device to be found by others:": "नेटवर्क पर अन्य उपकरणों को खोजने और इस उपकरण को दूसरों द्वारा पाए जाने की घोषणा करने के लिए निम्नलिखित विधियों का उपयोग किया जाता है:",
+ "The following text will automatically be inserted into a new message.": "निम्नलिखित पाठ स्वचालित रूप से एक नए संदेश में डाला जाएगा।",
+ "The following unexpected items were found.": "निम्नलिखित अप्रत्याशित वस्तुएं मिलीं।",
+ "The interval must be a positive number of seconds.": "अंतराल सेकंड की सकारात्मक संख्या होनी चाहिए।",
+ "The interval, in seconds, for running cleanup in the versions directory. Zero to disable periodic cleaning.": "संस्करण निर्देशिका में सफाई करने की अंतराल, सेकंड में। आवधिक सफाई को अक्षम करने के लिए शून्य।",
+ "The maximum age must be a number and cannot be blank.": "अधिकतम आयु एक संख्या होनी चाहिए और रिक्त नहीं हो सकती।",
+ "The maximum time to keep a version (in days, set to 0 to keep versions forever).": "किसी संस्करण को रखने का अधिकतम समय (दिनों में, संस्करणों को हमेशा के लिए रखने के लिए 0 पर निर्धारित करें)।",
+ "The number of connections must be a non-negative number.": "कनेक्शन की संख्या एक गैर-नकारात्मक संख्या होनी चाहिए।",
+ "The number of days must be a number and cannot be blank.": "दिनों की संख्या एक संख्या होनी चाहिए और रिक्त नहीं हो सकती।",
+ "The number of days to keep files in the trash can. Zero means forever.": "फाइलों को रद्दी में रखने के दिनों की संख्या। शून्य का अर्थ है सदैव।",
+ "The number of old versions to keep, per file.": "प्रति फाइल रखने के लिए पुराने संस्करणों की संख्या।",
+ "The number of versions must be a number and cannot be blank.": "संस्करणों की संख्या एक संख्या होनी चाहिए और रिक्त नहीं हो सकती।",
+ "The path cannot be blank.": "पथ रिक्त नहीं हो सकता।",
+ "The rate limit is applied to the accumulated traffic of all connections to this device.": "दर सीमा इस उपकरण के सभी कनेक्शनों के संचित ट्रैफिक पर लागू होती है।",
+ "The rate limit must be a non-negative number (0: no limit)": "दर सीमा एक गैर-ऋणात्मक संख्या होनी चाहिए (0: कोई सीमा नहीं)",
+ "The remote device has not accepted sharing this folder.": "रिमोट उपकरण ने इस फोल्डर को साझा करना स्वीकार नहीं किया है।",
+ "The remote device has paused this folder.": "रिमोट उपकरण ने इस फोल्डर को रोक दिया है।",
+ "The rescan interval must be a non-negative number of seconds.": "पुन: स्कैन अंतराल सेकंड की गैर-नकारात्मक संख्या होनी चाहिए।",
+ "There are no devices to share this folder with.": "इस फोल्डर को साझा करने के लिए कोई उपकरण नहीं है।",
+ "There are no file versions to restore.": "पुनर्स्थापित करने के लिए कोई फाइल संस्करण नहीं हैं।",
+ "There are no folders to share with this device.": "इस उपकरण के साथ साझा करने के लिए कोई फोल्डर नहीं हैं।",
+ "They are retried automatically and will be synced when the error is resolved.": "वे स्वचालित रूप से पुनः प्रयास किए जाते हैं और त्रुटि हल होने पर समन्वयित हो जाएंगे।",
+ "This Device": "यह उपकरण",
+ "This Month": "इस महीने",
+ "This can easily give hackers access to read and change any files on your computer.": "इससे हैकर्स को आसानी से आपके कंप्यूटर पर किसी भी फाइल को पढ़ने और बदलने की सुविधा मिल सकती है।",
+ "This device cannot automatically discover other devices or announce its own address to be found by others. Only devices with statically configured addresses can connect.": "यह उपकरण स्वचालित रूप से अन्य उपकरणों की खोज नहीं कर सकता है या दूसरों द्वारा ढूंढे जाने के लिए अपने स्वयं के पते की घोषणा नहीं कर सकता है। केवल स्थिर रूप से विन्यस्त पते वाले उपकरण ही जुड़ सकते हैं।",
+ "This is a major version upgrade.": "यह प्रमुख संस्करण उन्नयन है।",
+ "This setting controls the free space required on the home (i.e., index database) disk.": "यह सेटिंग होम (यानी, अनुक्रमणिका डेटाबेस) डिस्क पर आवश्यक खाली स्थान को नियंत्रित करती है।",
+ "Time": "समय",
+ "Time the item was last modified": "वस्तु को अंतिम बार संशोधित करने का समय",
+ "To connect with the Syncthing device named \"{%devicename%}\", add a new remote device on your end with this ID:": "\"{{devicename}}\" नामक Syncthing उपकरण से जुड़ने के लिए, इस ID के साथ अपनी ओर से एक नया रिमोट उपकरण जोड़ें:",
+ "To permit a rule, have the checkbox checked. To deny a rule, leave it unchecked.": "किसी नियम की अनुमति देने के लिए, चेकबॉक्स चेक करें। किसी नियम को अस्वीकार करने के लिए उसे अनियंत्रित छोड़ दें।",
+ "Today": "आज",
+ "Trash Can": "रद्दी",
+ "Trash Can File Versioning": "रद्दी फाइल संस्करण",
+ "Type": "प्रकार",
+ "UNIX Permissions": "UNIX अनुमतियां",
+ "Unavailable": "अनुपलब्ध",
+ "Unavailable/Disabled by administrator or maintainer": "व्यवस्थापक या अनुरक्षक द्वारा अनुपलब्ध/अक्षम",
+ "Undecided (will prompt)": "अनिर्णीत (संकेत देगा)",
+ "Unexpected Items": "अप्रत्याशित वस्तुएं",
+ "Unexpected items have been found in this folder.": "इस फोल्डर में अप्रत्याशित वस्तुएं मिली हैं।",
+ "Unignore": "अनदेखा न करें",
+ "Unknown": "अज्ञात",
+ "Unshared": "अनसाझा",
+ "Unshared Devices": "अनसाझा उपकरण",
+ "Unshared Folders": "अनसाझा फोल्डर",
+ "Untrusted": "अविश्वस्त",
+ "Up to Date": "अद्यतित है",
+ "Updated {%file%}": "{{file}} अद्यतित",
+ "Upgrade": "उन्नयन",
+ "Upgrade To {%version%}": "{{version}} पर उन्नयन करें",
+ "Upgrading": "उन्नयन किया जा रहा है",
+ "Upload Rate": "अपलोड दर",
+ "Uptime": "सक्रिय-अवधि",
+ "Usage reporting is always enabled for candidate releases.": "उम्मीदवार की रिलीज़ के लिए उपयोग रिपोर्टिंग हमेशा सक्षम होती है।",
+ "Use HTTPS for GUI": "GUI के लिए HTTPS का उपयोग करें",
+ "Use notifications from the filesystem to detect changed items.": "परिवर्तित वस्तुओं का पता लगाने के लिए फाइल सिस्टम से सूचनाओं का उपयोग करें।",
+ "User": "उपयोक्ता",
+ "User Home": "उपयोक्ता होम",
+ "Username/Password has not been set for the GUI authentication. Please consider setting it up.": "GUI प्रमाणीकरण के लिए उपयोक्तानाम/पासवर्ड निर्धारित नहीं किया गया है। कृपया इसे स्थापित करने पर विचार करें।",
+ "Using a QUIC connection over LAN": "LAN पर QUIC कनेक्शन का उपयोग किया जा रहा है",
+ "Using a QUIC connection over WAN": "WAN पर QUIC कनेक्शन का उपयोग किया जा रहा है",
+ "Using a direct TCP connection over LAN": "LAN पर सीधे TCP कनेक्शन का उपयोग किया जा रहा है",
+ "Using a direct TCP connection over WAN": "WAN पर सीधे TCP कनेक्शन का उपयोग किया जा रहा है",
+ "Version": "संस्करण",
+ "Versions": "संस्करण",
+ "Versions Path": "संस्करण पथ",
+ "Versions are automatically deleted if they are older than the maximum age or exceed the number of files allowed in an interval.": "यदि संस्करण अधिकतम आयु से अधिक पुराने हैं या किसी अंतराल में अनुमत फाइलों की संख्या से अधिक हैं तो वे स्वचालित रूप से मिटा दिए जाते हैं।",
+ "Waiting to Clean": "सफाई की प्रतीक्षा में",
+ "Waiting to Scan": "स्कैन की प्रतीक्षा में",
+ "Waiting to Sync": "समन्वयन की प्रतीक्षा में",
+ "Warning": "चेतावनी",
+ "Warning, this path is a parent directory of an existing folder \"{%otherFolder%}\".": "चेतावनी, यह पथ मौजूदा फोल्डर \"{{otherFolder}}\" की मूल निर्देशिका है।",
+ "Warning, this path is a parent directory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "चेतावनी, यह पथ मौजूदा फोल्डर \"{{otherFolderLabel}}\" ({{otherFolder}}) की मूल निर्देशिका है।",
+ "Warning, this path is a subdirectory of an existing folder \"{%otherFolder%}\".": "चेतावनी, यह पथ मौजूदा फोल्डर \"{{otherFolder}}\" की एक उपनिर्देशिका है।",
+ "Warning, this path is a subdirectory of an existing folder \"{%otherFolderLabel%}\" ({%otherFolder%}).": "चेतावनी, यह पथ मौजूदा फोल्डर \"{{otherFolderLabel}}\" ({{otherFolder}}) की एक उपनिर्देशिका है।",
+ "Warning: If you are using an external watcher like {%syncthingInotify%}, you should make sure it is deactivated.": "चेतावनी: यदि आप {{syncthingInotify}} जैसे बाहरी वॉचर का उपयोग कर रहे हैं, तो आपको यह सुनिश्चित करना चाहिए कि यह निष्क्रिय है।",
+ "Watch for Changes": "परिवर्तनों पर नजर रखें",
+ "Watching for Changes": "परिवर्तनों पर नजर रख रहे हैं",
+ "Watching for changes discovers most changes without periodic scanning.": "परिवर्तनों पर नज़र रखने से समय-समय पर स्कैनिंग के बिना अधिकांश परिवर्तनों का पता चलता है।",
+ "When adding a new device, keep in mind that this device must be added on the other side too.": "नया उपकरण जोड़ते समय इस बात का ध्यान रखें कि यह उपकरण दूसरी तरफ भी जुड़ा होना चाहिए।",
+ "When adding a new folder, keep in mind that the Folder ID is used to tie folders together between devices. They are case sensitive and must match exactly between all devices.": "नया फोल्डर जोड़ते समय, ध्यान रखें कि फोल्डर ID का उपयोग उपकरणों के बीच फोल्डरों को एक साथ जोड़ने के लिए किया जाता है। वे केस संवेदनशील हैं और सभी उपकरणों के बीच बिल्कुल मेल खाना चाहिए।",
+ "When set to more than one on both devices, Syncthing will attempt to establish multiple concurrent connections. If the values differ, the highest will be used. Set to zero to let Syncthing decide.": "जब दोनों उपकरणों पर एक से अधिक पर तय किया जाता है, तो Syncthing एकाधिक समवर्ती कनेक्शन स्थापित करने का प्रयास करेगा। यदि मान भिन्न हैं, तो उच्चतम का उपयोग किया जाएगा। Syncthing को निर्णय लेने देने के लिए शून्य पर निर्धारित करें।",
+ "Yes": "हां",
+ "Yesterday": "बिता कल",
+ "You can also copy and paste the text into a new message manually.": "आप पाठ को मैन्युअल रूप से नए संदेश में कॉपी और पेस्ट भी कर सकते हैं।",
+ "You can also select one of these nearby devices:": "आप इन निकटवर्ती उपकरणों में से एक का चयन भी कर सकते हैं:",
+ "You can change your choice at any time in the Settings dialog.": "आप सेटिंग संवाद में किसी भी समय अपनी पसंद बदल सकते हैं।",
+ "You can read more about the two release channels at the link below.": "आप नीचे दिए गए लिंक पर दो रिलीज़ चैनलों के बारे में अधिक पढ़ सकते हैं।",
+ "You have no ignored devices.": "आपके पास कोई उपेक्षित उपकरण नहीं है।",
+ "You have no ignored folders.": "आपके पास कोई उपेक्षित फोल्डर नहीं है।",
+ "You have unsaved changes. Do you really want to discard them?": "आपके पास सहेजे नहीं गए परिवर्तन हैं। क्या आप सचमुच उन्हें त्यागना चाहते हैं?",
+ "You must keep at least one version.": "आपको कम से कम एक संस्करण रखना होगा।",
+ "You should never add or change anything locally in a \"{%receiveEncrypted%}\" folder.": "आपको \"{{receiveEncrypted}}\" फोल्डर में कभी भी स्थानीय रूप से कुछ भी जोड़ना या बदलना नहीं चाहिए।",
+ "Your SMS app should open to let you choose the recipient and send it from your own number.": "आपका SMS ऐप खुल जाना चाहिए ताकि आप प्राप्तकर्ता का चयन कर सकें और इसे अपने नंबर से भेज सकें।",
+ "Your email app should open to let you choose the recipient and send it from your own address.": "आपका ईमेल ऐप खुल जाना चाहिए ताकि आप प्राप्तकर्ता का चयन कर सकें और इसे अपने पते से भेज सकें।",
+ "days": "दिन",
+ "deleted": "मिटाया गया",
+ "deny": "अस्वीकारें",
+ "directories": "निर्देशिकाएं",
+ "file": "फाइल",
+ "files": "फाइलें",
+ "folder": "फोल्डर",
+ "full documentation": "पूर्ण दस्तावेज़ीकरण",
+ "items": "वस्तुएं",
+ "modified": "संशोधित",
+ "permit": "अनुमति",
+ "seconds": "सेकंड",
+ "theme": {
+ "name": {
+ "black": "काली",
+ "dark": "गहरी",
+ "default": "तयशुदा",
+ "light": "हल्की"
+ }
+ },
+ "unknown device": "अज्ञात उपकरण",
+ "{%device%} wants to share folder \"{%folder%}\".": "{{device}} फोल्डर \"{{folder}}\" साझा करना चाहता है।",
+ "{%device%} wants to share folder \"{%folderlabel%}\" ({%folder%}).": "{{device}} फोल्डर \"{{folderlabel}}\" ({{folder}}) साझा करना चाहता है।",
+ "{%reintroducer%} might reintroduce this device.": "{{reintroducer}} इस उपकरण को दोबारा पेश कर सकता है।"
+}
diff --git a/gui/default/assets/lang/prettyprint.js b/gui/default/assets/lang/prettyprint.js
index 15aff2b37..4b8c152ce 100644
--- a/gui/default/assets/lang/prettyprint.js
+++ b/gui/default/assets/lang/prettyprint.js
@@ -1 +1 @@
-var langPrettyprint = {"ar":"Arabic","bg":"Bulgarian","ca":"Catalan","ca@valencia":"Valencian","cs":"Czech","da":"Danish","de":"German","el":"Greek","en":"English","en-GB":"English (United Kingdom)","es":"Spanish","eu":"Basque","fr":"French","fy":"Frisian","hu":"Hungarian","id":"Indonesian","it":"Italian","ja":"Japanese","ko-KR":"Korean","lt":"Lithuanian","nl":"Dutch","pl":"Polish","pt-BR":"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)","ro-RO":"Romanian","ru":"Russian","sk":"Slovak","sl":"Slovenian","sv":"Swedish","tr":"Turkish","uk":"Ukrainian","zh-CN":"Chinese (Simplified)","zh-HK":"Chinese (Traditional, Hong Kong)","zh-TW":"Chinese (Traditional)"}
+var langPrettyprint = {"ar":"Arabic","bg":"Bulgarian","ca":"Catalan","ca@valencia":"Valencian","cs":"Czech","da":"Danish","de":"German","el":"Greek","en":"English","en-GB":"English (United Kingdom)","es":"Spanish","eu":"Basque","fr":"French","fy":"Frisian","hi":"Hindi","hu":"Hungarian","id":"Indonesian","it":"Italian","ja":"Japanese","ko-KR":"Korean","lt":"Lithuanian","nl":"Dutch","pl":"Polish","pt-BR":"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)","ro-RO":"Romanian","ru":"Russian","sk":"Slovak","sl":"Slovenian","sv":"Swedish","tr":"Turkish","uk":"Ukrainian","zh-CN":"Chinese (Simplified)","zh-HK":"Chinese (Traditional, Hong Kong)","zh-TW":"Chinese (Traditional)"}
diff --git a/gui/default/assets/lang/valid-langs.js b/gui/default/assets/lang/valid-langs.js
index 47ee22ff7..9c2ba17be 100644
--- a/gui/default/assets/lang/valid-langs.js
+++ b/gui/default/assets/lang/valid-langs.js
@@ -1 +1 @@
-var validLangs = ["ar","bg","ca","ca@valencia","cs","da","de","el","en","en-GB","es","eu","fr","fy","hu","id","it","ja","ko-KR","lt","nl","pl","pt-BR","pt-PT","ro-RO","ru","sk","sl","sv","tr","uk","zh-CN","zh-HK","zh-TW"]
+var validLangs = ["ar","bg","ca","ca@valencia","cs","da","de","el","en","en-GB","es","eu","fr","fy","hi","hu","id","it","ja","ko-KR","lt","nl","pl","pt-BR","pt-PT","ro-RO","ru","sk","sl","sv","tr","uk","zh-CN","zh-HK","zh-TW"]
diff --git a/gui/default/syncthing/core/aboutModalView.html b/gui/default/syncthing/core/aboutModalView.html
index 34dc33e41..1718406a6 100644
--- a/gui/default/syncthing/core/aboutModalView.html
+++ b/gui/default/syncthing/core/aboutModalView.html
@@ -30,7 +30,7 @@
<h4 class="text-center" translate>The Syncthing Authors</h4>
<div class="row">
<div class="col-md-12" id="contributor-list">
-Jakob Borg, Audrius Butkevicius, Jesse Lucas, Simon Frei, Tomasz Wilczyński, Alexander Graf, Alexandre Viau, Anderson Mesquita, André Colomb, Antony Male, Ben Schulz, Caleb Callaway, Daniel Harte, Eric P, Evgeny Kuznetsov, Lars K.W. Gohlke, Lode Hoste, Michael Ploujnikov, Nate Morrison, Philippe Schommers, Ryan Sullivan, Sergey Mishin, Stefan Tatschner, Wulf Weich, bt90, greatroar, Aaron Bieber, Adam Piggott, Adel Qalieh, Alan Pope, Alberto Donato, Aleksey Vasenev, Alessandro G., Alex Lindeman, Alex Xu, Alexander Seiler, Alexandre Alves, Aman Gupta, Anatoli Babenia, Andreas Sommer, Andrew Dunham, Andrew Meyer, Andrew Rabert, Andrey D, Anjan Momi, Anthony Goeckner, Antoine Lamielle, Anur, Aranjedeath, Arkadiusz Tymiński, Aroun, Arthur Axel fREW Schmidt, Artur Zubilewicz, Aurélien Rainone, BAHADIR YILMAZ, Bart De Vries, Beat Reichenbach, Ben Curthoys, Ben Shepherd, Ben Sidhom, Benedikt Heine, Benedikt Morbach, Benjamin Nater, Benno Fünfstück, Benny Ng, Boqin Qin, Boris Rybalkin, Brandon Philips, Brendan Long, Brian R. Becker, Carsten Hagemann, Catfriend1, Cathryne Linenweaver, Cedric Staniewski, Chih-Hsuan Yen, Choongkyu, Chris Howie, Chris Joel, Chris Tonkinson, Christian Kujau, Christian Prescott, Colin Kennedy, Cromefire_, Cyprien Devillez, Dale Visser, Dan, Daniel Barczyk, Daniel Bergmann, Daniel Martí, Daniel Padrta, Darshil Chanpura, David Rimmer, DeflateAwning, Denis A., Dennis Wilson, DerRockWolf, Devon G. Redekopp, Dimitri Papadopoulos Orfanos, Dmitry Saveliev, Domenic Horner, Dominik Heidler, Elias Jarlebring, Elliot Huffman, Emil Hessman, Emil Lundberg, Eng Zer Jun, Eric Lesiuta, Erik Meitner, Evan Spensley, Federico Castagnini, Felix, Felix Ableitner, Felix Lampe, Felix Unterpaintner, Francois-Xavier Gsell, Frank Isemann, Gahl Saraf, Gilli Sigurdsson, Gleb Sinyavskiy, Graham Miln, Greg, Han Boetes, HansK-p, Harrison Jones, Heiko Zuerker, Hugo Locurcio, Iain Barnett, Ian Johnson, Ikko Ashimine, Ilya Brin, Iskander Sharipov, Jaakko Hannikainen, Jacek Szafarkiewicz, Jack Croft, Jacob, Jake Peterson, James O'Beirne, James Patterson, Jaroslav Lichtblau, Jaroslav Malec, Jaspitta, Jauder Ho, Jaya Chithra, Jaya Kumar, Jeffery To, Jens Diemer, Jerry Jacobs, Jochen Voss, Johan Andersson, Johan Vromans, John Rinehart, Jonas Thelemann, Jonathan, Jonathan Cross, Jonta, Jose Manuel Delicado, Julian Lehrhuber, Jörg Thalheim, Jędrzej Kula, K.B.Dharun Krishna, Kalle Laine, Karol Różycki, Kebin Liu, Keith Harrison, Keith Turner, Kelong Cong, Ken'ichi Kamada, Kevin Allen, Kevin Bushiri, Kevin White, Jr., Kurt Fitzner, LSmithx2, Lars Lehtonen, Laurent Arnoud, Laurent Etiemble, Leo Arias, Liu Siyuan, Lord Landon Agahnim, Lukas Lihotzki, Luke Hamburg, Majed Abdulaziz, Marc Laporte, Marc Pujol, Marcin Dziadus, Marcus Legendre, Mario Majila, Mark Pulford, Martchus, Martin Polehla, Mateusz Naściszewski, Mateusz Ż, Matic Potočnik, Matt Burke, Matt Robenolt, Matteo Ruina, Maurizio Tomasi, Max, Max Schulze, MaximAL, Maxime Thirouin, Maximilian, MichaIng, Michael Jephcote, Michael Rienstra, Michael Tilli, Migelo, Mike Boone, MikeLund, MikolajTwarog, Mingxuan Lin, Naveen, Nicholas Rishel, Nick Busey, Nico Stapelbroek, Nicolas Braud-Santoni, Nicolas Perraut, Niels Peter Roest, Nils Jakobi, NinoM4ster, Nitroretro, NoLooseEnds, Oliver Freyermuth, Otiel, Oyebanji Jacob Mayowa, Pablo, Pascal Jungblut, Paul Brit, Pawel Palenica, Paweł Rozlach, Peter Badida, Peter Dave Hello, Peter Hoeg, Peter Marquardt, Phani Rithvij, Phil Davis, Phill Luby, Pier Paolo Ramon, Piotr Bejda, Pramodh KP, Quentin Hibon, Rahmi Pruitt, Richard Hartmann, Robert Carosi, Roberto Santalla, Robin Schoonover, Roman Zaynetdinov, Ross Smith II, Ruslan Yevdokymov, Ryan Qian, Sacheendra Talluri, Scott Klupfel, Sertonix, Shaarad Dalvi, Simon Mwepu, Sly_tom_cat, Stefan Kuntz, Steven Eckhoff, Suhas Gundimeda, Sven Bachmann, Taylor Khan, Thomas, Thomas Hipp, Tim Abell, Tim Howes, Tim Nordenfur, Tobias Klauser, Tobias Nygren, Tobias Tom, Tom Jakubowski, Tommy Thorn, Tully Robinson, Tyler Brazier, Tyler Kropp, Unrud, Veeti Paananen, Victor Buinsky, Vik, Vil Brekin, Vladimir Rusinov, Will Rouesnel, William A. Kennington III, Xavier O., Yannic A., andresvia, andyleap, boomsquared, chenrui, chucic, cjc7373, cui fliter, d-volution, derekriemer, desbma, diemade, digital, entity0xfe, georgespatton, ghjklw, guangwu, gudvinr, ignacy123, janost, jaseg, jelle van der Waa, jtagcat, klemens, kylosus, luzpaz, marco-m, mclang, mv1005, nf, orangekame3, otbutz, overkill, perewa, red_led, rubenbe, sec65, vapatel2, villekalliomaki, wangguoliang, wouter bolsterlee, xarx00, xjtdy888, 佛跳墙, 落心
+Jakob Borg, Audrius Butkevicius, Jesse Lucas, Simon Frei, Tomasz Wilczyński, Alexander Graf, Alexandre Viau, Anderson Mesquita, André Colomb, Antony Male, Ben Schulz, Caleb Callaway, Daniel Harte, Eric P, Evgeny Kuznetsov, Lars K.W. Gohlke, Lode Hoste, Michael Ploujnikov, Nate Morrison, Philippe Schommers, Ryan Sullivan, Sergey Mishin, Stefan Tatschner, Wulf Weich, bt90, greatroar, Aaron Bieber, Adam Piggott, Adel Qalieh, Alan Pope, Alberto Donato, Aleksey Vasenev, Alessandro G., Alex Lindeman, Alex Xu, Alexander Seiler, Alexandre Alves, Aman Gupta, Anatoli Babenia, Andreas Sommer, Andrew Dunham, Andrew Meyer, Andrew Rabert, Andrey D, Anjan Momi, Anthony Goeckner, Antoine Lamielle, Anur, Aranjedeath, Arkadiusz Tymiński, Aroun, Arthur Axel fREW Schmidt, Artur Zubilewicz, Aurélien Rainone, BAHADIR YILMAZ, Bart De Vries, Beat Reichenbach, Ben Curthoys, Ben Shepherd, Ben Sidhom, Benedikt Heine, Benedikt Morbach, Benjamin Nater, Benno Fünfstück, Benny Ng, Boqin Qin, Boris Rybalkin, Brandon Philips, Brendan Long, Brian R. Becker, Carsten Hagemann, Catfriend1, Cathryne Linenweaver, Cedric Staniewski, Chih-Hsuan Yen, Choongkyu, Chris Howie, Chris Joel, Chris Tonkinson, Christian Kujau, Christian Prescott, Colin Kennedy, Cromefire_, Cyprien Devillez, Dale Visser, Dan, Daniel Barczyk, Daniel Bergmann, Daniel Martí, Daniel Padrta, Darshil Chanpura, David Rimmer, DeflateAwning, Denis A., Dennis Wilson, DerRockWolf, Devon G. Redekopp, Dimitri Papadopoulos Orfanos, Dmitry Saveliev, Domenic Horner, Dominik Heidler, Elias Jarlebring, Elliot Huffman, Emil Hessman, Emil Lundberg, Eng Zer Jun, Eric Lesiuta, Erik Meitner, Evan Spensley, Federico Castagnini, Felix, Felix Ableitner, Felix Lampe, Felix Unterpaintner, Francois-Xavier Gsell, Frank Isemann, Gahl Saraf, Gilli Sigurdsson, Gleb Sinyavskiy, Graham Miln, Greg, Han Boetes, HansK-p, Harrison Jones, Heiko Zuerker, Hugo Locurcio, Iain Barnett, Ian Johnson, Ikko Ashimine, Ilya Brin, Iskander Sharipov, Jaakko Hannikainen, Jacek Szafarkiewicz, Jack Croft, Jacob, Jake Peterson, James O'Beirne, James Patterson, Jaroslav Lichtblau, Jaroslav Malec, Jaspitta, Jauder Ho, Jaya Chithra, Jaya Kumar, Jeffery To, Jens Diemer, Jerry Jacobs, Jochen Voss, Johan Andersson, Johan Vromans, John Rinehart, Jonas Thelemann, Jonathan, Jonathan Cross, Jonta, Jose Manuel Delicado, Julian Lehrhuber, Jörg Thalheim, Jędrzej Kula, K.B.Dharun Krishna, Kalle Laine, Karol Różycki, Kebin Liu, Keith Harrison, Keith Turner, Kelong Cong, Ken'ichi Kamada, Kevin Allen, Kevin Bushiri, Kevin White, Jr., Kurt Fitzner, LSmithx2, Lars Lehtonen, Laurent Arnoud, Laurent Etiemble, Leo Arias, Liu Siyuan, Lord Landon Agahnim, Lukas Lihotzki, Luke Hamburg, Majed Abdulaziz, Marc Laporte, Marc Pujol, Marcin Dziadus, Marcus Legendre, Mario Majila, Mark Pulford, Martchus, Martin Polehla, Mateusz Naściszewski, Mateusz Ż, Matic Potočnik, Matt Burke, Matt Robenolt, Matteo Ruina, Maurizio Tomasi, Max, Max Schulze, MaximAL, Maxime Thirouin, Maximilian, MichaIng, Michael Jephcote, Michael Rienstra, Michael Tilli, Migelo, Mike Boone, MikeLund, MikolajTwarog, Mingxuan Lin, Naveen, Nicholas Rishel, Nick Busey, Nico Stapelbroek, Nicolas Braud-Santoni, Nicolas Perraut, Niels Peter Roest, Nils Jakobi, NinoM4ster, Nitroretro, NoLooseEnds, Oliver Freyermuth, Otiel, Oyebanji Jacob Mayowa, Pablo, Pascal Jungblut, Paul Brit, Pawel Palenica, Paweł Rozlach, Peter Badida, Peter Dave Hello, Peter Hoeg, Peter Marquardt, Phani Rithvij, Phil Davis, Phill Luby, Pier Paolo Ramon, Piotr Bejda, Pramodh KP, Quentin Hibon, Rahmi Pruitt, Richard Hartmann, Robert Carosi, Roberto Santalla, Robin Schoonover, Roman Zaynetdinov, Ross Smith II, Ruslan Yevdokymov, Ryan Qian, Sacheendra Talluri, Scott Klupfel, Sertonix, Severin von Wnuck-Lipinski, Shaarad Dalvi, Simon Mwepu, Sly_tom_cat, Stefan Kuntz, Steven Eckhoff, Suhas Gundimeda, Sven Bachmann, Taylor Khan, Thomas, Thomas Hipp, Tim Abell, Tim Howes, Tim Nordenfur, Tobias Klauser, Tobias Nygren, Tobias Tom, Tom Jakubowski, Tommy Thorn, Tully Robinson, Tyler Brazier, Tyler Kropp, Unrud, Veeti Paananen, Victor Buinsky, Vik, Vil Brekin, Vladimir Rusinov, Will Rouesnel, William A. Kennington III, Xavier O., Yannic A., andresvia, andyleap, boomsquared, chenrui, chucic, cjc7373, cui fliter, d-volution, derekriemer, desbma, diemade, digital, entity0xfe, georgespatton, ghjklw, guangwu, gudvinr, ignacy123, janost, jaseg, jelle van der Waa, jtagcat, klemens, kylosus, luzpaz, marco-m, mclang, mv1005, nf, orangekame3, otbutz, overkill, perewa, red_led, rubenbe, sec65, vapatel2, villekalliomaki, wangguoliang, wouter bolsterlee, xarx00, xjtdy888, 佛跳墙, 落心
</div>
</div>
</div>
diff --git a/lib/connections/metrics.go b/lib/connections/metrics.go
new file mode 100644
index 000000000..e00283391
--- /dev/null
+++ b/lib/connections/metrics.go
@@ -0,0 +1,27 @@
+// Copyright (C) 2024 The Syncthing Authors.
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this file,
+// You can obtain one at https://mozilla.org/MPL/2.0/.
+
+package connections
+
+import (
+ "github.com/prometheus/client_golang/prometheus"
+ "github.com/prometheus/client_golang/prometheus/promauto"
+)
+
+var (
+ metricDeviceActiveConnections = promauto.NewGaugeVec(prometheus.GaugeOpts{
+ Namespace: "syncthing",
+ Subsystem: "connections",
+ Name: "active",
+ Help: "Number of currently active connections, per device. If value is 0, the device is disconnected.",
+ }, []string{"device"})
+)
+
+func registerDeviceMetrics(deviceID string) {
+ // Register metrics for this device, so that counters & gauges are present even
+ // when zero.
+ metricDeviceActiveConnections.WithLabelValues(deviceID)
+}
diff --git a/lib/connections/quic_listen.go b/lib/connections/quic_listen.go
index df1384df6..2418a0404 100644
--- a/lib/connections/quic_listen.go
+++ b/lib/connections/quic_listen.go
@@ -12,6 +12,7 @@ package connections
import (
"context"
"crypto/tls"
+ "errors"
"net"
"net/url"
"sync"
@@ -145,7 +146,7 @@ func (t *quicListener) serve(ctx context.Context) error {
}
session, err := listener.Accept(ctx)
- if err == context.Canceled {
+ if errors.Is(err, context.Canceled) {
return nil
} else if err != nil {
l.Infoln("Listen (BEP/quic): Accepting connection:", err)
diff --git a/lib/connections/service.go b/lib/connections/service.go
index 359dcff4d..5b69f2f99 100644
--- a/lib/connections/service.go
+++ b/lib/connections/service.go
@@ -846,6 +846,7 @@ func (s *service) CommitConfiguration(from, to config.Configuration) bool {
newDevices := make(map[protocol.DeviceID]bool, len(to.Devices))
for _, dev := range to.Devices {
newDevices[dev.DeviceID] = true
+ registerDeviceMetrics(dev.DeviceID.String())
}
for _, dev := range from.Devices {
@@ -853,6 +854,7 @@ func (s *service) CommitConfiguration(from, to config.Configuration) bool {
warningLimitersMut.Lock()
delete(warningLimiters, dev.DeviceID)
warningLimitersMut.Unlock()
+ metricDeviceActiveConnections.DeleteLabelValues(dev.DeviceID.String())
}
}
@@ -1378,6 +1380,9 @@ func (c *deviceConnectionTracker) accountAddedConnection(conn protocol.Connectio
c.wantConnections[d] = int(h.NumConnections)
l.Debugf("Added connection for %s (now %d), they want %d connections", d.Short(), len(c.connections[d]), h.NumConnections)
+ // Update active connections metric
+ metricDeviceActiveConnections.WithLabelValues(d.String()).Inc()
+
// Close any connections we no longer want to retain.
c.closeWorsePriorityConnectionsLocked(d, conn.Priority()-upgradeThreshold)
}
@@ -1399,6 +1404,10 @@ func (c *deviceConnectionTracker) accountRemovedConnection(conn protocol.Connect
delete(c.connections, d)
delete(c.wantConnections, d)
}
+
+ // Update active connections metric
+ metricDeviceActiveConnections.WithLabelValues(d.String()).Dec()
+
l.Debugf("Removed connection for %s (now %d)", d.Short(), c.connections[d])
}
diff --git a/lib/db/backend/leveldb_open.go b/lib/db/backend/leveldb_open.go
index 32a5585df..3908d7569 100644
--- a/lib/db/backend/leveldb_open.go
+++ b/lib/db/backend/leveldb_open.go
@@ -64,7 +64,7 @@ func OpenLevelDBRO(location string) (Backend, error) {
return newLeveldbBackend(ldb, location), nil
}
-// OpenMemory returns a new Backend referencing an in-memory database.
+// OpenLevelDBMemory returns a new Backend referencing an in-memory database.
func OpenLevelDBMemory() Backend {
ldb, _ := leveldb.Open(storage.NewMemStorage(), nil)
return newLeveldbBackend(ldb, "")
diff --git a/lib/db/namespaced.go b/lib/db/namespaced.go
index b7d00bffc..ec7f3298c 100644
--- a/lib/db/namespaced.go
+++ b/lib/db/namespaced.go
@@ -143,7 +143,7 @@ func NewFolderStatisticsNamespace(db backend.Backend, folder string) *Namespaced
return NewNamespacedKV(db, string(KeyTypeFolderStatistic)+folder)
}
-// NewMiscDateNamespace creates a KV namespace for miscellaneous metadata.
+// NewMiscDataNamespace creates a KV namespace for miscellaneous metadata.
func NewMiscDataNamespace(db backend.Backend) *NamespacedKV {
return NewNamespacedKV(db, string(KeyTypeMiscData))
}
diff --git a/lib/db/structs.go b/lib/db/structs.go
index 8c3c1f39a..a79224a39 100644
--- a/lib/db/structs.go
+++ b/lib/db/structs.go
@@ -388,7 +388,7 @@ func (vl *VersionList) findGlobal() int {
return 0
}
-// findDevices returns whether the device is in InvalidVersions or Versions and
+// findDevice returns whether the device is in InvalidVersions or Versions and
// in InvalidDevices or Devices (true for invalid), the positions in the version
// and device slices and whether it has been found at all.
func (vl *VersionList) findDevice(device []byte) (bool, int, int, bool) {
diff --git a/lib/protocol/metrics.go b/lib/protocol/metrics.go
index 1f57e51fd..d1873b7d1 100644
--- a/lib/protocol/metrics.go
+++ b/lib/protocol/metrics.go
@@ -58,5 +58,6 @@ func registerDeviceMetrics(deviceID string) {
metricDeviceSentUncompressedBytes.WithLabelValues(deviceID)
metricDeviceSentMessages.WithLabelValues(deviceID)
metricDeviceRecvBytes.WithLabelValues(deviceID)
+ metricDeviceRecvDecompressedBytes.WithLabelValues(deviceID)
metricDeviceRecvMessages.WithLabelValues(deviceID)
}
diff --git a/man/stdiscosrv.1 b/man/stdiscosrv.1
index 602ec526f..75a478b23 100644
--- a/man/stdiscosrv.1
+++ b/man/stdiscosrv.1
@@ -27,20 +27,18 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "STDISCOSRV" "1" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "STDISCOSRV" "1" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
stdiscosrv \- Syncthing Discovery Server
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
stdiscosrv [\-cert=<file>] [\-db\-dir=<string>] [\-debug] [\-http] [\-key=<string>]
[\-listen=<address>] [\-metrics\-listen=<address>]
[\-replicate=<peers>] [\-replication\-listen=<address>]
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH DESCRIPTION
@@ -87,7 +85,7 @@ Prometheus compatible metrics endpoint listen address (default disabled).
.INDENT 0.0
.TP
.B \-replicate=<peers>
-Replication peers, \fI\%id@address\fP <\fBid@address\fP>, comma separated
+Replication peers, \X'tty: link mailto:id@address'\fI\%id@address\fP <\fBid@address\fP>\X'tty: link', comma separated
.UNINDENT
.INDENT 0.0
.TP
@@ -114,10 +112,10 @@ entry from the list.
.SS Description
.sp
This guide assumes that you have already set up Syncthing. If you
-haven’t yet, head over to \fI\%Getting Started\fP first.
+haven’t yet, head over to \X'tty: link #getting-started'\fI\%Getting Started\fP\X'tty: link' first.
.SS Installing
.sp
-Go to \fI\%releases\fP <\fBhttps://github.com/syncthing/discosrv/releases\fP> and
+Go to \X'tty: link https://github.com/syncthing/discosrv/releases'\fI\%releases\fP <\fBhttps://github.com/syncthing/discosrv/releases\fP>\X'tty: link' and
download the file appropriate for your operating system. Unpacking it will
yield a binary called \fBstdiscosrv\fP (or \fBstdiscosrv.exe\fP on Windows).
Start this in whatever way you are most comfortable with; double clicking
@@ -127,7 +125,7 @@ given flags to the contrary.
.sp
The discovery server can also be obtained through apt, the Debian/Ubuntu package
manager. Recent releases can be found at syncthing’s
-\fI\%apt repository\fP <\fBhttps://apt.syncthing.net/\fP>\&. The name of the package is
+\X'tty: link https://apt.syncthing.net/'\fI\%apt repository\fP <\fBhttps://apt.syncthing.net/\fP>\X'tty: link'\&. The name of the package is
syncthing\-discosrv.
.SS Configuring
.sp
@@ -164,12 +162,10 @@ the certificate and key at startup. This isn’t necessary with the \fBhttp\fP f
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ stdiscosrv \-cert=/path/to/cert.pem \-key=/path/to/key.pem
Server device ID is 7DDRT7J\-UICR4PM\-PBIZYL3\-MZOJ7X7\-EX56JP6\-IK6HHMW\-S7EK32W\-G3EUPQA
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -179,11 +175,9 @@ the clients in the discovery server URL:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
https://disco.example.com:8443/?id=7DDRT7J\-UICR4PM\-PBIZYL3\-MZOJ7X7\-EX56JP6\-IK6HHMW\-S7EK32W\-G3EUPQA
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -191,11 +185,9 @@ Otherwise, the URL will be:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
https://disco.example.com:8443/
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Replication
@@ -210,8 +202,8 @@ shared with the main discovery API. If the \fB\-http\fP mode is used the
certificate is not used for client requests but only for replication
connections.
.sp
-Authentication of replication connections is done using \fI\%Syncthing\-style
-device IDs\fP <\fBhttps://docs.syncthing.net/dev/device-ids.html#id1\fP> only \- CA
+Authentication of replication connections is done using \X'tty: link https://docs.syncthing.net/dev/device-ids.html#id1'\fI\%Syncthing\-style
+device IDs\fP <\fBhttps://docs.syncthing.net/dev/device-ids.html#id1\fP>\X'tty: link' only \- CA
verification is not available. The device IDs in question are those printed
by the discovery server on startup.
.sp
@@ -235,11 +227,9 @@ On server one:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ stdiscosrv \-replicate=MRI...7OK@192.0.2.55:19200 <other options>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -247,11 +237,9 @@ On server two:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ stdiscosrv \-replicate=I6K...H76@192.0.2.20:19200 <other options>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -266,11 +254,9 @@ device ID without “@ip:port” address:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ stdiscosrv \-replicate=I6K...H76 <other options>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -283,7 +269,7 @@ Syncthing towards this name. The same certificate must be used on both
discovery servers.
.SS Reverse Proxy Setup
.sp
-New in version 1.8.0: A new “X\-Client\-Port” HTTP header was added.
+Added in version 1.8.0: A new “X\-Client\-Port” HTTP header was added.
.sp
The discovery server can be run behind an SSL\-secured reverse proxy. This
@@ -331,25 +317,22 @@ listed above:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
proxy_set_header X\-Forwarded\-For $proxy_add_x_forwarded_for;
proxy_set_header X\-Client\-Port $remote_port;
proxy_set_header X\-SSL\-Cert $ssl_client_cert;
ssl_verify_client optional_no_ca;
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
The following is a complete example Nginx configuration file. With this setup,
-clients can use \fI\%https://discovery.example.com\fP as the discovery server URL in
+clients can use \X'tty: link https://discovery.example.com'\fI\%https://discovery.example.com\fP\X'tty: link' as the discovery server URL in
the Syncthing settings.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
# HTTP 1.1 support
proxy_http_version 1.1;
proxy_buffering off;
@@ -404,26 +387,23 @@ server {
proxy_pass http://discovery.example.com;
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
An example of automating the SSL certificates and reverse\-proxying the Discovery
-Server and Syncthing using Nginx, \fI\%Let’s Encrypt\fP <\fBhttps://letsencrypt.org/\fP> and Docker can be found \fI\%here\fP <\fBhttps://forum.syncthing.net/t/docker-syncthing-and-syncthing-discovery-behind-nginx-reverse-proxy-with-lets-encrypt/6880\fP>\&.
+Server and Syncthing using Nginx, \X'tty: link https://letsencrypt.org/'\fI\%Let’s Encrypt\fP <\fBhttps://letsencrypt.org/\fP>\X'tty: link' and Docker can be found \X'tty: link https://forum.syncthing.net/t/docker-syncthing-and-syncthing-discovery-behind-nginx-reverse-proxy-with-lets-encrypt/6880'\fI\%here\fP <\fBhttps://forum.syncthing.net/t/docker-syncthing-and-syncthing-discovery-behind-nginx-reverse-proxy-with-lets-encrypt/6880\fP>\X'tty: link'\&.
.SS Apache
.sp
The following lines must be added to the configuration:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
SSLProxyEngine On
SSLVerifyClient optional_no_ca
RequestHeader set X\-SSL\-Cert \(dq%{SSL_CLIENT_CERT}s\(dq
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -435,11 +415,9 @@ configuration:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
RemoteIPHeader X\-Forwarded\-For
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Caddy
@@ -448,8 +426,7 @@ The following lines must be added to the Caddyfile:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
discovery.example.com {
reverse_proxy 192.0.2.1:8443 {
header_up X\-Forwarded\-For {http.request.remote.host}
@@ -463,23 +440,20 @@ The following lines must be added to the Caddyfile:
}
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
For more details, see also the recommendations in the
-\fI\%Reverse Proxy Setup\fP <\fBhttps://docs.syncthing.net/users/reverseproxy.html\fP>
+\X'tty: link https://docs.syncthing.net/users/reverseproxy.html'\fI\%Reverse Proxy Setup\fP <\fBhttps://docs.syncthing.net/users/reverseproxy.html\fP>\X'tty: link'
page. Note that that page is directed at setting up a proxy for the
Syncthing web UI. You should do the proper path and port adjustments to proxying
the discovery server and your particular setup.
diff --git a/man/strelaysrv.1 b/man/strelaysrv.1
index 3a98fa895..b7aa240a7 100644
--- a/man/strelaysrv.1
+++ b/man/strelaysrv.1
@@ -27,22 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "STRELAYSRV" "1" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "STRELAYSRV" "1" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
strelaysrv \- Syncthing Relay Server
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
strelaysrv [\-debug] [\-ext\-address=<address>] [\-global\-rate=<bytes/s>] [\-keys=<dir>] [\-listen=<listen addr>]
[\-message\-timeout=<duration>] [\-nat] [\-nat\-lease=<duration>] [\-nat\-renewal=<duration>]
[\-nat\-timeout=<duration>] [\-network\-timeout=<duration>] [\-per\-session\-rate=<bytes/s>]
[\-ping\-interval=<duration>] [\-pools=<pool addresses>] [\-pprof] [\-protocol=<string>]
[\-provided\-by=<string>] [\-status\-srv=<listen addr>] [\-token=<string>] [\-version]
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH DESCRIPTION
@@ -50,7 +48,7 @@ strelaysrv [\-debug] [\-ext\-address=<address>] [\-global\-rate=<bytes/s>] [\-ke
Syncthing relies on a network of community\-contributed relay servers. Anyone
can run a relay server, and it will automatically join the relay pool and be
available to Syncthing users. The current list of relays can be found at
-\fI\%https://relays.syncthing.net/\fP\&.
+\X'tty: link https://relays.syncthing.net/'\fI\%https://relays.syncthing.net/\fP\X'tty: link'\&.
.SH OPTIONS
.INDENT 0.0
.TP
@@ -127,7 +125,7 @@ How often pings are sent (default 1m0s).
.TP
.B \-pools=<pool addresses>
Comma separated list of relay pool addresses to join (default
-“\fI\%https://relays.syncthing.net/endpoint\fP”). Blank to disable announcement to
+“\X'tty: link https://relays.syncthing.net/endpoint'\fI\%https://relays.syncthing.net/endpoint\fP\X'tty: link'”). Blank to disable announcement to
a pool, thereby remaining a private relay.
.UNINDENT
.INDENT 0.0
@@ -163,7 +161,7 @@ Show version
.UNINDENT
.SS Installing
.sp
-Go to \fI\%releases\fP <\fBhttps://github.com/syncthing/relaysrv/releases\fP> and
+Go to \X'tty: link https://github.com/syncthing/relaysrv/releases'\fI\%releases\fP <\fBhttps://github.com/syncthing/relaysrv/releases\fP>\X'tty: link' and
download the file appropriate for your operating system. Unpacking it will
yield a binary called \fBstrelaysrv\fP (or \fBstrelaysrv.exe\fP on Windows).
Start this in whatever way you are most comfortable with; double clicking
@@ -175,7 +173,7 @@ The startup message prints instructions on how to change this.
.sp
The relay server can also be obtained through apt, the Debian/Ubuntu package
manager. Recent releases can be found at syncthing’s
-\fI\%apt repository\fP <\fBhttps://apt.syncthing.net/\fP>\&. The name of the package is
+\X'tty: link https://apt.syncthing.net/'\fI\%apt repository\fP <\fBhttps://apt.syncthing.net/\fP>\X'tty: link'\&. The name of the package is
syncthing\-relaysrv.
.SH SETTING UP
.sp
@@ -189,14 +187,12 @@ system:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ sudo useradd strelaysrv
$ sudo mkdir /etc/strelaysrv
$ sudo chown strelaysrv /etc/strelaysrv
$ sudo \-u strelaysrv /usr/local/bin/strelaysrv \-keys /etc/strelaysrv
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -212,11 +208,9 @@ Syncthing can be configured to use specific relay servers (exclusively of the pu
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
relay://<host name|IP>[:port]/?id=<relay device ID>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -224,11 +218,9 @@ For example:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
relay://private\-relay\-1.example.com:443/?id=ITZRNXE\-YNROGBZ\-HXTH5P7\-VK5NYE5\-QHRQGE2\-7JQ6VNJ\-KZUEDIU\-5PPR5AM
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -246,11 +238,9 @@ to forward traffic from port 443 to port 22067, for example:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
iptables \-t nat \-A PREROUTING \-p tcp \-\-dport 443 \-j REDIRECT \-\-to\-port 22067
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -258,8 +248,7 @@ Or, if you’re using \fBufw\fP, add the following to \fB/etc/ufw/before.rules\f
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
@@ -267,8 +256,7 @@ Or, if you’re using \fBufw\fP, add the following to \fB/etc/ufw/before.rules\f
\-A PREROUTING \-p tcp \-\-dport 443 \-j REDIRECT \-\-to\-port 22067
COMMIT
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -277,12 +265,12 @@ You will need to start \fBstrelaysrv\fP with \fB\-ext\-address \(dq:443\(dq\fP\&
on port 22067. You will also need to let both port 443 and 22067 through your
firewall.
.sp
-Another option is \fI\%described here\fP <\fBhttps://wiki.apache.org/httpd/NonRootPortBinding\fP>,
+Another option is \X'tty: link https://wiki.apache.org/httpd/NonRootPortBinding'\fI\%described here\fP <\fBhttps://wiki.apache.org/httpd/NonRootPortBinding\fP>\X'tty: link',
although your mileage may vary.
.SH FIREWALL CONSIDERATIONS
.sp
The relay server listens on two ports by default. One for data connections and the other
-for providing public statistics at \fI\%https://relays.syncthing.net/\fP\&. The firewall, such as
+for providing public statistics at \X'tty: link https://relays.syncthing.net/'\fI\%https://relays.syncthing.net/\fP\X'tty: link'\&. The firewall, such as
\fBiptables\fP, must permit incoming TCP connections to the following ports:
.INDENT 0.0
.IP \(bu 2
@@ -295,19 +283,17 @@ Runtime \fBiptables\fP rules to allow access to the default ports:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
iptables \-I INPUT \-p tcp \-\-dport 22067 \-j ACCEPT
iptables \-I INPUT \-p tcp \-\-dport 22070 \-j ACCEPT
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
Please consult Linux distribution documentation to persist firewall rules.
.SH ACCESS CONTROL FOR PRIVATE RELAYS
.sp
-New in version 1.22.1.
+Added in version 1.22.1.
.sp
Private relays can be configured to only accept connections from peers in possession of a shared secret.
@@ -319,11 +305,9 @@ Then configure your Syncthing devices to send the token when joining the relay:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
relay://<host name|IP>[:port]/?id=<relay device ID>&token=mySecretToken
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH SEE ALSO
diff --git a/man/syncthing-bep.7 b/man/syncthing-bep.7
index 8f547a62a..7319b6f1b 100644
--- a/man/syncthing-bep.7
+++ b/man/syncthing-bep.7
@@ -1,3 +1,4 @@
+'\" t
.\" Man page generated from reStructuredText.
.
.
@@ -27,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-BEP" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-BEP" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-bep \- Block Exchange Protocol v1
.SH INTRODUCTION AND DEFINITIONS
@@ -48,7 +49,7 @@ for the last block which may be smaller.
.sp
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this
-document are to be interpreted as described in \fI\%RFC 2119\fP <\fBhttps://datatracker.ietf.org/doc/html/rfc2119.html\fP>\&.
+document are to be interpreted as described in \X'tty: link https://datatracker.ietf.org/doc/html/rfc2119.html'\fI\%RFC 2119\fP <\fBhttps://datatracker.ietf.org/doc/html/rfc2119.html\fP>\X'tty: link'\&.
.SH TRANSPORT AND AUTHENTICATION
.sp
BEP is deployed as the highest level in a protocol stack, with the lower
@@ -56,8 +57,7 @@ level protocols providing encryption and authentication.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
| Block Exchange Protocol |
|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|
@@ -66,8 +66,7 @@ level protocols providing encryption and authentication.
| Reliable Transport |
|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|
v ... v
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -129,8 +128,7 @@ followed by the contents of the Hello message itself.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -143,8 +141,7 @@ followed by the contents of the Hello message itself.
\e Hello \e
/ /
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -152,15 +149,13 @@ The Hello message itself is in protocol buffer format with the following schema:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message Hello {
string device_name = 1;
string client_name = 2;
string client_version = 3;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Fields (Hello message)
@@ -172,8 +167,8 @@ The \fBclient_name\fP and \fBclient_version\fP identifies the implementation. Th
values SHOULD be simple strings identifying the implementation name, as a
user would expect to see it, and the version string in the same manner. An
example client name is “syncthing” and an example client version is “v0.7.2”.
-The client version field SHOULD follow the patterns laid out in the \fI\%Semantic
-Versioning\fP <\fBhttps://semver.org/\fP> standard.
+The client version field SHOULD follow the patterns laid out in the \X'tty: link https://semver.org/'\fI\%Semantic
+Versioning\fP <\fBhttps://semver.org/\fP>\X'tty: link' standard.
.sp
Immediately after exchanging Hello messages, the connection MUST be dropped
if the remote device does not pass authentication.
@@ -193,8 +188,7 @@ A \fBMessage\fP
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -211,8 +205,7 @@ A \fBMessage\fP
\e Message \e
/ /
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -228,8 +221,7 @@ As always, the length words are in network byte order (big endian).
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message Header {
MessageType type = 1;
MessageCompression compression = 2;
@@ -250,8 +242,7 @@ enum MessageCompression {
NONE = 0;
LZ4 = 1;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -274,8 +265,7 @@ initial exchange.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message ClusterConfig {
repeated Folder folders = 1;
}
@@ -310,8 +300,7 @@ enum Compression {
NEVER = 1;
ALWAYS = 2;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Fields (Cluster Config Message)
@@ -389,7 +378,7 @@ The \fBencryption_password_token\fP field contains a token derived from the pass
used to encrypt data sent to this device. If the device is the same as the
device sending the message, it signifies that the device itself has encrypted
data that was encrypted with the given token. It is empty or missing if there is
-no encryption. See \fI\%Untrusted Device Encryption\fP for details on the encryption scheme.
+no encryption. See \X'tty: link #untrusted'\fI\%Untrusted Device Encryption\fP\X'tty: link' for details on the encryption scheme.
.SS Index and Index Update
.sp
The Index and Index Update messages define the contents of the senders
@@ -406,8 +395,7 @@ although this is not guaranteed to be the case in the future.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message Index {
string folder = 1;
repeated FileInfo files = 2;
@@ -460,8 +448,7 @@ message Counter {
uint64 id = 1;
uint64 value = 2;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Fields (Index Message)
@@ -544,8 +531,7 @@ corresponding to a part of a certain file in the peer’s folder.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message Request {
int32 id = 1;
string folder = 2;
@@ -555,8 +541,7 @@ message Request {
bytes hash = 6;
bool from_temporary = 7;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Fields
@@ -586,8 +571,7 @@ The Response message is sent in response to a Request message.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message Response {
int32 id = 1;
bytes data = 2;
@@ -600,8 +584,7 @@ enum ErrorCode {
NO_SUCH_FILE = 2;
INVALID_FILE = 3;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Fields
@@ -642,8 +625,7 @@ contain zero or more FileDownloadProgressUpdate messages.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message DownloadProgress {
string folder = 1;
repeated FileDownloadProgressUpdate updates = 2;
@@ -660,8 +642,7 @@ enum FileDownloadProgressUpdateType {
APPEND = 0;
FORGET = 1;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Fields (DownloadProgress Message)
@@ -721,12 +702,10 @@ other message has been sent in the preceding 90 seconds.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message Ping {
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Close
@@ -738,13 +717,11 @@ further messages.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message Close {
string reason = 1;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Fields
@@ -759,15 +736,13 @@ directions.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
+\-\-\-\-\-\-\-\-\-\-\-\-+ Updates /\-\-\-\-\-\-\-\-\-\e
| | \-\-\-\-\-\-\-\-\-\-\-> / \e
| Device | | Cluster |
| | <\-\-\-\-\-\-\-\-\-\-\- \e /
+\-\-\-\-\-\-\-\-\-\-\-\-+ Updates \e\-\-\-\-\-\-\-\-\-/
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Send Only
@@ -777,15 +752,13 @@ publishes changes of its local folder to the cluster as usual.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
+\-\-\-\-\-\-\-\-\-\-\-\-+ Updates /\-\-\-\-\-\-\-\-\-\e
| | \-\-\-\-\-\-\-\-\-\-\-> / \e
| Device | | Cluster |
| | \e /
+\-\-\-\-\-\-\-\-\-\-\-\-+ \e\-\-\-\-\-\-\-\-\-/
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Receive Only
@@ -795,15 +768,13 @@ accepts changes to its local folder from the cluster as usual.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
+\-\-\-\-\-\-\-\-\-\-\-\-+ Updates /\-\-\-\-\-\-\-\-\-\e
| | <\-\-\-\-\-\-\-\-\-\-\- / \e
| Device | | Cluster |
| | \e /
+\-\-\-\-\-\-\-\-\-\-\-\-+ \e\-\-\-\-\-\-\-\-\-/
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH DELTA INDEX EXCHANGE
@@ -878,9 +849,8 @@ results in fewer than 2000 blocks, or the maximum block size for larger
files. This rule results in the following table of block sizes per file
size:
.TS
-center;
-|l|l|.
-_
+box center;
+l|l.
T{
File Size
T} T{
@@ -934,7 +904,6 @@ T{
T} T{
16 MiB
T}
-_
.TE
.sp
An implementation MAY deviate from the block size rule when there is good
@@ -950,9 +919,8 @@ allowed. The block size used MUST be exactly one of the power\-of\-two block
sizes listed in the table above.
.SH EXAMPLE EXCHANGE
.TS
-center;
-|l|l|l|.
-_
+box center;
+l|l|l.
T{
#
T} T{
@@ -1074,7 +1042,6 @@ T} T{
Ping\->
T} T{
T}
-_
.TE
.sp
The connection is established and at 1. both peers send ClusterConfiguration
@@ -1089,9 +1056,8 @@ the ping timer on device B expires and a Ping message is sent. The same
process occurs for device A at 15.
.SH EXAMPLES OF STRONG CIPHER SUITES
.TS
-center;
-|l|l|l|.
-_
+box center;
+l|l|l.
T{
ID
T} T{
@@ -1163,7 +1129,6 @@ ECDHE\-RSA\-AES128\-SHA256
T} T{
TLSv1.2 ECDH RSA AES(128) SHA256
T}
-_
.TE
.SH AUTHOR
The Syncthing Authors
diff --git a/man/syncthing-config.5 b/man/syncthing-config.5
index 402584aba..ed92fa453 100644
--- a/man/syncthing-config.5
+++ b/man/syncthing-config.5
@@ -27,21 +27,19 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-CONFIG" "5" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-CONFIG" "5" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-config \- Syncthing Configuration
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$XDG_STATE_HOME/syncthing
$HOME/.local/state/syncthing
$HOME/Library/Application Support/Syncthing
%LOCALAPPDATA%\eSyncthing
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH DESCRIPTION
@@ -56,7 +54,7 @@ installations may still use these directories instead of the newer
defaults.
.sp
-New in version 1.5.0: Database and config can now be set separately. Previously the database was
+Added in version 1.5.0: Database and config can now be set separately. Previously the database was
always located in the same directory as the config.
.sp
@@ -119,8 +117,7 @@ may no longer correspond to the defaults.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<configuration version=\(dq37\(dq>
<folder id=\(dqdefault\(dq label=\(dqDefault Folder\(dq path=\(dq/Users/jb/Sync/\(dq type=\(dqsendreceive\(dq rescanIntervalS=\(dq3600\(dq fsWatcherEnabled=\(dqtrue\(dq fsWatcherDelayS=\(dq10\(dq ignorePerms=\(dqfalse\(dq autoNormalize=\(dqtrue\(dq>
<filesystemType>basic</filesystemType>
@@ -277,16 +274,14 @@ may no longer correspond to the defaults.
</device>
</defaults>
</configuration>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH CONFIGURATION ELEMENT
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<configuration version=\(dq37\(dq>
<folder></folder>
<device></device>
@@ -296,8 +291,7 @@ may no longer correspond to the defaults.
<remoteIgnoredDevice></remoteIgnoredDevice>
<defaults></defaults>
</configuration>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -322,8 +316,7 @@ GUI.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<folder id=\(dqdefault\(dq label=\(dqDefault Folder\(dq path=\(dq/Users/jb/Sync/\(dq type=\(dqsendreceive\(dq rescanIntervalS=\(dq3600\(dq fsWatcherEnabled=\(dqtrue\(dq fsWatcherDelayS=\(dq10\(dq ignorePerms=\(dqfalse\(dq autoNormalize=\(dqtrue\(dq>
<filesystemType>basic</filesystemType>
<device id=\(dqS7UKX27\-GI7ZTXS\-GC6RKUA\-7AJGZ44\-C6NAYEB\-HSKTJQK\-KJHU2NO\-CWV7EQW\(dq introducedBy=\(dq\(dq>
@@ -361,8 +354,7 @@ GUI.
<syncXattrs>false</syncXattrs>
<sendXattrs>false</sendXattrs>
</folder>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -603,7 +595,7 @@ to \fB\-1\fP to always use weak hash. Default is \fB25\fP\&.
.TP
.B markerName
Name of a directory or file in the folder root to be used as
-\fI\%How do I serve a folder from a read only filesystem?\fP\&. Default is \fB\&.stfolder\fP\&.
+\X'tty: link #marker-faq'\fI\%How do I serve a folder from a read only filesystem?\fP\X'tty: link'\&. Default is \fB\&.stfolder\fP\&.
.UNINDENT
.INDENT 0.0
.TP
@@ -715,8 +707,7 @@ devices when this is set to \fBtrue\fP\&. See
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<device id=\(dqS7UKX27\-GI7ZTXS\-GC6RKUA\-7AJGZ44\-C6NAYEB\-HSKTJQK\-KJHU2NO\-CWV7EQW\(dq name=\(dqsyno\(dq compression=\(dqmetadata\(dq introducer=\(dqfalse\(dq skipIntroductionRemovals=\(dqfalse\(dq introducedBy=\(dq2CYF2WQ\-AKZO2QZ\-JAKWLYD\-AGHMQUM\-BGXUOIS\-GYILW34\-HJG3DUK\-LRRYQAR\(dq>
<address>dynamic</address>
<paused>false</paused>
@@ -741,8 +732,7 @@ devices when this is set to \fBtrue\fP\&. See
<remoteGUIPort>8384</remoteGUIPort>
<numConnections>0</numConnections>
</device>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -754,7 +744,7 @@ element:
.INDENT 0.0
.TP
.B id (mandatory)
-The \fI\%device ID\fP\&.
+The \X'tty: link #device-ids'\fI\%device ID\fP\X'tty: link'\&.
.UNINDENT
.INDENT 0.0
.TP
@@ -855,15 +845,13 @@ for example:
.INDENT 7.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<device id=\(dq...\(dq>
<address>tcp://192.0.2.1:22001</address>
<address>quic://192.0.1.254:22000</address>
<address>dynamic</address>
</device>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.UNINDENT
@@ -942,15 +930,13 @@ The number of connections to this device. See
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<gui enabled=\(dqtrue\(dq tls=\(dqfalse\(dq debugging=\(dqfalse\(dq>
<address>127.0.0.1:8384</address>
<apikey>k1dnz1Dd0rzTBjjFFh7CXPnrF12C49B1</apikey>
<theme>default</theme>
</gui>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1060,7 +1046,7 @@ LDAP authentication. Requires ldap top level config section to be present.
.INDENT 0.0
.TP
.B sendBasicAuthPrompt
-New in version 1.26.0.
+Added in version 1.26.0.
.sp
Prior to version 1.26.0 the GUI used HTTP Basic Authorization for login, but
@@ -1082,16 +1068,14 @@ won’t see browser popups prompting for username and password.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<ldap>
<address>localhost:389</address>
<bindDN>cn=%s,ou=users,dc=syncthing,dc=net</bindDN>
<transport>nontls</transport>
<insecureSkipVerify>false</insecureSkipVerify>
</ldap>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1150,8 +1134,7 @@ Search filter for user searches.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<options>
<listenAddress>default</listenAddress>
<globalAnnounceServer>default</globalAnnounceServer>
@@ -1202,8 +1185,7 @@ Search filter for user searches.
<connectionLimitMax>0</connectionLimitMax>
<insecureAllowOldTLSVersions>false</insecureAllowOldTLSVersions>
</options>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1345,7 +1327,7 @@ automatic upgrades.
.TP
.B upgradeToPreReleases
If \fBtrue\fP, automatic upgrades include release candidates (see
-\fI\%Versions & Releases\fP).
+\X'tty: link #releases'\fI\%Versions & Releases\fP\X'tty: link').
.UNINDENT
.INDENT 0.0
.TP
@@ -1500,7 +1482,7 @@ addresses to global discovery.
.TP
.B sendFullIndexOnUpgrade
Controls whether all index data is resent when an upgrade has happened,
-equivalent to starting Syncthing with \fI\%\-\-reset\-deltas\fP\&. This used
+equivalent to starting Syncthing with \X'tty: link #cmdoption-reset-deltas'\fI\%\-\-reset\-deltas\fP\X'tty: link'\&. This used
to be the default behavior in older versions, but is mainly useful as a
troubleshooting step and causes high database churn. The default is now
\fBfalse\fP\&.
@@ -1538,8 +1520,7 @@ detailed in \fI\%insecureAllowOldTLSVersions\fP\&.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<defaults>
<folder id=\(dq\(dq label=\(dq\(dq path=\(dq~\(dq type=\(dqsendreceive\(dq rescanIntervalS=\(dq3600\(dq fsWatcherEnabled=\(dqtrue\(dq fsWatcherDelayS=\(dq10\(dq ignorePerms=\(dqfalse\(dq autoNormalize=\(dqtrue\(dq>
<filesystemType>basic</filesystemType>
@@ -1593,8 +1574,7 @@ detailed in \fI\%insecureAllowOldTLSVersions\fP\&.
<line>qu*</line>
</ignores>
</defaults>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1626,10 +1606,10 @@ including the appropriate \fI\%folder.device\fP element underneath.
.INDENT 0.0
.TP
.B ignores
-New in version 1.19.0.
+Added in version 1.19.0.
.sp
-Template for the \fI\%ignore patterns\fP applied to new
+Template for the \X'tty: link #ignoring-files'\fI\%ignore patterns\fP\X'tty: link' applied to new
folders. These are copied to the \fB\&.stignore\fP file when a folder is
automatically accepted from a remote device. The GUI uses them to pre\-fill
the respective field when adding a new folder as well. In XML, each pattern
@@ -1701,12 +1681,12 @@ accidentally if you sync your home folder between devices. A common symptom
of syncing configuration files is two devices ending up with the same Device ID.
.sp
If you want to use Syncthing to backup your configuration files, it is recommended
-that the files you are backing up are in a \fI\%Send Only Folder\fP to prevent other
+that the files you are backing up are in a \X'tty: link #folder-sendonly'\fI\%Send Only Folder\fP\X'tty: link' to prevent other
devices from overwriting the per device configuration. The folder on the remote
device(s) should not be used as configuration for the remote devices.
.sp
If you’d like to sync your home folder in non\-send only mode, you may add the
-folder that stores the configuration files to the \fI\%ignore list\fP\&.
+folder that stores the configuration files to the \X'tty: link #ignoring-files'\fI\%ignore list\fP\X'tty: link'\&.
If you’d also like to backup your configuration files, add another folder in
send only mode for just the configuration folder.
.SH AUTHOR
diff --git a/man/syncthing-device-ids.7 b/man/syncthing-device-ids.7
index 4b475fcc8..ca1f4660a 100644
--- a/man/syncthing-device-ids.7
+++ b/man/syncthing-device-ids.7
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-DEVICE-IDS" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-DEVICE-IDS" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-device-ids \- Understanding Device IDs
.sp
@@ -52,8 +52,7 @@ The typical certificate will look something like this, inspected with
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
Certificate:
Data:
Version: 3 (0x2)
@@ -87,8 +86,7 @@ Certificate:
...
88:7e:e2:61:aa:4c:02:e3:64:b0:da:70:3a:cd:1c:3d:86:db:
df:54:b9:4e:be:1b
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -113,27 +111,23 @@ bits) so the resulting ID looks something like:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
MFZWI3DBONSGYYLTMRWGC43ENRQXGZDMMFZWI3DBONSGYYLTMRWA====
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
The padding (\fB====\fP) is stripped away, the device ID split into four
-groups, and \fI\%check
-digits\fP <\fBhttps://forum.syncthing.net/t/v0-9-0-new-node-id-format/478\fP>
+groups, and \X'tty: link https://forum.syncthing.net/t/v0-9-0-new-node-id-format/478'\fI\%check
+digits\fP <\fBhttps://forum.syncthing.net/t/v0-9-0-new-node-id-format/478\fP>\X'tty: link'
are added for each group. For presentation purposes the device ID is
grouped with dashes, resulting in the final value:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
MFZWI3D\-BONSGYC\-YLTMRWG\-C43ENR5\-QXGZDMM\-FZWI3DP\-BONSGYY\-LTMRWAD
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Connection Establishment
@@ -192,8 +186,8 @@ You can argue that of course there are collisions \- there’s an infinite
amount of inputs and a finite amount of outputs \- so by definition there
are infinitely many messages that result in the same hash.
.sp
-I’m going to quote \fI\%stack
-overflow\fP <\fBhttps://stackoverflow.com/questions/4014090/is-it-safe-to-ignore-the-possibility-of-sha-collisions-in-practice\fP>
+I’m going to quote \X'tty: link https://stackoverflow.com/questions/4014090/is-it-safe-to-ignore-the-possibility-of-sha-collisions-in-practice'\fI\%stack
+overflow\fP <\fBhttps://stackoverflow.com/questions/4014090/is-it-safe-to-ignore-the-possibility-of-sha-collisions-in-practice\fP>\X'tty: link'
here:
.INDENT 0.0
.INDENT 3.5
diff --git a/man/syncthing-event-api.7 b/man/syncthing-event-api.7
index 6c4d5cf6b..449603fe2 100644
--- a/man/syncthing-event-api.7
+++ b/man/syncthing-event-api.7
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-EVENT-API" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-EVENT-API" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-event-api \- Event API
.SH DESCRIPTION
@@ -40,8 +40,7 @@ Each event is represented by an object similar to the following:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 2,
\(dqglobalID\(dq: 3,
@@ -52,8 +51,7 @@ Each event is represented by an object similar to the following:
\(dqid\(dq: \(dqNFGKEKE\-7Z6RTH7\-I3PRZXS\-DEJF3UJ\-FRWJBFO\-VBBTDND\-4SGNGVZ\-QUQHJAG\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -85,7 +83,7 @@ determined by the event type.
.SH EVENT TYPES
.SS ClusterConfigReceived
.sp
-New in version 1.20.0.
+Added in version 1.20.0.
.sp
The \fBClusterConfigReceived\fP event is emitted after processing such a protocol
@@ -93,8 +91,7 @@ message received from a remote device. It is mainly used for internal purposes.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 84,
\(dqglobalID\(dq: 84,
@@ -104,8 +101,7 @@ message received from a remote device. It is mainly used for internal purposes.
\(dqdevice\(dq: \(dqI6KAH76\-66SLLLB\-5PFXSOA\-UFJCDZC\-YAOMLEK\-CP2GB32\-BV5RQST\-3PSROAU\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS ConfigSaved
@@ -115,8 +111,7 @@ itself.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 50,
\(dqglobalID\(dq: 50,
@@ -133,8 +128,7 @@ itself.
\(dqdefaults\(dq: {\(dq...\(dq}
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS DeviceConnected
@@ -143,8 +137,7 @@ Generated each time a connection to a device has been established.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 2,
\(dqglobalID\(dq: 2,
@@ -159,8 +152,7 @@ Generated each time a connection to a device has been established.
\(dqtype\(dq: \(dqTCP (Client)\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS DeviceDisconnected
@@ -169,8 +161,7 @@ Generated each time a connection to a device has been terminated.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 48,
\(dqglobalID\(dq: 48,
@@ -181,8 +172,7 @@ Generated each time a connection to a device has been terminated.
\(dqid\(dq: \(dqNFGKEKE\-7Z6RTH7\-I3PRZXS\-DEJF3UJ\-FRWJBFO\-VBBTDND\-4SGNGVZ\-QUQHJAG\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -201,8 +191,7 @@ Emitted when a new device is discovered using local discovery.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 13,
\(dqglobalID\(dq: 13,
@@ -215,8 +204,7 @@ Emitted when a new device is discovered using local discovery.
\(dqdevice\(dq: \(dqNFGKEKE\-7Z6RTH7\-I3PRZXS\-DEJF3UJ\-FRWJBFO\-VBBTDND\-4SGNGVZ\-QUQHJAG\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS DevicePaused
@@ -225,8 +213,7 @@ Emitted when a device was paused.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 13,
\(dqglobalID\(dq: 13,
@@ -236,8 +223,7 @@ Emitted when a device was paused.
\(dqdevice\(dq: \(dqNFGKEKE\-7Z6RTH7\-I3PRZXS\-DEJF3UJ\-FRWJBFO\-VBBTDND\-4SGNGVZ\-QUQHJAG\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS DeviceRejected (DEPRECATED)
@@ -251,8 +237,7 @@ to talk to.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 24,
\(dqglobalID\(dq: 24,
@@ -264,8 +249,7 @@ to talk to.
\(dqdevice\(dq: \(dqEJHMPAQ\-OGCVORE\-ISB4IS3\-SYYVJXF\-TKJGLTU\-66DIQPF\-GJ5D2GX\-GQ3OWQK\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS DeviceResumed
@@ -274,8 +258,7 @@ Generated each time a device was resumed.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 2,
\(dqglobalID\(dq: 2,
@@ -285,8 +268,7 @@ Generated each time a device was resumed.
\(dqdevice\(dq: \(dqNFGKEKE\-7Z6RTH7\-I3PRZXS\-DEJF3UJ\-FRWJBFO\-VBBTDND\-4SGNGVZ\-QUQHJAG\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS DownloadProgress
@@ -297,8 +279,7 @@ configuration can cause multiple files to be shown.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 221,
\(dqglobalID\(dq: 221,
@@ -351,8 +332,7 @@ configuration can cause multiple files to be shown.
}
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.INDENT 0.0
@@ -393,8 +373,7 @@ The \fBdata\fP field contains a textual error message.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 93,
\(dqglobalID\(dq: 93,
@@ -402,8 +381,7 @@ The \fBdata\fP field contains a textual error message.
\(dqtime\(dq: \(dq2021\-06\-07T21:22:03.414609034+02:00\(dq,
\(dqdata\(dq: \(dqindex handler got paused while already paused\(dq
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS FolderCompletion
@@ -413,7 +391,7 @@ contents for a folder changes. It contains the completion percentage for
a given remote device and is emitted once per currently connected remote
device.
.sp
-New in version 1.20.0: Indication whether the remote device has accepted the folder (shares it with
+Added in version 1.20.0: Indication whether the remote device has accepted the folder (shares it with
us) as well, and whether it is paused. The \fBremoteState\fP field is
\fBunknown\fP when the remote device is not connected. Otherwise it can be
either \fBpaused\fP, \fBnotSharing\fP, or \fBvalid\fP if the remote is sharing back.
@@ -421,8 +399,7 @@ either \fBpaused\fP, \fBnotSharing\fP, or \fBvalid\fP if the remote is sharing b
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 84,
\(dqglobalID\(dq: 84,
@@ -441,8 +418,7 @@ either \fBpaused\fP, \fBnotSharing\fP, or \fBvalid\fP if the remote is sharing b
\(dqsequence\(dq: 12
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS FolderErrors
@@ -455,8 +431,7 @@ synchronization attempt, a new \fBFolderErrors\fP event is emitted.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 132,
\(dqtype\(dq: \(dqFolderErrors\(dq,
@@ -471,18 +446,17 @@ synchronization attempt, a new \fBFolderErrors\fP event is emitted.
\(dqfolder\(dq: \(dqdefault\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
-New in version 0.11.12.
+Added in version 0.11.12.
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
-The \fI\%StateChanged\fP event.
+The \X'tty: link #statechanged'\fI\%StateChanged\fP\X'tty: link' event.
.UNINDENT
.UNINDENT
.SS FolderPaused
@@ -492,8 +466,7 @@ of a folder. Sent repeatedly for each changed folder.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 93,
\(dqglobalID\(dq: 93,
@@ -504,8 +477,7 @@ of a folder. Sent repeatedly for each changed folder.
\(dqlabel\(dq: \(dqMy folder\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS FolderRejected (DEPRECATED)
@@ -519,8 +491,7 @@ have, or have but do not share with the device in question.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 27,
\(dqglobalID\(dq: 27,
@@ -532,8 +503,7 @@ have, or have but do not share with the device in question.
\(dqfolderLabel\(dq: \(dqMy Pictures\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS FolderResumed
@@ -543,8 +513,7 @@ of a folder. Sent repeatedly for each changed folder.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 93,
\(dqglobalID\(dq: 93,
@@ -555,8 +524,7 @@ of a folder. Sent repeatedly for each changed folder.
\(dqlabel\(dq: \(dqMy folder\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS FolderScanProgress
@@ -567,8 +535,7 @@ total , as well as the current scanning rates in bytes per second.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqdata\(dq : {
\(dqtotal\(dq : 1,
@@ -581,8 +548,7 @@ total , as well as the current scanning rates in bytes per second.
\(dqtime\(dq : \(dq2017\-03\-06T15:00:58.072004209+01:00\(dq,
\(dqid\(dq : 29
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS FolderSummary
@@ -593,8 +559,7 @@ state.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 16,
\(dqtype\(dq: \(dqFolderSummary\(dq,
@@ -644,8 +609,7 @@ state.
}
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS FolderWatchStateChanged
@@ -658,8 +622,7 @@ If there was no error in either of these, the respective field is omitted.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 123,
\(dqtype\(dq: \(dqFolderWatchStateChanged\(dq,
@@ -670,8 +633,7 @@ If there was no error in either of these, the respective field is omitted.
\(dqto\(dq: \(dqSomething worse happened.\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS ItemFinished
@@ -681,8 +643,7 @@ successful operation:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 93,
\(dqglobalID\(dq: 93,
@@ -696,8 +657,7 @@ successful operation:
\(dqaction\(dq: \(dqupdate\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -705,8 +665,7 @@ An unsuccessful operation:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 44,
\(dqglobalID\(dq: 44,
@@ -720,14 +679,13 @@ An unsuccessful operation:
\(dqtype\(dq: \(dqfile\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
The \fBaction\fP field is either \fBupdate\fP (contents changed), \fBmetadata\fP (file metadata changed but not contents), or \fBdelete\fP\&.
.sp
-New in version 0.11.10: The \fBmetadata\fP action.
+Added in version 0.11.10: The \fBmetadata\fP action.
.SS ItemStarted
.sp
@@ -735,8 +693,7 @@ Generated when Syncthing begins synchronizing a file to a newer version.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 93,
\(dqglobalID\(dq: 93,
@@ -749,23 +706,21 @@ Generated when Syncthing begins synchronizing a file to a newer version.
\(dqaction\(dq: \(dqupdate\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
The \fBaction\fP field is either \fBupdate\fP (contents changed), \fBmetadata\fP (file metadata changed but not contents), or \fBdelete\fP\&.
.sp
-New in version 0.11.10: The \fBmetadata\fP action.
+Added in version 0.11.10: The \fBmetadata\fP action.
.SS ListenAddressesChanged
.sp
-This event is emitted when a \fI\%listen address\fP changes.
+This event is emitted when a \X'tty: link #listen-addresses'\fI\%listen address\fP\X'tty: link' changes.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqtype\(dq : \(dqListenAddressesChanged\(dq,
\(dqid\(dq : 70,
@@ -811,8 +766,7 @@ This event is emitted when a \fI\%listen address\fP changes.
]
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS LocalChangeDetected
@@ -832,8 +786,7 @@ a mask specified, but needs to be selected explicitly.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 7,
\(dqglobalID\(dq: 59,
@@ -848,8 +801,7 @@ a mask specified, but needs to be selected explicitly.
\(dqtype\(dq: \(dqfile\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -864,8 +816,7 @@ changes during a scan.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 59,
\(dqglobalID\(dq: 59,
@@ -883,8 +834,7 @@ changes during a scan.
\(dqversion\(dq: 12345
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -901,8 +851,7 @@ origin of the request, but e.g. a reverse proxy.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq : 187,
\(dqtime\(dq : \(dq2017\-03\-07T00:19:24.420386143+01:00\(dq,
@@ -914,13 +863,12 @@ origin of the request, but e.g. a reverse proxy.
\(dqtype\(dq : \(dqLoginAttempt\(dq,
\(dqglobalID\(dq : 195
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS PendingDevicesChanged
.sp
-New in version 1.14.0.
+Added in version 1.14.0.
.sp
Emitted when pending devices were added / updated (connection from
@@ -928,8 +876,7 @@ unknown ID) or removed (device is ignored, dismissed or added).
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 87,
\(dqtype\(dq: \(dqPendingDevicesChanged\(dq,
@@ -949,13 +896,12 @@ unknown ID) or removed (device is ignored, dismissed or added).
]
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS PendingFoldersChanged
.sp
-New in version 1.14.0.
+Added in version 1.14.0.
.sp
Emitted when pending folders were added / updated (offered by some
@@ -966,8 +912,7 @@ longer pending for any device.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 101,
\(dqtype\(dq: \(dqPendingFoldersChanged\(dq,
@@ -993,8 +938,7 @@ longer pending for any device.
]
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS RemoteChangeDetected
@@ -1012,8 +956,7 @@ a mask specified, but needs to be selected explicitly.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqtime\(dq : \(dq2017\-03\-06T23:58:21.844739891+01:00\(dq,
\(dqglobalID\(dq : 123,
@@ -1029,8 +972,7 @@ a mask specified, but needs to be selected explicitly.
\(dqtype\(dq : \(dqRemoteChangeDetected\(dq,
\(dqid\(dq : 2
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1039,15 +981,14 @@ Deprecated since version v1.1.2: The \fBfolderID\fP field is a legacy name kept
.SS RemoteDownloadProgress
.sp
-This event is emitted when a \fI\%DownloadProgress\fP message is
+This event is emitted when a \X'tty: link #download-progress'\fI\%DownloadProgress\fP\X'tty: link' message is
received. It returns a map \fBdata\fP of filenames with a count of
downloaded blocks. The files in questions are currently being
downloaded on the remote \fBdevice\fP and belong to \fBfolder\fP\&.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqtime\(dq : \(dq2017\-03\-07T00:11:37.65838955+01:00\(dq,
\(dqglobalID\(dq : 170,
@@ -1061,8 +1002,7 @@ downloaded on the remote \fBdevice\fP and belong to \fBfolder\fP\&.
\(dqtype\(dq : \(dqRemoteDownloadProgress\(dq,
\(dqid\(dq : 163
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS RemoteIndexUpdated
@@ -1071,8 +1011,7 @@ Generated each time new index information is received from a device.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 44,
\(dqglobalID\(dq: 44,
@@ -1084,8 +1023,7 @@ Generated each time new index information is received from a device.
\(dqitems\(dq: 1000
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Starting
@@ -1095,8 +1033,7 @@ configuration etc.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 1,
\(dqglobalID\(dq: 1,
@@ -1106,8 +1043,7 @@ configuration etc.
\(dqhome\(dq: \(dq/home/jb/.config/syncthing\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS StartupComplete
@@ -1117,8 +1053,7 @@ ready to start exchanging data with other devices.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 1,
\(dqglobalID\(dq: 1,
@@ -1126,8 +1061,7 @@ ready to start exchanging data with other devices.
\(dqtime\(dq: \(dq2014\-07\-13T21:03:18.383239179+02:00\(dq,
\(dqdata\(dq: null
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS StateChanged
@@ -1140,8 +1074,7 @@ seconds and is now in state \fBidle\fP\&.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqid\(dq: 8,
\(dqglobalID\(dq: 8,
@@ -1154,8 +1087,7 @@ seconds and is now in state \fBidle\fP\&.
\(dqto\(dq: \(dqidle\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH AUTHOR
diff --git a/man/syncthing-faq.7 b/man/syncthing-faq.7
index 9c52b0817..517592fe0 100644
--- a/man/syncthing-faq.7
+++ b/man/syncthing-faq.7
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-FAQ" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-FAQ" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-faq \- Frequently Asked Questions
.INDENT 0.0
@@ -164,7 +164,7 @@ Directory modification times (not preserved)
Hard links (followed, not preserved)
.IP \(bu 2
Windows junctions (synced as ordinary directories; require enabling in
-\fI\%the configuration\fP on a per\-folder
+\X'tty: link #config-option-folder.junctionsasdirs'\fI\%the configuration\fP\X'tty: link' on a per\-folder
basis)
.IP \(bu 2
Resource forks (not preserved)
@@ -176,7 +176,7 @@ Devices, FIFOs, and other specials (ignored)
Sparse file sparseness (will become sparse, when supported by the OS & filesystem)
.IP \(bu 2
Syncthing internal files and folders (e.g. \fB\&.stfolder\fP, \fB\&.stignore\fP,
-\fB\&.stversions\fP, \fI\%temporary files\fP, etc.)
+\fB\&.stversions\fP, \X'tty: link #temporary-files'\fI\%temporary files\fP\X'tty: link', etc.)
.UNINDENT
.SS Is synchronization fast?
.sp
@@ -191,7 +191,7 @@ manner. This means that renaming a file will not cause a retransmission of
that file. Additionally, appending data to existing files should be handled
efficiently as well.
.sp
-\fI\%Temporary files\fP are used to store partial data
+\X'tty: link #temporary-files'\fI\%Temporary files\fP\X'tty: link' are used to store partial data
downloaded from other devices. They are automatically removed whenever a file
transfer has been completed or after the configured amount of time which is set
in the configuration file (24 hours by default).
@@ -209,7 +209,7 @@ Syncthing uses an open and documented protocol, and likewise the security
mechanisms in use are well defined and visible in the source code. Resilio
Sync uses an undocumented, closed protocol with unknown security properties.
.IP [1] 5
-\fI\%https://en.wikipedia.org/wiki/Resilio_Sync\fP
+\X'tty: link https://en.wikipedia.org/wiki/Resilio_Sync'\fI\%https://en.wikipedia.org/wiki/Resilio_Sync\fP\X'tty: link'
.SS Is there an iOS client?
.sp
There are no plans by the current Syncthing team to officially support iOS in the foreseeable future.
@@ -219,7 +219,7 @@ run Syncthing reliably and integrate it into the system.
.sp
However, there is a commercial packaging of Syncthing for iOS that attempts to work within these limitations. [2]
.IP [2] 5
-\fI\%https://www.mobiussync.com\fP
+\X'tty: link https://www.mobiussync.com'\fI\%https://www.mobiussync.com\fP\X'tty: link'
.SS Should I keep my device IDs secret?
.sp
No. The IDs are not sensitive. Given a device ID it’s possible to find the IP
@@ -236,7 +236,7 @@ oyster!)
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
-\fI\%Understanding Device IDs\fP
+\X'tty: link #device-ids'\fI\%Understanding Device IDs\fP\X'tty: link'
.UNINDENT
.UNINDENT
.SH TROUBLESHOOTING
@@ -262,7 +262,7 @@ Devices” list on the right side of the GUI, double check that you see
.sp
If you are connected via a relay, this is because a direct connection could
not be established. Double check and follow the suggestions in
-\fI\%Firewall Setup\fP to enable direct connections.
+\X'tty: link #firewall-setup'\fI\%Firewall Setup\fP\X'tty: link' to enable direct connections.
.sp
Second, if one of the devices is a very low powered machine (a Raspberry Pi,
or a phone, or a NAS, or similar) you are likely constrained by the CPU on
@@ -295,8 +295,8 @@ causes a certain amount of extra CPU usage to calculate the summary data it
presents. Note however that once things are \fIin sync\fP CPU usage should be
negligible.
.sp
-To minimize the impact of this, Syncthing attempts to \fI\%lower the
-process priority\fP when starting up.
+To minimize the impact of this, Syncthing attempts to \X'tty: link #config-option-options.setlowpriority'\fI\%lower the
+process priority\fP\X'tty: link' when starting up.
.sp
To further limit the amount of CPU used when syncing and scanning, set the
environment variable \fBGOMAXPROCS\fP to the maximum number of CPU cores
@@ -315,7 +315,7 @@ This is an area that we are working to improve in the long term.
.sp
Since version 0.14.6 Syncthing does an extra security check when the GUI/API
is bound to localhost \- namely that the browser is talking to localhost.
-This protects against most forms of \fI\%DNS rebinding attack\fP <\fBhttps://en.wikipedia.org/wiki/DNS_rebinding\fP> against the GUI.
+This protects against most forms of \X'tty: link https://en.wikipedia.org/wiki/DNS_rebinding'\fI\%DNS rebinding attack\fP <\fBhttps://en.wikipedia.org/wiki/DNS_rebinding\fP>\X'tty: link' against the GUI.
.sp
To pass this test, ensure that you are accessing the GUI using an URL that
begins with \fBhttp://localhost\fP, \fBhttp://127.0.0.1\fP or \fBhttp://[::1]\fP\&. HTTPS
@@ -328,7 +328,7 @@ protect against unauthorized access. Either:
.IP \(bu 2
Make sure the proxy sets a \fBHost\fP header containing \fBlocalhost\fP, or
.IP \(bu 2
-Set \fI\%gui.insecureSkipHostcheck\fP in the advanced settings, or
+Set \X'tty: link #config-option-gui.insecureskiphostcheck'\fI\%gui.insecureSkipHostcheck\fP\X'tty: link' in the advanced settings, or
.IP \(bu 2
Bind the GUI/API to a non\-localhost listen port.
.UNINDENT
@@ -338,8 +338,8 @@ In all cases, username/password authentication and HTTPS should be used.
.sp
This is almost always a result of bad RAM, storage device or other hardware.
When the index database is found to be corrupt Syncthing cannot operate and will
-note this in the logs and exit. To overcome this delete the \fI\%database
-folder\fP inside Syncthing’s data directory and re\-start
+note this in the logs and exit. To overcome this delete the \X'tty: link #config-locations'\fI\%database
+folder\fP\X'tty: link' inside Syncthing’s data directory and re\-start
Syncthing. It will then need to perform a full re\-hashing of all shared
folders. You should check your system in case the underlying cause is indeed
faulty hardware which may put the system at risk of further data loss.
@@ -374,10 +374,10 @@ up\-to\-date state with all the neighbours.
.SS Why does Syncthing connect to this unknown/suspicious address?
.sp
If you see outgoing connections to odd and unexpected addresses these are
-most likely connections to \fI\%relay servers\fP\&. Relay servers
+most likely connections to \X'tty: link #relaying'\fI\%relay servers\fP\X'tty: link'\&. Relay servers
are run by volunteers all over the world. They usually listen on ports 443 or
22067, though this is controlled by the user running it. You can compare the
-address you are concerned about with \fI\%the current list of active relays\fP <\fBhttps://relays.syncthing.net\fP>\&. Relays do not and can not see the data
+address you are concerned about with \X'tty: link https://relays.syncthing.net'\fI\%the current list of active relays\fP <\fBhttps://relays.syncthing.net\fP>\X'tty: link'\&. Relays do not and can not see the data
transmitted via them.
.SS I am seeing the error message “folder marker missing”. What do I do?
.sp
@@ -420,7 +420,7 @@ Also see the \fI\%marker FAQ\fP for more information about the folder marker.
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
-\fI\%Conflicting Changes\fP
+\X'tty: link #conflict-handling'\fI\%Conflicting Changes\fP\X'tty: link'
.UNINDENT
.UNINDENT
.SS How do I serve a folder from a read only filesystem?
@@ -468,8 +468,8 @@ to configure listening ports such that they do not overlap (see \fI\%Syncthing C
.sp
No. Syncthing is not designed to sync locally and the overhead involved in
doing so using Syncthing’s method would be wasteful. There are better
-programs to achieve this such as \fI\%rsync\fP <\fBhttps://rsync.samba.org/\fP> or
-\fI\%Unison\fP <\fBhttps://www.cis.upenn.edu/~bcpierce/unison\fP>\&.
+programs to achieve this such as \X'tty: link https://rsync.samba.org/'\fI\%rsync\fP <\fBhttps://rsync.samba.org/\fP>\X'tty: link' or
+\X'tty: link https://www.cis.upenn.edu/~bcpierce/unison'\fI\%Unison\fP <\fBhttps://www.cis.upenn.edu/~bcpierce/unison\fP>\X'tty: link'\&.
.SS When I do have two distinct Syncthing\-managed folders on two hosts, how does Syncthing handle moving files between them?
.sp
Syncthing does not specially handle this case, and most files will most likely get
@@ -526,12 +526,10 @@ computer, change the \fBGUI listen address\fP option in the web GUI from
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<gui enabled=\(dqtrue\(dq tls=\(dqfalse\(dq>
<address>127.0.0.1:8384</address>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -539,12 +537,10 @@ to
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<gui enabled=\(dqtrue\(dq tls=\(dqtrue\(dq>
<address>0.0.0.0:8384</address>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -557,33 +553,29 @@ GUI settings at default and use an SSH port forward to access it. For example,
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ ssh \-L 9090:127.0.0.1:8384 user@othercomputer.example.com
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
will log you into \fBothercomputer.example.com\fP, and present the \fIremote\fP
-Syncthing GUI on \fI\%http://localhost:9090\fP on your \fIlocal\fP computer.
+Syncthing GUI on \X'tty: link http://localhost:9090'\fI\%http://localhost:9090\fP\X'tty: link' on your \fIlocal\fP computer.
.sp
If you only want to access the remote GUI and don’t want the terminal session,
use this example:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ ssh \-N \-L 9090:127.0.0.1:8384 user@othercomputer.example.com
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
If only your remote computer is Unix\-like, you can still access it with SSH from
Windows. Under Windows 10 or later you can use the same \fBssh\fP command if you
-\fI\%install the OpenSSH Client\fP <\fBhttps://learn.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse\fP>\&.
+\X'tty: link https://learn.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse'\fI\%install the OpenSSH Client\fP <\fBhttps://learn.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse\fP>\X'tty: link'\&.
.SS I don’t like the GUI or the theme. Can it be changed?
.sp
You can change the theme in the settings. Syncthing ships with other themes
@@ -601,7 +593,7 @@ To add e.g. a red theme, you can create the file \fBred/assets/css/theme.css\fP
inside the GUI override directory to override the default CSS styles.
.sp
To create a whole new GUI, you should checkout the files at
-\fI\%https://github.com/syncthing/syncthing/tree/main/gui/default\fP
+\X'tty: link https://github.com/syncthing/syncthing/tree/main/gui/default'\fI\%https://github.com/syncthing/syncthing/tree/main/gui/default\fP\X'tty: link'
to get an idea how to do that.
.SS How do I upgrade Syncthing?
.sp
@@ -626,13 +618,13 @@ so should Syncthing.
.SS Where do I find the latest release?
.sp
We release new versions through GitHub. The latest release is always found
-\fI\%on the release page\fP <\fBhttps://github.com/syncthing/syncthing/releases/latest\fP>\&. Unfortunately
+\X'tty: link https://github.com/syncthing/syncthing/releases/latest'\fI\%on the release page\fP <\fBhttps://github.com/syncthing/syncthing/releases/latest\fP>\X'tty: link'\&. Unfortunately
GitHub does not provide a single URL to automatically download the latest
-version. We suggest to use the \fI\%GitHub API\fP <\fBhttps://api.github.com/repos/syncthing/syncthing/releases/latest\fP> and parsing
+version. We suggest to use the \X'tty: link https://api.github.com/repos/syncthing/syncthing/releases/latest'\fI\%GitHub API\fP <\fBhttps://api.github.com/repos/syncthing/syncthing/releases/latest\fP>\X'tty: link' and parsing
the JSON response.
.SS How do I run Syncthing as a daemon process on Linux?
.sp
-If you’re using systemd, runit, or upstart, we ship \fI\%example configurations\fP <\fBhttps://github.com/syncthing/syncthing/tree/main/etc\fP>\&.
+If you’re using systemd, runit, or upstart, we ship \X'tty: link https://github.com/syncthing/syncthing/tree/main/etc'\fI\%example configurations\fP <\fBhttps://github.com/syncthing/syncthing/tree/main/etc\fP>\X'tty: link'\&.
.sp
If however you’re not using one of these tools, you have a couple of options.
If your system has a tool called \fBstart\-stop\-daemon\fP installed (that’s the name
@@ -650,7 +642,7 @@ the filesystem watcher on linux:
.INDENT 0.0
.INDENT 3.5
Failed to start filesystem watcher for folder yourLabel (yourID): failed to
-setup inotify handler. Please increase inotify limits, see \fI\%https://docs.syncthing.net/users/faq.html#inotify\-limits\fP
+setup inotify handler. Please increase inotify limits, see \X'tty: link https://docs.syncthing.net/users/faq.html#inotify-limits'\fI\%https://docs.syncthing.net/users/faq.html#inotify\-limits\fP\X'tty: link'
.UNINDENT
.UNINDENT
.sp
@@ -661,11 +653,9 @@ On many Linux distributions you can run the following to fix it:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
echo \(dqfs.inotify.max_user_watches=204800\(dq | sudo tee \-a /etc/sysctl.conf
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -674,11 +664,9 @@ separate file, i.e. you should run:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
echo \(dqfs.inotify.max_user_watches=204800\(dq | sudo tee \-a /etc/sysctl.d/90\-override.conf
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -686,17 +674,15 @@ This only takes effect after a reboot. To adjust the limit immediately, run:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
echo 204800 | sudo tee /proc/sys/fs/inotify/max_user_watches
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS How do I reset the GUI password?
.sp
If you’ve forgotten / lost the GUI password, you can reset it using the
-\fI\%\-\-gui\-password\fP (and possibly \fI\%\-\-gui\-user\fP) options to the
+\X'tty: link #cmdoption-gui-password'\fI\%\-\-gui\-password\fP\X'tty: link' (and possibly \X'tty: link #cmdoption-gui-user'\fI\%\-\-gui\-user\fP\X'tty: link') options to the
\fBsyncthing generate\fP subcommand. This should be done while Syncthing is not
running.
.INDENT 0.0
@@ -708,7 +694,7 @@ Stop Syncthing: \fBsyncthing cli operations shutdown\fP
Restart Syncthing as usual.
.UNINDENT
.sp
-\fIAlternatively, in step 2\fP, you can manually delete the \fI\%<user>\fP and \fI\%<password>\fP XML tags from the
+\fIAlternatively, in step 2\fP, you can manually delete the \X'tty: link #config-option-gui.user'\fI\%<user>\fP\X'tty: link' and \X'tty: link #config-option-gui.password'\fI\%<password>\fP\X'tty: link' XML tags from the
\fB<gui>\fP block in file \fBconfig.xml\fP\&. The location of the file depends on the
OS and is described in the \fI\%configuration documentation\fP\&.
.sp
@@ -716,8 +702,7 @@ For example, the two emphasized lines below would be removed from the file.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<gui enabled=\(dqtrue\(dq tls=\(dqfalse\(dq debugging=\(dqfalse\(dq>
<address>127.0.0.1:8384</address>
<user>syncguy</user>
@@ -725,8 +710,7 @@ For example, the two emphasized lines below would be removed from the file.
<apikey>9RCKohqCAyrj5RjpyZdR2wXmQ9PyQFeN</apikey>
<theme>default</theme>
</gui>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH AUTHOR
diff --git a/man/syncthing-globaldisco.7 b/man/syncthing-globaldisco.7
index 8c6947280..eb6cafbd2 100644
--- a/man/syncthing-globaldisco.7
+++ b/man/syncthing-globaldisco.7
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-GLOBALDISCO" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-GLOBALDISCO" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-globaldisco \- Global Discovery Protocol v3
.SH ANNOUNCEMENTS
@@ -39,13 +39,11 @@ listing connection addresses (if any):
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
addresses: [\(dqtcp://192.0.2.45:22000\(dq, \(dqtcp://:22202\(dq, \(dqrelay://192.0.2.99:22028\(dq],
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
diff --git a/man/syncthing-localdisco.7 b/man/syncthing-localdisco.7
index 4a6f2b988..68a68d11d 100644
--- a/man/syncthing-localdisco.7
+++ b/man/syncthing-localdisco.7
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-LOCALDISCO" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-LOCALDISCO" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-localdisco \- Local Discovery Protocol v4
.SH MODE OF OPERATION
@@ -55,15 +55,14 @@ previously unknown device is discovered or a device has restarted (see the
.SH DEVICE ID
.sp
The device ID is the SHA\-256 (32 bytes) of the device X.509 certificate. See
-\fI\%Understanding Device IDs\fP in the Syncthing documentation.
+\X'tty: link #device-ids'\fI\%Understanding Device IDs\fP\X'tty: link' in the Syncthing documentation.
.SH ANNOUNCEMENT PACKET
.sp
The Announcement packet has the following structure:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -73,8 +72,7 @@ The Announcement packet has the following structure:
\e Announce Message \e
/ /
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -90,15 +88,13 @@ following schema:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
message Announce {
bytes id = 1;
repeated string addresses = 2;
int64 instance_id = 3;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
diff --git a/man/syncthing-networking.7 b/man/syncthing-networking.7
index d9d7e2374..76f6f76ce 100644
--- a/man/syncthing-networking.7
+++ b/man/syncthing-networking.7
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-NETWORKING" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-NETWORKING" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-networking \- Firewall Setup
.SH ROUTER SETUP
@@ -40,11 +40,9 @@ message in the console saying:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
Created UPnP port mapping for external port XXXXX on UPnP device YYYYY.
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -57,7 +55,7 @@ Communication in Syncthing works both ways. Therefore if you set up port
forwards for one device, other devices will be able to connect to it even when
they are behind a NAT network or firewall.
.sp
-In the absence of port forwarding, \fI\%Relaying\fP may work well enough to get
+In the absence of port forwarding, \X'tty: link #relaying'\fI\%Relaying\fP\X'tty: link' may work well enough to get
devices connected and synced, but will perform poorly in comparison to a
direct connection.
.SS Local Discovery
@@ -87,15 +85,13 @@ If you configured a custom port in the \fISync Protocol Listen Address\fP settin
you have to adapt the firewall rules accordingly.
.SS Uncomplicated Firewall (ufw)
.sp
-If you’re using \fBufw\fP on Linux and have installed the \fI\%Syncthing package\fP <\fBhttps://apt.syncthing.net/\fP>, you can allow the necessary ports by running:
+If you’re using \fBufw\fP on Linux and have installed the \X'tty: link https://apt.syncthing.net/'\fI\%Syncthing package\fP <\fBhttps://apt.syncthing.net/\fP>\X'tty: link', you can allow the necessary ports by running:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
sudo ufw allow syncthing
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -103,11 +99,9 @@ If you also want to allow external access to the Syncthing web GUI, run:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
sudo ufw allow syncthing\-gui
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -117,29 +111,25 @@ You can then verify that the ports mentioned above are allowed:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
sudo ufw status verbose
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
-In case you installed Syncthing manually you can follow the \fI\%instructions to manually add the syncthing preset\fP <\fBhttps://github.com/syncthing/syncthing/tree/main/etc/firewall-ufw\fP> to ufw.
+In case you installed Syncthing manually you can follow the \X'tty: link https://github.com/syncthing/syncthing/tree/main/etc/firewall-ufw'\fI\%instructions to manually add the syncthing preset\fP <\fBhttps://github.com/syncthing/syncthing/tree/main/etc/firewall-ufw\fP>\X'tty: link' to ufw.
.SS Firewalld
.sp
-If you are using \fI\%Firewalld\fP <\fBhttps://firewalld.org/\fP> it has included
+If you are using \X'tty: link https://firewalld.org/'\fI\%Firewalld\fP <\fBhttps://firewalld.org/\fP>\X'tty: link' it has included
support for syncthing (since version 0.5.0, January 2018), and you can enable
it with:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
sudo firewall\-cmd \-\-zone=public \-\-add\-service=syncthing \-\-permanent
sudo firewall\-cmd \-\-reload
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -158,11 +148,9 @@ tunnel instead. You can start a tunnel with a command like the following:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
ssh \-L 9999:localhost:8384 machine
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -171,7 +159,7 @@ port 8384 on the target machine. This still works even if Syncthing is bound to
listen on localhost only.
.SH VIA A PROXY
.sp
-Syncthing can use a SOCKS5 proxy for outbound connections. Please see \fI\%Using Proxies\fP\&.
+Syncthing can use a SOCKS5 proxy for outbound connections. Please see \X'tty: link #proxying'\fI\%Using Proxies\fP\X'tty: link'\&.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
diff --git a/man/syncthing-relay.7 b/man/syncthing-relay.7
index c754011be..89098399d 100644
--- a/man/syncthing-relay.7
+++ b/man/syncthing-relay.7
@@ -1,3 +1,4 @@
+'\" t
.\" Man page generated from reStructuredText.
.
.
@@ -27,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-RELAY" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-RELAY" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-relay \- Relay Protocol v1
.SH WHAT IS A RELAY?
@@ -114,9 +115,8 @@ The connection is terminated immediately after that.
Client A \- Permanent protocol submode
Client B \- Temporary protocol submode
.TS
-center;
-|l|l|l|l|.
-_
+box center;
+l|l|l|l.
T{
#
T} T{
@@ -222,7 +222,6 @@ T} T{
<\-Pong
T} T{
T}
-_
.TE
.SH SESSION MODE
.sp
@@ -246,9 +245,8 @@ relayed between the two devices in the session directly.
Client A \- Permanent protocol mode
Client B \- Temporary protocol mode
.TS
-center;
-|l|l|l|l|.
-_
+box center;
+l|l|l|l.
T{
#
T} T{
@@ -333,7 +331,6 @@ T} T{
T} T{
<\-Data
T}
-_
.TE
.SH MESSAGES
.sp
@@ -351,8 +348,7 @@ us to identify what type of message it is.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -369,16 +365,14 @@ struct Header {
int MessageType;
int MessageLength;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Ping message (Type = 0)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -386,16 +380,14 @@ struct Header {
struct Ping {
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Pong message (Type = 1)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -403,16 +395,14 @@ struct Ping {
struct Pong {
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS JoinRelayRequest message (Type = 2)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -420,16 +410,14 @@ struct Pong {
struct JoinRelayRequest {
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS JoinSessionRequest message (Type = 3)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -444,8 +432,7 @@ struct JoinRelayRequest {
struct JoinSessionRequest {
opaque Key<32>;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.INDENT 0.0
@@ -458,8 +445,7 @@ used to identify which session you are trying to connect to.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -477,8 +463,7 @@ struct Response {
int Code;
string Message<>;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.INDENT 0.0
@@ -493,8 +478,7 @@ Message associated with the code.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -509,8 +493,7 @@ Message associated with the code.
struct ConnectRequest {
opaque ID<32>;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.INDENT 0.0
@@ -522,8 +505,7 @@ Device ID to which the client would like to connect.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+\-+
@@ -558,8 +540,7 @@ struct SessionInvitation {
unsigned int Port;
bool ServerSocket;
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.INDENT 0.0
@@ -615,9 +596,8 @@ performing device ID validation, and full TLS encryption, and provides the same
security properties as it would provide when connecting over the internet.
.SH EXAMPLES OF STRONG CIPHER SUITES
.TS
-center;
-|l|l|l|.
-_
+box center;
+l|l|l.
T{
ID
T} T{
@@ -689,7 +669,6 @@ ECDHE\-RSA\-AES128\-SHA256
T} T{
TLSv1.2 ECDH RSA AES(128) SHA256
T}
-_
.TE
.SH AUTHOR
The Syncthing Authors
diff --git a/man/syncthing-rest-api.7 b/man/syncthing-rest-api.7
index d870e71e6..ad9802c0f 100644
--- a/man/syncthing-rest-api.7
+++ b/man/syncthing-rest-api.7
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-REST-API" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-REST-API" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-rest-api \- REST API
.sp
@@ -62,14 +62,13 @@ used parameters are always returned as attributes in the response object.
.SS GET /rest/system/browse
.sp
Returns a list of directories matching the path given by the optional parameter
-\fBcurrent\fP\&. The path can use \fI\%patterns as described in Go’s filepath package\fP <\fBhttps://pkg.go.dev/path/filepath#Match\fP>\&. A ‘*’ will always be appended
+\fBcurrent\fP\&. The path can use \X'tty: link https://pkg.go.dev/path/filepath#Match'\fI\%patterns as described in Go’s filepath package\fP <\fBhttps://pkg.go.dev/path/filepath#Match\fP>\X'tty: link'\&. A ‘*’ will always be appended
to the given path (e.g. \fB/tmp/\fP matches all its subdirectories). If the option
\fBcurrent\fP is not given, filesystem root paths are returned.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ curl \-H \(dqX\-API\-Key: yourkey\(dq localhost:8384/rest/system/browse | json_pp
[
\(dq/\(dq
@@ -98,13 +97,12 @@ $ curl \-H \(dqX\-API\-Key: yourkey\(dq localhost:8384/rest/system/browse?curren
\(dq/var/opt/\(dq,
\(dq/var/spool/\(dq
]
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/system/config (DEPRECATED)
.sp
-Deprecated since version v1.12.0: This endpoint still works as before but is deprecated. Use \fI\%/rest/config\fP
+Deprecated since version v1.12.0: This endpoint still works as before but is deprecated. Use \X'tty: link #rest-config'\fI\%/rest/config\fP\X'tty: link'
instead.
.sp
@@ -112,8 +110,7 @@ Returns the current configuration.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqversion\(dq: 35,
\(dqfolders\(dq: [
@@ -368,14 +365,13 @@ Returns the current configuration.
}
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/system/config/insync (DEPRECATED)
.sp
Deprecated since version v1.12.0: This endpoint still works as before but is deprecated. Use
-\fI\%/rest/config/restart\-required\fP instead.
+\X'tty: link #rest-config-insync'\fI\%/rest/config/restart\-required\fP\X'tty: link' instead.
.sp
Returns whether the config is in sync, i.e. whether the running
@@ -383,13 +379,11 @@ configuration is the same as that on disk.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqconfigInSync\(dq: true
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/system/config (DEPRECATED)
@@ -401,7 +395,7 @@ instead.
Post the full contents of the configuration, in the same format as returned by
the corresponding GET request. When posting the configuration succeeds,
the posted configuration is immediately applied, except for changes that require a restart. Query
-\fI\%/rest/config/restart\-required\fP to check if a restart is required.
+\X'tty: link #rest-config-insync'\fI\%/rest/config/restart\-required\fP\X'tty: link' to check if a restart is required.
.sp
This endpoint is the main point to control Syncthing, even if the change only
concerns a very small part of the config: The usual workflow is to get the
@@ -422,8 +416,7 @@ The connection types are \fBTCP (Client)\fP, \fBTCP (Server)\fP, \fBRelay (Clien
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqconnections\(dq: {
\(dqDOVII4U\-SQEEESM\-VZ2CVTC\-CJM4YN5\-QNV7DCU\-5U3ASRL\-YVFG6TH\-W5DV5AA\(dq: {
@@ -469,21 +462,19 @@ The connection types are \fBTCP (Client)\fP, \fBTCP (Server)\fP, \fBRelay (Clien
\(dqoutBytesTotal\(dq: 1318
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/system/debug
.sp
-New in version 0.12.0.
+Added in version 0.12.0.
.sp
Returns the set of debug facilities and which of them are currently enabled.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqenabled\(dq: [
\(dqbeacon\(dq
@@ -509,13 +500,12 @@ Returns the set of debug facilities and which of them are currently enabled.
\(dqversioner\(dq: \(dqFile versioning\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/system/debug
.sp
-New in version 0.12.0.
+Added in version 0.12.0.
.sp
Enables or disables debugging for specified facilities. Give one or both of
@@ -525,11 +515,9 @@ for config and db:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ curl \-H X\-API\-Key:abc123 \-X POST \(aqhttp://localhost:8384/rest/system/debug?disable=beacon,discovery&enable=config,db\(aq
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/system/discovery
@@ -538,15 +526,13 @@ Returns the contents of the local discovery cache.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqLGFPDIT7SKNNJVJZA4FC7QNCRKCE753K72BW5QD2FOZ7FRFEP57Q\(dq: [
\(dq192.162.129.11:22000\(dq
]
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/system/discovery
@@ -563,13 +549,11 @@ the discovery cache.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
curl \-X POST http://127.0.0.1:8384/rest/system/discovery?device=LGFPDIT7SKNNJVJZA4FC7QNCRKCE753K72BW5QD2FOZ7FRFEP57Q\e&addr=192.162.129.11:22000
# Or with the X\-API\-Key header:
curl \-X POST \-\-header \(dqX\-API\-Key: TcE28kVPdtJ8COws1JdM0b2nodj77WeQ\(dq http://127.0.0.1:8384/rest/system/discovery?device=LGFPDIT7SKNNJVJZA4FC7QNCRKCE753K72BW5QD2FOZ7FRFEP57Q\e&addr=192.162.129.11:22000
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/system/error/clear
@@ -588,8 +572,7 @@ Returns the list of recent errors.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqerrors\(dq: [
{
@@ -598,8 +581,7 @@ Returns the list of recent errors.
}
]
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/system/error
@@ -608,16 +590,15 @@ Post with an error message in the body (plain text) to register a new
error. The new error will be displayed on any active GUI clients.
.SS GET /rest/system/log
.sp
-New in version 0.12.0.
+Added in version 0.12.0.
.sp
Returns the list of recent log entries. The optional \fBsince\fP parameter limits
-the results to message newer than the given timestamp in \fI\%RFC 3339\fP <\fBhttps://datatracker.ietf.org/doc/html/rfc3339.html\fP> format.
+the results to message newer than the given timestamp in \X'tty: link https://datatracker.ietf.org/doc/html/rfc3339.html'\fI\%RFC 3339\fP <\fBhttps://datatracker.ietf.org/doc/html/rfc3339.html\fP>\X'tty: link' format.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqmessages\(dq: [
{
@@ -626,8 +607,7 @@ the results to message newer than the given timestamp in \fI\%RFC 3339\fP <\fBht
}
]
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/system/log.txt
@@ -635,7 +615,7 @@ the results to message newer than the given timestamp in \fI\%RFC 3339\fP <\fBht
Returns the same information, formatted as a text log instead of a JSON object.
.SS GET /rest/system/paths
.sp
-New in version 1.21.0.
+Added in version 1.21.0.
.sp
Returns the path locations used internally for storing configuration, database,
@@ -643,8 +623,7 @@ and others.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqauditLog\(dq: \(dq/home/user/.local/share/syncthing/audit\-${timestamp}.log\(dq,
\(dqbaseDir\-config\(dq: \(dq/home/user/.config/syncthing\(dq,
@@ -662,8 +641,7 @@ and others.
\(dqlogFile\(dq: \(dq\-\(dq,
\(dqpanicLog\(dq: \(dq/home/user/.local/share/syncthing/panic\-${timestamp}.log\(dq
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/system/pause
@@ -679,13 +657,11 @@ Returns a \fB{\(dqping\(dq: \(dqpong\(dq}\fP object.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqping\(dq: \(dqpong\(dq
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/system/ping
@@ -700,15 +676,13 @@ information for that folder will be erased:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
curl \-X POST \-H \(dqX\-API\-Key: abc123\(dq http://localhost:8384/rest/system/reset?folder=ab1c2\-def3g
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
-\fBCaution\fP: See \fI\%\-\-reset\-database\fP for \fB\&.stfolder\fP creation
+\fBCaution\fP: See \X'tty: link #cmdoption-reset-database'\fI\%\-\-reset\-database\fP\X'tty: link' for \fB\&.stfolder\fP creation
side\-effect and caution regarding mountpoints.
.SS POST /rest/system/restart
.sp
@@ -729,8 +703,7 @@ Returns information about current system status and resource usage. The CPU perc
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqalloc\(dq: 30618136,
\(dqconnectionServiceStatus\(dq: {
@@ -816,19 +789,18 @@ Returns information about current system status and resource usage. The CPU perc
\(dqtilde\(dq: \(dq/Users/jb\(dq,
\(dquptime\(dq: 2635
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
-New in version 1.2.0: The \fBlastDialStatus\fP dictionary contains the last error (or \fBnull\fP for
+Added in version 1.2.0: The \fBlastDialStatus\fP dictionary contains the last error (or \fBnull\fP for
success) for each peer address that Syncthing has attempted to contact.
The \fBconnectionServiceStatus\fP entries gained \fB\(dqerror\(dq: null\fP
attributes where previously there would be no \fBerror\fP attribute at all
in the success case.
.sp
-New in version 1.18.0: The \fBdiscoveryStatus\fP dictionary lists all configured discovery methods, not
+Added in version 1.18.0: The \fBdiscoveryStatus\fP dictionary lists all configured discovery methods, not
only failed ones like the now deprecated \fBdiscoveryErrors\fP\&. Each entry is
an object itself (for consistency with other fields), where a \fBnull\fP value
for the \fBerror\fP attribute means the method is running successfully. This
@@ -842,16 +814,14 @@ newest version and upgrade possibility.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqlatest\(dq: \(dqv0.14.47\(dq,
\(dqmajorNewer\(dq: false,
\(dqnewer\(dq: true,
\(dqrunning\(dq: \(dqv0.14.46\(dq
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/system/upgrade
@@ -864,22 +834,20 @@ Returns the current Syncthing version information.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqarch\(dq: \(dqamd64\(dq,
\(dqlongVersion\(dq: \(dqsyncthing v0.10.27+3\-gea8c3de (go1.4 darwin\-amd64 default) jb@syno 2015\-03\-16 11:01:29 UTC\(dq,
\(dqos\(dq: \(dqdarwin\(dq,
\(dqversion\(dq: \(dqv0.10.27+3\-gea8c3de\(dq
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH CONFIG ENDPOINTS
.SS Config Endpoints
.sp
-New in version 1.12.0.
+Added in version 1.12.0.
.sp
These endpoints facilitate access and modification of the \fI\%configuration\fP in a granular way. Config sent to the endpoints must be in the
@@ -920,7 +888,7 @@ default config (omitted values are reset to the hard\-coded defaults), \fBPATCH\
replaces only the given child objects.
.SS /rest/config/defaults/ignores
.sp
-New in version 1.19.0.
+Added in version 1.19.0.
.sp
\fBGET\fP returns an object with a single \fBlines\fP attribute listing ignore
@@ -934,7 +902,7 @@ patterns to be used by default on folders, as an array of single\-line strings.
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
-The \fI\%gui.password\fP configuration option has special handling to
+The \X'tty: link #config-option-gui.password'\fI\%gui.password\fP\X'tty: link' configuration option has special handling to
accept already hashed passwords. Any valid bcrypt hash is stored verbatim,
while a plaintext password is first hashed.
.UNINDENT
@@ -944,7 +912,7 @@ while a plaintext password is first hashed.
Concerns the mesh network structure.
.SS DELETE /rest/cluster/pending/devices
.sp
-New in version 1.18.0.
+Added in version 1.18.0.
.sp
Remove records about a pending remote device which tried to connect. Valid
@@ -953,11 +921,9 @@ values for the \fBdevice\fP parameter are those from the corresponding
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ curl \-X DELETE \-H \(dqX\-API\-Key: abc123\(dq http://localhost:8384/rest/cluster/pending/devices?device=P56IOI7\-MZJNU2Y\-IQGDREY\-DM2MGTI\-MGL3BXN\-PQ6W5BM\-TBBZ4TJ\-XZWICQ2
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -969,7 +935,7 @@ For a more permanent effect, also for future connections from the same
device ID, the device should be ignored in the \fI\%configuration\fP instead.
.SS GET /rest/cluster/pending/devices
.sp
-New in version 1.13.0.
+Added in version 1.13.0.
.sp
Lists remote devices which have tried to connect, but are not yet
@@ -977,8 +943,7 @@ configured in our instance.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqP56IOI7\-MZJNU2Y\-IQGDREY\-DM2MGTI\-MGL3BXN\-PQ6W5BM\-TBBZ4TJ\-XZWICQ2\(dq: {
\(dqtime\(dq: \(dq2020\-03\-18T11:43:07Z\(dq,
@@ -986,13 +951,12 @@ configured in our instance.
\(dqaddress\(dq: \(dq192.168.1.2:22000\(dq
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS DELETE /rest/cluster/pending/folders
.sp
-New in version 1.18.0.
+Added in version 1.18.0.
.sp
Remove records about a pending folder announced from a remote device. Valid
@@ -1003,11 +967,9 @@ device, or from \fIany\fP device if omitted.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ curl \-X DELETE \-H \(dqX\-API\-Key: abc123\(dq http://localhost:8384/rest/cluster/pending/folders?folder=cpkn4\-57ysy&device=P56IOI7\-MZJNU2Y\-IQGDREY\-DM2MGTI\-MGL3BXN\-PQ6W5BM\-TBBZ4TJ\-XZWICQ2
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1020,7 +982,7 @@ ID, the folder should be ignored in the \fI\%configuration\fP
instead.
.SS GET /rest/cluster/pending/folders
.sp
-New in version 1.13.0.
+Added in version 1.13.0.
.sp
Lists folders which remote devices have offered to us, but are not yet
@@ -1030,8 +992,7 @@ Other offering devices are also omitted from the result.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqcpkn4\-57ysy\(dq: {
\(dqofferedBy\(dq: {
@@ -1060,8 +1021,7 @@ Other offering devices are also omitted from the result.
}
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH FOLDER ENDPOINTS
@@ -1069,18 +1029,17 @@ Other offering devices are also omitted from the result.
Runtime state of the individual shared folders.
.SS GET /rest/folder/errors
.sp
-New in version 0.14.53.
+Added in version 0.14.53.
.sp
Takes one mandatory parameter, \fBfolder\fP, and returns the list of errors
encountered during scanning or pulling.
.sp
-The results can be paginated using the \fI\%common pagination parameters\fP\&.
+The results can be paginated using the \X'tty: link #rest-pagination'\fI\%common pagination parameters\fP\X'tty: link'\&.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqfolder\(dq: \(dqnnhic\-sxuae\(dq,
\(dqerrors\(dq: [
@@ -1092,8 +1051,7 @@ The results can be paginated using the \fI\%common pagination parameters\fP\&.
\(dqpage\(dq: 1,
\(dqperpage\(dq: 100
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/folder/pullerrors (DEPRECATED)
@@ -1101,11 +1059,11 @@ The results can be paginated using the \fI\%common pagination parameters\fP\&.
Deprecated since version v0.14.53: This endpoint still works as before but is deprecated. Use
\fI\%GET /rest/folder/errors\fP instead, which returns the same information.
.sp
-See \fI\%https://github.com/syncthing/syncthing/commit/d510e3cca3d5caae42121fa206b3decc981ae59e\fP
+See \X'tty: link https://github.com/syncthing/syncthing/commit/d510e3cca3d5caae42121fa206b3decc981ae59e'\fI\%https://github.com/syncthing/syncthing/commit/d510e3cca3d5caae42121fa206b3decc981ae59e\fP\X'tty: link'
.SS GET /rest/folder/versions
.sp
-New in version 0.14.44.
+Added in version 0.14.44.
.sp
Takes one mandatory parameter, \fBfolder\fP, and returns the list of archived
@@ -1116,8 +1074,7 @@ modified before being archived, and the size in bytes.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqdir1/dir2/bar\(dq: [
{
@@ -1146,8 +1103,7 @@ modified before being archived, and the size in bytes.
}
]
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/folder/versions
@@ -1163,14 +1119,12 @@ the file path as attribute name.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
curl \-X POST \-H X\-API\-key:... http://127.0.0.1:8384/rest/folder/versions?folder=default \-d \(aq{
\(dqdir1/dir2/bar\(dq: \(dq2022\-02\-06T20:44:12+01:00\(dq,
\(dqbaz\(dq: \(dq2022\-02\-06T20:44:20+01:00\(dq
}\(aq
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH DATABASE ENDPOINTS
@@ -1189,8 +1143,7 @@ start building the structure.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ curl \-s http://localhost:8384/rest/db/browse?folder=j663y\-3ct3e&prefix=DCIM&levels=2
[
{
@@ -1238,8 +1191,7 @@ $ curl \-s http://localhost:8384/rest/db/browse?folder=j663y\-3ct3e&prefix=DCIM&
\(dqtype\(dq : \(dqFILE_INFO_TYPE_DIRECTORY\(dq
},
]
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1270,11 +1222,9 @@ Completion status for folder \fBabcd\-1234\fP on device \fBI6KAH76\-...\-3PSROAU
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
/rest/db/completion?folder=abcd\-1234&device=I6KAH76\-...\-3PSROAU
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1282,11 +1232,9 @@ Aggregated completion status for device \fBI6KAH76\-...\-3PSROAU\fP (all folders
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
/rest/db/completion?device=I6KAH76\-...\-3PSROAU
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1294,11 +1242,9 @@ Completion status for folder \fBabcd\-1234\fP on the local device:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
/rest/db/completion?folder=abcd\-1234
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1306,19 +1252,16 @@ Aggregated completion status for all folders on the local device:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
/rest/db/completion
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Example Response
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqcompletion\(dq: 99.9937565835,
\(dqglobalBytes\(dq: 156793013575,
@@ -1329,17 +1272,16 @@ Aggregated completion status for all folders on the local device:
\(dqremoteState\(dq: \(dqvalid\(dq,
\(dqsequence\(dq: 12
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
-New in version 1.8.0: The ability to aggregate multiple folders by leaving out the folder ID.
+Added in version 1.8.0: The ability to aggregate multiple folders by leaving out the folder ID.
Querying data for the local device by leaving out the device ID. Returning
the \fBglobalItems\fP counter in the response.
.sp
-New in version 1.20.0: Indication whether the remote device has accepted the folder (shares it with
+Added in version 1.20.0: Indication whether the remote device has accepted the folder (shares it with
us) as well, and whether it is paused. The \fBremoteState\fP field is
meaningless for aggregated responses, \fBunknown\fP when the remote device is
not connected. Otherwise it can be either \fBpaused\fP, \fBnotSharing\fP, or
@@ -1354,8 +1296,7 @@ respectively.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqavailability\(dq: [
{
@@ -1366,8 +1307,7 @@ respectively.
\(dqglobal\(dq: { /* a file entry */ },
\(dqlocal\(dq: { /* a file entry */ }
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1375,8 +1315,7 @@ A file entry looks like this:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
{
\(dqdeleted\(dq: false,
@@ -1407,8 +1346,7 @@ A file entry looks like this:
}
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1419,8 +1357,7 @@ attribute for macOS (“darwin”) looks as follows:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqdarwin\(dq: {
\(dqxattrs\(dq: [
@@ -1441,8 +1378,7 @@ attribute for macOS (“darwin”) looks as follows:
},
\(dqwindows\(dq: null
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/db/ignores
@@ -1453,8 +1389,7 @@ provides a list of strings which represent globbing patterns described by gobwas
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqignore\(dq: [
\(dq(?i)/Backups\(dq
@@ -1464,8 +1399,7 @@ provides a list of strings which represent globbing patterns described by gobwas
\(dq(?i)Backups/**\(dq
]
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/db/ignores
@@ -1476,7 +1410,7 @@ It takes one parameter, \fBfolder\fP, and either updates the content of
the \fB\&.stignore\fP echoing it back as a response, or returns an error.
.SS GET /rest/db/localchanged
.sp
-New in version 0.14.55.
+Added in version 0.14.55.
.sp
Takes one mandatory parameter, \fBfolder\fP, and returns the list of files which
@@ -1484,12 +1418,11 @@ were changed locally in a receive\-only folder. Thus they differ from the globa
state and could be reverted by pulling from remote devices again, see
\fI\%POST /rest/db/revert\fP\&.
.sp
-The results can be paginated using the \fI\%common pagination parameters\fP\&.
+The results can be paginated using the \X'tty: link #rest-pagination'\fI\%common pagination parameters\fP\X'tty: link'\&.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqfiles\(dq: [
{
@@ -1506,8 +1439,7 @@ The results can be paginated using the \fI\%common pagination parameters\fP\&.
\(dqpage\(dq: 1,
\(dqperpage\(dq: 100
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1523,7 +1455,7 @@ Use sparingly.
Takes one mandatory parameter, \fBfolder\fP, and returns lists of files which are
needed by this device in order for it to become in sync.
.sp
-The results can be paginated using the \fI\%common pagination parameters\fP\&. Pagination happens, across the union of all needed files,
+The results can be paginated using the \X'tty: link #rest-pagination'\fI\%common pagination parameters\fP\X'tty: link'\&. Pagination happens, across the union of all needed files,
that is \- across all 3 sections of the response. For example, given the current
need state is as follows:
.INDENT 0.0
@@ -1552,8 +1484,7 @@ attribute.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
# Files currently being downloaded
\(dqprogress\(dq: [
@@ -1580,8 +1511,7 @@ attribute.
\(dqpage\(dq: 1,
\(dqperpage\(dq: 100
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1602,11 +1532,9 @@ Takes the mandatory parameter \fIfolder\fP (folder ID).
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
curl \-X POST \-H X\-API\-key:... http://127.0.0.1:8384/rest/db/override?folder=default
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/db/prio
@@ -1615,30 +1543,27 @@ Moves the file to the top of the download queue.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
curl \-X POST http://127.0.0.1:8384/rest/db/prio?folder=default&file=foo/bar
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
Response contains the same output as \fI\%GET /rest/db/need\fP\&.
.SS GET /rest/db/remoteneed
.sp
-New in version 0.14.43.
+Added in version 0.14.43.
.sp
Takes the mandatory parameters \fBfolder\fP and \fBdevice\fP, and returns the list
of files which are needed by that remote device in order for it to become in
sync with the shared folder.
.sp
-The results can be paginated using the \fI\%common pagination parameters\fP\&.
+The results can be paginated using the \X'tty: link #rest-pagination'\fI\%common pagination parameters\fP\X'tty: link'\&.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqfiles\(dq: [
{
@@ -1655,8 +1580,7 @@ The results can be paginated using the \fI\%common pagination parameters\fP\&.
\(dqpage\(dq: 1,
\(dqperpage\(dq: 100
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1669,7 +1593,7 @@ Use sparingly.
.UNINDENT
.SS POST /rest/db/revert
.sp
-New in version 0.14.50.
+Added in version 0.14.50.
.sp
Request revert of a receive only folder. Reverting a folder means to undo
@@ -1680,11 +1604,9 @@ Takes the mandatory parameter \fIfolder\fP (folder ID).
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
curl \-X POST \-H X\-API\-Key:... http://127.0.0.1:8384/rest/db/revert?folder=default
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS POST /rest/db/scan
@@ -1705,11 +1627,9 @@ plain text error if an error occurred during scanning.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
curl \-X POST http://127.0.0.1:8384/rest/db/scan?folder=default&sub=foo/bar
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/db/status
@@ -1720,8 +1640,7 @@ Parameters: \fBfolder\fP, the ID of a folder.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqglobalBytes\(dq: 0,
\(dqglobalDeleted\(dq: 0,
@@ -1757,8 +1676,7 @@ Parameters: \fBfolder\fP, the ID of a folder.
\(dqstateChanged\(dq: \(dq2018\-08\-08T07:04:57.301064781+02:00\(dq,
\(dqversion\(dq: 0
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -1812,7 +1730,7 @@ To receive events, perform a HTTP GET of \fB/rest/events\fP\&.
.sp
To filter the event list, in effect creating a specific subscription for only
the desired event types, add a parameter \fBevents=EventTypeA,EventTypeB,...\fP
-where the event types are any of the \fI\%Event Types\fP\&. If no filter is
+where the event types are any of the \X'tty: link #event-types'\fI\%Event Types\fP\X'tty: link'\&. If no filter is
specified, all events \fIexcept\fP \fI\%LocalChangeDetected\fP and
\fI\%RemoteChangeDetected\fP are included.
.sp
@@ -1847,8 +1765,7 @@ time the device was last seen and the last connection duration.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ curl \-s http://localhost:8384/rest/stats/device | json
{
\(dqP56IOI7\-MZJNU2Y\-IQGDREY\-DM2MGTI\-MGL3BXN\-PQ6W5BM\-TBBZ4TJ\-XZWICQ2\(dq: {
@@ -1856,8 +1773,7 @@ $ curl \-s http://localhost:8384/rest/stats/device | json
\(dqlastConnectionDurationS\(dq: 556335.421708141
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/stats/folder
@@ -1867,8 +1783,7 @@ last scan time and the last synced file.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqfolderid\(dq: {
\(dqlastScan\(dq: \(dq2016\-06\-02T13:28:01.288181412\-04:00\(dq,
@@ -1878,8 +1793,7 @@ last scan time and the last synced file.
}
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH MISC SERVICES ENDPOINTS
@@ -1892,8 +1806,7 @@ either a valid device ID in modern format, or an error.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ curl \-s http://localhost:8384/rest/svc/deviceid?id=1234 | json
{
\(dqerror\(dq: \(dqdevice ID invalid: incorrect length\(dq
@@ -1903,8 +1816,7 @@ $ curl \-s http://localhost:8384/rest/svc/deviceid?id=p56ioi7m\-\-zjnu2iq\-gdr\-
{
\(dqid\(dq: \(dqP56IOI7\-MZJNU2Y\-IQGDREY\-DM2MGTI\-MGL3BXN\-PQ6W5BM\-TBBZ4TJ\-XZWICQ2\(dq
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/svc/lang
@@ -1914,11 +1826,9 @@ the \fBAccept\-Language\fP header sent by the browser.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
[\(dqsv_sv\(dq,\(dqsv\(dq,\(dqen_us\(dq,\(dqen\(dq]
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/svc/random/string
@@ -1927,13 +1837,11 @@ Returns a strong random generated string (alphanumeric) of the specified length.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqrandom\(dq: \(dqFdPaEaZQ56sXEKYNxpgF\(dq
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS GET /rest/svc/report
@@ -1942,8 +1850,7 @@ Returns the data sent in the anonymous usage report.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqfolderMaxMiB\(dq : 0,
\(dqplatform\(dq : \(dqlinux\-amd64\(dq,
@@ -1995,14 +1902,13 @@ Returns the data sent in the anonymous usage report.
},
\(dqupgradeAllowedAuto\(dq : false
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH DEBUG ENDPOINTS
.SS Debug Endpoints
.sp
-These endpoints require the \fI\%gui.debugging\fP configuration option to
+These endpoints require the \X'tty: link #config-option-gui.debugging'\fI\%gui.debugging\fP\X'tty: link' configuration option to
be enabled and yield an access denied error code otherwise.
.SS GET /rest/debug/peerCompletion
.sp
@@ -2033,11 +1939,9 @@ Shows diagnostics about a certain file in a shared folder. Takes the \fBfolder\
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ curl \-H X\-API\-Key:... \(dqhttp://localhost:8384/rest/debug/file?folder=default&file=foo/bar\(dq
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -2052,13 +1956,11 @@ Returns a \fB{\(dqstatus\(dq: \(dqOK\(dq}\fP object.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
{
\(dqstatus\(dq: \(dqOK\(dq
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH AUTHOR
diff --git a/man/syncthing-security.7 b/man/syncthing-security.7
index 5a3955816..681612451 100644
--- a/man/syncthing-security.7
+++ b/man/syncthing-security.7
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-SECURITY" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-SECURITY" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-security \- Security Principles
.sp
@@ -46,7 +46,7 @@ Incoming requests for file data are verified to the extent that the requested
file name must exist in the local index and the global model.
.sp
For information about ensuring you are running the code you think you are and
-for reporting security vulnerabilities, please see the official \fI\%security page\fP <\fBhttps://syncthing.net/security\fP>\&.
+for reporting security vulnerabilities, please see the official \X'tty: link https://syncthing.net/security'\fI\%security page\fP <\fBhttps://syncthing.net/security\fP>\X'tty: link'\&.
.SH INFORMATION LEAKAGE
.SS Global Discovery
.sp
@@ -59,7 +59,7 @@ servers containing the device ID of the requested device. The connection to
the discovery server is encrypted using TLS and the discovery server
certificate is verified, so the contents of the query should be considered
private between the device and the discovery server. The discovery servers
-are currently hosted by \fI\%@calmh\fP <\fBhttps://github.com/calmh\fP>\&. Global discovery defaults to \fBon\fP\&.
+are currently hosted by \X'tty: link https://github.com/calmh'\fI\%@calmh\fP <\fBhttps://github.com/calmh\fP>\X'tty: link'\&. Global discovery defaults to \fBon\fP\&.
.sp
When turned off, devices with dynamic addresses not on the local network cannot
be found and connected to.
@@ -87,7 +87,7 @@ found and connected to.
.sp
When automatic upgrades are enabled, Syncthing checks for a new version at
startup and then once every twelve hours. This is by an HTTPS request to the
-download site for releases, currently hosted by \fI\%@calmh\fP <\fBhttps://github.com/calmh\fP>\&.
+download site for releases, currently hosted by \X'tty: link https://github.com/calmh'\fI\%@calmh\fP <\fBhttps://github.com/calmh\fP>\X'tty: link'\&.
Automatic upgrades default to \fBon\fP (unless Syncthing was compiled with
upgrades disabled).
.sp
@@ -105,7 +105,7 @@ information about the user or device.
.sp
When usage reporting is enabled, Syncthing reports usage data at startup and
then every 24 hours. The report is sent as an HTTPS POST to the usage reporting
-server, currently hosted by \fI\%@calmh\fP <\fBhttps://github.com/calmh\fP>\&. The contents of the usage report can
+server, currently hosted by \X'tty: link https://github.com/calmh'\fI\%@calmh\fP <\fBhttps://github.com/calmh\fP>\X'tty: link'\&. The contents of the usage report can
be seen behind the “Preview” link in settings. Usage reporting defaults to
\fBoff\fP but the GUI will ask once about enabling it, shortly after the first
install.
@@ -147,7 +147,7 @@ web GUI defaults to being reachable from the \fBlocal host only\fP\&.
.sp
Parties doing surveillance on your network (whether that be corporate IT, the
NSA or someone else) will be able to see that you use Syncthing, and your device
-IDs \fI\%are OK to share anyway\fP <\fBhttps://docs.syncthing.net/users/faq.html#should-i-keep-my-device-ids-secret\fP>,
+IDs \X'tty: link https://docs.syncthing.net/users/faq.html#should-i-keep-my-device-ids-secret'\fI\%are OK to share anyway\fP <\fBhttps://docs.syncthing.net/users/faq.html#should-i-keep-my-device-ids-secret\fP>\X'tty: link',
but the actual transmitted data is protected as well as we can. Knowing your
device ID can expose your IP address, using global discovery.
.SH PROTECTING YOUR SYNCTHING KEYS AND IDENTITY
diff --git a/man/syncthing-stignore.5 b/man/syncthing-stignore.5
index b5a22aac8..683a2e80e 100644
--- a/man/syncthing-stignore.5
+++ b/man/syncthing-stignore.5
@@ -27,18 +27,16 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-STIGNORE" "5" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-STIGNORE" "5" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-stignore \- Prevent files from being synchronized to other nodes
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
\&.stignore
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH DESCRIPTION
@@ -126,21 +124,19 @@ more general patterns that follow.
.INDENT 3.5
Negated patterns that can match items below the folder root will cause
Syncthing to traverse otherwise ignored directories. If the
-\fI\%watcher\fP is enabled, those directories will also be
+\X'tty: link #scanning'\fI\%watcher\fP\X'tty: link' is enabled, those directories will also be
watched. Directories ignored before the first negated pattern can
however be safely skipped, since the first matching pattern wins. For
example:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
/foo
/bar
!baz
*
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -152,12 +148,10 @@ not cause this behaviour:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
!/baz
*
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -194,8 +188,7 @@ Given a directory layout starting at the synced folder’s root:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
\&.DS_Store
\&.stignore
foo
@@ -209,8 +202,7 @@ bar2/
frobble
My Pictures/
Img15.PNG
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -218,8 +210,7 @@ and an \fB\&.stignore\fP file with the contents:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
(?d).DS_Store
!frobble
!quuz
@@ -227,8 +218,7 @@ foo
*2
qu*
(?i)my pictures
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -237,8 +227,7 @@ all files and directories called “foo”, ending in a “2” or starting with
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
\&.DS_Store # ignored, will be deleted if gets in the way of parent directory removal
foo # ignored, matches \(dqfoo\(dq
foofoo # synced, does not match \(dqfoo\(dq but would match \(dqfoo*\(dq or \(dq*foo\(dq
@@ -251,8 +240,7 @@ bar2/ # synced, despite matching \(dq*2\(dq due to child frobble
frobble # synced, due to \(dq!frobble\(dq
My Pictures/ # ignored, matched case insensitive \(dq(?i)my pictures\(dq pattern
Img15.PNG # ignored, due to parent being ignored
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -266,7 +254,7 @@ content, make sure it does not have a \fB/\fP at the end of the pattern.
.UNINDENT
.UNINDENT
.sp
-New in version 1.19.0: Default patterns can be configured which will take effect when automatically
+Added in version 1.19.0: Default patterns can be configured which will take effect when automatically
accepting a folder from a remote device. The GUI suggests same the patterns
when adding a folder manually. In either case, the \fB\&.stignore\fP file is
created with these defaults if none is present yet.
diff --git a/man/syncthing-versioning.7 b/man/syncthing-versioning.7
index 199d7a502..27105b022 100644
--- a/man/syncthing-versioning.7
+++ b/man/syncthing-versioning.7
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING-VERSIONING" "7" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING-VERSIONING" "7" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing-versioning \- Keep automatic backups of deleted files by other nodes
.sp
@@ -113,7 +113,7 @@ will be deleted unless when the interval they are entering is empty. By keeping
the oldest versions this versioning scheme preserves the file if it is
overwritten.
.sp
-For more info, check the \fI\%unit test file\fP <\fBhttps://github.com/syncthing/syncthing/blob/main/lib/versioner/staggered_test.go#L32\fP>
+For more info, check the \X'tty: link https://github.com/syncthing/syncthing/blob/main/lib/versioner/staggered_test.go#L32'\fI\%unit test file\fP <\fBhttps://github.com/syncthing/syncthing/blob/main/lib/versioner/staggered_test.go#L32\fP>\X'tty: link'
that shows which versions are deleted for a specific run.
.SH EXTERNAL FILE VERSIONING
.sp
@@ -147,8 +147,7 @@ the following script and store it as \fB/Users/jb/bin/onlylatest.sh\fP (i.e. the
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
#!/bin/sh
set \-eu
@@ -164,8 +163,7 @@ outpath=$(dirname \(dq$versionspath/$filepath\(dq)
mkdir \-p \(dq$outpath\(dq
# Then move the file there
mv \-f \(dq$folderpath/$filepath\(dq \(dq$versionspath/$filepath\(dq
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -178,11 +176,9 @@ script will be called as if I ran this from the command line:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ /Users/jb/bin/onlylatest.sh /Users/jb/Sync docs/letter.txt
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -198,8 +194,7 @@ behavior as mentioned above. I created the following script and saved it as
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
@echo off
rem Enable UTF\-8 encoding to deal with multilingual folder and file names
@@ -221,8 +216,7 @@ if not exist \(dq%output_path%\(dq md \(dq%output_path%\(dq || exit /b
rem Finally move the file, overwrite existing file if any
move /y \(dq%folder_path%\e%file_path%\(dq \(dq%versions_path%\e%file_path%\(dq
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -237,8 +231,7 @@ location, e.g. \fBC:\eUsers\eUser\eScripts\eSendToRecycleBin.ps1\fP\&.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
# PowerShell has no native method to recycle files, so we use Visual
# Basic to perform the operation. If succeeded, we also include the
# recycled file in the Syncthing\(aqs DEBUG output.
@@ -247,8 +240,7 @@ Add\-Type \-AssemblyName Microsoft.VisualBasic
if ($?) {
Write\-Output (\(dqRecycled \(dq + $args + \(dq.\(dq)
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -258,8 +250,7 @@ more consistent with how the Explorer works.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
# PowerShell has no native method to recycle files, so we use Visual
# Basic to perform the operation.
Add\-Type \-AssemblyName Microsoft.VisualBasic
@@ -279,8 +270,7 @@ if (Test\-Path \-LiteralPath ((Split\-Path \-Path $args) + \(dq\e~syncthing~\(dq
Write\-Output (\(dqRecycled \(dq + $args + \(dq.\(dq)
}
}
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -295,13 +285,12 @@ files permanently.
.SH CONFIGURATION PARAMETER REFERENCE
.sp
The versioning settings are grouped into their own section of each folder in the
-\fI\%configuration file\fP\&. The following shows an
+\X'tty: link #config-option-folder.versioning'\fI\%configuration file\fP\X'tty: link'\&. The following shows an
example of such a section in the XML:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
<folder id=\(dq...\(dq>
<versioning type=\(dqsimple\(dq>
<cleanupIntervalS>3600</cleanupIntervalS>
@@ -311,8 +300,7 @@ example of such a section in the XML:
<param key=\(dqkeep\(dq val=\(dq5\(dq></param>
</versioning>
</folder>
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.INDENT 0.0
@@ -338,7 +326,7 @@ in the \fI\%params\fP element.
.B versioning.fsType
The internal file system implementation used to access this versions folder.
Only applies if \fI\%fsPath\fP is also set non\-empty,
-otherwise the \fI\%filesystemType\fP from the folder element is used
+otherwise the \X'tty: link #config-option-folder.filesystemtype'\fI\%filesystemType\fP\X'tty: link' from the folder element is used
instead. Refer to that option description for possible values. Ignored for
the \fBexternal\fP versioning strategy.
.sp
diff --git a/man/syncthing.1 b/man/syncthing.1
index dcbe9659e..ed5788fe3 100644
--- a/man/syncthing.1
+++ b/man/syncthing.1
@@ -27,15 +27,14 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNCTHING" "1" "Apr 11, 2024" "v1.27.5" "Syncthing"
+.TH "SYNCTHING" "1" "May 08, 2024" "v1.27.7" "Syncthing"
.SH NAME
syncthing \- Syncthing
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
syncthing [serve]
[\-\-audit] [\-\-auditfile=<file|\-|\-\->] [\-\-browser\-only] [\-\-device\-id]
[\-\-generate=<dir>] [\-\-gui\-address=<address>] [\-\-gui\-apikey=<key>]
@@ -64,8 +63,7 @@ syncthing cli
[\-\-gui\-address=<address>] [\-\-gui\-apikey=<key>]
[\-\-help]
<command> [command options...] [arguments...]
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH DESCRIPTION
@@ -369,7 +367,7 @@ it is validated and updated to the latest configuration schema, including adding
default values for any new options.
.sp
The \fBdecrypt\fP subcommand is used in conjunction with untrusted (encrypted)
-devices, see the relevant section on \fI\%decryption\fP for
+devices, see the relevant section on \X'tty: link #untrusted-decrypt'\fI\%decryption\fP\X'tty: link' for
details. It does not depend on Syncthing to be running, but works on offline
data.
.sp
@@ -423,11 +421,9 @@ example:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ export all_proxy=socks://192.0.2.42:8081
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH DEVELOPMENT SETTINGS
@@ -582,7 +578,7 @@ Disable automatic upgrades. Equivalent to the \fI\%\-\-no\-upgrade\fP flag.
.B STPROFILER
Set to a listen address such as “127.0.0.1:9090” to start the profiler with
HTTP access, which then can be reached at
-\fI\%http://localhost:9090/debug/pprof\fP\&. See \fBgo tool pprof\fP for more
+\X'tty: link http://localhost:9090/debug/pprof'\fI\%http://localhost:9090/debug/pprof\fP\X'tty: link'\&. See \fBgo tool pprof\fP for more
information.
.TP
.B STPERFSTATS