GithubHelp home page GithubHelp logo

syncthing / syncthing-macos Goto Github PK

View Code? Open in Web Editor NEW
2.5K 54.0 130.0 22.27 MB

Official frugal and native macOS Syncthing application bundle

Home Page: https://syncthing.net

License: MIT License

Objective-C 68.63% Shell 6.78% Ruby 0.31% Makefile 1.49% Go 11.20% Swift 8.01% C 0.19% Python 3.40%
syncthing synchronization macos peer-to-peer macosx p2p file-sharing osx sync-files sync

syncthing-macos's Introduction

Syncthing


MPLv2 License CII Best Practices Go Report Card

Goals

Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers. We strive to fulfill the goals below. The goals are listed in order of importance, the most important ones first. This is the summary version of the goal list - for more commentary, see the full Goals document.

Syncthing should be:

  1. Safe From Data Loss

    Protecting the user's data is paramount. We take every reasonable precaution to avoid corrupting the user's files.

  2. Secure Against Attackers

    Again, protecting the user's data is paramount. Regardless of our other goals, we must never allow the user's data to be susceptible to eavesdropping or modification by unauthorized parties.

  3. Easy to Use

    Syncthing should be approachable, understandable, and inclusive.

  4. Automatic

    User interaction should be required only when absolutely necessary.

  5. Universally Available

    Syncthing should run on every common computer. We are mindful that the latest technology is not always available to every individual.

  6. For Individuals

    Syncthing is primarily about empowering the individual user with safe, secure, and easy to use file synchronization.

  7. Everything Else

    There are many things we care about that don't make it on to the list. It is fine to optimize for these values, as long as they are not in conflict with the stated goals above.

Getting Started

Take a look at the getting started guide.

There are a few examples for keeping Syncthing running in the background on your system in the etc directory. There are also several GUI implementations for Windows, Mac, and Linux.

Docker

To run Syncthing in Docker, see the Docker README.

Getting in Touch

The first and best point of contact is the Forum. If you've found something that is clearly a bug, feel free to report it in the GitHub issue tracker.

If you believe that you’ve found a Syncthing-related security vulnerability, please report it by emailing [email protected]. Do not report it in the Forum or issue tracker.

Building

Building Syncthing from source is easy. After extracting the source bundle from a release or checking out git, you just need to run go run build.go and the binaries are created in ./bin. There's a guide with more details on the build process.

Signed Releases

As of v0.10.15 and onwards, release binaries are GPG signed with the key D26E6ED000654A3E, available from https://syncthing.net/security/ and most key servers.

There is also a built-in automatic upgrade mechanism (disabled in some distribution channels) which uses a compiled in ECDSA signature. macOS binaries are also properly code signed.

Documentation

Please see the Syncthing documentation site [source].

All code is licensed under the MPLv2 License.

syncthing-macos's People

Contributors

calmh avatar dependabot[bot] avatar drasbeck avatar jakob avatar justinclift avatar kant avatar kawarimidoll avatar kmutahar avatar mstansberry avatar virusman avatar xor-gate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

syncthing-macos's Issues

Suggestion: confusing client and server communication compare to Dropbox

Hello..
i am using this Syncthing for Mac and Windows.
but it is some confusing to user friendly compare to dropbox.
we have faced below isssue.

  • after set default folder not able to change that folder location.
  • not given Default Storage location like "/Syncthin" or "C:/Syncthing"
  • On Every New Folder Share get request on client to add allow folder.
    -For Mac required to copy paste Secrate key

Very High Idle CPU Usage when API key is invalid

Ever since upgrading this week, I'm seeing this on two different MacBookPros, which are in the same SyncThing cluster.

Everything is synced, all four devices show "Up to date."
"CPU usage" in the Web UI shows very low, 2% or less.
Actual CPU via 'top' in the terminal is 60-80%.
Starting/stopping Syncthing doesn't change anything.

Happy to provide any logs that might help resolve this.

New stable release sometime soon?

Hi

If I understand correctly, a few bugs have been fixed since the last release. Is there any chance of a new stable release sometime soon? Thanks heaps

Vincent

Fix package signing

It not reasonable to disable gatekeeper for my whole machine to install a single application. Any idea when package signing will be fixed?

Tracking upgrades using upgrades.syncthing.net instead of github.io pages

