Syncthing
syncthing.net Windows, Mac, Linux, BSD, AndroidContinuous file synchronization between 2 or more clients. It is simple, yet powerful, and fully-encrypted and private. Syncthing can be deployed with Docker, and there are native clients for Windows, Mac, Linux, BSD and Android.
- Homepage: syncthing.net
- GitHub: github.com/syncthing/syncthing
- Web info: web-check.xyz/check/syncthing.net
Syncthing Source Code
Author
Description
Open Source Continuous File Synchronization
Homepage
https://syncthing.net/License
MPL-2.0
Created
26 Nov 13
Last Updated
09 Jun 26
Latest version
Primary Language
Go
Size
125,121 KB
Stars
85,168
Forks
5,260
Watchers
85,168
Language Usage
Star History
Top Contributors
-
@calmh (4585)
-
@AudriusButkevicius (987)
-
@imsodin (892)
-
@st-release (215)
-
@tomasz1986 (124)
-
@jesselucas (112)
-
@acolomb (91)
-
@greatroar (87)
-
@Zillode (58)
-
@bt90 (34)
-
@dependabot-preview[bot] (33)
-
@uok (29)
-
@dependabot[bot] (28)
-
@lkwg82 (28)
-
@norgeous (26)
-
@andersonvom (21)
-
@canton7 (18)
-
@rasa (16)
-
@marbens-arch (16)
-
@pixelspark (15)
-
@deepsource-autofix[bot] (14)
-
@emlun (13)
-
@alex2108 (13)
-
@aviau (12)
-
@nekr0z (11)
-
@wweich (11)
-
@cqcallaw (10)
-
@plouj (10)
-
@KayoticSully (10)
-
@filoozom (9)
-
@ralder (9)
-
@nrm21 (9)
-
@kamadak (7)
-
@rumpelsepp (7)
-
@dargmuesli (6)
-
@xduugu (6)
-
@jedie (6)
-
@qepasa (5)
-
@letiemble (5)
-
@otbutz (5)
-
@krozycki (5)
-
@brgmnn (5)
-
@seehuhn (4)
-
@keevBush (4)
-
@cyberb (4)
-
@pyfisch (4)
-
@ardevd (4)
-
@Stefan-Code (4)
-
@jpjp (4)
-
@ProactiveServices (4)
-
@HairyFotr (4)
-
@Valloric (3)
-
@bigbear2nd (3)
-
@kluppy (3)
-
@kozec (3)
-
@jarlebring (3)
-
@fti7 (3)
-
@mrclmr (3)
-
@Ratio2 (3)
-
@tmm1 (3)
-
@AkaZecik (3)
-
@maen-bn (3)
-
@danog (3)
-
@KeyWeeUsr (3)
-
@rjpruitt16 (3)
-
@marclaporte (3)
-
@Shidory (3)
-
@yyogo (3)
-
@acogdev (3)
-
@kralo (2)
-
@maximal (2)
-
@MikeLund (2)
-
@MikolajTwarog (2)
-
@nicoonoclaste (2)
-
@hiqua (2)
-
@ruslanye (2)
-
@shaaraddalvi (2)
-
@Shablone (2)
-
@maishivamhoo123 (2)
-
@liusy182 (2)
-
@qbit (2)
-
@swenske (2)
-
@veeti (2)
-
@dagecko (2)
-
@desbma (2)
-
@entity0xfe (2)
-
@gudvinr (2)
-
@jtagcat (2)
-
@kwhite17 (2)
-
@mathias4833 (2)
-
@mattn (2)
-
@SimplyPeachy (2)
-
@xarx00 (2)
-
@gsaraf (2)
-
@vrusinov (2)
-
@jayachithra (2)
-
@andrewrabert (2)
-
@aionescu (2)
-
@agoeckner (2)
-
@bahadir60 (2)
Recent Commits
-
Syncthing Release Automation (08 Jun 26)
chore(gui, man, authors): update docs, translations, and contributors
-
Simon Frei (04 Jun 26)
chore(db, model): separate methods to drop a device vs its files (#10480) Fixes #10469 --------- Signed-off-by: Simon Frei <[email protected]> Signed-off-by: Jakob Borg <[email protected]> Co-authored-by: Marcus B Spencer <[email protected]> Co-authored-by: Jakob Borg <[email protected]>
-
Jakob Borg (03 Jun 26)
fix: let umask do the thing (#10723) We had a few places where we had perhaps too much of an opinion on the permissions on created files and directories, sometimes fuled by a misconception about how permissions work in both Unix and Windows. Recap on the ground rules: - On all unixes, all file & directory creation (`Mkdir`, `MkdirAll`, `Create`, `WriteFile`, `Open`) has the given permission bits filtered via the user's umask. The proper permissions for us to use are in almost all cases 0o666 for files and 0o777 for directories, strange as that may look at the call site. - On Windows, there is no umask but in turn all of the permission bits except the user write bit are ignored. The absence of user write bit is converted into the read only attribute. This means that what is proper for Unix above is also proper for Windows. - We make an exception when creating files for certificate keys and the config / database directories, as those contain secrets we think should remain closed even if the user generally collaborates with other users on the system. (Also removal of a bugfixed copy of MkdirAll for Windows that hasn't been necessary for a few years.) --------- Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (02 Jun 26)
fix(gui): properly escape filenames in fancytree Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (02 Jun 26)
fix(connections): do not report connection metrics for self (ref #10509) (#10724) Makes the metrics easier to interpret. Signed-off-by: Jakob Borg <[email protected]>
-
Shablone (02 Jun 26)
fix: on Windows don't allocate console if not opened inside one (#10726) This change allows Syncthing to be launched from Explorer without showing a console window, while preserving the existing command-line behavior. Previously, launching syncthing.exe from Explorer would always allocate a console window, which could only be hidden later by using `--no-console`. It was not possible to avoid console allocation entirely without introducing other issues. On Windows 24H2 and later a new application manifest allows us to achieve it. See [console allocation policy](https://learn.microsoft.com/en-us/windows/console/console-allocation-policy) This manifest is built into a syso-file by `goversioninfo`, which is already used to generate Windows resource files consumed by the Go compiler. **Note1:** On Windows 24H2 and later, no console is allocated when Syncthing is launched from Explorer, even if `--no-console` is set to `False`. It can still be used as a CLI tool as usual if you call it from console. **Note2:** The content of the manifest file may not be formatted. Even a `newline` would break it. ### Testing Tested on Windows 11 25H2: No console visible from explorer. CLI works as usual. Ref #8046, ref #10633, ref #10481, ref #10600 Signed-off-by: Elias <[email protected]> Co-authored-by: Elias <[email protected]>
-
Syncthing Release Automation (01 Jun 26)
chore(gui, man, authors): update docs, translations, and contributors
-
Shablone (25 May 26)
chore(syncthing): open URLs via Windows API instead via cmd.exe (#10712) ### Purpose On Windows replace `cmd.exe /C start` with direct `ShellExecute` API for opening the webpage. The previous implementation used `exec.Command("cmd.exe", "/C", "start "+url)` which spawns two extra processes (cmd.exe → start). Launching cmd.exe resulted in a shortly visible terminal. Both -`start` -and another alternative `exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start()` are just wrappers for `ShellExecute`. So this implementation is even more direct ### Testing I executed the compiled syncthing.exe on Windows 11, both from explorer and console. The webpage opened as expected. ### Screenshots N/A. ### Documentation N/A ## Authorship Name: Elias @Shablone Email: [[email protected]](mailto:[email protected]) Signed-off-by: Elias <[email protected]> Co-authored-by: Elias <[email protected]>
-
Jakob Borg (25 May 26)
fix(protocol): handle zero-size requests (fixes #10709) (#10710) - Allow zero-sized requests since they are sent by all current versions of Syncthing. - Stop sending zero-sized requests since that's stupid. --------- Signed-off-by: Jakob Borg <[email protected]>
-
Syncthing Release Automation (25 May 26)
chore(gui, man, authors): update docs, translations, and contributors
-
mattn (23 May 26)
chore: use path/filepath for local file system paths (#10705) ### Purpose `path` is for slash-separated paths (URLs, BEP protocol); local file system paths should use `path/filepath`. Fixed in `cmd/stdiscosrv/database.go` (3 sites) and `internal/db/sqlite/db_test.go` (1 site). ### Testing `go build ./cmd/stdiscosrv/...` and `go vet` pass. Signed-off-by: Yasuhiro Matsumoto <[email protected]>
-
mattn (23 May 26)
fix(stcrashreceiver): close source loader responses on errors (#10704) Fix a response body leak in `githubSourceCodeLoader.Load` where the body was not closed when the HTTP status was non-200. Signed-off-by: Yasuhiro Matsumoto <[email protected]>
-
Jakob Borg (23 May 26)
Revert "build: temporarily disable illumos for release" This reverts commit c0c401efebf27af58b91309b381d7d3eae870a64.
-
Jakob Borg (23 May 26)
Merge branch 'infrastructure' * infrastructure: build: let infra containers builds fail individually chore(ur): move structs to reduce dependency chain chore(stcrashreceiver): add profiler on metrics port chore(stcrashreceiver): compact diskstore in-memory representation chore(stcrashreceiver): better source cache & metrics chore(stcrashreceiver): metrics on ignore matches
-
Jakob Borg (23 May 26)
build: let infra containers builds fail individually Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (23 May 26)
chore(ur): move structs to reduce dependency chain lib/ur brings in a lot of dependencies we don't need in e.g. stcrashreceiver, who only needs the small failure reporting structs. Make those part of the lean `contract` package instead. Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (23 May 26)
chore(stcrashreceiver): add profiler on metrics port Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (21 May 26)
chore(stcrashreceiver): compact diskstore in-memory representation Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (21 May 26)
chore(stcrashreceiver): better source cache & metrics Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (21 May 26)
chore(stcrashreceiver): metrics on ignore matches Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (23 May 26)
build(deps): x/net for govulncheck (#10703) Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (23 May 26)
chore(syncthing): include runtime context in GC crashes (#10702) The runtime prints a lot of context for crashes due to bad pointers etc, which is required to understand the crash, but this context comes before the `fatal error: ...` line. Currently those lines get filtered out and not included in the crash report. This change modifies the criteria so that we start collecting crash data also at a line that begins with `runtime:`, and tweaks the parsing later to look for the specific `panic:` or `fatal error:` which may come later as the subject. --------- Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (23 May 26)
fix(discover): only announce wildcard for TCP punching when listening on wildcard address (fixes #10503) (#10691) If we aren't announcing e.g. tcp://0.0.0.0:22000 then also do not announce tcp://0.0.0.0:0. Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (23 May 26)
fix(versioner): ensure user read/write/execute on archived dirs (fixes #10532) (#10696) This makes sure the user running Syncthing, and hence Synchting itself, has read/write/execute on directories in .stversions. The other permission bits remain copied from the source directory, ensuring whatever group and other permissions were set remain in effect. Closes #10695. --------- Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (21 May 26)
fix(syncthing): properly upgrade via REST when Syncthing is running (fixes #10697) (#10699) The locking logic for upgrades got inverted in the lockfile changes. If we got the lock it means Syncthing wasn't already running, so we can do a direct upgrade. If we failed to get the lock it means Syncthing was running and we should tell the REST interface to do the upgrade. Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (21 May 26)
Merge branch 'infrastructure' * infrastructure: fix(stcrashreceiver): allow extra pre/post data in version line chore(stcrashreceiver): improve logging chore(stdiscosrv): prewarm counters at startup
-
Jakob Borg (18 May 26)
fix(stcrashreceiver): allow extra pre/post data in version line Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (18 May 26)
chore(stcrashreceiver): improve logging Signed-off-by: Jakob Borg <[email protected]>
-
Jakob Borg (09 May 26)
chore(stdiscosrv): prewarm counters at startup Signed-off-by: Jakob Borg <[email protected]>
-
Syncthing Release Automation (18 May 26)
chore(gui, man, authors): update docs, translations, and contributors
Syncthing Security
Security Advisories (2)
- medium Patched
CVE-2022-46165 Cross-site Scripting (XSS) in Web GUI
- medium Patched
CVE-2021-21404 Crash due to malformed relay protocol message
Syncthing Website
Website
Syncthing
Redirects
Does not redirect
Security Checks
All 65 security checks passed
Server Details
- IP Address 185.199.110.153
- Hostname cdn-185-199-110-153.github.com
- Location California, Pennsylvania, United States of America, NA
- ISP GitHub Inc.
- ASN AS54113
Associated Countries
-
DE -
US -
IE
Safety Score
Website marked as safe
100%
Blacklist Check
syncthing.net was found on 0 blacklists
- AntiSocial Blacklist
- Artists Against 419
- Badbitcoin
- Bambenek Consulting
- CERT Polska
- CoinBlockerLists
- CRDF
- CryptoScamDB
- EtherAddressLookup
- EtherScamDB
- Fake Website Buster
- MetaMask EthPhishing
- NABP Not Recommended Sites
- OpenPhish
- PetScams
- PhishFeed
- PhishFort
- Phishing.Database
- PhishStats
- PhishTank
- Phishunt
- RPiList Not Serious
- Scam.Directory
- SecureReload Phishing List
- Spam404
- StopGunScams
- Suspicious Hosting IP
- ThreatFox
- ThreatLog
- TweetFeed
- URLhaus
- ViriBack C2 Tracker
Website Preview
Syncthing Docker
Container Info
syncthing
Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes.
linuxserver/syncthing:latestRun Command
docker run -d \
-p 8384:8384/tcp \
-p 21027:21027/udp \
-p 22000:22000/tcp \
-e PUID=${PUID} \
-e PGID=${PGID} \
-v /portainer/Files/AppData/Config/Syncthing:/config \
-v /sync \
--restart=unless-stopped \
linuxserver/syncthing:latest Compose File
version: 3.8
services:
syncthing-container:
image: "linuxserver/syncthing:latest"
ports:
- "8384:8384/tcp"
- "21027:21027/udp"
- "22000:22000/tcp"
environment:
PUID: 1000
PGID: 100
volumes:
- "/portainer/Files/AppData/Config/Syncthing:/config"
- /sync
restart: unless-stopped Environment Variables
- Var Name Default
- PUID 1000
- PGID 100
Port List
- 8384:8384/tcp
- 21027:21027/udp
- 22000:22000/tcp
Volume Mounting
- /portainer/Files/AppData/Config/Syncthing /config
- /sync
Syncthing Reviews
More Backup and Sync
-
Modern and simpler alternative to Nextcloud/ownCloud crafted with TypeScript. Unifies file management, sync, sharing, notes, RSS, expenses, calendars, contacts, and photos, with MFA, WebDAV, CalDAV, CardDAV, SSO, and more.
-
Feature-rich productivity platform, that can be used to backup and selectively sync encrypted files and folders between 1 or more clients. A key benefit the wide range of plug-ins in the NextCloud App Store, maintained by the community. NextCloud was a hard fork off OwnCloud.
-
An open source cloud storage and sync solution. Files are grouped into Libraries, which can be individually encrypted, shared of synced. Docker image available for easy deployment, and native clients for Windows, Mac, Linux, Android and iOS.
About the Data: Syncthing
API
You can access Syncthing's data programmatically via our API. Simply make a GET request to:
https://api.awesome-privacy.xyz/v1/services/syncthing The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.
Share Syncthing
Help your friends compare Backup and Sync, and pick
privacy-respecting software and services.
Share Syncthing and Awesome Privacy with your network!