ddvk / rmfakecloud

host your own cloud for the remarkable
GNU Affero General Public License v3.0
771 stars 62 forks source link

Network error while uploading document #136

Closed GrayJackal closed 1 month ago

GrayJackal commented 2 years ago

Hi,

I have a docker running on my Qnap with rmfakecloud. I used toltec to install rmfakecloud on the device. The docker IP is http://192.168.4.178:3000/, which I set with the rmfakecloudctl set-upstream http://192.168.4.178:3000.

On docker I left things as default, just setup the email and the JWT token.

I can login and see my user on the device. But the sync and email is not working. This is what I'm getting with QT_LOGGING_RULES=rm.network.*=true xochitl | grep -A3 QUrl rm.network.client Http::PUT QUrl("https://local.appspot.com:443/document-storage/json/2/upload/request") rm.network.client Http::PUT QUrl("http://192.168.4.178/storage/eyJhbGcguiJIUzI1NiIsImtpZaB6IjEiLCJ0eXAiOTNju1QifQ.eyJkb2N1bWVudElkIjoiNTczOWMznaNaZjRmMi00mNjLWJjOTAvSviszNjU3YzcyIiwidXNlcklkIjoiQnJ1bm9Fc3RldmVzIiwiYXVkIjoic3RvcmFnZSIsImV4cCI6MTY0MjU1MTQ2OX0.-ZQWz3r-5mrwd3ZhEEGCwJALi5HzI3jVJCfpoCSZt3M") rm.network.document.uploaderError during upload of file "/home/root/.local/share/remarkable/xochitl/84156c1-b4c2-55cc-b996-bcfd4d7777c72_0.zip" "Connection refused"

I can see that it's trying to access https://local.appspot.com:443, I don't think I understand what this is and how it works, but wget -qO- https://local.appspot.com doesn't return anything on the device. I guess my issue is related to this but I don't really understand how this part of rmfakecloud is supposed to work and how I need to set it up I guess. I tried setting the STORAGE_URL to http://192.168.4.178:3000 on the docker image but that didn't work either

GrayJackal commented 2 years ago

systemctl status proxy rmfake-proxy[196]: 2022/01/19 11:24:38 cert-file=/home/root/rmfakecloud/proxy.bundle.crt key-file=/home/root/rmfakecloud/proxy.key listen-addr=:443 upstream-url=http://192.168.4.178:3000

wget -qO- https://local.appspot.com returns nothing and ping local.appspot.com pings 127.0.0.1

GrayJackal commented 2 years ago

so I was wondering if the issue was related to not having https, so I did the following changes,

On the docker image I now get TLS handshake error from 192.168.4.71:57934: remote error: tls: bad certificate

systemctl status proxy now returns:

Jan 19 16:29:29 reMarkable rmfake-proxy[6581]: 2022/01/19 16:29:29 cert-file=/home/root/rmfakecloud/proxy.bundle.crt key-file=/home/root/rmfakecloud/proxy.key listen-addr=:443 upstream-url=https://192.168.4.178:3000/
Jan 19 16:29:36 reMarkable rmfake-proxy[6581]: 2022/01/19 16:29:36 http: proxy error: x509: cannot validate certificate for 192.168.4.178 because it doesn't contain any IP SANs

cannot wget from either the direct IP, or https://local.appspot.com/

openssl s_client -connect localhost:443 -verify_hostname local.appspot.com -CAfile /etc/ssl/certs/ca-certificates.crt 2>&1 | grep Verify

Verify return code: 0 (ok)
    Verify return code: 0 (ok)

systemctl status proxy http: proxy error: x509: cannot validate certificate for 192.168.4.178 because it doesn't contain any IP SANs

ddvk commented 2 years ago

I have a docker running on my Qnap with rmfakecloud. I used toltec to install rmfakecloud on the device. The docker IP is http://192.168.4.178:3000/, which I set with the rmfakecloudctl set-upstream http://192.168.4.178:3000.

On docker I left things as default, just setup the email and the JWT token.

I can login and see my user on the device. But the sync and email is not working. This is what I'm getting with QT_LOGGING_RULES=rm.network.*=true xochitl | grep -A3 QUrl `rm.network.client Http::PUT QUrl("https://local.appspot.com:443/document-storage/json/2/upload/request") rm.network.client Http::PUT QUrl("http://192.168.4.178/storage/eyJhbGcguiJIUzI1NiIsImtpZaB6IjEiLCJ0eXAiOTNju1QifQ.eyJkb2N1bWVudElkIjoiNTczOWMzn

for https you should use fqdn (domain name) for the docker host and a certificate that matches that name. the proxy on the remarkable doesn't trust your docker cert in the situation you described. local.appspot.com resolves to 127.0.0.1 on the tablet, this is hard coded in the hosts file.

STORAGE_URL to http://192.168.4.178:3000 on the docker image but that didn't work either that was correct way and should have worked, how did you set it and did you restart the container. you could have omitted the port because your log from the tablet shows: QUrl("http://192.168.4.178/storage/ e.g. missing the :3000 port

try to run it without https first.