Linux sync connected to server but can't access files

Hello,

It looks like my problem is quite simmilar to post 2161and post 4429 (sadly can not link them here, sync-client>linux)

I am using the linux cells-sync (0.9.4),
my pydio cells (4.4.9) is hosted via docker and accessed via a cloudflare tunnel (8050 |-> 443 on example.url).

What works:

  • Android Sync client
  • Windows Sync client
  • Linux sync client: Connecting to server (login)

What is broken:

My docker setup:

services:
  pydio:
    image: lscr.io/linuxserver/pydio-cells
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - SERVER_IP=https://example.url  # Same as externalurl to fix linux sync client connect
      - EXTERNALURL=https://example.url:443
      - FILE__MYVAR=./.env
   # - CELLS_GRPC_EXTERNAL=8080
   # - CELLS_SITE_NO_TLS=1
    networks:
      - default
      - cloudflare
      - pydio-internal
    ports:
      - "8050:8080"  # https frontend
      - "8051:33060" # gRpc
    links:
      - "db"
    depends_on:
      - "db"
    volumes: # https://forum.pydio.com/t/cannot-add-storages-in-pydio-cells/4000
      - <sensitive_information_removed>

db:
  ...

networks:
  pydio-internal:
    internal: true

  cloudflare:
    external: true  # Cloudflare proxy
$ cat sync.log | tail -n 20
2025-01-28T23:32:26.730+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (4.999930 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc00083e240}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:26.730+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:26.730+0100	INFO	supervisor	Entering the backoff state.
2025-01-28T23:32:26.730+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (5.999895 failures of 5.000000), restarting: false, error: "{%!s(*control.StdInner=&{0xc0008727e0}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T22:39:56.015+0100	INFO	update.service	Starting Updater Service
2025-01-28T23:32:33.038+0100	ERROR	systray	http://localhost:3636/static/js/main.3fb97077.chunk.js?__WB_REVISION__=8fb4a698405c9655fc00:1:142766: CONSOLE LOG [object Object]
2025-01-28T23:32:45.503+0100	INFO	supervisor	Exiting backoff state.
2025-01-28T23:32:45.503+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.504+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (1.000000 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0005c2750}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.504+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.504+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (1.999993 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0008728a0}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.504+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.504+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (2.999981 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc00083e300}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.504+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.505+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (3.999960 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0005c2810}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.505+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.505+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (4.999935 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc00083e3c0}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.505+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.505+0100	INFO	supervisor	Entering the backoff state.
2025-01-28T23:32:45.505+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (5.999916 failures of 5.000000), restarting: false, error: "{%!s(*control.StdInner=&{0xc000872960}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]

Server logs display error (don’t know if that is related):
2025-01-28_pydio_403_server.png - Google Drive

My first time here, hope I described everything ok’ish.
I added the images as google drive links as I can not (yet) post images.

Greetings, L.

Hi, me again.

So I really tried to get this to work today and stumbled across post 5943
This is working for me after I had regenerated my local certificat.

I also specified a way to host pydio as http, you would need to add a second entry in cloudflare using http2 on your grpc port for pydio sync. Though using tls works for me so I would recommend using that.

Cloudflare (see above post):

  • Enabled gRPC:
    • Dashboard/Domain/Network/gRPC |-> On
  • Enable HTTP2,NoTLSVerify:
    • Dashboard/Zero Trust/Networks/Tunnels/Configure/Public Hostname/Edit/Create/Additional app settings/TLS |-> On (required type: https)

Local/Docker:

  • Allow port (tcp) via firewall
  • Docker:
  • Add --protocol http2 to cloudflare
    • using docker compose: cloudflare-tunnel-service > command: tunnel run --protocol http2 ...

My working compose file:

services:
  cloudflare-tunnel:
    container_name: cloudflare-tunnel
    image: cloudflare/cloudflared:latest
    restart: unless-stopped
    command: tunnel run --protocol http2
    env_file:
      # env requires: `TUNNEL_TOKEN=...` (also make this `chmod 600`)
      - ./envionment.env
    networks:
      - default
      - cloudflare

services:
  pydio:
    image: lscr.io/linuxserver/pydio-cells:latest
    hostname: pydio
    container_name: pydio
    restart: unless-stopped
    environment:
      # Linuxserver docs: https://docs.linuxserver.io/images/docker-pydio-cells/#docker-cli-click-here-for-more-info
      - PUID=1000
      - PGID=1000
#     - TZ=Europe/Berlin
      - SERVER_IP=0.0.0.0:8080
      - EXTERNALURL=https://cloudflare.domain
      - CELLS_LOG_DIR=/config/log
      - CELLS_WORKING_DIR=/config
      - CELLS_DATA=/config/data
      # Uncomment following env and grpc port to use http (no TLS)
#     - CELLS_BIND=0.0.0.0:8080
#     - CELLS_EXTERNAL=https://cloudflare.domain
#     - CELLS_NO_SSL=1
#     - CELLS_GRPC_EXTERNAL=50051 
    networks:
      - cloudflare
      - pydio
    ports:
      - "8080:8080"   # http (frontend)
#     - "50051:50051" # gRPC, cloudflare fix: https://forum.pydio.com/t/how-to-configure-pydio-cloudflare-tunnel-to-support-cellssync/5943/2
    depends_on:
      - "db"
    volumes: 
      # fix storage issues: https://forum.pydio.com/t/cannot-add-storages-in-pydio-cells/4000
      - ${PYDIO_ROOT}:/config
      - ${PYDIO_DATA}:/config/data
      - ${PYDIO_SHARED}:/config/shared-media:z # Shared media => use "existing data import"
    deploy:
      resources:
        limits:
          cpus: '2.0'  # max 100% on 2 cores
          memory: 2G

  mysql:
    image: mysql:latest
    hostname: pydio-db
    container_name: pydio-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: ${MSQL_PWD}
      MYSQL_DATABASE: ${PYDIO_DB}
      MYSQL_USER: ${PYDIO_DB_USR}
      MYSQL_PASSWORD: ${PYDIO_DB_PWD}
    command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci]
    volumes:
      - ${MYSQL_DATA}:/var/lib/mysql
    networks:
      - pydio

networks:
  cloudflare:
    name: cloudflare
    internal: true

  pydio:
    name: pydio
    internal: true

Note: When I had cert issues, I regenerated the config after deleting config/certs, then restart the docker container.

$ docker exec -it --user=1000 pydio bash
1000@pydio:/# cells configure sites
The following sites are currently defined:
+---+----------------------+-------------+------------------------+
| # |       BIND(S)        |     TLS     |      EXTERNAL URL      |
+---+----------------------+-------------+------------------------+
| 0 | https://0.0.0.0:8080 | Self-signed | https://cloudflare.dom |
+---+----------------------+-------------+------------------------+
> Quit