Cells Sync on UNRAID

I have installed the pydio cells docker on unraid ver 6.9.2 and it is working. I used a reverse proxy NginxProxyManager docker and generated a sub domain https://pydio,mydomain.com… I can access pydio cells WORKSPACES. I can upload and drag and drop without any connection errors.

Nginx Reverse Proxy Setup:

-------------------------------
pydio.mydomain.com
-------------------------------
server {
set $forward_scheme https;
set $server “mydomain.com”;
set $port 8080;

listen 8080;
listen [::]:8080;

listen 4443 ssl http2;
listen [::]:4443;

server_name pydio.mydomain.com;

Let’s Encrypt SSL
include conf.d/include/letsencrypt-acme-challenge.conf;
include conf.d/include/ssl-ciphers.conf;
ssl_certificate /etc/letsencrypt/live/npm-62/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/npm-62/privkey.pem;


CREATE TASK - using Cell Sync - THIS DOESN’T WORK! :hot_face:

Click on create a sync task and app opens requesting:

Cells Server (SSL) - Login to a new server - https://pydio.mydomain.com… I login with the admin account.

Cells Sync Pick a folder, returns a pink banner “server closed the stream without sending trailers”

REMINDERS: This is a Unraid/Docker build.
I can supply logs if needed - I am a newbie but work hard.

Hello @vmattaur

Assuming that this is your complete nginx reverse proxy config, I believe what you are missing is a directive about grpc, Cells-Sync uses grpc for some operations and Cells exposes some grpc, but it could be that you did not have that enabled in your reverse proxy.

To do that you must add the following line in your nginx conf:

location / {
        grpc_pass grpcs://localhost:8080;
    }

In this localhost is the host on which cells is running and 8080 is the port under which cells is bound.

What this will do is redirect all the grpc traffic that is in coming on your nginx to → Cells.

I took a long vacation with no tech in yellowstone, sorry I didn’t reply sooner. I haven’t tried the grpc but I know it’s on the right track… My to do list today was to learn all about it. Thanks and I’ll let you know how it goes

I reposted the nginx config below:

# ------------------------------------------------------------
# cloud.webmystics.com
# ------------------------------------------------------------

server {
  set $forward_scheme https;
  set $server         "domain.com";
  set $port           8080;

  listen 8080;
listen [::]:8080;

listen 4443 ssl http2;
listen [::]:4443;

  server_name sub.domain.com;

  # Let's Encrypt SSL
  include conf.d/include/letsencrypt-acme-challenge.conf;
  include conf.d/include/ssl-ciphers.conf;
  ssl_certificate /etc/letsencrypt/live/npm-3/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/npm-3/privkey.pem;

# Asset Caching
  include conf.d/include/assets.conf;

  # Block Exploits
  include conf.d/include/block-exploits.conf;

    # Force SSL
    include conf.d/include/force-ssl.conf;

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_http_version 1.1;

  access_log /data/logs/proxy-host-3_access.log proxy;
  error_log /data/logs/proxy-host-3_error.log warn;

  location / {

    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_http_version 1.1;
    
    # Proxy!
    include conf.d/include/proxy.conf;

    grpc_pass grpcs://localhost:8080;  **[I added the prpc here]**
    
  }

  # Custom
  include /data/nginx/custom/server_proxy[.]conf;
}

After adding the grpc server still “closes the stream without sending trailers” and NO folders are returned. I will read some prpc information I found in hopes I can figure things out, BUT appreciate any help on the subject. - TANKS

Hello, @vmattaur

Could you also share with me your current setup on Cells, what I mean is could you tell me what you have set when you run the command ./cells configure sites, I want to make sure that you also have TLS enabled on Cells (because we used grpcs instead of grpc).

Hello @vmattaur ,

could you try the following configuration with nginx,

    location / {
        if ($http_content_type = "application/grpc") {
            grpc_pass grpcs://cells:8080;
        }
        proxy_pass https://cells:8080;
    }