So we should probably move the current Sparkle Update feed to the auto-generated appcast.xml. And create some graph of the HTTP GET requests. The go script currently build during CI build should be easy to add (https://github.com/syncthing/syncthing-macos/blob/develop/script/ghreleases2appcast.go)

Info.plist:

	<key>SUFeedURL</key>
	<string>https://xor-gate.github.io/syncthing-macosx/appcast.xml</string>

To:

	<key>SUFeedURL</key>
	<string>https://upgrades.syncthing.net/syncthing-macos/appcast.xml</string>

Also tracking the download counter of the latest release (e.g with telegraf) is nice to see the amount of downloads.

 > curl -s https://api.github.com/repos/syncthing/syncthing-macos/releases/latest | grep download_count
      "download_count": 4066,

telegraf.conf

[[inputs.tail]]
   files = ["/Users/jerry/src/github.com/xor-gate/syncthing-macosx/script/log/upgrades.xor-gate.org.access.log"]
   pipe = false
   watch_method = "inotify"
   data_format = "grok"
   from_beginning = false
   grok_patterns = ["%{COMMON_LOG_FORMAT}"]

[[inputs.http]]
  username = "xor-gate"
  password = "---OBVUSCATED---"
  urls = ["https://api.github.com/repos/syncthing/syncthing-macos/releases/latest"]
  data_format = "json"

There should be only one preferences window

Currently, clicking "Preferences..." in the tray menu opens a preference window. If I switch away from it and click again, another preferences window opens. What should happen instead is that the existing window should gain focus.

This can happen naturally when for example opening preferences, realizing I need to copy the API key and cmd-tabbing to a full screen browser, realizing it's not possible to cmd-tab back to the preferences window, clicking "preferences..." again to get there.

screen shot 2018-07-30 at 12 10 13

Activity doesn't update the status icon

Currently when the status is syncing or paused it is not shown. The only implemented status is error or normal and is derived from the ping endpoint. Fetching the global state needs to be investigated.

Event requests timeout

We ask Syncthing for events using a request that times out after 30s. But the Syncthing default event timeout is 60s. This results in repeated errors on the console every 30s:

2018-07-28 22:03:30.474584+0200 Syncthing[48816:2865526] NSURLConnection finished with error - code -1001
2018-07-28 22:04:01.540378+0200 Syncthing[48816:2865522] NSURLConnection finished with error - code -1001

cmd+c / cmd+v not working

Its just a little annoyance but when copying the API key (ive done this several times already) the preferences window does not have copy/paste shortcuts enabled. Luckily rightclick works.

Tray icon always shows "not connected" even when working

Hello!

I installed syncthing-macosx 0.14.8-2 on OSX 10.12.1, and then let the user interface update syncthing to 0.14.11.

The tray icon always appears as "not connected" (stating "not connected" when hovering the mouse over it too), even when syncthing is working perfectly well, showing all the computers and folders correctly in the web browser. I even have out port forwarding / firewall stuff configured, verified by direct (non-relay) connections to the world outside my lan.

I also have trouble restarting syncthing from within the UI sometimes, but I think that may be a separate issue.

This bundled program is amazing, by the way. Very glad it's here and so simple!

Cheers,
Jack

inability to paste in the API key

I'm a visually impaired user who is trying this thing out. I went to my extras and tried to paste in the very long APK key that was given to me under syncthing's advanced area under the web interface. With voiceover on I cannot paste it in. Can someone test this with voiceover? You can invoke voiceover with command plus f5 from anywhere.Once I get this working I know I'll be able to test for more issues in regard to accessibility and functionality.

Thanks.

Allow Swift?

Discussion point: should it be acceptable to add new code/classes as Swift, and/or refactor existing ones into Swift? I personally have a slight preference for Swift and think that's the direction the environment is moving in. I'm also OK with Objective-C if that's where we want to remain for good reasons.

Preferences windows will not open (due to missing default settings)

The app starts, and sync thing runs. But the tray app is useless: it shows an error sign and I can only click on "Open", "About" and "Quit Syncthing". "Folders" and "Preferences..." aren't clickable - or nothing happens when clicking...

Ps. I'm using the most recent release und macOS Sierra. It's the same issue on my Mac Pro and on my Mac mini.

see the attached screenshot

any remedy for this issue? I had QsyncthingTray.app installed before and it was working perfectly.
bildschirmfoto 2016-10-16 um 15 39 54

Add recent file changes submenu

It would be cool if certain Syncthing functions could be accessible from the syncthing-osx dropdown menu - basic things from the front page of the GUI, such as

Pause All (implemented)
Rescan All (implemented)
Add Folder
Recent Changes
Add New Device

And also other things like:

Settings
Restart

HTTPS connection doesn't work with self signed certificate

I copied the API key from the browser and hit test but nothing happens. The test button stays red. I have set a username and password for the GUI but have already tried removing them to see if this solves the problem but it does not. Do I have to enable some settings for the connection to work?

make debug failed .. library not loaded CoreSimulator

I just finished installing xcode (only had CLI tool installed) and then ran make debug. Sorry i'm newb at this, haven't built an osx app before...

  Referenced from: /Applications/Xcode.app/Contents/Developer/Library/PrivateFrameworks/SimulatorKit.framework/Versions/A/SimulatorKit
  Reason: image not found, NSBundlePath=/Applications/Xcode.app/Contents/PlugIns/IDEInterfaceBuilderCocoaTouchIntegration.framework, NSLocalizedDescription=The bundle “IDEInterfaceBuilderCocoaTouchIntegration” couldn’t be loaded because it is damaged or missing necessary resources.}}}
