Syncthing: Open Source Dropbox and BitTorrent Sync Replacement
syncthing.net
syncthing.net
Bittorrent Sync just overwrites files based on last mod time (terrible option). What does this do? Does it support backups? Versioning?
Although sometimes stuff is just gone and they're out of luck. I'm still not entirely sure what happens then, possibly a weird combination of everyone saving their project near closing time, the Internet connection maybe choking up a bit, and people shutting down their computer before everything is properly synced.
Dropbox is pretty good about never losing data. It can be suggested that this is one of the most interesting or valuable parts of its technology. Its practical use of bandwidth is another.
$ DIR
myfile.cfg;2
myfile.cfg;7
myfile.cfg;9
$https://github.com/haiwen/seafile/wiki/Seafile-server-compon...
(Installed it yesterday on a debian LXC)
best part is that it does automatic, granular snapshots of my data - I've stopped using git for things like papers because I know it's backed up in seafile.
Having an open source syncing service with client side encryption is great.
I'll be taking a look at Seafile now, looks promising.
Documents and such I tend to keep in various public or private git repos; habits die hard.
Also, security track combined with the implementation language scare me to the extent of not really willing to expose the whole thing to the Internet. Just being superstitious here.
Also, anyone know how they compare? :)
EDIT: Login Log <- none for the free version?
I mainly mean it has client side encryption, the consequences of that I'd like to leave open since nobody really knows or can predict all possible vulnerabilities of all possible systems. But yes basically: your friend would have a very, very hard time doing anything useful with the data or the incoming packets.
none for the free version?
not sure what you mean, I host the thing myself (serisouly, 5$ a month for a DigitalOcean box: best way ever to spend money:) but the site seems to claim there is 1GB free storage if you try their service?
For now I run seafile inside a private network behind a vpn. But I'd rather find an alternative with a better security story. Something from a team that can justify their cryptographic constructs in detail.
In any case, while I want security in these systems to avoid mass survey style attacks, I assume anything I put over the wire to be compromised at least potentially. I keep the kind of files that need that level of encryption on encrypted flash drives.
That doesn't follow - you can solve the problem without containers, e.g. by encrypting or hashing the filenames.
Containers protect the file sizes, but they lose the ability to selectively sync certain files to certain nodes.
Regarding selective sync : you'll have to organize the files logically into containers. I think even Dropbox doesn't let you sync files selectively, you have to have content separated into folders.
I'm not saying that one is better than other, just giving an example of where de-duping at block level is needed as @lugg asked.
Sure; I was just talking about the file names. You can avoid the hierarchy part by transmitting it separately from the files in a secure way, though.
Regarding selective sync : you'll have to organize the files logically into containers. I think even Dropbox doesn't let you sync files selectively, you have to have content separated into folders.
git-annex does. You can implement rules to decide what files should be synced, which should be dropped locally, etc.
For example, an MP3 player running it might have a rule such as
filename(*.mp3) or filename(*.ogg)
and it'll only sync those files, regardless of their directories.The default MAC algorithm to be applied on the filenames is HMACSHA1. A stronger one, for instance HMACSHA512, one can be chosen upon creation of the special remote with the option mac=HMACSHA512. The available MAC algorithms are HMACSHA1, HMACSHA224, HMACSHA256, HMACSHA384, and HMACSHA512.
I'll have to try using plain git annex from the commandline to try to understand what is going wrong (I already used it to clean some repositories that the assistant was refusing to delete)
PS: I tried it with 2 machines in the same LAN (both linux... though one of the 2 distros had a slightly older version of the git-annex package)
> Ori is a distributed file system built for offline operation and empowers the user with control over synchronization operations and conflict resolution. We provide history through light weight snapshots and allow users to verify the history has not been tampered with. Through the use of replication instances can be resilient and recover damaged data from other nodes.
It seems well thought out, and competitive with many of the other approaches mentioned here. It uses Merkle trees (as does Git) that encompasses the file system structure and full history.
It's only a replacement for a centralized service like Dropbox if you have an always-connected peer (a de facto central server).
This + a hosting provider would be more like an actual Dropbox replacement (e.g. owncloud.org links to a bunch of hosts).
edit: Do people generally still turn off their home computers?
edit2: After thinking about it - what you seem to be describing is an alternative and not just a replacement. I want to replace the service that Dropbox offers with one of my own, I don't want to switch to an alternative Dropbox clone service.
Yeah. My desktop computer eats up a lot of power even when idle. I do want the convenience of never turning it off, but I'd rather be environmentally friendly.
That's kind of the whole point, isn't it? It's clearly meant to be a Dropbox replacement not for everybody, but for those who consider the lack of mandatory cloud storage a feature. So yeah, technically more a replacement for BitTorrent Sync than Dropbox, but not everybody knows about that.
Missing features can be added. Mobile clients by third party devs will surely crop up if/when this thing gets traction. The protocol is open, after all.
Does this support delta/block-level sync for large files (e.g.: does mounting a 100 GB truecrypt container, modifying a file inside the container and unmounting it cause the entire 100 GB container to be uploaded)?
Does it utilize the native OS platform APIs for detecting file modification (e.g. inotify on linux) as opposed to scanning/polling large directories looking for modified date changes?
> Does this support delta/block-level sync for large files
Yes.
> Does it utilize the native OS platform APIs for detecting file modification
It uses polling.
Edit: inotify issue is here: https://github.com/calmh/syncthing/issues/9 (the author seems to want to implement this feature once go has a decent cross-platform file watching library)
Regarding detecting file modifications: my friend had issues with his synology diskstation eating 100% cpu with btsync with around 50k files. With less files it was down to 20%. We never debugged it properly but it may be polling issues, but it could also have been out of ram-swapping issues (512MB ram was not enough).
Others have reported issues with many files:
https://forum.bittorrent.com/topic/23802-syncing-600gb-10-mi...
If so, email me francis@redecentralize.org! (I couldn't see an email or contact form for you on the syncthing site)
Does it work fast for you? Do you use desktop client or primarily web GUI?
My server was a Core i7 with 12GBs of RAM, SSD backing and a more or less dedicated NAS. I tried with both SQLite and MySQL backing. MySQL was better, but still unacceptable. If that's not enough to run it for a single user, I can't imagine what it's like trying to deploy it for a full family, even less an organization.
I love the idea behind owncloud, and I admit touting it myself in my own "honeymoon phase", but in hindsight I have no problem admitting that the execution is just too poor.
It took it about 1h to sync a folder with about 100 files, under 30MB total across 4 computers. Not to mention that minor modifications appeared only after 15 minutes (small text files).
BTSync worked great, but I wouldn't trust it with something sensitive.
What did you end up using?
Long story short, I went from an "all cloud" (Google + Dropbox) setup to a "all mine, no NSA" setup. Now I've decided that counter zealotry doesn't have that much for it, and I'll try to balance privacy with best of breed services, without trying to end up with all my eggs in one basket. Not doing that ensures I keep interop and portability in mind.
My end-result is calendar via Google (only solution I can get collaboration and invites working properly), files via Dropbox, mail with Fastmail (much better than Gmail) and contacts via Baikal on my own hosted server.
Fastmail is adding support for calendering and contacts via CalDAV and CardDAV, but I've yet to fully investigate that.
It's a moving target for me, but currently it's been stable for a few months, and I'm mostly happy.
It was great at first on a single Linux machine, but once I had to support Windows, things became much more complicated. Most of this I attribute to Windows - different filename character restrictions, no usable symlinks, git only kinda-sorta supported through cygwin. Setting up an SSH server under Windows was something I didn't want to do, and HTTP sync was pretty buggy (different hashing schemes between the two computers, for some reason).
If things have gotten better, or someone's written a good tutorial on having an actual decentralized repo shared between Windows and Linux machines, I'd be interested in giving it another go. Also might need to hack up a mobile app.
I haven't dug into Syncthing's protocol yet, but I also like the idea of being able to easily share a single sync'd folder or file with an outside person, but not having to point them at a full repository.
Lets say I install this software on my phone, my desktop, and my work computer. I have 100+ GB free on my work computer and my home desktop, but I only have 16GB on my phone. If I add 20GB worth of movies to my sync folder, its going to fill up my phone.
This phrase does not inspire confidence.
(It also allows you to do full automatic sync, or just automatic upload, etc. And different machines can have different configurations, e.g., RaspPi syncs everything with my VPS, but my Nexus tablet doesn't)
Syncthing looks similar, and LAN sync'ing is a killer feature for those of us in offices with poor bandwidth.
I actually just dropped Dropbox for btsync the other week and are very happy, it's iOS app even serves other clients with files over LAN.
Btsync however uses quite crappy crypto and is closed source etc etc.
Syncthing mentions they use TLS encryption, hopefully i can roll my own 8k keys.
I tried Sparkleshare last year aswell, but my experience was mixed. Also it relies on quite a different architecture (git) than a "versioning bittorrent protocol".
Looking forward to evaluating syncthing when time permits.
I have seen it working.
The last few times I've set up a new machine locally I've used Dropbox to pull over stuff. It usually moves at 40-50 MB/s (megabytes) which is certainly using my gigabit LAN.
If this is accurate, then I guess this is the issue i have noticed.
1: https://superuser.com/questions/663600/set-dropbox-to-only-u...
UPDATE:
Confirmed by [2], that Dropbox LAN sync indeed only works once the file reached their servers.
"Well, when you add a file to your computer's Dropbox, the file is then synced with Dropbox servers. Dropbox will then initiate the syncing process as soon as it determines a change has been made to the file. All linked computers and shared folders will then download any new version of the file. With LAN syncing, Dropbox will look for the new file on your Local Area Network first, bypassing the need to download the file from Dropbox servers, thus speeding up the syncing process considerably."
It is enabled by default and works beautifully.
Upstream developer is very friendly and attentive & seems happy to discuss new features and use cases.
"Here's the alternative I use"
"Important question about the technology"
"Pertinent question about the article"But seriously, it seems promising.
https://github.com/calmh/syncthing/issues/9
https://code.google.com/p/go/issues/detail?id=4068
https://docs.google.com/document/d/1-GQrFdDVrA57-ce0kbzSth4l...!
I deal with a constant stream of these and want to have a distributed network - connected via the inet - that allows me to sync the drives in all locations.
i.e. I would like to setup a server in my home office, one in my co-founder's home office and another in my editor's home office.
Whenever my editor runs off a few hundred GB of data to a specific folder or to their drive, I would love for that to be auto-synced to both my server and that of my co-founder.
Will Syncthing allow me to do this easily and will it be appropriate for an application like that?
[0] https://github.com/calmh/syncthing/blob/master/protocol/PROT...
The linked website is aimed at end-users.
Try the protocol docs: https://github.com/calmh/syncthing/blob/master/protocol/PROT...
https://raymii.org/s/articles/Set_up_your_own_truly_secure_e...
"Then all current commercial services drop off, including SpiderOak, Bittorrent Sync and git-annex. This resulted in a clever combination of EncFS and dvcs-autosync. Because, in this day and age, you cannot trust any "cloud" provider with your unencrypted data."
[0]: http://jack.minardi.org/software/syncnet-a-decentralized-web...
http://www.code42.com/crashplan/
It's free for peer-to-peer backup and is designed to do exactly what you want.
ssh -L8080:localhost:8080 mywebserver.comIf you don't have a web browser, it won't open it. If you don't want it to open a web browser, you can configure that.
Syncany can work with any backend (like AWS S3) and is encrypted.
It is more of a dropbox replacement while sycnthing is a btsync replacement.
Anyone know how it compares?
I couldn't understand quite advantages and why would I replace BTSync, which BTW, works really well already and does all this nice things. Plus works on my Phone and Ipad and Nexus.
To clarify one thing, I have home server which obviously hosts BTSync repos with ample space. Ability to fine-grained share parts of it is invaluable.
My small business is looking for a combined file collaboration / file backup service that doesn't cost an excessive amount of money (we're a non-profit on a budget). Is there a good service for this? For example, Dropbox is mainly for sharing files, whereas Carbonite is mostly for backing up your computer. Is there a solution for both?
I use BTSync and to avoid the problem i just upload the files to my server and display them under a subdomain. http://pub.volpe.pw/pub/fox_gl.jpg
BtSync also offers a phone client, so to mimc the way Dropbox uploads pictures to dropbox was rather simple. I backed up a gallery on my phone and synced it to my server and symlinked it under the pub dir, as BTSync dosn't follow symlinks.
I am curious, though: what do people use to get their files remotely? And what's the cheapest solution for hosting your own central server? Would a simple AWS instance work fine?
I'd also take a look at digitalocean for a VPS.
This is mostly a problem for people like me who use both Android and iOS devices so alternatives need to support both platforms.
I use Dropbox pretty frequently to share stuff between mobile devices and desktops. If Syncthing can't do that it isn't as useful.
- Combine devices and cloud services into a single interface. - Transfer data between computers, smartphones, tablets and clouds. - Manage and use data directly on the device or cloud it is stored.