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/results/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
14 Sept 24
Latest version
Primary Language
Go
Size
121,548 KB
Stars
63,786
Forks
4,219
Watchers
63,786
Language Usage
Star History
Top Contributors
- @calmh (4214)
- @AudriusButkevicius (987)
- @imsodin (866)
- @st-release (133)
- @jesselucas (112)
- @tomasz1986 (111)
- @greatroar (87)
- @acolomb (80)
- @Zillode (58)
- @dependabot-preview[bot] (33)
- @uok (29)
- @dependabot[bot] (28)
- @lkwg82 (28)
- @norgeous (26)
- @andersonvom (21)
- @bt90 (21)
- @canton7 (18)
- @deepsource-autofix[bot] (14)
- @alex2108 (13)
- @aviau (12)
- @nekr0z (11)
- @wweich (11)
- @cqcallaw (10)
- @plouj (10)
- @KayoticSully (10)
- @er-pa (9)
- @filoozom (9)
- @ralder (9)
- @nrm21 (9)
- @emlun (8)
Recent Commits
- Jakob Borg (13 Sept 24)
Merge branch 'infrastructure' * infrastructure: chore(stdiscosrv): hide internal/undocumented flags chore(stdiscosrv): remove legacy replication chore(stdiscosrv): clean up s3 handling chore(stdiscosrv): less garbage in statistics chore(stdiscosrv): improve expire, logging chore(stdiscosrv): sched in loop chore(stdiscosrv): database writing logging chore(stdiscosrv): use order-preserving expire chore(stdiscosrv): simplify sorting chore(stdiscosrv): reduce allocations in cert handling chore(stdiscosrv): reduce unnecessary allocations in merge feat(stdiscosrv): enable HTTP profiler feat(discosrv): in-memory storage with S3 backing feat(stdiscosrv): make compression optional (and faster)
- Jakob Borg (13 Sept 24)
chore(stdiscosrv): hide internal/undocumented flags
- Jakob Borg (11 Sept 24)
chore(stdiscosrv): remove legacy replication
- Jakob Borg (11 Sept 24)
chore(stdiscosrv): clean up s3 handling
- Jakob Borg (11 Sept 24)
chore(stdiscosrv): less garbage in statistics
- Jakob Borg (11 Sept 24)
chore(stdiscosrv): improve expire, logging
- Jakob Borg (10 Sept 24)
chore(stdiscosrv): sched in loop
- Jakob Borg (10 Sept 24)
chore(stdiscosrv): database writing logging
- Jakob Borg (10 Sept 24)
chore(stdiscosrv): use order-preserving expire
- Jakob Borg (10 Sept 24)
chore(stdiscosrv): simplify sorting
- Jakob Borg (09 Sept 24)
chore(stdiscosrv): reduce allocations in cert handling
- Jakob Borg (08 Sept 24)
chore(stdiscosrv): reduce unnecessary allocations in merge
- Jakob Borg (07 Sept 24)
feat(stdiscosrv): enable HTTP profiler
- Jakob Borg (06 Sept 24)
feat(discosrv): in-memory storage with S3 backing
- Jakob Borg (08 Sept 24)
feat(stdiscosrv): make compression optional (and faster)
- Simon Frei (12 Sept 24)
chore(fs): only cache the cache for case FS, not the entire FS (#9701) This would have addressed a recent issue that arose when re-ordering our "filesystem layers". Specifically moving the caseFilesystem to the outermost layer. The previous cache included the filesystem, and as such all the layers below. This isn't desirable (to put it mildly), as you can create different variants of filesystems with different layers for the same path and options. Concretely this did happen with the mtime layer, which isn't always present. A test for the mtime related breakage was added in #9687, and I intend to redo the caseFilesystem reordering after this. Ref: #9677 Followup to: #9687
- Jakob Borg (11 Sept 24)
build: add generating compat.json (#9700) This is to add the generation of `compat.json` as a release artifact. It describes the runtime requirements of the release in question. The next step is to have the upgrade server use this information to filter releases provided to clients. This is per the discussion in #9656 --------- Co-authored-by: Ross Smith II <[email protected]>
- Jakob Borg (11 Sept 24)
chore(discovery,upgrade): use regular TLS certificate verification (#9673) This changes the two remaining instances where we use insecure HTTPS to use standard HTTPS certificate verification. When we introduced these things, almost a decade ago, HTTPS certificates were expensive and annoying to get, much of the web was still HTTP, and many devices seemed to not have up-to-date CA bundles. Nowadays _all_ of the web is HTTPS and I'm skeptical that any device can work well without understanding LetsEncrypt certificates in particular. Our current discovery servers use hardcoded certificates which has several issues: - Not great for security if it leaks as there is no way to rotate it - Not great for infrastructure flexibility as we can't use many load balancer or TLS termination services - The certificate is a very oddball ECDSA-SHA384 type certificate which has higher CPU cost than a more regular certificate, which has real effects on our infrastructure Using normal TLS certificates here improves these things. I expect there will be some very few devices out there for which this doesn't work. For the foreseeable future they can simply change the config to use the old URLs and parameters -- it'll be years before we can retire those entirely. For the upgrade client this simply seems like better hygiene. While our releases are signed anyway, protecting the metadata exchange is _better_ and, again, I doubt many clients will fail this today.
- Simon Frei (10 Sept 24)
lib/fs: Add test reproducing missing mtimefs issue (ref #9677) (#9687) The test is quite odd and specific, but it does reproduce the issue that caused #9677, so I'd propose to add it to have a simple regression test for the basic scenario. Also the option to the fakefs might come handy for other scenarios where you want to quickly test some behaviour on a filesystem without nanosecond precision, without actually needing access to one.
- Syncthing Release Automation (09 Sept 24)
gui, man, authors: Update docs, translations, and contributors
- tomasz1986 (08 Sept 24)
gui: Actually filter scope ID out of IPv6 address when using Remote GUI (ref #8084) (#9688) gui: Actually filter scope ID out of IPv6 address when using Remote GUI (ref #8084) The current code does not work, because it uses a string in the replace() method instead of regex. Thus, change it to a proper regex. Signed-off-by: Tomasz Wilczyński <[email protected]>
- Jakob Borg (06 Sept 24)
Merge branch 'release' * release: Revert "lib/fs: Put the caseFS as the outermost layer (#9648)"
- Jakob Borg (06 Sept 24)
Revert "lib/fs: Put the caseFS as the outermost layer (#9648)" This reverts commit 7517d18fbbf34b42aa3d4b231018d2ee704a159d. Fixes #9677
- André Colomb (02 Sept 24)
lib/api: Correct ordering of Accept-Language codes by weight (fixes #9670) (#9671) The preference for languages in the Accept-Language header field should not be deduced from the listed order, but from the passed "quality values", according to the HTTP specification: https://httpwg.org/specs/rfc9110.html#field.accept-language This implements the parsing of q=values and ordering within the API backend, to not complicate things further in the GUI code. Entries with invalid (unparseable) quality values are discarded completely. * gui: Fix API endpoint in comment.
- Syncthing Release Automation (02 Sept 24)
gui, man, authors: Update docs, translations, and contributors
- tomasz1986 (31 Aug 24)
gui: Fix incorrect UI language auto detection (fixes #9668) (#9669) gui: Fix incorrect UI language auto detection (fixes #9668) Currently, the code only checks whether the detected language partially matches one of the available languages. This means that if the detected language is "fi" but among the available languages there is only "fil" and no "fi", then it will match "fi" with "fil", even though the two are completely different languages. With this change, the matching is only done when there is a hyphen in the language code, e.g. "en" will match with "en-US". Signed-off-by: Tomasz Wilczyński <[email protected]>
- Jakob Borg (30 Aug 24)
Merge branch 'release' * release: lib/upgrade: Send OS version header to upgrade server (#9663)
- Jakob Borg (28 Aug 24)
lib/model, lib/protocol: Index sending/receiving debugging (#9657) This adds guardrails to the index sending and receiving, to verify that what we thinks is happening is what actually happens.
- Jakob Borg (28 Aug 24)
lib/upgrade: Send OS version header to upgrade server (#9663) This adds a header with the operating system version, verbatim in whatever format the operating system reports it, to the upgrade check. The intention is that the upgrade server can use this information to filter out (or maybe just mark) potentially unsupported upgrades.
- Jakob Borg (28 Aug 24)
lib/upgrade: Send OS version header to upgrade server (#9663) This adds a header with the operating system version, verbatim in whatever format the operating system reports it, to the upgrade check. The intention is that the upgrade server can use this information to filter out (or maybe just mark) potentially unsupported upgrades.
Syncthing Website
Website
Syncthing
Redirects
Does not redirect
Security Checks
All 66 security checks passed
Server Details
- IP Address 185.199.109.153
- Hostname cdn-185-199-109-153.github.com
- Location California, Pennsylvania, United States of America, NA
- ISP GitHub Inc.
- ASN AS54113
Associated Countries
- US
- NL
Saftey Score
Website marked as safe
100%
Blacklist Check
syncthing.net was found on 0 blacklists
- ThreatLog
- OpenPhish
- PhishTank
- Phishing.Database
- PhishStats
- URLhaus
- RPiList Not Serious
- AntiSocial Blacklist
- PhishFeed
- NABP Not Recommended Sites
- Spam404
- CRDF
- Artists Against 419
- CERT Polska
- PetScams
- Suspicious Hosting IP
- Phishunt
- CoinBlockerLists
- MetaMask EthPhishing
- EtherScamDB
- EtherAddressLookup
- ViriBack C2 Tracker
- Bambenek Consulting
- Badbitcoin
- SecureReload Phishing List
- Fake Website Buster
- TweetFeed
- CryptoScamDB
- StopGunScams
- ThreatFox
- PhishFort
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.
DockerHub Metrics
- Pull Count 203,893,232
- Stars 567
- Date Created 14 Oct 15
- Last Updated 7 days ago
View on DockerHub
linuxserver/syncthingRun 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 undefined:/sync \ --restart=unless-stopped \ linuxserver/syncthing:latest
Compose File
version: 3.8 services: syncthing: 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 - undefined:/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
Permissions
- read ✅ Yes
- write ✅ Yes
- admin ✅ Yes
Syncthing Reviews
More Backup and Sync
-
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.
-
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.
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/productivity/backup-and-sync/syncthing
The REST API is free, no-auth and CORS-enabled. To learn more, view the Swagger Docs or read the API Usage Guide.
About the Data
Beyond the user-submitted YAML you see above, we also augment each listing with additional data dynamically fetched from several sources. To learn more about where the rest of data included in this page comes from, and how it is computed, see the About the Data section of our About page.
Share Syncthing
Help your friends compare Backup and Sync, and pick privacy-respecting software and services.
Share Syncthing and Awesome Privacy with your network!