2017-11-17 12:51:25.367 ibtoold[20016:12914856] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error getting value for parameter key 'name' of extension 'Xcode.InterfaceBuilderKit.AppleTVIntegration.Singletons' in plug-in 'com.apple.dt.IDE.IDEInterfaceBuilderAppleTVIntegration''
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fffa199b2cb __exceptionPreprocess + 171
	1   libobjc.A.dylib                     0x00007fffb67b148d objc_exception_throw + 48
	2   DVTFoundation                       0x0000000106f104dd -[DVTExtensionParameter valueForKey:error:] + 0
	3   IDEInterfaceBuilderKit              0x000000010669dab5 -[IBScopedSingletonRegistry init] + 722
	4   IDEInterfaceBuilderKit              0x000000010669d7c9 __43+[IBScopedSingletonRegistry sharedInstance]_block_invoke + 41
	5   libdispatch.dylib                   0x00007fffb70618fc _dispatch_client_callout + 8
	6   libdispatch.dylib                   0x00007fffb70618b9 dispatch_once_f + 38
	7   IDEInterfaceBuilderKit              0x000000010669d79d +[IBScopedSingletonRegistry sharedInstance] + 45
	8   IDEInterfaceBuilderKit              0x00000001064b6175 -[IBInterfaceBuilderPlugin init] + 146
	9   IDEInterfaceBuilderKit              0x00000001064b60c9 +[IBInterfaceBuilderPlugin ide_initializeWithOptions:error:] + 34
	10  IDEFoundation                       0x0000000107838cd2 _IDEInitializeOnePlugInAndPrerequisites + 2324
	11  IDEFoundation                       0x00000001078385d9 _IDEInitializeOnePlugInAndPrerequisites + 539
	12  IDEFoundation                       0x00000001078385d9 _IDEInitializeOnePlugInAndPrerequisites + 539
	13  IDEFoundation                       0x0000000107836cce _IDEInitializePlugIns + 1604
	14  IDEFoundation                       0x0000000107836085 IDEInitialize + 8547
	15  ibtoold                             0x00000001061ad535 ibtoold + 70965
	16  ibtoold                             0x00000001061ac6b0 ibtoold + 67248
	17  libdyld.dylib                       0x00007fffb7097235 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Command /Applications/Xcode.app/Contents/Developer/usr/bin/ibtool failed with exit code 6. The tool may have crashed. Please file a bug report at http://bugreport.apple.com with the above output and attach any crash logs for ibtool, ibtoold, Xcode, and Interface Builder Cocoa Touch Tool created around the time of this failure. These logs can be found in ~/Library/Logs/DiagnosticReports or /Library/Logs/DiagnosticReports.

** BUILD FAILED **


The following build commands failed:
	CompileXIB syncthing/UI/STPreferencesWindow/STPreferencesAdvancedViewController.xib
	CompileXIB syncthing/UI/STPreferencesWindow/STPreferencesInfoViewController.xib
	CompileXIB syncthing/UI/STPreferencesWindow/STPreferencesDevicesViewController.xib
	CompileXIB syncthing/UI/STPreferencesWindow/STPreferencesFoldersViewController.xib
	CompileXIB syncthing/UI/STAboutWindowController.xib
	CompileXIB syncthing/STPreferencesGeneralViewController.xib
	CompileXIB syncthing/Base.lproj/STApplication.xib
(7 failures)
make: *** [debug] Error 65

Advanced preferences - Syncthing executable

For the advanced preferences window the following features are missing :

  • Enable/disable syncthing executable background process (use user-supplied executable)
  • Show and select syncthing executable
  • Start/stop syncthing executable

Update unable to complete

Try to update from 0.14.49-1 to 0.14.52
on Sierra 10.12.6

com.apple.xpc.launchd[1] (com.apple.imfoundation.IMRemoteURLConnectionAgent): Unknown key for integer: _DirtyJetsamMemoryLimit

