Syncthing

syncthing.net
Syncthing Icon

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/

License

MPL-2.0

Created

26 Nov 13

Last Updated

30 Nov 24

Latest version

v1.28.1-rc.2

Primary Language

Go

Size

121,911 KB

Stars

65,880

Forks

4,321

Watchers

65,880

Language Usage

Language Usage

Star History

Star History

Recent Commits

  • Jakob Borg (28 Nov 24)

    fix(model): create fileset under lock (#9840) I came accross this in another context and didn't investigate fully, but literally ten lines above this code, in another method, we say that filesets _must_ be created under the lock. It's either one or the other and I'm taking the safer route here. --------- Co-authored-by: Simon Frei <[email protected]>

  • Jakob Borg (25 Nov 24)

    build(deps): update dependencies (#9833)

  • Jakob Borg (24 Nov 24)

    build: automatically update APT repository on release This uses https://github.com/kastelo/ezapt to generate and sign the archive, and uploads it to blob storage.

  • Jakob Borg (18 Nov 24)

    fix(protocol): allow encrypted-to-encrypted connections again Encrypted-to-encrypted connections (i.e., ones where both sides set a password) used to work but were broken in the 1.28.0 release. The culprit is the 5342bec1b refactor which slightly changed how the request was constructed, resulting in a bad block hash field. Co-authored-by: Simon Frei <[email protected]>

  • André Colomb (19 Nov 24)

    fix(config): respect GUI address override in fresh default config (fixes #9783) (#9675) ### Purpose When generating a new `config.xml` file with default options, the GUI address is populated with a hard-coded default value of `127.0.0.1:8384`, except for a random free port if that default one is occupied. This is independent from the GUI configuration default address defined in the protobuf description. More importantly, it ignores any `STGUIADDRESS` override given via environment variable or command-line option, thus probing for the default port instead of the one specified via override. The `ProbeFreePorts()` function now respects the override, by reading the `GUIConfiguration.Address()` method instead of using hard-coded defaults. When not calling `ProbeFreePorts()`, the override should still be persisted rather than the default address. This happens only when generating a fresh default `config.xml`, never on an existing one.

  • Jakob Borg (19 Nov 24)

    style: gofumpt all the things (#9829) Literally `gofumpt -w .` from the top level dir. Guaranteed to be minor style changes only and nothing else. @imsodin per request?

  • Syncthing Release Automation (18 Nov 24)

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

  • Jakob Borg (16 Nov 24)

    chore(api): add block and goroutine profiles to support bundle (#9824)

  • Jakob Borg (14 Nov 24)

    fix(model): don't panic in index consistency print (fixes #9821) (#9823) We try to compare to the last fileinfo, but apparently we can end up here with an empty file list and crash on out of index.

  • Jakob Borg (12 Nov 24)

    chore: update policy to allow approvals by contributors (#9818) This adds `allow_contributor: true` which allows approvals by contributors to the PR (but still not the author themself, which is a different thing). This allows things like pushing minor fixups while also approving. The `ignore_update_merges: true` option makes it so that someone is not considered a "contributor" just because they push the merge button to update the branch. In principle this is not needed given the above, but I like it for clarity.

  • Tobias Frölich (12 Nov 24)

    fix(gui): expand tildes for subdir check (fixes #9400) (#9788) ### Purpose This closes #9400 by always expanding tildes when parent/subdir checks are done. ### Testing I tested this by creating folders with paths to parent or subdirectories of the default folder that include a tilde in their path as shown in the attached screenshots. With this change, overlap will be detected regardless of wether or not tildes are used in other folder paths. ### Screenshots Default Folder: ![2024-10-26-At-08h40m33s](https://github.com/user-attachments/assets/07df090c-4481-41ec-b741-d2785fc848d5) Newly created folder (parent directory in this case) ![2024-10-26-At-08h40m13s](https://github.com/user-attachments/assets/636fa1fd-41dc-44d9-ac90-0a4937c9921c) --------- Signed-off-by: tobifroe <[email protected]>

  • Hireworks (12 Nov 24)

    fix(model): check if remote folder state before pulling files (fixes #9686) (#9732) ### Purpose As discussed in #9686 Syncthing currently does not check folderstate on remote device before pulling. If no devices have a valid folderstate (i.e all devices have the folder paused) it will still attempt to pull. On large folders this will cause a hanging "Syncing" status. This checks whether at least one connected device has the file available and has a valid folderstate. ### Testing Tested locally on multiple devices. We're new to Go (all our stuff is Python) so please bear with! Interested if there may be a better place to slot this in. Thanks, Jon --------- Co-authored-by: Simon Frei <[email protected]>

  • Syncthing Release Automation (11 Nov 24)

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

  • tomasz1986 (07 Nov 24)

    chore(gui): group logout/restart/shutdown buttons together in Actions menu (#9801) Currently, the "Restart" and "Shutdown" buttons are displayed in the middle of the Actions menu. On the other hand, the "Log Out" button is displayed at the very bottom. However, in other cases, e.g. the menus in operating systems like Windows or macOS, these kind of buttons are usually grouped together. Therefore, move the "Restart" and "Shutdown" buttons down, so that they are listed together with the "Log Out" button. Also, change the order, so that it goes from the least impactful ("Log Out") to the most impactful ("Shutdown"). Signed-off-by: Tomasz Wilczyński <[email protected]> ### Screenshots #### Before ![image](https://github.com/user-attachments/assets/a51438ef-bb6f-4535-a972-8c1bc1dffa02) #### After ![image](https://github.com/user-attachments/assets/535762d6-6f26-44ab-a402-db87bdcbfb36) Signed-off-by: Tomasz Wilczyński <[email protected]>

  • Syncthing Release Automation (04 Nov 24)

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

  • Syncthing Release Automation (28 Oct 24)

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

  • Ross Smith II (27 Oct 24)

    fix(fs): fix directory junction handling (fixes #9775) (#9786) ### Purpose This fixes #9775. I also improved the comments as they were lacking. My apologies for introducing this bug. In summary, the bug was ``` mode = mode ^ (ModeSymlink | ModeIrregular) ``` didn't correctly reset those bits. This correctly resets them: ``` mode = mode &^ ModeSymlink &^ ModeIrregular ``` Tested and working in Windows 11 version 10.0.22631.4317. I didn't test in other versions, but I'm sure this is the only issue.

  • Kapil Sareen (26 Oct 24)

    fix(model): don't sync symbolic links on Android (fixes #9725) (#9782)

  • Simon Frei (25 Oct 24)

    chore(nat, upnp): Make failure logging less reptitive (ref #9324) (#9785) Currently we log on every single one of 10 retries deep in the upnp stack. However we also return the failure as an error, which is bubbled up a while until it's logged at debug level. Switch that around, such that the repeat logging happens at debug level but the top-level happens at info. There's some chance that this will newly log errors from nat-pmp that were previously hidden in debug level - I hope those are useful and not too numerous. Also potentially this can even close #9324, my (very limited) understanding of the reports/discussion there is that there's likely no problem with syncthing beyond the excessive logging, it's some weird router behaviour.

  • Simon Frei (25 Oct 24)

    fix(gui): apply small screen CSS changes earlier (fixes #9590) (#9756) These CSS overrides address issues that are already present on wider screens, so apply it there. Some experiments show we might even want to up the limit more, but I am chicken and lazy, so I propose to use the existing 470px media block. Supersedes another PR after not getting any reaction to feedback there: https://github.com/syncthing/syncthing/pull/9591#issuecomment-2212586134 Co-authored-by: Jakob Borg <[email protected]>

  • André Colomb (25 Oct 24)

    fix(gui): hide lists with [object Object] in advanced settings (#9743) As discussed in https://github.com/syncthing/syncthing/pull/9175#discussion_r1730431703, entries in advanced settings are unusable if they are comprised of a list of objects. It just displays `[object Object], [object Object], [object Object]`, e.g. for the devices a folder is shared with. Filter out these config elements by detecting an array whose members are not all strings or numbers, and setting them to `skip` type. Fix some unnecessary repetition in calling `inputTypeFor()`, since it is already cached in the `ng-init` directive.

  • Terrance (22 Oct 24)

    fix(gui): add dark scheme styles for disabled checkboxes (fixes #9776) (#9777) ### Purpose Fixes #9776 by tweaking the text/background colours of disabled checkbox panels when dark mode is enabled. It was [noted on that issue](https://github.com/syncthing/syncthing/issues/9776#issuecomment-2424828520) that there's a bigger issue around the correctness of using the `disabled` attribute on a `<div>` in the first place, but this PR does not attempt to change that. ### Testing I've hooked up the GUI files against a release build as suggested below. ### Screenshots Using the dark theme, or the default theme with a system dark scheme: ![image](https://github.com/user-attachments/assets/3c6bfa77-cc7a-4f3e-a5c2-83daf54dcc34) Using the black theme: ![image](https://github.com/user-attachments/assets/768db657-aa52-4db0-8455-5194a00fc143) These borrow the colours from dark theme text inputs and black theme tabs for a consistent look (initially I tried the text colour of disabled text inputs, but that produced some poor contrast).

  • Syncthing Release Automation (21 Oct 24)

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

  • Jakob Borg (17 Oct 24)

    build(deps): update dependencies (#9773)

  • Syncthing Release Automation (14 Oct 24)

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

  • Syncthing Release Automation (07 Oct 24)

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

  • André Colomb (05 Oct 24)

    fix(gui): improve device ID readability in black and dark themes (fixes #9757) (#9758)

  • Jakob Borg (04 Oct 24)

    chore(db): process "unchanged" files anyway (#9755) Skipping these makes the sequence numbering inconcistent; we've received a file and suppsedly added it to the database, but if you check the sequence number afterwards it didn't increase, i.e., we trigger [this failure condition](https://github.com/syncthing/syncthing/blob/47f48faed7331b7ba4ad3d6775d5cffacf8931b5/lib/model/indexhandler.go#L447-L459) and, similarly, a future update will look like there was a hole in the numbering. I propose to at least temporarily remove this optimisation in order for things to make more sense. Is there a reason to keep this beyond saving some database operations?

  • Jakob Borg (02 Oct 24)

    fix(upgrades): avoid clobbering cache when filtering (#9752) The slice is shared, can't overwrite elements of it. (Upgrade server only thing.)

  • Jakob Borg (02 Oct 24)

    build(deps): update dependencies (#9751)

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.

#Backup#Cloud#Other#Tools

DockerHub Metrics

  • Pull Count 203,893,232
  • Stars 567
  • Date Created 14 Oct 15
  • Last Updated 2 months ago

View on DockerHub

linuxserver/syncthing

Run 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

  • SeaFile Icon

    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.

  • NextCloud Icon

    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.

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!

View Backup and Sync (3)