Showing posts with label syncthing. Show all posts
Showing posts with label syncthing. Show all posts

Thursday, October 22, 2015

Syncthing 0.11.0 Released With Performance Improvements, Proper Conflict Detection

Syncthing is a cross-platform peer-to-peer file synchronization client/server application written in Go. The tool is similar to BitTorrent Sync (but it's open source as opposed to BT Sync), and it's used to synchronize files between computers. More about Syncthing, HERE.

Syncthing WebUI

Syncthing 0.11.0 was released today and it includes significant performance improvements as well as various other changes such as:
  • versioning now uses version vectors instead of plain integers which means Syncthing has proper conflict detection now (in case of a conflict, the file is renamed from file.ext to file.sync-conflict-YYYMMDD-HHMMSS.ext);
  • the GUI has been changed from polling for updates to listening for periodic status updates from the server side, which should reduce the CPU usage;
  • the garbage collection threshold has been changed from 25% to 100% (the Go default) which reduces CPU usage and increases sync speed for large files (but uses more RAM - to decrease RAM usage, but with a performance hit, you can run Syncthing like this: "GOGC=25 syncthing");
  • The database commit process has changed slightly to better accommodate handling lots of small files and the result of this is a faster sync with lower CPU usage;
  • scanning of many large files is now more efficient;
  • user interface improvements, language can be selected from the Web UI, process uptime is now visible in the Web UI, etc.;

The complete Syncthing 0.11.0 release notes can be found HERE.

Important: the latest Syncthing 0.11 is not compatible with older 0.10.x versions. Also, if you're running an older Syncthing version, it won't update to the latest 0.11 version automatically - to update to v0.11, you'll either have to press the update button in the Web UI or run "syncthing -upgrade" from the command line.

When upgrading to Syncthing 0.11.0, the app will rehash all the files the first time it starts. That's because the database format has changed with the latest release. The old database will be removed two weeks after it was last written so if for whatever reason you want to downgrade, you'll have two weeks to do so.

To support these changes, Syncthing GTK 0.7 was released (and is already available in our PPA) today and besides Syncthing v0.11 support, this release brings the ability to download recent daemon version if the current version is no longer supported, as well as reduced CPU usage thanks to the new Syncthing API.

Syncthing GTK

For those not familiar with Syncthing GTK, this is an unofficial GTK3 & Python GUI for Syncthing which adds extra features like an Ubuntu AppIndicator / tray icon for Syncthing, running the Syncthing daemon in the background, filesystem watching and instant sync using inotify, file manager integration (Nautilus, Nemo and Caja are supported for now), speed throttling, can automatically install and update Syncthing and more.


Download Syncthing


Download Syncthing (binaries for Linux, Windows, Mac OS X FreeBSD, Solaris etc. and source files available)

You can also find packages for various Linux distributions HERE.

Alternatively, you can use Syncthing GTK to install and keep Syncthing up to date.
Read more »

Sunday, October 18, 2015

Official Syncthing Debian / Ubuntu Repository Released


Quick update for Syncthing users: an official Syncthing Ubuntu / Debian repository was released recently and it provides builds for amd64, i386 and arm.

Syncthing is a cross-platform peer-to-peer file synchronization client/server application written in Go. The tool is similar to BitTorrent Sync (but it's open source as opposed to BT Sync), and it's used to synchronize files between computers.

The app comes with an option to update the binary to the latest version however, there are new Syncthing releases every few days so using a repository to automatically update the app is a must if you're a regular Syncthing user (there's also an alternative: Syncthing GTK, which automatically updates the Syncthing binary).

The packages from the new official Syncthing Ubuntu / Debian repository are slightly experimental for now, as this repo was just released, but they should work on any recent Ubuntu and Debian version. Right now, the packages only provide the main binary and some README files, without any startup scripts, etc. but this may change.

In the future, this repository might also be used to host various third-party Syncthing packages, such as Syncthing GTK (right now, this can be installed from the min failsdownloads PPA).


Install Syncthing in Ubuntu / Linux Mint / Debian using its official repository


To add the official Syncthing (release) repository in Ubuntu, Linux Mint or Debian (and derivatives), use the following commands:
sudo apt-get install curl
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb http://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing-release.list
sudo apt-get update
sudo apt-get install syncthing
Read more »

Thursday, October 15, 2015

Install Syncthing In Ubuntu Or Linux Mint Via PPA

Syncthing

Syncthing is a cross-platform peer-to-peer file synchronization client/server application written in Go. Similar to BitTorrent Sync, the tool can be used to synchronize files between computers however, unlike BitTorrent Sync, Syncthing is open source.

The tool comes with an option to update the binary to the latest version however, since we covered Syncthing back in June (check out that article for more information on Syncthing) there were almost 40 new versions released so using a PPA to automatically update the app is a must if you're a regular Syncthing user.

There's no official Syncthing PPA however, Niklas Sombert has created a unofficial PPA for Syncthing, so you can easily install / update the tool in Ubuntu 14.04 and 14.10. Note that unfortunately, Launchpad PPAs don't support ARM by default so this PPA won't work on ARM devices / Raspberry Pi.


Install Syncthing in Ubuntu 14.04/14.10 or Linux Mint 17/17.1 via PPA


To add Niklas Sombert's PPA and install Syncthing in Ubuntu 14.04/14.10 or Linux Mint 17/17.1 via PPA, use the following commands:
sudo add-apt-repository ppa:ytvwld/syncthing
sudo apt-get update
sudo apt-get install syncthing

If you're looking for a GUI, check out: Syncthing GTK: GTK3 & Python GUI For Syncthing [Ubuntu PPA]
Read more »

Tuesday, October 6, 2015

Syncthing: Open Source BitTorrent Sync Alternative (P2P Sync Tool)

Syncthing is a cross-platform peer-to-peer file synchronization client/server application written in Go. Similar to BitTorrent Sync, the tool can be used to synchronize files between computers however, unlike BitTorrent Sync, Syncthing is open source:

"Syncthing replaces Dropbox and BitTorrent Sync 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".

"Using Syncthing, that control is returned to you".

Syncthing
Syncthing Web GUI

And it's not just Syncthing that's open source. The P2P protocol used by Syncthing, called "Block Exchange Protocol", is open too. Read more about BEP HERE.

Unlike cloud sync tools such as Dropbox, Syncthing transfers the files directly between nodes (other computers on which you've installed Syncthing) which has several advantages: the files don't end up on some cloud server, the transfer speed doesn't depend on third-party servers and also, there are no space restrictions (except, obviously, the HDD space available for those nodes).

Main Syncthing features:
  • synchronize as many folders as you need with different people
  • responsive web GUI;
  • cross-platform: Syncthing works on Linux, Mac OS X, Windows, FreeBSD and Solaris. There's also an unofficial Android port;
  • Syncthing doesn't require advanced configuration and it should work out of the box, both over LAN and over the Internet;
  • secure & private:
    • the data is only stored on your computers, without using a central server;
    • all communication is secured using TLS;
    • every node is identified by a strong cryptographic certificate and only nodes you have explicitly allowed can connect to your cluster;
  • open source app, open protocol.

It's also important to mention that with Syncthing, you can select which nodes you want to share a repository with. So for instance, you can create multiple repositories and enable/disable sharing with some existing nodes on the fly:

Syncthing

Also, Syncthing comes with an option called master repository which, if enabled, protects the files from changes made on other nodes, but the changes made on the current node will be sent to the rest of the cluster.

Note that Syncthing is under constant development and new / improved features are added frequently. For instance, the current release includes a simple file versioning feature but in the future a more advanced file versioning should be added.

Here are a few more Syncthing (web GUI) screenshots:

Syncthing

Syncthing

Syncthing

I've been following the Syncthing development for quite some time (thanks to Alan Pope's tip), but the tool didn't work for me until now - apparently the local discovery was too fragile until recently -, and I don't like writing about stuff that doesn't work in my tests. That's why I didn't post about it until today.


Download Syncthing


Download Syncthing:
  • Download Syncthing - binaries available for Linux (32bit, 64bit, ARMv5, ARMv6 - so it works on Raspberry Pi, ARMv7), Mac and Windows as well as source code
  • Syncthing is also (unofficial port) available for Android
  • Arch Linux: install Syncthing from the community repository or the latest Git via: latest release | AUR

To run Syncthing on a Linux machine, simply download the archive, extract it and double click the "syncthing" executable from the extracted folder (or run it with "./syncthing" from the extracted folder). Once launched, a new tab should open in your default web browser with the Syncthing web GUI.

To use Syncthing with Syncthing GTK, make sure the "syncthing" binary is in your $PATH. You can do this by simply copying the syncthing binary to /usr/local/bin/ .e.g, by using the following command (assuming you've extracted syncthing in your home folder):
sudo install ~/syncthing*/syncthing /usr/local/bin/

You'll want to add some nodes - for how to do that, see the Syncthing getting started guide. You may also want to check out its documentation.

Report any issues you find @ GitHub.
Read more »

Syncthing GTK 0.6 Released With Nautilus, Nemo And Caja Integration

Syncthing GTK 0.6 was released recently, bringing Nautilus, Nemo and Caja integration.

Syncthing GTK is a GTK3 & Python GUI for Syncthing, which includes a tray icon / Ubuntu AppIndicator. The app adds extra features on top of Syncthing, like filesystem watching and instant synchronization using inotify, system notifications for file updates and Syncthing errors, an auto-updater for the Syncthing daemon binary, speed throttling options and more.

Syncthing GTK 0.6

In case you're not familiar with Syncthing, this is a cross-platform peer-to-peer file synchronization client/server application written in Go, similar to BitTorrent Sync. It can be used to synchronize files between computers however, unlike BitTorrent Sync, Syncthing is open source. More info in our Syncthing article.

The latest Syncthing GTK 0.6 adds support for Identicons, bug fixes, as well as a much requested feature: file manager integration and for now, this supports Nautilus, Nemo and Caja. This includes emblems (for states like syncing/online/offline/error) and a context menu option to synchronize or stop synchronizing a folder with Syncthing:

Nautilus with Syncthing integration - emblems

Nemo with Syncthing integration - context menu

To enable this option (firstly install Syncthing GTK, obviously - see below) you must install the python bindings for the file manager you want to use:

- Nautilus:
sudo apt-get install python-nautilus gir1.2-nautilus-3.0
- Nemo:
sudo apt-get install python-nemo gir1.2-nemo-3.0
- Caja:
sudo apt-get install python-caja gir1.2-caja

Note: for Nemo, if the Syncthing integration doesn't work, use THIS (step 4 only) fix to get this to work.

Then, from the Syncthing GTK "UI Settings", on the "Integration" tab, select your file manager:


And finally, restart the file manger:

- Nautilus:
nautilus -q
- Nemo:
nemo -q
- Caja:
caja -q


Install Syncthing GTK


Syncthing GTK is available in the main failsdownloads PPA, for Ubuntu 15.04, 14.10 and 14.04 as well as Linux Mint 17.1 and 17. To add the PPA and install it, use the following commands:
sudo add-apt-repository ppa:nilarimogard/failsdownloads
sudo apt-get update
sudo apt-get install syncthing-gtk
Or, if you don't want to add the PPA, grab the Syncthing GTK deb from HERE.

Unfortunately, Syncthing GTK doesn't work properly under Ubuntu 12.04, that's why our PPA doesn't provide packages for this Ubuntu version.

Arch Linux users can install Syncthing GTK via the Community repo or the latest Git via AUR.

For Fedora and openSUSE, you can use the official Syncthing GTK OpenSUSE Build Service repository.

To download the Syncthing GTK source code, download Windows binaries, bug reports and so on, visit the Syncthing GTK GitHub page.
Read more »

Syncthing GTK: GTK3 & Python GUI For Syncthing [Ubuntu PPA]

Syncthing is a cross-platform peer-to-peer file synchronization client/server application written in Go, similar to BitTorrent Sync. It can be used to synchronize files between computers however, unlike BitTorrent Sync, Syncthing is open source. 

For more information about Syncthing, see our previous article: Syncthing: Open Source BitTorrent Sync Alternative (P2P Sync Tool).

Syncthing GUI
Syncthing GTK under GNOME Shell

Syncthing GTK is a GTK3 & Python GUI for Syncthing (which comes with a web GUI only by default). The tool supports basically all Syncthing features:
  • Everything what the Syncthing WebUI can display;
  • Adding / editing / deleting nodes;
  • Adding / editing / deleting repositories;
  • Restart / shutdown server;
  • Editing daemon settings

There are also some extra features provided by Syncthing GTK, such as running the Syncthing daemon in the background, option to display Node ID and QR code not only for local, but for remote nodes as well,  or half-automatic setup for new nodes and repositories, which should work as a work-around for the "remote node shares repo with local node, but local node doesn't share it back" error.

Update October 8, 2014: Syncthing GTK now supports filesystem watching and instant synchronization using inotify.

Update October 13, 2014: Syncthing GTK now ships with yet another new feature: desktop notifications for file updates and Syncthing errors.

Update December 2, 2014: quite a few new features were added: an option to update the Syncthing daemon automatically, first run wizard, stop/resume sync, speed throttling and HTTPS support on Linux.

Update February 3, 2015: Syncthing GTK now ships with file manager integration for Nautilus, Nemo and Caja.

Also, Syncthing GTK features a tray icon / Ubuntu AppIndicator:

Syncthing GUI Unity


Install Syncthing GTK in Ubuntu 14.04, 14.10 or 15.04 / Linux Mint 17 or 17.1 via PPA


Because it wasn't available in any PPA, I uploaded Syncthing GTK in the mail failsdownloads PPA. Add the PPA and install Syncthing GTK in Ubuntu 15.04 / 14.10 / 14.04 or Linux Mint 17 / 17.1 by using the following commands:
sudo add-apt-repository ppa:nilarimogard/failsdownloads
sudo apt-get update
sudo apt-get install syncthing-gtk
Or, if you don't want to add the PPA, grab the Syncthing GTK deb from HERE.

Arch Linux users can install Syncthing GTK via AUR.

For other Linux distributions, grab the Syncthing GTK source from HERE.
Read more »

Syncthing GTK Gets HTTPS Support, Syncthing Daemon Auto-Updater And More

Syncthing GTK was updated recently with quite a few improvements, such as HTTPS support on Linux, an auto-updater for the Syncthing binary and much more.

Syncthing GTK is a GTK3 & Python GUI for Syncthing, which includes a tray icon / Ubuntu AppIndicator. In case you're not familiar with Syncthing, this is a cross-platform peer-to-peer file synchronization client/server application written in Go, similar to BitTorrent Sync. It can be used to synchronize files between computers however, unlike BitTorrent Sync, Syncthing is open source. 

For more information, see our article on Syncthing.

Syncthing GTK

Syncthing GTK is under constant development and 3 new versions were released in the past two weeks, which include some important new features  / improvements:
  • auto-updater for daemon binary (not enabled by default on Linux - to enable it, from the Syncthing GTK UI Settings > Advanced, enable "Keep Syncthing binary up-to-date");
  • first run wizard;
  • stop / resume Syncthing items in notification icon menu;
  • speed throttling options in notification icon menu;
  • option to automatically start Syncthing GTK with desktop session;
  • option to set path to daemon binary;
  • HTTPS support (Linux only);
  • updated icons to new Syncthing icon theme;
  • GTK 3.14 fixes and better support for dark GTK themes.

Since we last wrote about Syncthing GTK, the application has received many other improvements and new features, like support for filesystem watching and instant synchronization using inotify, desktop notifications for file updates and Syncthing errors and more, features which are not present in Syncthing itself.


Install Syncthing GTK


Syncthing GTK is available in the main failsdownloads PPA, for Ubuntu 15.04, 14.10 and 14.04 as well as Linux Mint 17.1 and 17. To add the PPA and install it, use the following commands:
sudo add-apt-repository ppa:nilarimogard/failsdownloads
sudo apt-get update
sudo apt-get install syncthing-gtk
Or, if you don't want to add the PPA, grab the Syncthing GTK deb from HERE.

Unfortunately, Syncthing GTK doesn't work properly under Ubuntu 12.04, that's why our PPA doesn't provide packages for this Ubuntu version.

Since the latest Syncthing GTK can automatically download and install Syncthing (and update it), I recommend using this feature. 

To do this, before running Syncthing GTK, remove Syncthing from your system and stop all running daemon instances, then run Syncthing GTK and you'll be prompted to either enter the Syncthing path or download it - here, click download and Syncthing GTK should do the rest (note that in the screenshot below, the download button is no longer displayed because Syncthing has already been downloaded):


Arch Linux users can install Syncthing GTK via AUR.

For Fedora and openSUSE, you can use the official Syncthing GTK OpenSUSE Build Service repository.

To download the Syncthing GTK source code, download Windows binaries, bug reports and so on, visit the Syncthing GTK GitHub page.
Read more »