Syncthing

syncthing.net
Syncthing

Continuous 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.

Open Source

Syncthing Source Code

Author

syncthing

Description

Open Source Continuous File Synchronization

#go#p2p#peer-to-peer#synchronization

Homepage

https://syncthing.net/

Repository

  • LicenseMPL-2.0
  • Created26 Nov 13
  • Primary languageGo
  • Size127,717 KB
  • Stars89,200
  • Forks5,506
  • Watchers89,200

Language Usage

Language Usage

Project Health

  • Last commit6 days ago
  • Open issues389
  • Latest releasev2.1.6

Recent Commits

  • Jakob Borg(07 Oct 26)

    fix(sqlite): do not generate unbounded prepared statements (ref #10913) (#10915) The API can use arbitrary paging parameters, causing arbitrary numbers of prepared statements, which becomes a memory leak. Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(07 Oct 26)

    fix(sqlite): avoid early garbage collection of deleted recv-enc files (#10916) Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(07 Oct 26)

    fix: handle missing max-sequence file entries (#10912) This could happen when a folder has deleted files as the latest entries, and nothing else happened for 180 days (the default tombstone cleanup time). Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(06 Oct 26)

    build: skip defunct loki sending Signed-off-by: Jakob Borg <[email protected]>

  • Syncthing Release Automation(05 Oct 26)

    chore(gui, man, authors): update docs, translations, and contributors

  • Jakob Borg(04 Oct 26)

    fix: remove unnecessary delay in index transmission (#10908) Prior to refactoring, this delay kicked in once all batches were sent. Now, it came between each batch. Fix that. --------- Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(30 Sept 26)

    fix: use global short lived HTTP client with proper HTTP/2 support (#10901) In e7b8efb41 I disabled keepalives in several HTTP clients, which inadvertently also disabled HTTP/2. However, the TLS setup announced h2 as a supported protocol, which caused confusion. This fixes that, and makes sure to use the same client in all relevant places. The old option to do usage reporting posts with InsecureSkipVerify goes away -- nobody should have ever used it. --------- Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(30 Sept 26)

    fix(watchaggregator): properly convert floating-point time duration (fixes #10899) (#10900) Signed-off-by: Jakob Borg <[email protected]>

  • Syncthing Release Automation(28 Sept 26)

    chore(gui, man, authors): update docs, translations, and contributors

  • Giridhar(22 Sept 26)

    fix(gui): improve header and button color contrast (fixes #10488) (#10815) ### Purpose Improve the contrast of semantic request-dialog headers and buttons in the light, dark, and black GUI themes. The light theme keeps its bright semantic colors and uses black text for success, warning, and danger alerts plus success/warning buttons. Danger buttons use the existing darker red with white text. The dark themes use darker success, warning, and danger backgrounds with white text. The lowest enabled-state contrast ratio is 4.509:1, meeting WCAG AA for normal text. ### Testing - `go run build.go assets` - `go run build.go build syncthing` - `git diff --check` - Checked the base and interactive semantic color pairs with a WCAG contrast calculation; all enabled states are at least 4.5:1. - Loaded the generated GUI assets in Chromium and verified the computed foreground/background colors for success, warning, and danger alerts and buttons in both light and dark themes. ### Screenshots Rendered light and dark fixtures locally to verify the complete alert and button combinations. The computed colors matched the intended theme rules and no clipping or layout changes were introduced. ### Documentation No documentation changes are required; this only corrects existing theme colors. Signed-off-by: Giridhar <[email protected]> Co-authored-by: Giridhar <[email protected]>

  • Shablone(22 Sept 26)

    fix(monitor): continue log writes when stdout is unavailable on detached Windows consoles (fixes #10882) (#10889) ### Purpose #10726 introduces a problematic side effect which only surfaced recently in #10882: On Windows 24H2 stdout will be invalid when Syncthing is started detached from a console. This caused the monitors logwriter to fail silently before it writes it a log file. This PR fixes this by letting the multiwriter continue even after failing on stdout. ### Testing #10882 can be reproduced without this PRs commit. With this PR logging does work again. Following scenarios are tested in which the logfile will be written again -console: syncthing.exe -console: start "" syncthing.exe -console: start "" syncthing.exe serve --log-file=path -explorer: double click `go test ./lib/osutil ` checks if the introduced tolerantMultiWriter writes to all targets even on errors. --------- Signed-off-by: Elias <[email protected]> Co-authored-by: Elias <[email protected]>

  • Jakob Borg(22 Sept 26)

    fix: disable keepalive on most outgoing HTTP connections (#10891) Where we don't expect connection reuse for further requests this reduces the number of open connection server-side. Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(14 Sept 26)

    fix(model): properly error out when a temp file can't be created (#10883) Such as when the base filename contains a character disallowed on the current filesystem... Signed-off-by: Jakob Borg <[email protected]>

  • Syncthing Release Automation(14 Sept 26)

    chore(gui, man, authors): update docs, translations, and contributors

  • Jakob Borg(12 Sept 26)

    doc: simplify security reporting note Signed-off-by: Jakob Borg <[email protected]>

  • Tomasz Wilczyński(12 Sept 26)

    fix(gui): add accessible labels to buttons in Edit Device modal (fixes #10873) (#10874) fix(gui): add accessible labels to buttons in Edit Device modal (fixes #10873) Currently, the buttons show text on mouse hover or keyboard focus, but they are inaccessible to screen readers due to a lack of any readable labels. However, there is not enough space to add full-length textual labels that would be visible to everyone. Therefore, add only aria labels for screen readers, while keyboard and mouse users can still learn their function via the tooltips. Signed-off-by: Tomasz Wilczyński <[email protected]> Signed-off-by: Tomasz Wilczyński <[email protected]>

  • Jakob Borg(12 Sept 26)

    fix(model): introducers should not be able to add themselves to folders (#10880) As documented and intended, introducers should be able to vouch for folders shared with them, but not other folders. Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(08 Sept 26)

    build: give macos security set-key-partition-list the correct password Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(08 Sept 26)

    Merge branch 'infrastructure' * infrastructure: chore(discosrv): add debug headers to ping response chore(stupgrades): allow templating the asset URL

  • Jakob Borg(22 Aug 26)

    chore(discosrv): add debug headers to ping response Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(19 Aug 26)

    chore(stupgrades): allow templating the asset URL Signed-off-by: Jakob Borg <[email protected]>

  • Syncthing Release Automation(07 Sept 26)

    chore(gui, man, authors): update docs, translations, and contributors

  • Jakob Borg(24 Aug 26)

    chore: set User-Agent on all outgoing HTTP requests (#10867) It's only polite, and it enables better troubleshooting in situations like weird-ass requests to the upgrades download service. --------- Signed-off-by: Jakob Borg <[email protected]>

  • Syncthing Release Automation(24 Aug 26)

    chore(gui, man, authors): update docs, translations, and contributors

  • Jakob Borg(20 Aug 26)

    build(deps): update dependencies (#10865) Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(19 Aug 26)

    build: use Go 1.27, minimum version is Go 1.26 (#10864) ### Purpose 🎉 Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(18 Aug 26)

    Merge branch 'infrastructure' * infrastructure: fix(stdiscosrv): slightly increase reannounce times and smoothing fix(stdiscosrv): 500 errors should be accompanied by log entry fix(ursrv): data problems are the clients fault build: sign docker images

  • Jakob Borg(16 Aug 26)

    fix(stdiscosrv): slightly increase reannounce times and smoothing Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(15 Aug 26)

    fix(stdiscosrv): 500 errors should be accompanied by log entry Signed-off-by: Jakob Borg <[email protected]>

  • Jakob Borg(15 Aug 26)

    fix(ursrv): data problems are the clients fault Signed-off-by: Jakob Borg <[email protected]>

Syncthing Security

5.8/10

Repo Security Summary

Updated 24 Aug 26

  • Maintained10/10
  • Code-Review1/10
  • Security-Policy10/10
  • Dangerous-Workflow10/10
  • Token-Permissions0/10
  • Binary-Artifacts10/10
  • CII-Best-Practices5/10
  • License10/10
  • Fuzzing0/10
  • Branch-Protection3/10
  • Signed-Releases8/10
  • SAST0/10
  • Packaging10/10
  • Pinned-Dependencies3/10

Security Advisories (2)

  • mediumPatched

    CVE-2022-46165Cross-site Scripting (XSS) in Web GUI

  • mediumPatched

    CVE-2021-21404Crash due to malformed relay protocol message

Syncthing Website

Website

Syncthing

Redirects

Does not redirect

Security Checks

All 65 security checks passed

Server Details

  • IP Address185.199.108.153
  • Hostnamecdn-185-199-108-153.github.com
  • LocationFrancisco,Indiana,United States of America,NA
  • ISPGitHub Inc.
  • ASNAS54113

Associated Countries

  • DEDE
  • USUS
  • ESES

Safety Score

Website marked as safe

100%

Trackers

No known trackers found

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

Website preview

Syncthing Docker

Container Info

Syncthing

[Syncthing](https://syncthing.net) replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.

#Backup

View on DockerHub

linuxserver/syncthing:latest

Run Command

docker run -d \
  -p 8384:8384/tcp \
  -p 22000:22000/tcp \
  -p 22000:22000/udp \
  -p 21027:21027/udp \
  -e PUID=${PUID} \
  -e PGID=${PGID} \
  -e TZ=${TZ} \
  -v /srv/lsio/syncthing/config:/config \
  -v /srv/lsio/syncthing/data1:/data1 \
  -v /srv/lsio/syncthing/data2:/data2 \
  --restart=unless-stopped \
  linuxserver/syncthing:latest

Compose File

version: 3.8
services:
  syncthing-container:
    image: "linuxserver/syncthing:latest"
    ports:
      - "8384:8384/tcp"
      - "22000:22000/tcp"
      - "22000:22000/udp"
      - "21027:21027/udp"
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Etc/UTC
    volumes:
      - "/srv/lsio/syncthing/config:/config"
      - "/srv/lsio/syncthing/data1:/data1"
      - "/srv/lsio/syncthing/data2:/data2"
    restart: unless-stopped

Environment Variables

  • Var NameDefault
  • PUID1000
  • PGID1000
  • TZEtc/UTC

Port List

  • 8384:8384/tcp
  • 22000:22000/tcp
  • 22000:22000/udp
  • 21027:21027/udp

Volume Mounting

  • Container PathHost Bind
  • /config/srv/lsio/syncthing/config
  • /data1/srv/lsio/syncthing/data1
  • /data2/srv/lsio/syncthing/data2

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.

  • NextCloud

    NextCloud

    nextcloud.com

    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.

  • SeaFile

    SeaFile

    seafile.com

    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

Edit Syncthing Data

You can edit Syncthing's entry in this section of awesome-privacy.yml by submitting a PR to our GitHub repo.
Note that some of the information shown above has been aggregated from external sources, a list of these can be found data documentation.

Origin Data

Modify Data

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!