Message:
Update Error!
An error occurred while extracting the archive. ...

Use with already installed syncthing

From what i undestand this tray app is also spawning its own syncthing instance. Is it possible to run it with homebrewed version?

Or what is the advantage of including syncthing in the app?

Two instances of syncthing in Activity monitor

After updating tp the latest version, I see two syncthing processes. The previous version showed only one executable running. Haven't noticed any problems with that, but thought I should mention.

image

Cannot toggle "start at login"

When I open the preferences "Start at login" is ticked for me.

  • I untick it
  • I press the close button on the window.
  • I reopen the preferences

Expected: "Start at login" is unticked
Observation: "Start at login" is ticked.

Also I suspect it's not changing whether Syncthing is launched at login, but I haven't rebooted yet. I assume I should see a Lingon message because it monitors login items, but I didn't.

0.14.8-2

Syncthing upgrade corrupts application bundle signature

This is a followup of #27 to make sure Gatekeeper will stay happy when syncthing executable upgrades itself. The problem is that the signature of the application bundle changes after distribution and Gatekeeper will not allow that.

The solution is:
During start of the bundle we need to check if the syncthing executable doesn't exist. E.g copy it (see configuration doc):

/Applications/Syncthing.app/Contents/Resources/syncthing/syncthing -> $HOME/Library/Application Support/Syncthing/syncthing

Rescan all delays the gui response for a few seconds

Probably because the call and response is synchronous the icon is "clicked blue color" (in dark mode) for several seconds when rescan call is not answered. Maybe we should put the call in the background and grayout the rescan button when it is already busy.

Is there a way to automate api configuration step?

"The only necessary configuration is to set the api key which can be found in the web interface."
We are interested in automating the api configuration step. Can you please advice on how this can be done?

system logs are very verbose and cannot be disabled

MacOS High Sierra, latest brew install, 90% of my Console messages are Syncthing activity. I'm guessing this is steadily chewing through my SSD, and prevents me from using the Console to review messages from every other application. I see no way of disabling this, or even reducing the extreme verbosity.

Thanks for this great tool.

Automatic browser open when started

One little annoyance again. I have syncthing-macosx set to start on login which also starts browser every single time (with the webclient). I think this should be either turned off completely or there should be some setting to turn it off.

I guess its there for first time user but after that its annoying.

Feature Request: Add uninstall directions to readme.md

Hi,

First off, thank you so much for this application. For people who are not as binary savvy such as myself, this made it wonderfully easy to install.

Unfortunately, for reasons having nothing to do with your program, I need to uninstall it. Naturally I suspect one uninstalls the application from the application directory. However, if one were to install from binary syncthing appears to create a few dot files/folders. Not sure if your installation via dmg does the same, but it'd be great to know.

Thanks again!

Syncthing executable background process CPU consumption

The UI should allow reprioritizing the syncthing process so that it does not interfere with UI responsiveness.

Also should support setting the maximum number of threads to spawn with the GOMAXPROCS environment variable

Nothing happens when I click on 'preferences'

I've installed the app, and its showing up in the status bar:
unspecified

Selecting 'open' brings up syncthing in the browser. But 'preferences' does nothing.
Possibly related: its not listing folders either.

Make releases easier to find

So, this is totally my ignorance of github, but it was actually difficult for me to find out where to download the actual dmg for this project. Somehow I couldn't find that link to "releases" in the "code" tab. It was like one of those things front and center in the fridge you would love to eat if you could only see it. I actually looked at this project a few weeks ago and gave up after 5 minutes of clicking around.

Anyway, for the blind like me, I would recommend including this link

https://github.com/xor-gate/syncthing-macosx/releases

On the main github page, and somewhere on the "shiny front page" as well. No worries either way, but it might help more of those with my mental deficiency find this amazing bundle.

I would also consider opening up the wiki; I or someone else could add a brief tutorial on how to configure the firewall and port forward in apple land, which also wasn't initially obvious to me when I switched here from windows/linux.

Cheers,
Jack

Generate appcast.xml and track upgrades

For a long time I got annoyed by manual editing the Sparkle Framework appcast.xml for the auto-updater. So I created a github releases to sparkle appcast.xml translator. By automaticly generating the appcast.xml we could also track HTTP GET on the appcast.xml and redirect the dmg downloads to github. With this information we can track the amount of in-use installs and upgrade downloads.

Ensure application stability with unit tests

Currently all code is manually tested. We should start writing unit-tests to ensure stability when adding new functionality, refactoring and fixing bugs and ensuring they don't come back. Probably use Apple supported XCTest or something else.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.