Hi Bruno,
Thank you for your advice.
So trying with the IP in the joplin app and in the APP_BASE_URL variable made it work on IOS devices as well as windows.
Here is the docker-compose file:

version: '3'

services:
    db:
        image: postgres:13.1
        volumes:
            - /DockerData/volumes/joplin/data/postgres:/var/lib/postgresql/data
        ports:
            - "5432:5432"
        restart: unless-stopped
        environment:
            - POSTGRES_PASSWORD=dKRgwCrkmPU
            - POSTGRES_USER=joplin
            - POSTGRES_DB=joplindb
    app:
        image: joplin/server:latest
        depends_on:
            - db
        ports:
            - "22300:22300"
        restart: unless-stopped
        environment:
            - APP_PORT=22300
            - APP_BASE_URL=http://192.168.0.10:22300
            - DB_CLIENT=pg
            - POSTGRES_PASSWORD=dKRgwCrkmPU
            - POSTGRES_DATABASE=joplindb
            - POSTGRES_USER=joplin
            - POSTGRES_PORT=5432
            - POSTGRES_HOST=db

Usually I never experience issues with windows clients (eg. cardav).
But still not working on macOS.

I tried behind a reverse proxy without luck.

Do you use a docker to run joplin-server ?
Just wondering how you can make it work as you use a public instance.
You probably use a certificate and then use the FQDN.
So you cannot use the IP in the docker-compose niether on the joplin-app, right ?

Here is my docker-compose with FQDN/SSL/selfsigned cert

version: '3'

services:
    reverse-proxy:
        image: nginx
        container_name: joplin-reverse-proxy
        restart: always
        volumes:
        - ./reverse-proxy/nginxSSL.conf:/etc/nginx/nginx.conf
        - ./reverse-proxy/selfsigned.crt:/etc/nginx/selfsigned.crt
        - ./reverse-proxy/selfsigned.key:/etc/nginx/selfsigned.key
        ports:
        - "443:443"
    db:
        image: postgres:13.1
        volumes:
            - ./data/postgres:/var/lib/postgresql/data
        ports:
            - "5432:5432"
        restart: unless-stopped
        environment:
            - POSTGRES_PASSWORD=dKRgwCrkmPU
            - POSTGRES_USER=joplin
            - POSTGRES_DB=joplindb
    app:
        image: joplin/server:latest
        depends_on:
            - db
        expose:
            - "22300"
        restart: unless-stopped
        environment:
            - APP_PORT=22300
            - APP_BASE_URL=https://myserver.local:443
            - DB_CLIENT=pg
            - POSTGRES_PASSWORD=dKRgwCrkmPU
            - POSTGRES_DATABASE=joplindb
            - POSTGRES_USER=joplin
            - POSTGRES_PORT=5432
            - POSTGRES_HOST=db


and the nginx conf file

events {

}

http {

  server {
    listen 443;
    ssl on;
    server_name myserver.local;
    ssl_certificate     /etc/nginx/selfsigned.crt;
    ssl_certificate_key /etc/nginx/selfsigned.key;

    add_header Strict-Transport-Security max-age=500; 

    location / {
      proxy_pass http://app:22300;
      proxy_redirect     off;
      proxy_set_header   Host $host;
      proxy_set_header   X-Real-IP $remote_addr;
      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header   X-Forwarded-Host $server_name;
      proxy_set_header   X-Forwarded-Proto https;   
    }
  }
}

Can you see anything wrong ? how is it compared to your configuration ?

what is this error (Code EBADF) , which occurs only with the macos version ?
-> bad file descriptor usually found when using node
...?