GithubHelp home page GithubHelp logo

pydio / cells-sync Goto Github PK

View Code? Open in Web Editor NEW
34.0 34.0 14.0 4.14 MB

Sync Client for Pydio Cells

Home Page: https://pydio.com

License: GNU General Public License v3.0

Go 18.78% Makefile 0.10% HTML 0.06% CSS 0.02% JavaScript 9.39% C++ 1.34% C 70.30%
pydio synchronization

cells-sync's People

Contributors

bsinou avatar c12simple avatar cdujeu avatar ghecquet avatar jabarkarim avatar lthibault avatar pydio-i18n avatar pydio-trusted 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cells-sync's Issues

Fails to start in Fedora 38:

cells-sync fails to start in Fedora 38:

./cells-sync: error while loading shared libraries: libayatana-appindicator3.so.1: cannot open shared object file: No such file or directory

I have libappindicator3.so.1, but there is not such ayatana- prefixed version available in repositories.

Linux & MacOS | CORS error http://localhost:3636

Hiya,

not sure if this is due to an unsupported configuration or if it is a bug but I can't set up an account in the desktop client. Checking the logs I see a CORS error when I try to connect to our pydio-cells instance running on a subdomain.

023-05-09T12:02:51.479+0200    ERROR   systray CONSOLE SECURITY ERROR Origin http://localhost:3636 is not allowed by Access-Control-Allow-Origin. Status code: 502
2023-05-09T12:02:51.479+0200    ERROR   systray CONSOLE JS ERROR XMLHttpRequest cannot load https://pydio.ourdomain.com/oidc/.well-known/openid-configuration due to access control checks.
2023-05-09T12:02:51.479+0200    ERROR   systray http://localhost:3636/static/js/2.75f48cad.chunk.js?__WB_REVISION__=11902e53822270ed73a3:1:310328: CONSOLE JS ERROR Unhandled Promise Rejection: Error: Network Error

In the docs I saw that this might be due to the external sites url not being set properly so I added all possible origins in the cli:

user@ourserver:~$ docker exec -it -u abc pydio-cells /app/cells configure sites

The following sites are currently defined:
+---+--------------------------------+-------------+------------------------------+
| # |            BIND(S)             |     TLS     |         EXTERNAL URL         |
+---+--------------------------------+-------------+------------------------------+
| 0 | https://0.0.0.0:8080,          | Self-signed | https://pydio.ourdomain.com |
|    | https://0.0.0.0:8080,          |             |                              |
|    | https://localhost:8080,        |             |                              |
|    | https://172.22.0.3:8080,       |             |                              |
|    | https://10.243.170.79:8080     |             |                              |
+---+--------------------------------+-------------+------------------------------+
| 1 | http://localhost:3636          | No Tls      | https://pydio.ourdomain.com|
+---+--------------------------------+-------------+------------------------------+

Originally I only had 0.0.0.0:8080 bound to our external url, but seeing that the desktop client technically was trying to connect from localhost I added entry 1

The server is running on a container host in our office with the reverse proxy on a VPS forwarding over a VPN to the local server, thus the 10...* address in the config above.

I saw somewhere that cells-sync doesnt like SSL termination? Our reverse proxy handles all the certificates, using self-signed certs on the container host that runs the pydio server. If this is the case the error message is a bit misleading.

Cheers!

Mobile device improvements

Recently I managed to compile cells-sync along with GOARCH=arm64 GOOS=linux, removing webview.go and systray.go. As a result it just compiled and produced the binary without any need of further modifications, and basically works like a charm in the Termux environment.

Marvelous compatibility.

I know that Android is not an officially supported platform. I am just finding pydio is the most ideal one among all the syncing solutions and I don't want to give it up so easily just for not supporting mobile devices. So if you developers also think it is a good idea to expand the platform support, there are a few improvements that can be done.

  1. user.Current() returns nil on termux, so a crash occurs in server-config_linux.go.
  2. The web page is not very responsive in small screens, especially for the sidebar.
  3. Android apps have no permission to list the root directory, so a No workspace error is out there.

Thanks a lot for your great app. I may keep testing it on my mobile phone until I find any unworkaroundable problem, then I will accept the reality.

Analyze nodes loop

I use this doc to setup nginx+cells: https://github.com/pydio/cells-sync/files/3784576/nginx_reverse_proxy.pdf

Once per 1-5 minutes i see in log this:

2019-10-30T11:56:42.542+0300    ERROR   endpoint.cells.remote   Stopping watcher on errorrpc error: code = Internal desc = stream terminated by RST_STREAM with error code: PROTOCOL_ERROR
2019-10-30T11:56:42.542+0300    INFO    endpoint.cells.remote   Connection finished rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: PROTOCOL_ERROR
2019-10-30T11:56:42.542+0300    INFO    sync-task       https://cells.example.com:8002/personal-files/personal is currently disconnected
2019-10-30T11:56:47.543+0300    INFO    endpoint.cells.remote   Restarting events watcher after 5s
2019-10-30T11:56:47.568+0300    INFO    sync-task       https://cells.example.com:8002/personal-files/personal is now connected
2019-10-30T11:56:47.568+0300    INFO    sync-task       Both sides are connected, now launching a sync loop
2019-10-30T11:56:47.619+0300    INFO    sync-task       Got Stats for fs:///home/vallefor/Cells {"stats": {"HasChildrenInfo":true,"HasSizeInfo":true,"Size":36246115,"Children":0,"Folders":1016,"Files":8740}}
2019-10-30T11:56:47.656+0300    INFO    sync-task       Got Stats for https://cells.example.com:8002/personal-files/personal   {"stats": {"HasChildrenInfo":false,"HasSizeInfo":true,"Size":26526479,"Children":0,"Folders":0,"Files":0}}
2019-10-30T11:56:47.681+0300    INFO    sync-task       Analyzed 506 nodes (5%)
2019-10-30T11:56:47.716+0300    INFO    sync-task       Analyzed 1340 nodes (10%)
2019-10-30T11:56:47.750+0300    INFO    sync-task       Analyzed 2257 nodes (15%)
2019-10-30T11:56:47.775+0300    INFO    sync-task       Analyzed 2877 nodes (20%)
2019-10-30T11:56:47.816+0300    INFO    sync-task       Analyzed 4320 nodes (25%)
2019-10-30T11:56:47.848+0300    INFO    sync-task       Analyzed 5105 nodes (33%)
2019-10-30T11:56:47.853+0300    INFO    sync-task       Analyzed 5262 nodes (38%)
2019-10-30T11:56:47.875+0300    INFO    sync-task       Analyzed 5863 nodes (43%)
2019-10-30T11:56:47.886+0300    INFO    sync-task       Analyzed 6195 nodes (48%)
2019-10-30T11:56:47.894+0300    INFO    sync-task       Analyzed 561 nodes (5%)
2019-10-30T11:56:47.912+0300    INFO    sync-task       Analyzed 6836 nodes (53%)
2019-10-30T11:56:47.924+0300    INFO    sync-task       Analyzed 7235 nodes (59%)
2019-10-30T11:56:47.931+0300    INFO    sync-task       Analyzed 7438 nodes (64%)
2019-10-30T11:56:47.951+0300    INFO    sync-task       Analyzed 8010 nodes (70%)
2019-10-30T11:56:47.973+0300    INFO    sync-task       Analyzed 8677 nodes (75%)
2019-10-30T11:56:47.988+0300    INFO    sync-task       Analyzed 9091 nodes (80%)
2019-10-30T11:56:47.989+0300    INFO    sync-task       Analyzed 9126 nodes (86%)
2019-10-30T11:56:48.000+0300    INFO    sync-task       Analyzed 9390 nodes (91%)
2019-10-30T11:56:48.007+0300    INFO    sync-task       Analyzed 1055 nodes (10%)
2019-10-30T11:56:48.010+0300    INFO    sync-task       Analyzed 9696 nodes (96%)
2019-10-30T11:56:48.019+0300    INFO    sync-task       Diff Stats      {"s": {"EndpointLeft":"fs:///home/vallefor/Cells","EndpointRight":"snapshot://right","conflicts":0,"missingLeft":0,"missingRight":0}}
2019-10-30T11:56:48.019+0300    INFO    sync-task       Finished analyzing nodes        {"i": 10834}
2019-10-30T11:56:48.019+0300    INFO    sync-task       Sending unidirectional patch    {"patch": {"Source":"fs:///home/vallefor/Cells","Target":"snapshot://right","Type":"TreePatch"}}
2019-10-30T11:56:48.069+0300    INFO    sync-task       Analyzed 1338 nodes (16%)
2019-10-30T11:56:48.069+0300    INFO    sync-task       Analyzed 1339 nodes (22%)
2019-10-30T11:56:48.150+0300    INFO    sync-task       Analyzed 1800 nodes (27%)
2019-10-30T11:56:48.214+0300    INFO    sync-task       Analyzed 2197 nodes (32%)
2019-10-30T11:56:48.299+0300    INFO    sync-task       Analyzed 2484 nodes (37%)
2019-10-30T11:56:48.426+0300    INFO    sync-task       Analyzed 2965 nodes (42%)
2019-10-30T11:56:48.497+0300    INFO    sync-task       Analyzed 3201 nodes (47%)
2019-10-30T11:56:48.708+0300    INFO    sync-task       Analyzed 3521 nodes (54%)
2019-10-30T11:56:48.752+0300    INFO    sync-task       Analyzed 3688 nodes (59%)
2019-10-30T11:56:48.826+0300    INFO    sync-task       Analyzed 3995 nodes (64%)
2019-10-30T11:56:49.025+0300    INFO    sync-task       Analyzed 4458 nodes (69%)
2019-10-30T11:56:49.080+0300    INFO    sync-task       Analyzed 4584 nodes (76%)
2019-10-30T11:56:49.093+0300    INFO    sync-task       Analyzed 4629 nodes (81%)
2019-10-30T11:56:49.147+0300    INFO    sync-task       Analyzed 4843 nodes (86%)
2019-10-30T11:56:49.189+0300    INFO    sync-task       Analyzed 5127 nodes (91%)
2019-10-30T11:56:49.259+0300    INFO    sync-task       Analyzed 5261 nodes (96%)
2019-10-30T11:56:49.275+0300    INFO    sync-task       Diff Stats      {"s": {"EndpointLeft":"https://cells.example.com:8002/personal-files/personal","EndpointRight":"snapshot://left","conflicts":0,"missingLeft":0,"missingRight":0}}
2019-10-30T11:56:49.275+0300    INFO    sync-task       Finished analyzing nodes        {"i": 15044}
2019-10-30T11:56:49.275+0300    INFO    sync-task       Sending unidirectional patch    {"patch": {"Source":"https://cells.example.com:8002/personal-files/personal","Target":"snapshot://left","Type":"TreePatch"}}
2019-10-30T11:56:50.419+0300    INFO    sync-task       Computing patches from Snapshots
2019-10-30T11:56:50.419+0300    INFO    sync-task       Filtering TreePatch took        {"time": "8.608µs", "source": "https://cells.example.com:8002/personal-files/personal", "target": "snapshot://left"}
2019-10-30T11:56:50.419+0300    INFO    sync-task       Filtering TreePatch took        {"time": "3.946µs", "source": "fs:///home/vallefor/Cells", "target": "snapshot://right"}
2019-10-30T11:56:50.419+0300    INFO    sync-task       Merged Patch    {"stats": {"Source":"https://cells.example.com:8002/personal-files/personal","Target":"fs:///home/vallefor/Cells","Type":"TreePatch"}}
2019-10-30T11:56:50.419+0300    INFO    sync-task       Empty Patch : nothing to do

Multiple Icons in System Tray

Cells Sync 0.9.2 @ Windows 10 Home (19041.508)

After CellsSync is running for a some time the CellsSync icons appears multiple times in the system tray.
Hovering over an icon removes the icons until only one icon is left.

trayicon
trayicon2

Improve Selective Sync

General

The selective sync might become a very powerful but there are some troubles with it atm.
Currently it's not possible to sync the root using selective sync.

So let's say we have this tree:

Documents
├───Keys
├───School
└───Work

If I decide to sync the Documents folder and enable the Selective Sync I cannot sync the files inside the Documents folder as only Keys, Schook and Work can be selected when hitting Select folder(s).

Also excluding sub-nodes is not possible. If we assume we have this tree:

Personal Files
└─── [x] Documents
    ├─── [ ] Keys
    ├─── [x] School
    └─── [x] Work

If I decide to sync the "Personal Files" and I want to perform a selective sync of Documents, School and Work, but not Keys though I can deselect Keys in the Select folder(s) dialogue but it still would sync Keys because Documents is selected.

One more case that isn't covered using the current implementation of the selective sync:
Think of implementing some sort of "ExcludedRoots" it wouldn't be possible to include subnodes of them:

Personal Files
└─── [x] Documents
    ├─── [ ] Keys
    │       ├─── [x] KeePass
    │       └─── [ ] SSH
    ├─── [x] School
    └─── [x] Work

If I would want to exclude Keys but include the KeePass directory it wouldn't be possible as the parent node Keys is excluded already.

Conclusion and Examples

This leads me to following recommendation:

Rework the SelectireRoots-option of the config-schema to look the following:

