SyncTrayzor: Windows host for Syncthing. Installer, auto-start, built-in browser, tray icon, folder watcher, and more

Tbh it sounds like you want a version control system that supports locking.

I’ll see what Dropbox does: I have a faint memory of it intelligently announcing file transfers.

See

Hi! I use the portable version of Synctrayzor. What is the best and cleanest way to upgrade to newer versions without losing settings/data?

There is a folder called data in the main synctrayzor folder. Can I delete everything in the main folder except data, and then extract the files of the newer version back into the main folder? Or should I simply overwrite the files without first deleting them? Also settings/configs/data about my synced folders and devices are stored only in this data folder and nowhere else in the main folder’s files? I ask because I see some config files like "ProcessRunner.exe.config and SyncTrayzor.exe.config.

Everything you need to copy from the old version to the new is in the data folder. Personally my approach would be to extract the new zip, copy the data folder from old folder to new, and delete the old folder. I think other users just extract the new zip into the old folder without issue.

The .exe.config files should be updated to the latest version, along with the rest of the files.

At some point in the future I’ll write a proper automatic upgrade process for portable users (similar to what installed users have now) that will make this process a lot simpler.

2 Likes

Love it, thank you! Pretty much all the functionality I could ask for.

Fantastic, I’m glad you like it!

So I’ve been using SyncTrayzor for a while and it seems to run great - however syncthing has been running into corrupted database issues, so it looks like I need to use the alternative bolt backend builds. Is there a way to get them to run in the context of SyncTrayzor? If so, what do I need to do?

SyncTrayzor doesn’t really care much about what Syncthing executable it’s running. Syncthing is stored in one of the following locations:

  • Installed builds: C:\Users\<You>\AppData\Roaming\SyncTrayzor\syncthing.exe
  • Portable builds: syncthing.exe

Simply replace the appropriate syncthing.exe with the bolt backend version, and you should be set.

Thanks, I couldn’t figure out for a minute how to transition it from using an old installed version to a new portable version, but simply deleting the old version did the trick. Thanks!

There’s an uninstaller in the Program Files\SyncTrayzor, or you can uninstall it from Uninstall a program in the Control Panel.

Hi,

First of all, thanks for this awesome Windows host for Syncthing!

I’d like to go back to the previous discussion about RAM usage. From what I’ve read, I should expect a “typical memory usage around 60-70MB” as stated in your post from March 15th, 2015 11:53am

However after running SyncTrayzor for approximately 7 hours, I have the following RAM usage (see screenshots on Imgur):

While minimized in the tray:

While open or minimized in the taskbar:

Are these values expected after about 7 hours of SyncTrayzor running?

For the sake of completeness, here are the values I get immediately after having completely exited and restarted SyncTrayzor again:

  • Approx. 124 MB Private Bytes / 155 MB Working Set for Synctrayzor.exe
  • Approx. 85 MB Private Bytes / 90 MB Working Set for CefSharp.BrowserSubprocess.exe #1
  • Approx. 90 MB Private Bytes / 99 MB Working Set for CefSharp.BrowserSubprocess.exe #2
  • View from ProcessExplorer tree: https://i.imgur.com/bIHQ4xi.png

Additional infos: Running under Windows 7 64 bit, with 8 GB RAM

Can you take a look in your log file? (C:\Users\<You>\AppData\Roaming\SyncTrayzor\logs\SyncTrayzor.log). Every 5 minutes SyncTrayzor will print a line which looks like SyncTrayzor.Services.MemoryUsageLogger: Working Set: XXX. Private Memory Size: XXX. GC Total Memory: XXX.

The GC Total Memory figure is the one which reflects how much memory SyncTrayzor, as opposed the embedded browser (CEF), is using. Anything usage above this figure is from CEF, and there’s nothing I can do about that.

I just installed it to another computer (at work), can’t look at the file on my personal computer right now, but here is the one from my laptop at work. The values are similar in the end.

2015-07-27 09:41:39.2527 [Debug] SyncTrayzor.Services.MemoryUsageLogger: Working Set: 172MiB. Private Memory Size: 145MiB. GC Total Memory: 11MiB

What I take from this is that indeed SyncTrayzor has a fairly small memory footprint itself, and the CEF browser is the greedy one out here!

Thanks for pointing me in the right direction for the log file, I was looking under C:\Users\<You>\AppData\Local\SyncTrayzor yesterday.

Yeah, and to be honest, SyncTrayzor’s probably not even responsible for all of those 11 MiB.

CEF is an embedded web browser, which shares a lot in common with Chrome. If you have a web browser open, I’m afraid (these days) they do take up a lot of memory: rendering web pages is a complex process.

SyncTrayzor chose to go down the route of using an embedded web browser, instead fo re-creating Syncthing’s UI using native controls, because it means the user will see improvements and changes that the Syncthing team make to the UI straight away, without having to wait for me to re-implement them. Syncthing-GTK takes the opposite approach and re-implements everything, which means it likely has a much smaller memory footprint.

Does this program launch as an application or as a service in Windows. (i.e. if I install it, reboot the system, do I need to log back in for it to launch and sync or will it run before I log in?)

It starts as an application.

It starts as an application, on log in. There are a couple of good reasons for this:

  • Multi-user support: supporting multiple users while running Syncthing as a service would require multiple services, and require even more system resources.
  • Portable installations: SyncTrayzor provides a portable version, and that would not work with a service.
  • Most people who think they need a service actually want start-on-login, and think that a ‘service’ is the only way to achieve auto-start.
1 Like

Makes sense - I use syncthing to keep servers in sync so running as a service is somewhat essential.

Yeah, that’s a fair use-case.

My assumption is that most people running a server will be running it headless. In this scenario, the easiest way to administer Syncthing is by exposing its web UI to other machines (properly password-protected), rather than RDPing in and using some tray utility. Therefore SyncTrayzor is pretty useless here.

For running Syncthing as a service, see http://docs.syncthing.net/users/autostart.html#run-independent-of-user-login and Syncthing Windows Installer. Pay attention to the warnings about running the service as an unprivileged user!

1 Like

Awesome thank you! Will dig through this in depth as soon as I have a few free moments!

Having a tray is actually somewhat useful here - While yes, we primarily run the server headless, when diagnosing an issue it is often useful to launch things locally and having it in the tray makes it easier to quickly open and see if something is going wrong - especially when you need to compare between multiple machines.