Compare commits

...

11 Commits

Author SHA1 Message Date
Shivam Kumar
a5de148d79 fix(stdiscosrv): use fmt.Println for version output (fixes #10523) (#10527)
Signed-off-by: Shivam <maishivamhoo@gmail.com>
2026-01-24 12:06:54 +01:00
Jakob Borg
0735c25c92 build: add build attestation step at release (#10540)
Signed-off-by: Jakob Borg <jakob@kastelo.net>
2026-01-24 08:39:01 +00:00
Maxwell G
a4783ad5cd chore(gui): include license files for fork-awesome assets (#10539)
The css and svg files have license headers, but there were no separate
license files like the other vendored assets in `gui/default/vendor/*`.
This issue came up while we were working on updating and modernizing the
syncthing package in Fedora Linux.

This commit copies the existing license headers into separate files
to make things easier for license scanning and SCA tools,
such as [Go Vendor Tools](https://fedora.gitlab.io/sigs/go/go-vendor-tools/).

* [...]/css/LICENSE.txt is copied from the license header in
  gui/default/vendor/fork-awesome/css/fork-awesome.css.
* [...]/fonts/LICENSE.txt is copied from the license text in the
  <metadata> tag of
  gui/default/vendor/fork-awesome/fonts/forkawesome-webfont.svg.

Relates: https://src.fedoraproject.org/rpms/syncthing/pull-request/4

Signed-off-by: Maxwell G <maxwell@gtmx.me>
2026-01-23 21:21:00 +01:00
Syncthing Release Automation
cb391d25b8 chore(gui, man, authors): update docs, translations, and contributors 2026-01-19 04:08:47 +00:00
Tommy van der Vorst
5bf27a432c chore(sqlite): allow periodic database maintenance to be disabled (#10441)
This change allows the periodic database maintenance to be disabled, while providing a way to programmatically start maintenance at a convenient moment.

Signed-off-by: Tommy van der Vorst <tommy@pixelspark.nl>
2026-01-14 21:10:54 +00:00
Syncthing Release Automation
ed0baec2ca chore(gui, man, authors): update docs, translations, and contributors 2026-01-12 04:08:17 +00:00
Syncthing Release Automation
38e95441ee chore(gui, man, authors): update docs, translations, and contributors 2026-01-05 04:11:46 +00:00
Prathik P Kulkarni
50fe0053e8 chore(api): remove charset declaration from JSON content-type (fixes #10500) (#10508)
updated content-type  to application/json (fixes #10500)

Signed-off-by: prathik8794 <me20b030@iittp.ac.in>
2025-12-29 09:49:21 +00:00
Syncthing Release Automation
8f9ffd3c79 chore(gui, man, authors): update docs, translations, and contributors 2025-12-29 04:07:59 +00:00
Jakob Borg
1843cac6d9 fix(db): remove incorrect comment 2025-12-28 19:33:35 +01:00
bt90
b7b494b7cf fix(beacon): skip point-to-point interfaces on Android (#10504) 2025-12-23 18:56:20 +00:00
32 changed files with 141 additions and 55 deletions

View File

@@ -818,6 +818,9 @@ jobs:
environment: release
permissions:
contents: write
id-token: write
attestations: write
artifact-metadata: write
needs:
- sign-for-upgrade
- package-debian
@@ -844,10 +847,10 @@ jobs:
name: debian-packages
path: packages
- uses: actions/setup-go@v6
- name: Create GitHub build provenance attestations
uses: actions/attest-build-provenance@v3
with:
go-version: ${{ needs.facts.outputs.go-version }}
cache: false
subject-path: packages/*
- name: Push to object store (${{ env.VERSION }})
uses: docker://docker.io/rclone/rclone:latest

View File

@@ -257,6 +257,7 @@ Philippe Schommers (filoozoom) <philippe@schommers.be>
Phill Luby (pluby) <phill.luby@newredo.com>
Piotr Bejda (piobpl) <piotrb10@gmail.com>
polyfloyd <polyfloyd@users.noreply.github.com>
Prathik P Kulkarni <83969842+prathik8794@users.noreply.github.com>
pullmerge <166967364+pullmerge@users.noreply.github.com>
Quentin Hibon <qh.public@yahoo.com>
Rahmi Pruitt <rjpruitt16@gmail.com>

View File

@@ -9,6 +9,7 @@ package main
import (
"context"
"crypto/tls"
"fmt"
"log/slog"
"net/http"
"os"
@@ -95,11 +96,11 @@ func main() {
level = slog.LevelDebug
}
slogutil.SetDefaultLevel(level)
slog.Info(build.LongVersionFor("stdiscosrv"))
if cli.Version {
fmt.Println(build.LongVersionFor("stdiscosrv"))
return
}
slog.Info(build.LongVersionFor("stdiscosrv"))
buildInfo.WithLabelValues(build.Version, runtime.Version(), build.User, build.Date.UTC().Format("2006-01-02T15:04:05Z")).Set(1)

View File

@@ -155,7 +155,7 @@ type serveCmd struct {
AllowNewerConfig bool `help:"Allow loading newer than current config version" env:"STALLOWNEWERCONFIG"`
Audit bool `help:"Write events to audit file" env:"STAUDIT"`
AuditFile string `name:"auditfile" help:"Specify audit file (use \"-\" for stdout, \"--\" for stderr)" placeholder:"PATH" env:"STAUDITFILE"`
DBMaintenanceInterval time.Duration `help:"Database maintenance interval" default:"8h" env:"STDBMAINTENANCEINTERVAL"`
DBMaintenanceInterval time.Duration `help:"Database maintenance interval; set to zero to disable periodic maintenance" default:"8h" env:"STDBMAINTENANCEINTERVAL"`
DBDeleteRetentionInterval time.Duration `help:"Database deleted item retention interval" default:"10920h" env:"STDBDELETERETENTIONINTERVAL"`
GUIAddress string `name:"gui-address" help:"Override GUI address (e.g. \"http://192.0.2.42:8443\")" placeholder:"URL" env:"STGUIADDRESS"`
GUIAPIKey string `name:"gui-apikey" help:"Override GUI API key" placeholder:"API-KEY" env:"STGUIAPIKEY"`

View File

@@ -80,6 +80,7 @@
"Default Ignore Patterns": "Vaikimisi eiramismustrid",
"Defaults": "Vaikimisi väärtused",
"Delete": "Kustuta",
"Delete Unexpected Items": "Kustuta mittesoovitud objektid",
"Deleted {%file%}": "Kustutasin {{file}} faili",
"Deselect All": "Eemalda kogu valik",
"Deselect devices to stop sharing this folder with.": "Eemalda seadmed, millega sa enam ei taha seda kausta jagada.",
@@ -97,6 +98,9 @@
"Devices": "Seadmed",
"Disable Crash Reporting": "Lülita rakenduse kokkujooksmisest teavitamine välja",
"Disabled": "Pole kasutusel",
"Disabled periodic scanning and disabled watching for changes": "Regulaarne skaneerimine ja muudatuste jälgimine on lülitatud välja",
"Disabled periodic scanning and enabled watching for changes": "Regulaarne skaneerimine on lülitatud välja ja muudatuste jälgimine on lülitatud sisse",
"Disabled periodic scanning and failed setting up watching for changes, retrying every 1m:": "Regulaarne skaneerimine on lülitatud välja ja muudatuste jälgimise sisselülitamine ei õnnestunud, proovin iga minuti järel uuesti:",
"Discard": "Loobu",
"Disconnected": "Ühendus puudub",
"Disconnected (Inactive)": "Ühendus on katkestatud (pole aktiivne)",
@@ -145,12 +149,14 @@
"Forever": "Igavesti",
"Full Rescan Interval (s)": "Täiemahulise kordusskaneerimise välp (sek)",
"GUI": "Kasutajaliides",
"GUI / API HTTPS Certificate": "GUI / API HTTPS sertifikaat",
"GUI Authentication Password": "Salasõna kasutajaliidese autentimiseks",
"GUI Authentication User": "GUI Autentimise Kasutajatunnus",
"GUI Authentication: Set User and Password": "Kasutajaliidese autentimine: sisesta kasutajanimi ja salasõna",
"GUI Listen Address": "Aadress, mida kasutajaliides kuulab",
"GUI Override Directory": "Kasutajaliidese sürjutamise kaust",
"GUI Theme": "GUI Teema",
"General": "Üldist",
"Generate": "Genereeri",
"Global Discovery": "Üldine avastamine",
"Global State": "Üldine olek",
@@ -168,6 +174,7 @@
"Incoming Rate Limit (KiB/s)": "Siseneva liikluse kiiruspiirang (KiB/s)",
"Incorrect user name or password.": "Vigane kasutajanimi või salasõna.",
"Info": "Teave",
"Internally used paths:": "Sisemiselt kasutatud asukohad:",
"Introduction": "Sissejuhatus",
"Keep Versions": "Säilita Versioone",
"LDAP": "LDAP",
@@ -326,9 +333,12 @@
"Syncthing is restarting.": "Syncthing taaskäivitub.",
"Syncthing is saving changes.": "Syncthing salvestab muudatusi.",
"Syncthing is upgrading.": "Syncthing uueneb.",
"Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.": "Syncthing oskab nüüd kokkujooksmistest arendajatele automaatselt teada anda. See funktsionaalsus on vaikimisi lülitatud sisse.",
"Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Syncthing ei tundu toimima, aga võib-olla on lihtsalt probleem internetiühendusega. Proovin uuesti…",
"Syncthing seems to be experiencing a problem processing your request. Please refresh the page or restart Syncthing if the problem persists.": "Syncthing ei suutnud sinu päringut töödelda. Probleemi püsimisel värskenda lehte või taaskäivita Syncthing.",
"TCP LAN": "Kohtvõrgu TCP",
"TCP WAN": "Laivõrgu TCP",
"Take me back": "Vii mind tagasi",
"The Syncthing Authors": "Syncthingi autorid",
"The Syncthing admin interface is configured to allow remote access without a password.": "Syncthingi haldusliides on seadistatud lubamaks ligipääsu ilma salasõnata.",
"The aggregated statistics are publicly available at the URL below.": "Koondstatistika on avalikult saadaval järgneval lehel.",
@@ -380,6 +390,9 @@
"Version": "Versioon",
"Versions": "Versioonid",
"Versions Path": "Versioonide asukoht",
"Waiting to Clean": "Ootan tühjendamist",
"Waiting to Scan": "Ootan skaneerimist",
"Waiting to Sync": "Ootan sünkroonimist",
"Warning": "Hoiatus",
"Watch for Changes": "Jälgi muudatusi",
"Watching for Changes": "Jälgin muudatusi",

View File

@@ -122,7 +122,7 @@
"Discovery Failures": "Échecs de découverte",
"Discovery Status": "État de la découverte",
"Dismiss": "Écarter",
"Do not add it to the ignore list, so this notification may recur.": "Attendre la disparition de cette demande : évite l'ajout immédiat à la liste noire persistante.",
"Do not add it to the ignore list, so this notification may recur.": "Attendre l'expiration de cette demande : évite l'ajout immédiat à la liste noire persistante.",
"Do not restore": "Ne pas restaurer",
"Do not restore all": "Ne pas tout restaurer",
"Do you want to enable watching for changes for all your folders?": "Voulez-vous activer la surveillance des changements sur tous vos partages ?",
@@ -278,7 +278,7 @@
"OK": "OK",
"Off": "Désactivée",
"Oldest First": "Les plus anciens en premier",
"Optional descriptive label for the folder. Can be different on each device.": "Nom local, descriptif et optionnel du partage. Il peut être différent sur chaque appareil.",
"Optional descriptive label for the folder. Can be different on each device.": "Nom local, convivial et optionnel du partage, à votre guise. Il peut être différent sur chaque appareil. Par notification initiale, il sera proposé tel quel aux nouveaux participants.\nAstuce : comme il est modifiable ultérieurement, soyez prévenant en indiquant un nom éventuellement plus parlant pour les invités, puis renommez-le pour votre propre usage quand ils l'auront accepté (exemple d'un partage à deux membres où l'initiateur commence par donner son propre nom au partage pour l'invitation, puis le renomme plus tard au nom du partenaire quand celui-ci l'a accepté - Pensez, pour vous, au chemin ~définitif~ du répertoire, modifiable dans \"Chemin racine...\" ci-dessous à la création). Évitez les erreurs d'orthographe dans le nom car il servira aussi suffixe au chemin proposé en création (local et distant) et ce chemin, côté local, n'est modifiable à posteriori que dans la configuration avancée.",
"Options": "Options",
"Out of Sync": "Désynchronisé",
"Out of Sync Items": "Éléments non synchronisés",
@@ -288,7 +288,7 @@
"Ownership": "Propriétaire",
"Password": "Mot de passe",
"Path": "Chemin",
"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": "Chemin local du partage. Est créé s'il n'existe pas. Le caractère tilde (~) peut être utilisé comme un raccourci pour",
"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": "Dans l'écran de définition des valeurs par défaut \"Préférences pour les créations\"/\"Pour les nouveaux partages\" (du menu Actions/Configuration), ce champ indique le chemin de base dans lequel les partages que vous créez ou auxquels vous êtres invités seront créés. Le caractère tilde (~) est un raccourci pour votre répertoire personnel {{tilde}} .\nEn création/acceptation manuelle d'un nouveau partage, c'est le chemin complet du le répertoire à partager dans l'appareil local. Il peut être différent du \"Nom du partage\" (voir l'astuce dans l'aide correspondante ci-dessus). Il sera créé s'il n'existe pas. Vous pouvez entrer un chemin absolu (p.ex \"/home/moi/Sync/Exemple\") ou relatif à celui du programme (p.ex \"..\\Partages\\Exemple\" - utile pour installation portable). Le caractère tilde peut être utilisé comme raccourci vers",
"Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).": "Chemin où les versions seront conservées (laisser vide pour utiliser le dossier par défaut .stversions dans le partage).",
"Paths": "Chemins",
"Pause": "Pause",
@@ -365,7 +365,7 @@
"Share this folder?": "Acceptez-vous ce partage ?",
"Shared Folders": "Partages",
"Shared With": "Participant(s)",
"Sharing": "Partages",
"Sharing": "Ressources",
"Show ID": "Afficher mon ID",
"Show QR": "Afficher le QR",
"Show detailed discovery status": "Afficher l'état détaillé de découverte",

View File

@@ -26,6 +26,7 @@
"Allow Anonymous Usage Reporting?": "Siųsti anoniminę naudojimo ataskaitą?",
"Allowed Networks": "Leidžiami tinklai",
"Alphabetic": "Abėcėlės tvarka",
"Always turned on when the folder type is \"{%foldertype%}\".": "Visada įjungta, kai aplanko tipas yra „{{foldertype}}“.",
"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.": "Išorinė komanda apdoroja versijų valdymą. Ji turi pašalinti failą iš bendrinamo aplanko. Jei kelyje į programą yra tarpų, jie turėtų būti imami į kabutes.",
"Anonymous Usage Reporting": "Anoniminė naudojimo ataskaita",
"Anonymous usage report format has changed. Would you like to move to the new format?": "Anoniminės naudojimo ataskaitos formatas pasikeitė. Ar norėtumėte pereiti prie naujojo formato?",
@@ -51,8 +52,10 @@
"Body:": "Turinys:",
"Bugs": "Klaidos",
"Cancel": "Atsisakyti",
"Cannot be enabled when the folder type is \"{%foldertype%}\".": "Negali būti įjungta, kai aplanko tipas yra „{{foldertype}}“.",
"Changelog": "Keitinių žurnalas",
"Clean out after": "Išvalyti po",
"Cleaning Versions": "Versijų išvalymas",
"Cleanup Interval": "Išvalymo intervalas",
"Click to see full identification string and QR code.": "Spustelėkite, kad pamatytumėte visą identifikavimo eilutę ir QR kodą.",
"Close": "Užverti",
@@ -78,10 +81,13 @@
"Custom Range": "Tinkintas rėžis",
"Danger!": "Pavojus!",
"Database Location": "Duomenų bazės vieta",
"Debug": "Derinimas",
"Debugging Facilities": "Derinimo priemonės",
"Default": "Numatytasis",
"Default Configuration": "Numatytoji konfigūracija",
"Default Device": "Numatytasis įrenginys",
"Default Folder": "Numatytasis aplankas",
"Default Ignore Patterns": "Numatytieji nepaisymo šablonai",
"Defaults": "Numatytosios reikšmės",
"Delete": "Ištrinti",
"Delete Unexpected Items": "Ištrinti netikėtus elementus",
@@ -195,6 +201,8 @@
"Incoming Rate Limit (KiB/s)": "Atsiunčiamo srauto maksimalus greitis (KiB/s)",
"Incorrect configuration may damage your folder contents and render Syncthing inoperable.": "Neteisinga konfigūracija gali pažeisti jūsų aplankų turinį ir padaryti Syncthing neoperuotina.",
"Incorrect user name or password.": "Neteisingas naudotojo vardas ar slaptažodis.",
"Info": "Informacija",
"Internally used paths:": "Viduje naudojami keliai:",
"Introduced By": "Supažindė",
"Introducer": "Supažindintojas",
"Inversion of the given condition (i.e. do not exclude)": "Apversti sąlygas (pvz.: nenustoti naudoti)",
@@ -207,6 +215,8 @@
"Learn more": "Sužinoti daugiau",
"Learn more at {%url%}": "Sužinokite daugiau, adresu {{url}}",
"Limit": "Apribojimas",
"Listener Failures": "Klausytojo nesėkmės",
"Listener Status": "Klausytojo būsena",
"Listeners": "Klausytojai",
"Loading data...": "Įkeliami duomenys...",
"Loading...": "Įkeliama...",
@@ -334,6 +344,7 @@
"Show ID": "Rodyti ID",
"Show QR": "Rodyti QR",
"Show detailed discovery status": "Rodyti išsamią atradimo būseną",
"Show detailed listener status": "Rodyti išsamią klausytojo būseną",
"Show diff with previous version": "Rodyti skirtumus su ankstesne versija",
"Shown instead of Device ID in the cluster status. Will be advertised to other devices as an optional default name.": "Grupės būsenoje rodomas vietoje įrenginio vardo. Kiti įrenginiai matys kaip pasirinktinį vardą.",
"Shown instead of Device ID in the cluster status. Will be updated to the name the device advertises if left empty.": "Grupės būsenoje rodomas vietoje įrenginio vardo. Bus atnaujintas į įrenginio vardą jei nieko neįrašysite.",

View File

@@ -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, Simon Frei, Tomasz Wilczyński, Alexander Graf, Alexandre Viau, Anderson Mesquita, André Colomb, Antony Male, Ben Schulz, bt90, Caleb Callaway, Daniel Harte, Emil Lundberg, Eric P, Evgeny Kuznetsov, greatroar, Lars K.W. Gohlke, Lode Hoste, Marcus B Spencer, Michael Ploujnikov, Ross Smith II, Stefan Tatschner, Tommy van der Vorst, Wulf Weich, Adam Piggott, Adel Qalieh, Aleksey Vasenev, Alessandro G., Alex Ionescu, Alex Lindeman, Alex Xu, Alexander Seiler, Alexandre Alves, Aman Gupta, Andreas Sommer, andresvia, Andrew Rabert, Andrey D, andyleap, Anjan Momi, Anthony Goeckner, Antoine Lamielle, Anur, Aranjedeath, ardevd, Arkadiusz Tymiński, Aroun, Arthur Axel fREW Schmidt, Artur Zubilewicz, Ashish Bhate, Aurélien Rainone, BAHADIR YILMAZ, Bart De Vries, Beat Reichenbach, Ben Shepherd, Ben Sidhom, Benedikt Heine, Benno Fünfstück, Benny Ng, boomsquared, Boqin Qin, Boris Rybalkin, Brendan Long, Catfriend1, Cathryne Linenweaver, Cedric Staniewski, Chih-Hsuan Yen, Choongkyu, Chris Howie, Chris Joel, Christian Kujau, Christian Prescott, chucic, cjc7373, Colin Kennedy, Cromefire_, Cyprien Devillez, d-volution, Dan, Daniel Barczyk, Daniel Bergmann, Daniel Martí, Daniel Padrta, Daniil Gentili, Darshil Chanpura, dashangcun, David Rimmer, DeflateAwning, Denis A., Dennis Wilson, derekriemer, DerRockWolf, desbma, Devon G. Redekopp, digital, Dimitri Papadopoulos Orfanos, Dmitry Saveliev, domain, Domenic Horner, Dominik Heidler, Elias Jarlebring, Elliot Huffman, Emil Hessman, Eng Zer Jun, entity0xfe, Eric Lesiuta, Erik Meitner, Evan Spensley, Federico Castagnini, Felix, Felix Ableitner, Felix Lampe, Felix Unterpaintner, Francois-Xavier Gsell, Frank Isemann, Gahl Saraf, georgespatton, ghjklw, Gilli Sigurdsson, Gleb Sinyavskiy, Graham Miln, Greg, guangwu, gudvinr, Gusted, Han Boetes, HansK-p, Harrison Jones, Hazem Krimi, Heiko Zuerker, Hireworks, Hugo Locurcio, Iain Barnett, Ian Johnson, ignacy123, Iskander Sharipov, Jaakko Hannikainen, Jack Croft, Jacob, Jake Peterson, James O'Beirne, James Patterson, Jaroslav Lichtblau, Jaroslav Malec, Jaspitta, Jaya Chithra, Jaya Kumar, Jeffery To, jelle van der Waa, Jens Diemer, Jochen Voss, Johan Vromans, John Rinehart, Jonas Thelemann, Jonathan, Jose Manuel Delicado, jtagcat, Julian Lehrhuber, Jörg Thalheim, Jędrzej Kula, Kapil Sareen, Karol Różycki, Kebin Liu, Keith Harrison, Kelong Cong, Ken'ichi Kamada, Kevin Allen, Kevin Bushiri, Kevin White, Jr., klemens, Kurt Fitzner, kylosus, Lars Lehtonen, Laurent Etiemble, Leo Arias, Liu Siyuan, Lord Landon Agahnim, LSmithx2, Lukas Lihotzki, Luke Hamburg, luzpaz, Majed Abdulaziz, Marc Laporte, Marcel Meyer, Marcin Dziadus, Marcus Legendre, Mario Majila, Mark Pulford, Martchus, Mateusz Naściszewski, Mateusz Ż, mathias4833, Matic Potočnik, Matt Burke, Matt Robenolt, Matteo Ruina, Maurizio Tomasi, Max, Max Schulze, MaximAL, Maximilian, Michael Jephcote, Michael Rienstra, MichaIng, Migelo, Mike Boone, MikeLund, MikolajTwarog, Mingxuan Lin, mv1005, Nate Morrison, nf, Nicholas Rishel, Nick Busey, Nico Stapelbroek, Nicolas Braud-Santoni, Nicolas Perraut, Niels Peter Roest, Nils Jakobi, NinoM4ster, Nitroretro, NoLooseEnds, Oliver Freyermuth, orangekame3, otbutz, overkill, Oyebanji Jacob Mayowa, Pablo, Pascal Jungblut, Paul Brit, Paul Donald, Pawel Palenica, perewa, Peter Badida, Peter Dave Hello, Peter Hoeg, Peter Marquardt, Phani Rithvij, Phil Davis, Philippe Schommers, Phill Luby, Piotr Bejda, polyfloyd, pullmerge, Quentin Hibon, Rahmi Pruitt, red_led, Robert Carosi, Roberto Santalla, Robin Schoonover, Roman Zaynetdinov, rubenbe, Ruslan Yevdokymov, Ryan Qian, Ryan Sullivan, Sacheendra Talluri, Scott Klupfel, sec65, Sergey Mishin, Sertonix, Severin von Wnuck-Lipinski, Shaarad Dalvi, Simon Mwepu, Simon Pickup, Sly_tom_cat, Sonu Kumar Saw, Stefan Kuntz, Steven Eckhoff, Suhas Gundimeda, Sven Bachmann, Sébastien WENSKE, Taylor Khan, Terrance, TheCreeper, Thomas, Thomas Hipp, Tim Abell, Tim Howes, Tobias Frölich, Tobias Klauser, Tobias Nygren, Tobias Tom, Tom Jakubowski, Tully Robinson, Tyler Brazier, Tyler Kropp, Unrud, vapatel2, Veeti Paananen, Victor Buinsky, Vik, Vil Brekin, villekalliomaki, Vladimir Rusinov, wangguoliang, WangXi, Will Rouesnel, William A. Kennington III, wouter bolsterlee, xarx00, Xavier O., xjtdy888, Yannic A., yparitcher, 佛跳墙, 落心
Jakob Borg, Audrius Butkevicius, Simon Frei, Tomasz Wilczyński, Alexander Graf, Alexandre Viau, Anderson Mesquita, André Colomb, Antony Male, Ben Schulz, bt90, Caleb Callaway, Daniel Harte, Emil Lundberg, Eric P, Evgeny Kuznetsov, greatroar, Lars K.W. Gohlke, Lode Hoste, Marcus B Spencer, Michael Ploujnikov, Ross Smith II, Stefan Tatschner, Tommy van der Vorst, Wulf Weich, Adam Piggott, Adel Qalieh, Aleksey Vasenev, Alessandro G., Alex Ionescu, Alex Lindeman, Alex Xu, Alexander Seiler, Alexandre Alves, Aman Gupta, Andreas Sommer, andresvia, Andrew Rabert, Andrey D, andyleap, Anjan Momi, Anthony Goeckner, Antoine Lamielle, Anur, Aranjedeath, ardevd, Arkadiusz Tymiński, Aroun, Arthur Axel fREW Schmidt, Artur Zubilewicz, Ashish Bhate, Aurélien Rainone, BAHADIR YILMAZ, Bart De Vries, Beat Reichenbach, Ben Shepherd, Ben Sidhom, Benedikt Heine, Benno Fünfstück, Benny Ng, boomsquared, Boqin Qin, Boris Rybalkin, Brendan Long, Catfriend1, Cathryne Linenweaver, Cedric Staniewski, Chih-Hsuan Yen, Choongkyu, Chris Howie, Chris Joel, Christian Kujau, Christian Prescott, chucic, cjc7373, Colin Kennedy, Cromefire_, Cyprien Devillez, d-volution, Dan, Daniel Barczyk, Daniel Bergmann, Daniel Martí, Daniel Padrta, Daniil Gentili, Darshil Chanpura, dashangcun, David Rimmer, DeflateAwning, Denis A., Dennis Wilson, derekriemer, DerRockWolf, desbma, Devon G. Redekopp, digital, Dimitri Papadopoulos Orfanos, Dmitry Saveliev, domain, Domenic Horner, Dominik Heidler, Elias Jarlebring, Elliot Huffman, Emil Hessman, Eng Zer Jun, entity0xfe, Eric Lesiuta, Erik Meitner, Evan Spensley, Federico Castagnini, Felix, Felix Ableitner, Felix Lampe, Felix Unterpaintner, Francois-Xavier Gsell, Frank Isemann, Gahl Saraf, georgespatton, ghjklw, Gilli Sigurdsson, Gleb Sinyavskiy, Graham Miln, Greg, guangwu, gudvinr, Gusted, Han Boetes, HansK-p, Harrison Jones, Hazem Krimi, Heiko Zuerker, Hireworks, Hugo Locurcio, Iain Barnett, Ian Johnson, ignacy123, Iskander Sharipov, Jaakko Hannikainen, Jack Croft, Jacob, Jake Peterson, James O'Beirne, James Patterson, Jaroslav Lichtblau, Jaroslav Malec, Jaspitta, Jaya Chithra, Jaya Kumar, Jeffery To, jelle van der Waa, Jens Diemer, Jochen Voss, Johan Vromans, John Rinehart, Jonas Thelemann, Jonathan, Jose Manuel Delicado, jtagcat, Julian Lehrhuber, Jörg Thalheim, Jędrzej Kula, Kapil Sareen, Karol Różycki, Kebin Liu, Keith Harrison, Kelong Cong, Ken'ichi Kamada, Kevin Allen, Kevin Bushiri, Kevin White, Jr., klemens, Kurt Fitzner, kylosus, Lars Lehtonen, Laurent Etiemble, Leo Arias, Liu Siyuan, Lord Landon Agahnim, LSmithx2, Lukas Lihotzki, Luke Hamburg, luzpaz, Majed Abdulaziz, Marc Laporte, Marcel Meyer, Marcin Dziadus, Marcus Legendre, Mario Majila, Mark Pulford, Martchus, Mateusz Naściszewski, Mateusz Ż, mathias4833, Matic Potočnik, Matt Burke, Matt Robenolt, Matteo Ruina, Maurizio Tomasi, Max, Max Schulze, MaximAL, Maximilian, Michael Jephcote, Michael Rienstra, MichaIng, Migelo, Mike Boone, MikeLund, MikolajTwarog, Mingxuan Lin, mv1005, Nate Morrison, nf, Nicholas Rishel, Nick Busey, Nico Stapelbroek, Nicolas Braud-Santoni, Nicolas Perraut, Niels Peter Roest, Nils Jakobi, NinoM4ster, Nitroretro, NoLooseEnds, Oliver Freyermuth, orangekame3, otbutz, overkill, Oyebanji Jacob Mayowa, Pablo, Pascal Jungblut, Paul Brit, Paul Donald, Pawel Palenica, perewa, Peter Badida, Peter Dave Hello, Peter Hoeg, Peter Marquardt, Phani Rithvij, Phil Davis, Philippe Schommers, Phill Luby, Piotr Bejda, polyfloyd, Prathik P Kulkarni, pullmerge, Quentin Hibon, Rahmi Pruitt, red_led, Robert Carosi, Roberto Santalla, Robin Schoonover, Roman Zaynetdinov, rubenbe, Ruslan Yevdokymov, Ryan Qian, Ryan Sullivan, Sacheendra Talluri, Scott Klupfel, sec65, Sergey Mishin, Sertonix, Severin von Wnuck-Lipinski, Shaarad Dalvi, Simon Mwepu, Simon Pickup, Sly_tom_cat, Sonu Kumar Saw, Stefan Kuntz, Steven Eckhoff, Suhas Gundimeda, Sven Bachmann, Sébastien WENSKE, Taylor Khan, Terrance, TheCreeper, Thomas, Thomas Hipp, Tim Abell, Tim Howes, Tobias Frölich, Tobias Klauser, Tobias Nygren, Tobias Tom, Tom Jakubowski, Tully Robinson, Tyler Brazier, Tyler Kropp, Unrud, vapatel2, Veeti Paananen, Victor Buinsky, Vik, Vil Brekin, villekalliomaki, Vladimir Rusinov, wangguoliang, WangXi, Will Rouesnel, William A. Kennington III, wouter bolsterlee, xarx00, Xavier O., xjtdy888, Yannic A., yparitcher, 佛跳墙, 落心
</div>
</div>
</div>

View File

@@ -0,0 +1,9 @@
License - https://forkaweso.me/Fork-Awesome/license
Copyright 2018 Dave Gandy & Fork Awesome
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -0,0 +1 @@
The Fork Awesome font is licensed under the SIL OFL 1.1 (http://scripts.sil.org/OFL). Fork Awesome is a fork based of off Font Awesome 4.7.0 by Dave Gandy. More info on licenses at https://forkawesome.github.io

View File

@@ -4,7 +4,7 @@
// 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 db // import "github.com/syncthing/syncthing/internal/db/sqlite"
package db
import (
"iter"
@@ -15,8 +15,17 @@ import (
"github.com/thejerf/suture/v4"
)
type DBService interface {
suture.Service
// Starts maintenance asynchronously, if not already running
StartMaintenance()
}
type DB interface {
Service(maintenanceInterval time.Duration) suture.Service
// Create a service that performs database maintenance periodically (no
// more often than the requested interval)
Service(maintenanceInterval time.Duration) DBService
// Basics
Update(folder string, device protocol.DeviceID, fs []protocol.FileInfo) error

View File

@@ -19,7 +19,6 @@ import (
"github.com/syncthing/syncthing/internal/db"
"github.com/syncthing/syncthing/internal/slogutil"
"github.com/syncthing/syncthing/lib/protocol"
"github.com/thejerf/suture/v4"
)
const (
@@ -32,7 +31,7 @@ const (
gcMaxRuntime = 5 * time.Minute // max time to spend on gc, per table, per run
)
func (s *DB) Service(maintenanceInterval time.Duration) suture.Service {
func (s *DB) Service(maintenanceInterval time.Duration) db.DBService {
return newService(s, maintenanceInterval)
}
@@ -40,6 +39,7 @@ type Service struct {
sdb *DB
maintenanceInterval time.Duration
internalMeta *db.Typed
start chan struct{}
}
func (s *Service) String() string {
@@ -51,12 +51,19 @@ func newService(sdb *DB, maintenanceInterval time.Duration) *Service {
sdb: sdb,
maintenanceInterval: maintenanceInterval,
internalMeta: db.NewTyped(sdb, internalMetaPrefix),
start: make(chan struct{}),
}
}
func (s *Service) StartMaintenance() {
select {
case s.start <- struct{}{}:
default:
}
}
func (s *Service) Serve(ctx context.Context) error {
// Run periodic maintenance
// Figure out when we last ran maintenance and schedule accordingly. If
// it was never, do it now.
lastMaint, _, _ := s.internalMeta.Time(lastMaintKey)
@@ -66,21 +73,29 @@ func (s *Service) Serve(ctx context.Context) error {
wait = time.Minute
}
slog.DebugContext(ctx, "Next periodic run due", "after", wait)
timer := time.NewTimer(wait)
if s.maintenanceInterval == 0 {
timer.Stop()
}
for {
select {
case <-ctx.Done():
return ctx.Err()
case <-timer.C:
case <-s.start:
}
if err := s.periodic(ctx); err != nil {
return wrap(err)
}
timer.Reset(s.maintenanceInterval)
slog.DebugContext(ctx, "Next periodic run due", "after", s.maintenanceInterval)
if s.maintenanceInterval != 0 {
timer.Reset(s.maintenanceInterval)
slog.DebugContext(ctx, "Next periodic run due", "after", s.maintenanceInterval)
}
_ = s.internalMeta.PutTime(lastMaintKey, time.Now())
}
}

View File

@@ -203,7 +203,7 @@ func (s *service) getListener(guiCfg config.GUIConfiguration) (net.Listener, err
}
func sendJSON(w http.ResponseWriter, jsonObject interface{}) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Header().Set("Content-Type", "application/json")
// Marshalling might fail, in which case we should return a 500 with the
// actual error.
bs, err := json.MarshalIndent(jsonObject, "", " ")

View File

@@ -14,6 +14,7 @@ import (
"time"
"github.com/syncthing/syncthing/internal/slogutil"
"github.com/syncthing/syncthing/lib/build"
"github.com/syncthing/syncthing/lib/netutil"
)
@@ -64,6 +65,11 @@ func writeBroadcasts(ctx context.Context, inbox <-chan []byte, port int) error {
continue
}
if build.IsAndroid && intf.Flags&net.FlagPointToPoint != 0 {
// skip cellular interfaces
continue
}
addrs, err := netutil.InterfaceAddrsByInterface(&intf)
if err != nil {
l.Debugln("Failed to list interface addresses:", err)

View File

@@ -13,6 +13,7 @@ import (
"net"
"time"
"github.com/syncthing/syncthing/lib/build"
"github.com/syncthing/syncthing/lib/netutil"
"golang.org/x/net/ipv6"
@@ -74,6 +75,11 @@ func writeMulticasts(ctx context.Context, inbox <-chan []byte, addr string) erro
continue
}
if build.IsAndroid && intf.Flags&net.FlagPointToPoint != 0 {
// skip cellular interfaces
continue
}
wcm.IfIndex = intf.Index
pconn.SetWriteDeadline(time.Now().Add(time.Second))
_, err = pconn.WriteTo(bs, wcm, gaddr)
@@ -129,8 +135,12 @@ func readMulticasts(ctx context.Context, outbox chan<- recv, addr string) error
pconn := ipv6.NewPacketConn(conn)
joined := 0
for _, intf := range intfs {
if intf.Flags&net.FlagMulticast == 0 {
slog.DebugContext(ctx, "Not joining multicast group on non-multicast interface", "name", intf.Name, slog.String("flags", intf.Flags.String()))
if intf.Flags&net.FlagRunning == 0 || intf.Flags&net.FlagMulticast == 0 {
continue
}
if build.IsAndroid && intf.Flags&net.FlagPointToPoint != 0 {
// skip cellular interfaces
continue
}

View File

@@ -72,6 +72,7 @@ type App struct {
stopOnce sync.Once
mainServiceCancel context.CancelFunc
stopped chan struct{}
dbService db.DBService
// Access to internals for direct users of this package. Note that the interface in Internals is unstable!
Internals *Internals
@@ -114,10 +115,16 @@ func (a *App) Start() error {
return nil
}
// StartMaintenance asynchronously triggers database maintenance to start.
func (a *App) StartMaintenance() {
a.dbService.StartMaintenance()
}
func (a *App) startup() error {
a.mainService.Add(ur.NewFailureHandler(a.cfg, a.evLogger))
a.mainService.Add(a.sdb.Service(a.opts.DBMaintenanceInterval))
a.dbService = a.sdb.Service(a.opts.DBMaintenanceInterval)
a.mainService.Add(a.dbService)
if a.opts.AuditWriter != nil {
a.mainService.Add(newAuditService(a.opts.AuditWriter, a.evLogger))

View File

@@ -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 "STDISCOSRV" "1" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "STDISCOSRV" "1" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
stdiscosrv \- Syncthing Discovery Server
.SH SYNOPSIS
@@ -394,6 +394,6 @@ the discovery server and your particular setup.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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 "STRELAYSRV" "1" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "STRELAYSRV" "1" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
strelaysrv \- Syncthing Relay Server
.SH SYNOPSIS
@@ -317,6 +317,6 @@ relay://<host name|IP>[:port]/?id=<relay device ID>&token=mySecretToken
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -28,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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-BEP" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-bep \- Block Exchange Protocol v1
.SH INTRODUCTION AND DEFINITIONS
@@ -1057,6 +1057,6 @@ process occurs for device A at 15.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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-CONFIG" "5" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-CONFIG" "5" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-config \- Syncthing Configuration
.SH OVERVIEW
@@ -1699,6 +1699,6 @@ send only mode for just the configuration folder.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-DEVICE-IDS" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-device-ids \- Understanding Device IDs
.sp
@@ -255,6 +255,6 @@ accepting the connection.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-EVENT-API" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-event-api \- Event API
.SH DESCRIPTION
@@ -1116,6 +1116,6 @@ seconds and is now in state \fBidle\fP\&.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-FAQ" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-faq \- Frequently Asked Questions
.INDENT 0.0
@@ -745,6 +745,6 @@ For example, the two emphasized lines below would be removed from the file.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-GLOBALDISCO" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-globaldisco \- Global Discovery Protocol v3
.SH ANNOUNCEMENTS
@@ -119,6 +119,6 @@ The discovery server prints its certificate ID in this manner on startup.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-LOCALDISCO" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-localdisco \- Local Discovery Protocol v4
.SH MODE OF OPERATION
@@ -114,6 +114,6 @@ between two announces and conclude that the announcing device has restarted.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-NETWORKING" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-networking \- Firewall Setup
.SH ROUTER SETUP
@@ -163,6 +163,6 @@ Syncthing can use a SOCKS5 proxy for outbound connections. Please see \fI\%Using
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -28,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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-RELAY" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-relay \- Relay Protocol v1
.SH WHAT IS A RELAY?
@@ -707,6 +707,6 @@ T}
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-REST-API" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-rest-api \- REST API
.sp
@@ -1955,6 +1955,6 @@ Returns a \fB{\(dqstatus\(dq: \(dqOK\(dq}\fP object.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-SECURITY" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-security \- Security Principles
.sp
@@ -167,6 +167,6 @@ avoid leaking keys and metadata. Or, use whole disk encryption.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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-STIGNORE" "5" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-STIGNORE" "5" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-stignore \- Prevent files from being synchronized to other nodes
.SH SYNOPSIS
@@ -288,6 +288,6 @@ as the escape character for that particular file.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING-VERSIONING" "7" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing-versioning \- Keep automatic backups of deleted files by other nodes
.sp
@@ -375,6 +375,6 @@ quoted.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.

View File

@@ -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" "1" "Dec 07, 2025" "v2.0.0" "Syncthing"
.TH "SYNCTHING" "1" "Jan 07, 2026" "v2.0.0" "Syncthing"
.SH NAME
syncthing \- Syncthing
.SH SYNOPSIS
@@ -549,6 +549,6 @@ Set to any nonempty value to use it.
.SH AUTHOR
The Syncthing Authors
.SH COPYRIGHT
2014-2025, The Syncthing Authors
2014-2026, The Syncthing Authors
.\" Generated by docutils manpage writer.
.