"LeftURI": "https://[...]/Documents",
"SelectiveRoots": [
    { "Path": "/", "Include": true },
    { "Path": "/Keys", "Include": false },
    { "Path": "/Keys/KeePass", "Include": true }
]

The entries would then be processed by the order of their appearance, which means:

  1. "/" is included
  2. "/Keys" is excluded, but...
  3. ..."/Keys/KeePass" is included

Also I'd recommend to enable the checkboxes in the Select folder(s) dialogue to match the current config. That way the initial state of said dialoue would represent to current settings.

Another example:

"LeftURI": "https://[...]/Documents",
"SelectiveRoots": [
    { "Path": "/", "Include": true },
    { "Path": "/Keys/KeePass", "Include": true },
    { "Path": "/Keys", "Include": false }
]
  1. "/" is included
  2. "/Keys/KeePass" is included
  3. "/Keys" is excluded which causes "/Keys/KeePass" to be excluded as well

Creating a "Selective Folder"-task into an empty local folder causes an error

Initially cells-sync tries to create a task with its local folder set to "~/Cells".
This folder logically is initially empty. When enabling "Selective Sync" and hitting "Select folder(s)" opening the dialogue an error occurrs:
image

Normally I would expect the client to showthe remote folders even if the local folder is empty.

One can work around this issue by creating a folder in the local directory like, for example "~/Cells/test" and then hitting "Select folder(s)" once more.

Use another browser engine than IE11

In order to get JavaScript-components to work I'd recommend to either completely drop the WebClient or to use something like electron (does this even exist for Go?) aka. Chromium as browser-engine.

Cells Sync corrupts files and is unstable on Linux and Windows

Hi
at first thanks für pydio cell server, that works very well with web interface and is a nice piece of software.
But Cell Sync is unstable, does have connection issues and corrupts files very often.
Also S3 does not work properly because of disconnections (endpoint not found)

My question is, is there any chance in the near future to have bullet proof Cells Sync ?

Would be so nice.

Unable to run prebuilt binaries or to build

Hello,

I really want to use this. The server looks great. Thank you for all your hard work!

However, whenever I try to use the windows client I cannot get the client to work at all. I want to test it myself before setting it up for my family to use.

I'm using Windows 10 since that's what my family will be using too.

I understand from other issues that it's in the process of being moved to modules and so maybe doesn't quite work yet due to missing modules by the looks of it.

However the prebuilt binary also does not work for me. It seems to just loop forever adding blank system tray entries that disappear when I hover over them.

The log is here if it's of any use: https://gist.github.com/Ryvix/eb3cd4d47725793cf8b240cbce0731a4

I don't know Go yet, but I am a programmer and wouldn't mind trying to figure it out but I have no clue right now where to start, or if I should just wait. Is there some way I can make it work or do I just have to wait?

Thank you!

Missing tasks in ui

Sometimes not all tasks are shown under "Tasks" in the ui.

Edit: If the ui is opened, all tasks which are "analyzing" its content are not shown and only appear after a while.

Cant add task

I compliled and installcells server. It successfuly run and I can go to webinterface.
My internal addres is: 192.168.1.112:8012
My external address: https://cells.example.com:8002 (I use nginx proxy with config https://pydio.com/en/docs/kb/devops/running-cells-behind-nginx-reverse-proxy ). Also I have Let's Enctypt certificates path in my nginx config.

My cells server run at my home server. I opened port 8002 at my router, so I can browse my cells-server from internet.

I compiled cells-sync from github (also build ux).
Run ./cells-sync start and successfuly added my server at account tab.

But when I try to add task and select my remote folder I receive an error:
the gRPC port may not be correctly opened in the server

I use 'netstat -nputw | grep cells' to discover port and found out that it is an 38191. So, I opened it at my router but then I receive another error:
transport: authentication handshake failed: tls: first record does not look like a TLS handshake

So, I do not know how to fix it.

Systemd integration

Great to see a systemd integration! In my opinion, however, the systemd files should be copied to

  • /usr/lib/systemd/user/ if cells-sync is installed system wide, or
  • ~/.local/share/systemd/user/ if cells-sync is put somewhere in the user home directeroy.

In addition, the part User=root should be dropped in the systemd file. The service should then be started as a user (systemd --user start com.pydio.CellsSync.service). This would also allow to start cells-sync for several users.

Cells sync 0.9.1 on MacOS 10.11 doesn't work at all

Hello,

The cells-sync client on macOS 10.11 cannot be set up.
If one tries to add an account, both using SSL self-signed and without using SSL, using the interface at http://localhost:3636 (firefox browser), it remains hanged like nothing happens. In the network debug I see that a request to http://:/oidc/.well-known/openid-configuration is being made, but it returns an HTML page.
Using Safari doesn't even show the accounts page, you are just presented with a blank page. Using the application has the same behavior as Safari.
I cannot setup any account from the command line, either.
Server is up and I can login and see files, cells have been configured, etc.
How to fix?

Unable to build

Following the instructions leads to this in the go get step:
image

Also you really should release a new build since the "current" is over a year old

Sync directory with many small files

I have a folder with about 300k small files (like *.php or so).
I added sync task this folder to my Personal Files.
After string with "Capturing first snapshots now" appeared in log - my PC almost freezes for 30-40 seconds.
But then it drops an error and sync task were gone.

Here my log:

2019-10-28T17:34:52.683+0300    INFO    sync-task       Analyzed 9129 nodes (86%)
2019-10-28T17:34:52.711+0300    INFO    sync-task       Analyzed 9393 nodes (91%)
2019-10-28T17:34:52.743+0300    INFO    sync-task       Analyzed 9699 nodes (96%)
2019-10-28T17:34:52.753+0300    INFO    sync-task       Diff Stats      {"s": {"EndpointLeft":"https://cells.example.com:8002/common-files/test","EndpointRight":"fs:///home/vallefor/Cells","conflicts":0,"missingLeft":0,"missingRight":0}}
2019-10-28T17:34:52.754+0300    INFO    sync-task       Finished analyzing nodes        {"i": 15048}
2019-10-28T17:34:52.754+0300    INFO    sync-task       Filtering TreePatch took        {"time": "3.752µs", "source": "https://cells.example.com:8002/common-files/test", "target": "fs:///home/vallefor/Cells"}
2019-10-28T17:34:52.754+0300    INFO    sync-task       Filtering TreePatch took        {"time": "2.508µs", "source": "fs:///home/vallefor/Cells", "target": "https://cells.example.com:8002/common-files/test"}
2019-10-28T17:34:52.754+0300    INFO    sync-task       Merged Patch    {"stats": {"Source":"https://cells.example.com:8002/common-files/test","Target":"fs:///home/vallefor/Cells","Type":"TreePatch"}}
2019-10-28T17:34:52.755+0300    INFO    sync-task       Empty Patch : nothing to do
2019-10-28T17:34:56.497+0300    INFO    sync-task       Analyzed 286571 nodes (92%)
2019-10-28T17:34:58.285+0300    INFO    sync-task       Analyzed 287376 nodes (97%)
2019-10-28T17:34:59.515+0300    INFO    sync-task       Diff Stats      {"s": {"EndpointLeft":"https://cells.example.com:8002/personal-files","EndpointRight":"fs:///home/vallefor/Sync-d","conflicts":0,"missingLeft":230072,"missingRight":747}}
2019-10-28T17:34:59.515+0300    INFO    sync-task       Finished analyzing nodes        {"i": 289972}
2019-10-28T17:35:00.097+0300    INFO    sync-task       Filtering TreePatch took        {"time": "216.223µs", "source": "https://cells.example.com:8002/personal-files", "target": "fs:///home/vallefor/Sync-d"}
2019-10-28T17:35:25.499+0300    INFO    oidc    Additional safe check for token https://[email protected]:8002
2019-10-28T17:36:33.632+0300    INFO    sync-task       Filtering TreePatch took        {"time": "144.058325ms", "source": "fs:///home/vallefor/Sync-d", "target": "https://cells.example.com:8002/personal-files"}
2019-10-28T17:36:36.590+0300    INFO    sync-task       Merged Patch    {"stats": {"Pending":{"CreateFile":207464,"CreateFolder":23355,"Total":230819},"Source":"https://cells.example.com:8002/personal-files","Target":"fs:///home/vallefor/Sync-d","Type":"TreePatch"}}
2019-10-28T17:36:39.009+0300    INFO    sync-task       Capturing first snapshots now
2019-10-28T17:37:25.499+0300    INFO    oidc    Additional safe check for token https://[email protected]:8002
2019-10-28T17:37:39.170+0300    ERROR   endpoint.cells.remote   Stopping watcher on errorrpc error: code = DeadlineExceeded desc = context deadline exceeded
2019-10-28T17:37:39.192+0300    INFO    endpoint.cells.remote   Connection finished rpc error: code = DeadlineExceeded desc = context deadline exceeded
2019-10-28T17:37:39.192+0300    INFO    sync-task       https://cells.example.com:8002/common-files/test is currently disconnected
2019-10-28T17:37:44.192+0300    INFO    endpoint.cells.remote   Restarting events watcher after 5s
2019-10-28T17:37:44.221+0300    INFO    sync-task       https://cells.example.com:8002/common-files/test is now connected

Signature does not match.

I deployed my own instance of Pydio Cells home using docker behind nginx reverse proxy, everything works fine from web interface, but Cell Sync client constantly shows error: The request signature we calculated does not match the signature you provided. Check your key and signing method..
This makes syncing files impossible, I tried tweaking with cells server and nginx itself but nothing helps.

Cannot build

Since there aren't binaries, I have tried to build, whereas I am not a Go specialist
Using your instructions, which miss an "npm update" step,
I end up with this error, which I have no idea how to fix.
Suggestions?

There are 7 npm update deprecated warnings, amongst other warnings
Surely this package needs some maintenance?

go build \
-ldflags "-X github.com/pydio/cells-sync/common.Version=0.2.0 \
-X github.com/pydio/cells-sync/common.BuildStamp=2020-04-13T16:38:40 \
-X github.com/pydio/cells-sync/common.BuildRevision=c30859c79de43efea176877c3be1fd347e44f206" \
-o cells-sync main.go
# github.com/pydio/cells-sync/cmd
../../github.com/pydio/cells-sync/cmd/webview.go:48:20: undefined: webview.Settings
make: *** [Makefile:14: cli] Error 2

Compiling cells-sync under ARM64 (running DSM - a Linux distro for the Synology NAS): the nightmare

In my never-ending quest of getting the Pydio Cells family of services running on as many platforms as I can, I've been tackling a years-old issue I have: how to synchronize between a Synology NAS and a remote Pydio Cells installation.

The 'obvious' choice would be just to get the Synology NAS to sync over its one-size-fits-all S3 sync solution, which works with pretty much everything... except Pydio Cells. Alas, that's a completely different issue and not relevant today.

Instead, after a complex procedure that allowed me to compile CGo packages for the ARM64 architecture on the Synology NAS — something which eluded me for months, too — I managed to get a lot more things to compile there, so I thought I could give CellsSync a try. Although Synology's DSM (= DIskStation Manager) is essentially a GNU/Linux distro, its configuration is somewhere between macOS and Debian Linux (coming closer to Debian Linux these days, since it already uses a systemd setup, although it doesn't ship with a package manager — deliberately so, you're not supposed to tinker with the operating system...). By far the easiest non-supported programming language to get working on the Synology DSM is Go (at least when compared to C/C++...), so, once you get Go compiling basically everything, it's supposed to compile Cells Sync as well.

While I don't need the GUI version of Cells Sync, it seems that somehow the Makefile 'assumes' that the installation is 'complete', that is, that the whole UX is ready to be installed — even if it won't. Unfortunately, the Synology NAS is not meant to be an application development environment — it's way too slow for that. Fortunately, Go is blazing fast everywhere — and thus also on a slow ARM64 with a small memory footprint! — but, alas, that's not the case for practically anything else. npm takes eternities to do anything worthy.

npm WARN deprecated @babel/[email protected]: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
npm WARN deprecated [email protected]: core-js@<3.3 is no longer maintained and not recommended for usagedue to the number of issues. Because of the V8 engine whims, feature detection in old core-js versionscould cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
npm WARN deprecated [email protected]: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated [email protected]: This loader has been deprecated. Please use eslint-webpack-plugin
npm WARN deprecated [email protected]: please switch to a stable version
npm WARN deprecated [email protected]: "Please update to latest v2.3 or v2.2"
npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15xless dependencies.
npm WARN deprecated [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated @hapi/[email protected]: Switch to 'npm install joi'
npm WARN deprecated [email protected]: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated @hapi/[email protected]: Moved to 'npm install @sideway/address'
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported ormaintained
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: use String.prototype.padStart()

> [email protected] postinstall /volume1/homes/gwyneth/go/src/github.com/pydio/cells-sync/app/ux/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)


> [email protected] postinstall /volume1/homes/gwyneth/go/src/github.com/pydio/cells-sync/app/ux/node_modules/oidc-client/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js:
> https://opencollective.com/core-js
> https://patreon.com/zloirock
> https://paypal.me/zloirock
> bitcoin: bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)


> [email protected] postinstall /volume1/homes/gwyneth/go/src/github.com/pydio/cells-sync/app/ux/node_modules/react-app-polyfill/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/react-scripts/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/jest-haste-map/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/watchpack/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm64"})
npm WARN [email protected] requires a peer of @types/react@>=16.3.0 <17.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @types/react-dom@>=16.3.0 <17.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @uifabric/[email protected] requires a peer of @types/react@>=16.3.0 <17.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @uifabric/[email protected] requires a peer of @types/react-dom@>=16.3.0 <17.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @uifabric/[email protected] requires a peer of @types/react@^0.14.x || ^15.x || ^16.x but noneis installed. You must install peer dependencies yourself.
npm WARN @uifabric/[email protected] requires a peer of @types/react-dom@^0.14.x || ^15.x || ^16.x but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/[email protected] requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/[email protected] requires a peer of typescript@* but none is installed.You must install peer dependencies yourself.
npm WARN @babel/[email protected] requires a peer of @babel/core@^7.12.0 but none is installed. You must install peer dependencies yourself.
npm WARN @babel/[email protected] requires a peer of @babel/core@^7.13.0 but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/[email protected] requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of acorn@^6.0.0 but none is installed. You must install peer dependencies yourself.

added 1615 packages from 840 contributors and audited 1623 packages in 367.931s

75 packages are looking for funding
  run `npm fund` for details

found 11 vulnerabilities (1 low, 7 moderate, 3 high)
  run `npm audit fix` to fix them, or `npm audit` for details

Predictably:

$ npm run build

> [email protected] build /volume1/homes/gwyneth/go/src/github.com/pydio/cells-sync/app/ux
> react-scripts build

Creating an optimized production build...


<--- Last few GCs --->

[32026:0x3a01c720]  1726166 ms: Scavenge 426.3 (432.1) -> 426.2 (434.6) MB, 48.6 / 0.0 ms  (average mu= 0.207, current mu = 0.291) allocation failure
[32026:0x3a01c720]  1727101 ms: Mark-sweep 428.3 (434.6) -> 426.9 (434.1) MB, 831.0 / 0.4 ms  (+ 250.2ms in 82 steps since start of marking, biggest step 35.3 ms, walltime since start of marking 1276 ms) (average mu = 0.209, current mu = 0.240) allocatio

<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x13f274c]
    1: StubFrame [pc: 0x1374188]
Security context: 0x00005f49b989 <JSObject>
    2: /* anonymous */ [0x7f73d93a79] [/volume1/homes/gwyneth/go/src/github.com/pydio/cells-sync/app/ux/node_modules/webpack-sources/node_modules/source-map/lib/source-node.js:~86] [pc=0x3fe8cb88](this=0x007fa9461cf1 <JSFunction SourceNode (sfi = 0x48ff0a59)>,0x0000508bde09 <Object map = 0x7f71684da9>)
    3: arguments adaptor fra...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `react-scripts build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
[...]

(if you wish, I can send that log as well)

FYI, I've tried to 'modularise' Cells Sync and Pydio Cells, after noticing that Cells Sync relies on a common directory which is used by Cells Sync... ugh. You really should put those common files on a separate repository, simply because building a CLI version for Cells Sync ought to be substantially easier to compile than the whole Pydio Cells mega-package! Or so I'd expect, anyway. After 4 days of making a serious attempt to get everything modularised, I had to give up (and trust me, I don't usually give up easily!).

I believe that the main issue with the current Pydio Cells suite is its dependencies of incredibly obsolete packages, most of which have quasi-circular dependencies. There are a few ones that are simple — packages that just changed their current location, something which applies to BoltDB and Caddy, for instance — and a few that are very hard, and are at the deep core of Pydio Cells (but not Cells Sync!... alas, you can't compile it without compiling Cells Sync as well). I understand that the main reason for this obsolescence was the need to start a large Go project before modules came around. As practically everybody switched to modules (Google does a yearly survey to its community, and it seems that around 96% of the Go developer community regularly uses modules), it becomes increasingly harder and harder to keep running a complex application-building environment that relies on other sources. To be more specific, the mere idea of using npm to handle Go module dependencies is, to be blunt, insane. Even the core Pydio Cells uses Go-specific, pre-module packages to handle those dependencies (at least, as far as I know).

Particularly hard to fix are the dependencies around the go-micro package (extensively used by Cells to provide an environment of microservices), mostly because there are at least three different packages doing the same (and using the same name). Two of those are simply major versions of the same package — but, under the rules of Go modules, each major version (because it's API-incompatible with the previous one), gets its own package & namespace (be it a Git branch or a completely separate repository). go mod can handle these easily, but the pre-modules system has a really tough time to deal with them — simply because some packages may also be updated and require the old major version, while newer packages, which have been updated, rely on the new major version. Go modules deals with those issues easily enough; the 'vendor' approach used by Pydio Cells gets hopelessly confused. Finally, there is a third source of go-micro. As far as I can see, some of the concepts are similar; they might even have started as a fork of each other, and then moved on in different directions. Pydio Cells sometimes needs subpackages of one, sometimes of the other. This is sadly unfortunate for those, like me, who are unaware of the real differences between them, and, just by looking at what the Pydio Cells source is including/requiring, it's not obvious which is which. Eventually, as the dependency tree grows, it becomes obvious when the 'wrong' package had been included, and that means going back and changing the import path just for that file, and move on with the generation of the dependency tree (i.e. go mod tidy).

The second big issue has to do with the usage of Google's protobuf implementation in Go — which, again, has seen several different releases, often incompatible with each other. Google has kindly left a reasonably old implementation available on GitHub (it's 5-6 years old, at the time of writing), but they seriously warn everybody to move on to the current, official version, which is not hosted on GitHub but on Google's own Git repository for Go-related things. So far, so good — you can continue to use the old version, after all — but the problem, not surprisingly, is similar to the one above: some packages used by Pydio Cells have never been updated, and use the old version of protobuf to generate their own protobuf bindings; others have been updated, and use the new version; and Pydio Cells itself knows nothing about 'different' protobuf packages, and gets in trouble if the 'wrong' one is included — mostly because, from the perspective of the Pydio Cells code, nothing is wrong: they just include a third-party package (which might even be up-to-date), which, in turn, is calling either the old or the new version of protobuf... and theoretically, from the PoV of the Cells developers, that's a problem to be fixed upstream; they just know what to call from the third-party package, and are assuming that whatever it depends upon is handled correctly. And, actually, it is... with Go modules, which tell exactly what has to be included, and the correct order for including all of that (even if different versions of the same package are used, Go modules will handle those cases easily as well). The problem is when one uses such third-party packages without using Go modules — then it means manually handling all dependencies correcly, and that will be true not only for the particular file/module/package one is working with, but for all of the others as well, since — well, since they can be importing different versions, too!

Right. You can see how this can quickly become exponential. But, as you might imagine, to make matters worse, go-micro relies heavily upon protobuf. And now Cells is including 3 versions of go-micro and at least two versions of protobuf, which means that, every time some import path requires to be fixed on a file that uses microservices, there are at least 6 different combinations to pick from, and only one of them will be correct. With a bit of luck, you might get it right for the handful of files inside one of the many Cells submodules (worst-case scenario: try 6 different combinations in turn, you'll get it right at least on the last try...).

Obviously, when I started doing all the above, I really had no idea how many different versions — and combinations of versions — were available. That meant that after 'fixing' a lot of dependencies on the several submodules, I finally hit one submodule where there was a new combination of versions that I hadn't encountered before. This meant dealing with it for that particular submodule (or file inside a submodule)... and hoping against hope that I had fixed the first submodules correctly. Murphy's Law, again, showed that not to be the case, so very quickly I was running in loops — getting dependencies right, one by one; getting stuck on a difficult case; fixing it, restarting from scratch; now the ones I had fixed before were, obviously, inconsistent, so I had to change them again. Run go mod tidy again... getting stuck on a new submodule, with a new (previously unknown) dependency. Fix it. Again... the early modules broke... so I had to start from scratch... and so forth.

Needless to say, after four days, I never managed to even get a fully working dependency tree. Every day (sometimes more than once) I had to restart with a 'clean' installation because things had become so hopelessly tangled that I lost the thread — the best choice was to start from scratch and rely on the knowledge I had acquired the day before. Wash, rinse, repeat.

Until, well, it simply was too much for me.

I now start to appreciate why @cdujeu never bothered with changing everything to Go modules :-)

On the other hand, at least cells-sync could have a CLI that did not depend on the whole of the UX and a fully-compiled installation of Pydio Cells. That would go a long, long way to make my job easier.

So I guess that I need to dig into the cells-sync code to figure out the 'magic' of syncing (uploads and downloads are trivial, especially when using cells-client, of course :-) ).

I know this has been a very long essay, but I hope you feel my frustration. Remember what my original intention was: having a way to sync folders from my home NAS to a remote server running Pydio Cells. That seems trivial enough, right? Well, one thing is to copy files in either direction. That's the easy bit. The other issue is to make Pydio Cells understand that new files have arrived, and index them. That's the tricky bit. Of course, I can always run the scheduler (manually) every now and then, to reindex the whole folder. Unfortunately, that takes 2-3 minutes (under my current scenario), and consumes a huge amount of resources (memory, CPU...) during those 2-3 minutes. What I need is to do the same thing that Cells Sync does: figure out what are the differences between the local and remote folders, send them over, and index them on-demand as they arrive. That means near-real-time sync'ing (just as is provided by Dropbox, OneDrive, Google Drive... and Cells Sync), as opposed to having to ask people to 'wait a bit until I manually resync the folders'. Note that, from the perspective of the operating system, the folders are in sync all the time (yay [rclone](https://github.com/rclone/rclone)!). The problem is that there is no easy and obvious way to inform Pydio Cells about the changes...

Aye, I'm also aware that I could theoretically connect to Pydio Cells using the Amazon S3 protocol. That, unfortunately, only seems to work for some cases but not others; I have absolutely no idea why (there are few logs to help me with a simple 'authentication denied' error). The exact credentials have no issue whatsoever with things such as Postman or even s3cmd; I guess that there is some step I might be missing...

How to install CEC for windows?

Hi sir @cdujeu. Can you guide me on how to install the CEC for windows? I've tried to launch the application but it says "this is a command line tool, you need to run cmd and run it from there".

Thank you so much!

CellSync arbitrarily deleted folders with included files when sync from the server

it happened a second time.
I noticed that something deletes all folders and included files from a folder that is constantly synchronized with Pydio Cells server.
it first happened on August 16 and after all folders were removed on the local folder it synchs back and removes all on the server
at that time the server version was Pydio Cells 2.1.2
2020-08-16.txt
I have updated the server to version Pydio Cells 2.1., but unfortunately, it happens again.
for some reason, CellSync considers that the synch path does not contain any folder or files and starts to delete all folders on the local disk. however, I am sure that at this moment files and folders are on the server
2020-08-31.txt
I attached the snippets of log files. they contain some modified data but this does not distort the information.

I would be grateful for any help in identifying the cause and solution for this issue

macOS Finder integration

Hi! I was kinda expecting to see some Finder integration on macOS for the sync status icons on files and the ability to share a file or folder from a contextual menu when right clicking on it. This doesn't seem to be the case and I was wondering if it's expected. I checked under Extensions in System Preferences and there is nothing related to Cells Sync. Thanks in advance :)

Cells-Sync is stuck sometimes

Cells-Sync is getting stuck for me quite often and shows a white exclamation sign in the system tray.
The local cells-server is stuck when this happens which results with a timeout-error when trying to open cells-sync.

Selective Sync: Script Error on Windows

When I enable "Selective Sync" on my Windows 10 notebook, I get "Script Error" Dialog:

Fehler: Die Eigenschaft für ein nicht erweiterbares Objekt kann nicht erstellt werden.
Code: 0
URL: http://localhost:3636/static/js/2.d4176e9b.chunk.js

Sorry, the error is in German. If I open the ui in the browser, I can enable selective sync and the "Select Folder(s)" button appears.

Add support to ignore files/folder

I have asked this in the forum and they asked me to open an issue here.

I'd like to ask you to add a feature that allow us to prevent some files or folders from being synced. The behaviour would be similar to .gitignore files.

I would add some patterns to a file and the files or folders that matches them would not be synced. For example:

# .pydioignore file

/node_modules
/logs
/vendor
/build
/yarn-error.log

Thanks in advance.

unable to build on archlinux since webview_go is relying on older webkit2gtk

I tried to build this on archlinux and failed.

Reason: it depends on webview_go which depends on webview which depends on webkit2gtk-4.0 however moved on to webkit2gtk-4.0.

I tried to actually make some minor tweaks to make it working but failed so far since i'm not that experienced with golang yet ecosystem yet.

cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}'

I'm trying to run cells-sync in a Docker container and am having some issues.

This is my Dockerfile:

FROM ubuntu:20.04

WORKDIR /etc/pydio

ENV DEBIAN_FRONTEND noninteractive
ENV TZ Pacific/Auckland

RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime
RUN apt-get update && apt-get install -y wget libwebkit2gtk-4.0-37
RUN wget https://download.pydio.com/pub/cells-sync/release/0.9.1/linux-amd64/cells-sync && chmod +x cells-sync

CMD ./cells-sync start --headless

Command:

docker run --name cells-sync -p 3636:3636 cells-sync:0.9.1

When running the container, I keep getting this message printed over and over and the http-server never seems to come up:

2020-05-16T23:02:55.005+1200	INFO	update.service	Starting Updater Service
2020-05-16T23:02:55.005+1200	INFO	profiler	Exposing debug profiles for process 6 on port 6060
2020-05-16T23:02:55.005+1200	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2020-05-16T23:02:55.006+1200	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (1.000000 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0002c2de0}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2020-05-16T23:02:55.006+1200	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2020-05-16T23:02:55.006+1200	INFO	http-server	Starting HttpServer on localhost:3636
2020-05-16T23:02:55.006+1200	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (1.999992 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc000554750}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2020-05-16T23:02:55.006+1200	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2020-05-16T23:02:55.007+1200	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (2.999973 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0002c38f0}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2020-05-16T23:02:55.007+1200	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2020-05-16T23:02:55.007+1200	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (3.999948 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0002c3950}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2020-05-16T23:02:55.007+1200	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2020-05-16T23:02:55.007+1200	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (4.999924 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0002c39b0}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2020-05-16T23:02:55.008+1200	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2020-05-16T23:02:55.008+1200	INFO	supervisor	Entering the backoff state.
2020-05-16T23:02:55.008+1200	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (5.999886 failures of 5.000000), restarting: false, error: "{%!s(*control.StdInner=&{0xc0002c3a10}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]

Running ./cells-sync start --headless from a Ubuntu 20.04 desktop install works just fine, but somehow the Docker version does not.

Any ideas?

cells-sync: error while loading shared libraries: libappindicator3.so.1

Please be aware that libappindicator3-1 has been removed from Debian, see the following links:

Quoting the Bug report:

The libappindicator package is currently QA team maintained in Debian
and shall be phased out hopfully during the buster release cycle. The
alternative (maintained upstream and Debian-downstream) is
libayatana-appindicator.

Debian-Wiki of the Ayatana Indicators Transition:

So in Debian/bullseye, with libayatana-appindicator3-1 installed, cells-sync fails to run:

❯ dpkg -l libayatana-appindicator3-1     
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version      Architecture Description
+++-==========================-============-============-===============================================
ii  libayatana-appindicator3-1 0.5.5-2      amd64        Ayatana Application Indicators (GTK-3+ version)

❯ ./cells-sync 
./cells-sync: error while loading shared libraries: libappindicator3.so.1: cannot open shared object file: No such file or directory

Please make cells-sync work in Debian/bullseye. You might also update the documentation here: https://github.com/pydio/pydio-doc-admin-guide/blob/cells-v3/1_quick_start/6_connect_desktop_sync.md?plain=1#L28

Thanks for Pydio Cells + Cells Sync!

transport: received the unexpected content-type "text/plain; charset=utf-8"

While trying to connect to my pydio server I'm getting this message while listing the directories.

Looking through the documentation it doesn't seem like a frequent problem and i really can't go on without a bit of help. Where am I missing something?
Is it the server config or the client or just bad luck?
My server is behind a reverse proxy (Caddy v2) but that is irrelevant since the problem still occurs when i'm on them same network with the server.

Folder syncronisation is working but not for cells

Hi everyone,

if we create some cells, we can't syncronise them with the sync client ( but works totally fine with folders)
image
image

I don't really know if this is the expected behaviour, but I wish it would be possible to do so :)

Thanks a lot for your great work !

Launch cells-sync from linux only works when in same directory as the binary

From the command line I type

~/Downloads/cells-sync start

this fails to start correctly and this line can be seen in the log

2019-11-14T20:46:49.897Z ERROR systray Error on sub process : fork/exec /home/rdlb/no-cells-here/home/rdlb/Downloads/cells-sync: no such file or directory

FYI
which ~/Downloads/cells-sync
produces
/home/rdlb/Downloads/cells-sync

launching using
PATH=$PATH:~/Downloads/ cells-sync start
fails with a similar error
2019-11-14T20:44:57.927Z ERROR systray Error on sub process : fork/exec /home/rdlb/no-cells-here/cells-sync: no such file or directory

this, however, will work
cd ~/Downloads/
./cells-sync start

How about Linux repositories: OBS

Hi,

I really love cells as high-quality alternative to Nextcloud, and I really miss automated updates for desktop client with my distribution package manager.

OpenSUSE created automated deployment platform called Open Build Service (OBS) that is able to package software for various distributions like RHEL, Fedora SLES, OpenSUSE, Debian, Ubuntu, Arch and standalone AppImage format.

This official instance It is free of cost for Open Source projects.

Of course there are alternatives but this gives opportunity to set up once for many distributions.

Thank you for creating cells!

% symbol in file name broke sync in Windows

% symbol in the file name isn't prohibited in Win & Linux, just "not recommended". Who can stop users from naming their files as they wish, though?

As a result, sync is broken with "Broken pipe" or other misleading errors.

CellsSync 0.9.4, tested on Windows 11, Windows Server 2008R2.

Cells Synck stop to sync with error empty idToken

I have Pydio Cells Home Edition 2.1.2 on Ubuntu server
and using CellsSync-0.9.1

time to time It stops to sync with the message in the CellsSync task: Cannot Stat Root: empty idToken
and I need to remove my account in CellsSync and add it again to have it working back.

I have checked the Pydio configuration file and it has not any parameter for set Token expiration time or something related to that.

gRPC error: "Request error :cannot connect (408 Timeout): the gRPC port may not be correctly opened in the server"

  • Cells Sync 0.9.0 on macOS 10.15
  • Cells Home 2.0.0-rc2 on remote server (Ubuntu 18.04.3)
  • Docker image pydio/cells:2.0.0-rc2 mapped to host port 8080
  • nginx proxy passing https to localhost:8080
2019-11-01T21:56:48.513-0500	ERROR	http-server	Request error :context deadline exceeded
2019-11-01T21:56:51.897-0500	ERROR	http-server	Request error :cannot connect (408 Timeout): the gRPC port may not be correctly opened in the server

I can authenticate with my Cells server and add account to Sync. When I try to create a task I get the error when attempting to browse the remote tree.

Server log message:

Ts : 1572665725
Level : error
Logger : pydio.grpc.tasks
Msg : Streamer PutTaskStream - {"id":"go.micro.client","code":500,"detail":"none available","status":"Internal Server Error"}
SpanUuid : span-2

edit: OSes

First connection issue: blank screen immediately after connecting to Pydio Cells server

Client OS : Windows
Client version: CellsSync - 0.9.2
Revision ad58523 (2020-09-10T09:43:57)
Pydio Server OS: FreeBSD 13.1
Pydio Server version: Pydio Cells Home Edition (v3.0.7), installed from ports

This is a first connection issue.

When I try to create first account:

I briefly see server backdrop, then page becomes blank.

  • Browser has page open, logged in to my Pydio account
  • Tried with Firefox, Brave, Edge.

on Linux, cells-sync can't be started using an absolute or $PATH command-line

Apparently, cells-sync tries to guess its own absolute path to execute a second process and fails to do it properly in some cases. Only a relative path command seems to work as expected for me.

using $PATH:

❯ cells-sync start
2022-10-20T08:22:44.307+0200	INFO	profiler	Exposing debug profiles for process 15545 on port 6060

2022-10-20T08:22:44.307+0200	INFO	update.service	Starting Updater Service
2022-10-20T08:22:44.307+0200	INFO	sync-task	Starting Sync Service
2022-10-20T08:22:44.307+0200	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2022-10-20T08:22:44.307+0200	INFO	systray	Starting sub-process with args systray --url http://localhost:3636
2022-10-20T08:22:44.307+0200	INFO	http-server	Starting HttpServer on localhost:3636
2022-10-20T08:22:44.308+0200	ERROR	systray	Error on sub process : fork/exec /home/johann/cells-sync: no such file or directory
2022-10-20T08:22:44.309+0200	INFO	systray	Starting sub-process with args systray --url http://localhost:3636
2022-10-20T08:22:44.309+0200	INFO	supervisor	cells-sync: Failed service '&control.SpawnedService{name:"systray", args:[]string{"systray", "--url", "http://localhost:3636"}, cancel:(context.CancelFunc)(nil), logCtx:(*context.valueCtx)(0xc0000d12f0)}' (1.000000 failures of 5.000000), restarting: true, error: fork/exec /home/johann/cells-sync: no such file or directory, stacktrace: goroutine 69 [running]:
github.com/thejerf/suture.(*Supervisor).runService.func1.1()
	/home/teamcity/go/pkg/mod/github.com/thejerf/[email protected]+incompatible/supervisor.go:636 +0x85
panic({0x1184040, 0xc0000d15c0})
	/usr/local/go/src/runtime/panic.go:884 +0x212
github.com/pydio/cells-sync/control.(*SpawnedService).Serve(0xc0001eb940)
	/opt/teamcity/agent/work/8ededc074aff6ace/src/cells-sync/control/spawned-service.go:65 +0x3f6
github.com/thejerf/suture.(*Supervisor).runService.func1()
	/home/teamcity/go/pkg/mod/github.com/thejerf/[email protected]+incompatible/supervisor.go:643 +0xaf
created by github.com/thejerf/suture.(*Supervisor).runService
	/home/teamcity/go/pkg/mod/github.com/thejerf/[email protected]+incompatible/supervisor.go:631 +0xa5

using an absolute path:

❯ /usr/local/bin/cells-sync start
2022-10-20T08:27:48.700+0200	INFO	update.service	Starting Updater Service
2022-10-20T08:27:48.700+0200	INFO	sync-task	Starting Sync Service
2022-10-20T08:27:48.700+0200	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2022-10-20T08:27:48.700+0200	INFO	systray	Starting sub-process with args systray --url http://localhost:3636
2022-10-20T08:27:48.700+0200	INFO	profiler	Exposing debug profiles for process 15752 on port 6060

2022-10-20T08:27:48.700+0200	INFO	http-server	Starting HttpServer on localhost:3636
2022-10-20T08:27:48.700+0200	ERROR	systray	Error on sub process : fork/exec /home/johann/usr/local/bin/cells-sync: no such file or directory
2022-10-20T08:27:48.700+0200	INFO	sync-task	fs:///home/johann/Cells is now connected
2022-10-20T08:27:48.700+0200	INFO	supervisor	cells-sync: Failed service '&control.SpawnedService{name:"systray", args:[]string{"systray", "--url", "http://localhost:3636"}, cancel:(context.CancelFunc)(nil), logCtx:(*context.valueCtx)(0xc00074f1d0)}' (1.000000 failures of 5.000000), restarting: true, error: fork/exec /home/johann/usr/local/bin/cells-sync: no such file or directory, stacktrace: goroutine 94 [running]:
github.com/thejerf/suture.(*Supervisor).runService.func1.1()
	/home/teamcity/go/pkg/mod/github.com/thejerf/[email protected]+incompatible/supervisor.go:636 +0x85
panic({0x1184040, 0xc000670810})
	/usr/local/go/src/runtime/panic.go:884 +0x212
github.com/pydio/cells-sync/control.(*SpawnedService).Serve(0xc0007581c0)
	/opt/teamcity/agent/work/8ededc074aff6ace/src/cells-sync/control/spawned-service.go:65 +0x3f6
github.com/thejerf/suture.(*Supervisor).runService.func1()
	/home/teamcity/go/pkg/mod/github.com/thejerf/[email protected]+incompatible/supervisor.go:643 +0xaf
created by github.com/thejerf/suture.(*Supervisor).runService
	/home/teamcity/go/pkg/mod/github.com/thejerf/[email protected]+incompatible/supervisor.go:631 +0xa5

using a relative command

❯ ../../../usr/local/bin/cells-sync start
2022-10-20T08:30:45.309+0200	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2022-10-20T08:30:45.309+0200	INFO	update.service	Starting Updater Service
2022-10-20T08:30:45.309+0200	INFO	sync-task	Starting Sync Service
2022-10-20T08:30:45.310+0200	INFO	systray	Starting sub-process with args systray --url http://localhost:3636
2022-10-20T08:30:45.309+0200	INFO	http-server	Starting HttpServer on localhost:3636
2022-10-20T08:30:45.309+0200	INFO	profiler	Exposing debug profiles for process 16037 on port 6060

2022-10-20T08:30:45.310+0200	INFO	sync-task	fs:///home/johann/Cells is now connected
2022-10-20T08:30:45.383+0200	INFO	systray	2022-10-20T08:30:45.383+0200	INFO	systray	Opened WS Connection

Observed using both bash and fish.

ERROR systray ... CONSOLE LOG [object Object]

I see a lot of of error lines like this:

2021-12-03T04:04:39.798+0100	ERROR	systray	http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:59308: CONSOLE LOG false undefined 0 1
2021-12-03T04:04:40.966+0100	ERROR	systray	http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:142706: CONSOLE LOG [object Object]
2021-12-03T04:11:58.415+0100	ERROR	systray	http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:142706: CONSOLE LOG [object Object]
2021-12-03T04:11:58.446+0100	ERROR	systray	http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:142706: CONSOLE LOG [object Object]
2021-12-03T04:13:23.660+0100	ERROR	systray	http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:142706: CONSOLE LOG [object Object]
2021-12-03T04:13:25.661+0100	ERROR	systray	http://localhost:3636/static/js/main.6aac3b50.chunk.js?__WB_REVISION__=7d6d77508e11a968d34e:1:142706: CONSOLE LOG [object Object]

What is the problem and how can it be fixed? Thank you very much!

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.