ddvk / rmfakecloud

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

Connection works but nothing ever syncs #276

Closed nickian closed 7 months ago

nickian commented 7 months ago

I'm running 3.8.2 on the device, so I used the rmfakecloud-proxy script to set it up on the device. I'm running the server with Docker. The site works fine in my browser and on the device when I do a "check sync" all checks out just fine. However, nothing is ever synced up to the server. Also, if I drop a file on the server, it never is downloaded onto the device.

I ran through the troubleshooting section. Didn't look like there were any errors.

The only thing I noticed, not sure if it's related, is on the installer.sh script, I noticed this output on the last line:

sed: -i requires an argument

root@reMarkable:~# ./installer.sh install
Extracting embedded binary...
Failed to stop proxy.service: Unit proxy.service not loaded.
~/rmfakecloud ~
CA exists
Private key exists
Pub key exists
crt exists
Clearing symlinks in /etc/ssl/certs...
done.
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Enter your own cloud url [http(s)://somehost:port] >https://rm.mydomain.com
Setting cloud sync to: https://rm.mydomain.com
Created symlink /etc/systemd/system/multi-user.target.wants/proxy.service → /etc/systemd/system/proxy.service.
Patching /etc/hosts
Stoping xochitl..
Fixing sync status...
sed: -i requires an argument
Eeems commented 7 months ago

I would recommend moving this issue to rmfakecloud-proxy as it's an issue with that install script, and not rmfakecloud. You'll find the line in question here: https://github.com/ddvk/rmfakecloud-proxy/blob/fbd6f6f16a0818bc8afae6002933c12594536734/scripts/installer.sh#L22 that said, it should only error if ~/.local/share/remarkable/xochitl/*.metadata doesn't match any files. You'll want to check the server logs, and you likely are encountering #270

nickian commented 7 months ago

I do see a bunch of these lines in my Nginx log:

2023/11/28 12:27:32 [error] 3727894#3727894: *34038 connect() failed (111: Unknown error) while connecting to upstream, client: 192.168.50.19, server: rm.mydomain.com, request: "GET /integrations/v1/ HTTP/2.0", upstream: "http://127.0.0.1:3018/integrations/v1/", host: "rm.mydomain.com"

Where is it getting "127.0.0.1:3018" from? I am running the Docker app on 3018, but shouldn't this line be https://rm.mydomain.com/integrations/v1/? Maybe I missed something in the configuration.

Eeems commented 7 months ago

Are the rmfakecloud logs outputting anything? How is your nginx instance configured? I would assume that you have either replace the real hostname in the log output with rm.mydomain.com, or have set that up as a valid hostname for your nginx server?

nickian commented 7 months ago

I don't see any errors in the logs when I look at docker logs rmfakecloud. Also, I'm able to email myself a document through my SMTP server just fine. Files just won't sync.

My Nginx config file for the domain looks like this:

server {
    listen      80;
    listen [::]:80;
    server_name rm.mydomain.com;
    return 301 https://$server_name:443$request_uri;
}

server {

    listen 443 ssl;
    server_name rm.mydomain.com;

    client_max_body_size 2G;
    chunked_transfer_encoding on;
    fastcgi_request_buffering on;

    error_log /home/nick/sites/rm.mydomain.com/log/error.log;
    access_log /home/nick/sites/rm.mydomain.com/log/access.log;

    ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; 
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass http://localhost:3018;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 1d;
        proxy_send_timeout 1d;
    }
}

Could this have anything to do with the fact that I was running rmfakecloud on 2.15 previously? I updated to 3.8.2 without removing Toltec first. Not sure if that matters.

Eeems commented 7 months ago

I don't see any errors in the logs when I look at docker logs rmfakecloud. Also, I'm able to email myself a document through my SMTP server just fine. Files just won't sync.

Okay, so the rmfakecloud UI itself works when you navigate to it? So rm.mydomain.com is valid for the nginx host?

Could this have anything to do with the fact that I was running rmfakecloud on 2.15 previously? I updated to 3.8.2 without removing Toltec first. Not sure if that matters.

There is no need to remove toltec before updating: https://remarkable.guide/guide/software/toltec.html#reenable-toltec-after-a-system-upgrade

What version of rmfakecloud are you running? Have you made sure to update to the release from last week that adds paths for 3.8.2?

nickian commented 7 months ago

Yes, the web interface works fine. After creating my user, I can log in and upload a file. It just never syncs down to the device. Doing the code and everything to pair seems to work fine. Passes the sync check on the device.

I do see this at the bottom when I run docker exec rmfakecloud rmfakecloud-docker:

time="2023-11-29T03:24:16Z" level=info msg="STORAGE_URL (Cloud URL): https://rm.mydomain.com"
time="2023-11-29T03:24:16Z" level=info msg="Data: /data"
time="2023-11-29T03:24:16Z" level=info msg="Listening on port: 3000"
time="2023-11-29T03:24:16Z" level=info msg="Using plain HTTP"
time="2023-11-29T03:24:16Z" level=fatal msg="listen: listen tcp :3000: bind: address already in use\n"

Not sure if this is relevant.

I believe I pulled the latest docker image by doing, so I'm pretty sure it's running the most recent version. I don't know if there's a command to list the actual version, but when I do docker images, I see it as this:

ddvk/rmfakecloud                             latest      6db75e70c99d   10 days ago    27MB

The device is running 3.8.2.1965.

Eeems commented 7 months ago

Yes, the web interface works fine. After creating my user, I can log in and upload a file. It just never syncs down to the device. Doing the code and everything to pair seems to work fine. Passes the sync check on the device.

I do see this at the bottom when I run docker exec rmfakecloud rmfakecloud-docker:

time="2023-11-29T03:24:16Z" level=info msg="STORAGE_URL (Cloud URL): https://rm.mydomain.com"
time="2023-11-29T03:24:16Z" level=info msg="Data: /data"
time="2023-11-29T03:24:16Z" level=info msg="Listening on port: 3000"
time="2023-11-29T03:24:16Z" level=info msg="Using plain HTTP"
time="2023-11-29T03:24:16Z" level=fatal msg="listen: listen tcp :3000: bind: address already in use\n"

Not sure if this is relevant.

The port error is of concern, you probably have more than one instance running. Perhaps you have an old container still running? That or another container is binding to that port as well?

I believe I pulled the latest docker image by doing, so I'm pretty sure it's running the most recent version. I don't know if there's a command to list the actual version, but when I do docker images, I see it as this:

ddvk/rmfakecloud                             latest      6db75e70c99d   10 days ago    27MB

The device is running 3.8.2.1965.

That does appear to be the correct image, you can always use the specific version tag instead of latest. You can find the list of tags here: https://hub.docker.com/r/ddvk/rmfakecloud/tags

nickian commented 7 months ago

I have stuck with the same port as the previous config (3018), so I was never running it on port 3000. I thought 3000 was the internal port that Docker was using.

On the host machine, I run sudo lsof -i :3000 and get no result.

I even tried just now doing docker compose down --rmi all -v and then re-doing docker compose up -d to recreate everything. Re-created my user and paired again. Same result. Connection, but no files sync.

It seems like maybe it's an issue on the device, not the server?

nickian commented 7 months ago

On the device:

root@reMarkable:~# systemctl status xochitl
● xochitl.service - reMarkable main application
     Loaded: loaded (/lib/systemd/system/xochitl.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-11-28 16:32:57 MST; 4h 14min ago
   Main PID: 1985 (xochitl)
     CGroup: /system.slice/xochitl.service
             └─ 1985 /usr/bin/xochitl --system

Nov 28 20:43:04 reMarkable xochitl[1985]: 03:43:04.298 rm.wifi                  Scanning: true
Nov 28 20:43:08 reMarkable xochitl[1985]: 03:43:08.128 rm.wifi                  Scanning: false
Nov 28 20:43:28 reMarkable xochitl[1985]: 03:43:28.449 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
Nov 28 20:43:28 reMarkable xochitl[1985]: 03:43:28.452 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
Nov 28 20:43:28 reMarkable xochitl[1985]: 03:43:28.532 rm.network.usertoken     Scheduled token update at 2023-11-28 23:38:28, 10499468ms from now (scheduleUpdate /__w/xochitl/xochitl/src/network/src/usertoken.cpp:139)
Nov 28 20:43:28 reMarkable xochitl[1985]: 03:43:28.532 rm.network.usertoken     UserToken: setting a new userToken (eyJhbGciOiJIUzI1NiIs...) (setUserToken /__w/xochitl/xochitl/src/network/src/usertoken.cpp:74)
Nov 28 20:43:28 reMarkable xochitl[1985]: 03:43:28.562 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
Nov 28 20:43:28 reMarkable xochitl[1985]: 03:43:28.563 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
Nov 28 20:43:28 reMarkable xochitl[1985]: 03:43:28.569 rm.network.notifications Notifications socket is not OK: UnconnectedState (checkIfShouldConnect /__w/xochitl/xochitl/src/notifications/src/notifications.cpp:190)
Nov 28 20:47:19 reMarkable CSLNetworkManager[1985]: Network information has changed, connectedToWifi = true
root@reMarkable:~# systemctl status proxy
● proxy.service - reverse proxy
     Loaded: loaded (/etc/systemd/system/proxy.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2023-11-28 16:32:57 MST; 4h 15min ago
   Main PID: 1972 (rmfake-proxy)
     CGroup: /system.slice/proxy.service
             └─ 1972 /home/root/rmfakecloud/rmfake-proxy -cert /home/root/rmfakecloud/proxy.bundle.crt -key /home/root/rmfakecloud/proxy.key https://rm.mydomain.com

Nov 28 16:32:57 reMarkable systemd[1]: Started reverse proxy.
Nov 28 16:32:57 reMarkable rmfake-proxy[1972]: 2023/11/28 16:32:57 cert-file=/home/root/rmfakecloud/proxy.bundle.crt key-file=/home/root/rmfakecloud/proxy.key listen-addr=:443 upstream-url=https://rm.mydomain.com
root@reMarkable:~#
Eeems commented 7 months ago

Okay, so I'm going to ask this a third time, is rm.mydomain.com a valid domain for your nginx host, or are you just replacing the real value with that?

nickian commented 7 months ago

Yes, sorry it is a valid domain. I have just redacted the actual domain. It has a valid wildcard SSL from certbot as well. Everything works fine in the browser.

Eeems commented 7 months ago

The port being in use in the container does still seem suspect to me. I would expect to be able to get log output if it was actually serving content.

nickian commented 7 months ago

Do you know how I can monitor the correct log on the device? What should I be looking at when it tries to connect to the rmfakecloud server? I don't see any activity when viewing these in a terminal while hitting the "check sync" button on the device.

Should there be more activity in this log when I make changes on the device?

root@reMarkable:~/rmfakecloud-proxy/dist# journalctl -u proxy -f
Nov 29 13:43:03 reMarkable systemd[1]: Started reverse proxy.
Nov 29 13:43:03 reMarkable rmfake-proxy[2132]: 2023/11/29 13:43:03 cert-file=/home/root/rmfakecloud/proxy.bundle.crt key-file=/home/root/rmfakecloud/proxy.key listen-addr=:443 upstream-url=https://rm.mydomain.com

Also in my env file, I have this: RM_TRUST_PROXY=true. I'm not actually sure what this does.

I also tried changing the internal docker port to 3001, ended up with the same line in the log output (at the bottom):

root@home: docker exec rmfakecloud /rmfakecloud-docker
Log level: debug
time="2023-11-29T20:54:45Z" level=warning msg="RM_HTTPS_COOKIE is not set, use only when not using https!"
time="2023-11-29T20:54:45Z" level=info msg="Version: v0.0.16"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached."
time="2023-11-29T20:54:45Z" level=info
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] [WARNING] Running in \"debug\" mode. Switch to \"release\" mode in production."
time="2023-11-29T20:54:45Z" level=info msg=" - using env:\texport GIN_MODE=release"
time="2023-11-29T20:54:45Z" level=info msg=" - using code:\tgin.SetMode(gin.ReleaseMode)"
time="2023-11-29T20:54:45Z" level=info
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /discovery/v1/endpoints   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func1 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /health                   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func2 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /token/json/2/device/new  --> github.com/ddvk/rmfakecloud/internal/app.(*App).newDevice-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /token/json/2/user/new    --> github.com/ddvk/rmfakecloud/internal/app.(*App).newUserToken-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /token/json/2/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /token/json/3/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /service/json/1/:service  --> github.com/ddvk/rmfakecloud/internal/app.(*App).locateService-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func3 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func4 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /v1/reports               --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func5 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /notifications/ws/json/1  --> github.com/ddvk/rmfakecloud/internal/app.(*App).connectWebSocket-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/request --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadRequest-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/update-status --> github.com/ddvk/rmfakecloud/internal/app.(*App).updateStatus-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDocument-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /document-storage/json/2/docs --> github.com/ddvk/rmfakecloud/internal/app.(*App).listDocuments-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /api/v2/document          --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /share/v1/email           --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /api/v1/page              --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /convert/v1/handwriting   --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /doc/v1/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDoc-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDocV2-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] OPTIONS /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func6 (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/folders/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsList-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file/metadata --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetMetadata-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetFile-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /integrations/v1/:integrationid/files/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsUpload-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /integrations/v1/         --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrations-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /api/v1/sync-complete     --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncComplete-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /sync/v2/sync-complete    --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncCompleteV2-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncGetRootV3-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] PUT    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncUpdateRootV3-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageRead-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] PUT    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageWrite-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /favicon.ico              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func1 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /robots.txt               --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func2 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /pdf.worker.js            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func3 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /ui/api/register          --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).register-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /ui/api/login             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).login-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /ui/api/logout            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func5 (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] HEAD   /ui/api/                  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func6 (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /ui/api/sync              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func7 (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /ui/api/newcode           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /ui/api/profile           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /ui/api/changePassword    --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /ui/api/changeEmail       --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).listDocuments-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocument-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /ui/api/documents/upload  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createDocument-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] DELETE /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteDocument-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] PUT    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateDocument-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /ui/api/folders           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createFolder-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid/metadata --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocumentMetadata-fm (5 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getUser-fm (6 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] DELETE /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteUser-fm (6 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] PUT    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateUser-fm (6 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] POST   /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createUser-fm (6 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getAppUsers-fm (6 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadDocument-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] PUT    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadDocument-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] GET    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadBlob-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="[GIN-debug] PUT    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadBlob-fm (4 handlers)"
time="2023-11-29T20:54:45Z" level=info msg="STORAGE_URL (Cloud URL): https://rm.mydomain.com"
time="2023-11-29T20:54:45Z" level=info msg="Data: /data"
time="2023-11-29T20:54:45Z" level=info msg="Listening on port: 3001"
time="2023-11-29T20:54:45Z" level=info msg="Using plain HTTP"
time="2023-11-29T20:54:45Z" level=fatal msg="listen: listen tcp :3001: bind: address already in use\n"
Eeems commented 7 months ago

Do you know how I can monitor the correct log on the device? What should I be looking at when it tries to connect to the rmfakecloud server? I don't see any activity when viewing these in a terminal while hitting the "check sync" button on the device.

Depending on your OS version, and if you use toltec or not, it would be one of these:

journalctl -fau sync
journalctl -fau rm-sync
journalctl -fau manual-sync

That said, you already know that your device is connecting to something, and that your proxy is proxying to something, it's just that you aren't seeing anything in the rmfakecloud logs other than it failed to bind to the port as it's already in use. So I do think that you should be focused on resolving that first.

Should there be more activity in this log when I make changes on the device?

I don't believe the proxy outputs that much by default. You'd have to look into how it works to increase its log verbosity.

Also in my env file, I have this: RM_TRUST_PROXY=true. I'm not actually sure what this does.

https://ddvk.github.io/rmfakecloud/install/configuration/ explains what it does. Since you are using nginx to proxy stuff, you probably should use it. I would also recommend increasing the log level here until you resolve this.

I also tried changing the internal docker port to 3001, ended up with the same line in the log output (at the bottom):

Have you tried a higher port number? It could be that your setup doesn't allow non-root users to bind to lower port numbers. Without knowing more about your setup I can't say for sure.

nickian commented 7 months ago

Ok, thanks.

I tried changing the port, still the same message. Isn't this the internal port? So there is a conflict inside the docker container itself? The container is pretty minimal so I can't even docker exec /bin/bash into it to check.

I also have had LOGLEVEL=debug this whole time. The journalctl logs aren't revealing anything at all. I'm at a loss.

Are you successfully syncing with Version 3.8.3.1965 ?

Eeems commented 7 months ago

Ok, thanks.

I tried changing the port, still the same message. Isn't this the internal port? So there is a conflict inside the docker container itself? The container is pretty minimal so I can't even docker exec /bin/bash into it to check.

Correct, the container just contains the rmfakecloud executables, so there is no shell to run. What did you try changing the port to?

I also have had LOGLEVEL=debug this whole time. The journalctl logs aren't revealing anything at all. I'm at a loss.

Are you successfully syncing with Version 3.8.3.1965 ?

No, I'm still on 2.15.1. Did you mean 3.8.2.1965? 3.8.3 doesn't exist. If so, others have reported it working after the changes in the latest release.

nickian commented 7 months ago

What did you try changing the port to?

I tried port 49155

Are you successfully syncing with Version 3.8.3.1965 ?

Oops, yes, that was a typo. I meant version 3.8.2.1965.

Eeems commented 7 months ago

So the device logs don't have any errors in them, and the rmfakecloud logs don't say anything other than the port is in use?

Have you made sure there is no other rmfakecloud instance running on the host?

nickian commented 7 months ago

I'm certain there is not another instance running. I tried spinning this up on a Digital Ocean server just to see if it was something weird going on with my home server, but I ran across the same issue.

On the device, these are the logs I see:

Device

This command:

systemctl stop xochitl
QT_LOGGING_RULES=rm.network.*=true xochitl | grep -A3 QUrl

Gives this:

debug: 2023-11-09T14:56:06Z tags/releases/3.8.2-device-rc 01a902f
debug: we're running on an epaper device
[2023-11-29 19:17:20.691] [CSLNetworkManager] [info] Waiting for netlink thread to start
[2023-11-29 19:17:20.694] [CSLNetworkManager] [info] Network information has changed, connectedToWifi = true
[2023-11-29 19:17:20.694] [CSLNetworkManager] [info] Netlink thread is ready

This: journalctl -u proxy

Shows this:

Nov 29 18:47:47 reMarkable systemd[1]: Started reverse proxy.
Nov 29 18:47:47 reMarkable rmfake-proxy[3265]: 2023/11/29 18:47:47 cert-file=/home/root/rmfakecloud/proxy.bundle.crt key-file=/home/root/rmfakecloud/proxy.key listen-addr=:443 upstream-url=https://rm.mydomain.com

This: journalctl -fau rm-sync

Shows this:

Nov 29 19:13:50 reMarkable rm-sync[3424]: rm.sync.service: starting Synchronizer thread, prio 0 (from 7)
Nov 29 19:17:12 reMarkable systemd[1]: Stopping reMarkable Document Sync...
Nov 29 19:17:12 reMarkable systemd[1]: rm-sync.service: Deactivated successfully.
Nov 29 19:17:12 reMarkable systemd[1]: Stopped reMarkable Document Sync.
Nov 29 19:18:35 reMarkable systemd[1]: Started reMarkable Document Sync.
Nov 29 19:18:35 reMarkable rm-sync[3514]: Lock in temp location
Nov 29 19:18:35 reMarkable rm-sync[3514]: Installing crash handler
Nov 29 19:18:35 reMarkable rm-sync[3514]: installed crash handler
Nov 29 19:18:35 reMarkable rm-sync[3514]: Running service...
Nov 29 19:18:35 reMarkable rm-sync[3514]: rm.sync.service: starting Synchronizer thread, prio 0 (from 7)

These don't show anything.

journalctl -fau sync
journalctl -fau manual-sync

Are there any other logs I should look at?

Server

This: docker logs rmfakecloud. Shows this:

Log level: debug
time="2023-11-30T01:40:03Z" level=warning msg="RM_HTTPS_COOKIE is not set, use only when not using https!"
time="2023-11-30T01:40:03Z" level=info msg="Version: v0.0.16"
time="2023-11-30T01:40:03Z" level=warning msg="No users found, the first login will create a user"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached."
time="2023-11-30T01:40:03Z" level=info
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] [WARNING] Running in \"debug\" mode. Switch to \"release\" mode in production."
time="2023-11-30T01:40:03Z" level=info msg=" - using env:\texport GIN_MODE=release"
time="2023-11-30T01:40:03Z" level=info msg=" - using code:\tgin.SetMode(gin.ReleaseMode)"
time="2023-11-30T01:40:03Z" level=info
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /discovery/v1/endpoints   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func1 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /health                   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func2 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /token/json/2/device/new  --> github.com/ddvk/rmfakecloud/internal/app.(*App).newDevice-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /token/json/2/user/new    --> github.com/ddvk/rmfakecloud/internal/app.(*App).newUserToken-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /token/json/2/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /token/json/3/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /service/json/1/:service  --> github.com/ddvk/rmfakecloud/internal/app.(*App).locateService-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func3 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func4 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /v1/reports               --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func5 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /notifications/ws/json/1  --> github.com/ddvk/rmfakecloud/internal/app.(*App).connectWebSocket-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/request --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadRequest-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/update-status --> github.com/ddvk/rmfakecloud/internal/app.(*App).updateStatus-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDocument-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /document-storage/json/2/docs --> github.com/ddvk/rmfakecloud/internal/app.(*App).listDocuments-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /api/v2/document          --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /share/v1/email           --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /api/v1/page              --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /convert/v1/handwriting   --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /doc/v1/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDoc-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDocV2-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] OPTIONS /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func6 (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/folders/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsList-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file/metadata --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetMetadata-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetFile-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /integrations/v1/:integrationid/files/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsUpload-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /integrations/v1/         --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrations-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /api/v1/sync-complete     --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncComplete-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /sync/v2/sync-complete    --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncCompleteV2-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncGetRootV3-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] PUT    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncUpdateRootV3-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageRead-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] PUT    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageWrite-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /favicon.ico              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func1 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /robots.txt               --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func2 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /pdf.worker.js            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func3 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /ui/api/register          --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).register-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /ui/api/login             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).login-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /ui/api/logout            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func5 (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] HEAD   /ui/api/                  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func6 (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /ui/api/sync              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func7 (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /ui/api/newcode           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /ui/api/profile           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /ui/api/changePassword    --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /ui/api/changeEmail       --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).listDocuments-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocument-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /ui/api/documents/upload  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createDocument-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] DELETE /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteDocument-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] PUT    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateDocument-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /ui/api/folders           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createFolder-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid/metadata --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocumentMetadata-fm (5 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getUser-fm (6 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] DELETE /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteUser-fm (6 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] PUT    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateUser-fm (6 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] POST   /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createUser-fm (6 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getAppUsers-fm (6 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadDocument-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] PUT    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadDocument-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] GET    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadBlob-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="[GIN-debug] PUT    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadBlob-fm (4 handlers)"
time="2023-11-30T01:40:03Z" level=info msg="STORAGE_URL (Cloud URL): https://rm.mydomain.com"
time="2023-11-30T01:40:03Z" level=info msg="Data: /data"
time="2023-11-30T01:40:03Z" level=info msg="Listening on port: 3000"
time="2023-11-30T01:40:03Z" level=info msg="Using plain HTTP"
time="2023-11-30T01:40:21Z" level=info msg="Stopping the service..."
time="2023-11-30T01:40:21Z" level=info msg=Stopped
Log level: debug
time="2023-11-30T01:40:21Z" level=warning msg="RM_HTTPS_COOKIE is not set, use only when not using https!"
time="2023-11-30T01:40:21Z" level=info msg="Version: v0.0.16"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached."
time="2023-11-30T01:40:21Z" level=info
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] [WARNING] Running in \"debug\" mode. Switch to \"release\" mode in production."
time="2023-11-30T01:40:21Z" level=info msg=" - using env:\texport GIN_MODE=release"
time="2023-11-30T01:40:21Z" level=info msg=" - using code:\tgin.SetMode(gin.ReleaseMode)"
time="2023-11-30T01:40:21Z" level=info
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /discovery/v1/endpoints   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func1 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /health                   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func2 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /token/json/2/device/new  --> github.com/ddvk/rmfakecloud/internal/app.(*App).newDevice-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /token/json/2/user/new    --> github.com/ddvk/rmfakecloud/internal/app.(*App).newUserToken-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /token/json/2/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /token/json/3/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /service/json/1/:service  --> github.com/ddvk/rmfakecloud/internal/app.(*App).locateService-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func3 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func4 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /v1/reports               --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func5 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /notifications/ws/json/1  --> github.com/ddvk/rmfakecloud/internal/app.(*App).connectWebSocket-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/request --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadRequest-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/update-status --> github.com/ddvk/rmfakecloud/internal/app.(*App).updateStatus-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDocument-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /document-storage/json/2/docs --> github.com/ddvk/rmfakecloud/internal/app.(*App).listDocuments-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /api/v2/document          --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /share/v1/email           --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /api/v1/page              --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /convert/v1/handwriting   --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /doc/v1/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDoc-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDocV2-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] OPTIONS /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func6 (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/folders/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsList-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file/metadata --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetMetadata-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetFile-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /integrations/v1/:integrationid/files/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsUpload-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /integrations/v1/         --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrations-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /api/v1/sync-complete     --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncComplete-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /sync/v2/sync-complete    --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncCompleteV2-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncGetRootV3-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] PUT    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncUpdateRootV3-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageRead-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] PUT    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageWrite-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /favicon.ico              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func1 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /robots.txt               --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func2 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /pdf.worker.js            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func3 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /ui/api/register          --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).register-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /ui/api/login             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).login-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /ui/api/logout            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func5 (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] HEAD   /ui/api/                  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func6 (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /ui/api/sync              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func7 (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /ui/api/newcode           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /ui/api/profile           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /ui/api/changePassword    --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /ui/api/changeEmail       --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).listDocuments-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocument-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /ui/api/documents/upload  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createDocument-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] DELETE /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteDocument-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] PUT    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateDocument-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /ui/api/folders           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createFolder-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid/metadata --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocumentMetadata-fm (5 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getUser-fm (6 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] DELETE /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteUser-fm (6 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] PUT    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateUser-fm (6 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] POST   /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createUser-fm (6 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getAppUsers-fm (6 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadDocument-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] PUT    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadDocument-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] GET    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadBlob-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="[GIN-debug] PUT    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadBlob-fm (4 handlers)"
time="2023-11-30T01:40:21Z" level=info msg="STORAGE_URL (Cloud URL): https://rm.mydomain.com"
time="2023-11-30T01:40:21Z" level=info msg="Data: /data"
time="2023-11-30T01:40:21Z" level=info msg="Listening on port: 3000"
time="2023-11-30T01:40:21Z" level=info msg="Using plain HTTP"
time="2023-11-30T01:40:23Z" level=info msg=/login
time="2023-11-30T01:40:23Z" level=info msg="[GIN] 2023/11/30 - 01:40:23 | 200 |      128.73µs |      172.29.0.1 | GET      \"/login\""
time="2023-11-30T01:40:23Z" level=info msg="[GIN] 2023/11/30 - 01:40:23 | 200 |     884.048µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:40:23Z" level=info msg="[GIN] 2023/11/30 - 01:40:23 | 200 |    1.219931ms |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:40:23Z" level=info msg="[GIN] 2023/11/30 - 01:40:23 | 200 |       126.4µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:40:29Z" level=debug msg="cookie expires after: 24h0m0s"
time="2023-11-30T01:40:29Z" level=info msg="[GIN] 2023/11/30 - 01:40:29 | 200 |   10.690487ms |      172.29.0.1 | POST     \"/ui/api/login\""
time="2023-11-30T01:40:29Z" level=info msg="[GIN] 2023/11/30 - 01:40:29 | 200 |     115.901µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:40:31Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:40:31Z" level=info msg="[GIN] 2023/11/30 - 01:40:31 | 200 |      83.427µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:40:31Z" level=info msg="[GIN] 2023/11/30 - 01:40:31 | 200 |     478.947µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:40:33Z" level=info msg="[GIN] 2023/11/30 - 01:40:33 | 200 |      95.535µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:40:33Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:40:33Z" level=info msg="[GIN] 2023/11/30 - 01:40:33 | 200 |     274.148µs |      172.29.0.1 | GET      \"/ui/api/users\""
time="2023-11-30T01:40:33Z" level=info msg="[GIN] 2023/11/30 - 01:40:33 | 200 |     160.394µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:40:34Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:40:34Z" level=info msg="[GIN] 2023/11/30 - 01:40:34 | 200 |     228.003µs |      172.29.0.1 | GET      \"/ui/api/newcode\""
time="2023-11-30T01:42:25Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:42:25Z" level=info msg="[GIN] 2023/11/30 - 01:42:25 | 200 |     557.329µs |      172.29.0.1 | GET      \"/ui/api/newcode\""
time="2023-11-30T01:43:27Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:43:27Z" level=info msg="[GIN] 2023/11/30 - 01:43:27 | 200 |     263.994µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:43:27Z" level=info msg="[GIN] 2023/11/30 - 01:43:27 | 200 |     326.585µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:44:23Z" level=info msg="[GIN] 2023/11/30 - 01:44:23 | 200 |     107.365µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:44:24Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:44:24Z" level=info msg="[GIN] 2023/11/30 - 01:44:24 | 200 |     231.336µs |      172.29.0.1 | GET      \"/ui/api/newcode\""
time="2023-11-30T01:47:51Z" level=info msg="[GIN] 2023/11/30 - 01:47:51 | 200 |      33.015µs |      172.29.0.1 | GET      \"/settings/v1/beta\""
time="2023-11-30T01:47:51Z" level=warning msg="[auth-middleware]token parsing:wrong token format"
time="2023-11-30T01:47:51Z" level=info msg="[GIN] 2023/11/30 - 01:47:51 | 401 |      42.829µs |      172.29.0.1 | GET      \"/integrations/v1/\""
time="2023-11-30T01:47:55Z" level=info msg="[GIN] 2023/11/30 - 01:47:55 | 200 |      27.703µs |      172.29.0.1 | GET      \"/discovery/v1/endpoints\""
time="2023-11-30T01:47:56Z" level=info msg="[GIN] 2023/11/30 - 01:47:56 | 200 |      37.665µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:47:58Z" level=info msg="[GIN] 2023/11/30 - 01:47:58 | 200 |      31.519µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:00Z" level=info msg="[GIN] 2023/11/30 - 01:48:00 | 200 |      23.068µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:02Z" level=info msg="[GIN] 2023/11/30 - 01:48:02 | 200 |       24.95µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:04Z" level=info msg="[GIN] 2023/11/30 - 01:48:04 | 200 |      35.558µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:07Z" level=info msg="[GIN] 2023/11/30 - 01:48:07 | 200 |       35.26µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:08Z" level=info msg="[GIN] 2023/11/30 - 01:48:08 | 200 |      22.414µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:09Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:48:09Z" level=info msg="[GIN] 2023/11/30 - 01:48:09 | 200 |      95.619µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:48:09Z" level=info msg="[GIN] 2023/11/30 - 01:48:09 | 200 |     292.146µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:48:10Z" level=info msg=/
time="2023-11-30T01:48:10Z" level=info msg="[GIN] 2023/11/30 - 01:48:10 | 200 |      53.843µs |      172.29.0.1 | GET      \"/\""
time="2023-11-30T01:48:10Z" level=info msg="[GIN] 2023/11/30 - 01:48:10 | 200 |     774.165µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:48:10Z" level=info msg="[GIN] 2023/11/30 - 01:48:10 | 200 |     307.471µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:48:10Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:48:10Z" level=info msg="[GIN] 2023/11/30 - 01:48:10 | 200 |      86.435µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:48:10Z" level=info msg="[GIN] 2023/11/30 - 01:48:10 | 200 |      122.69µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:48:10Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:48:10Z" level=info msg="[GIN] 2023/11/30 - 01:48:10 | 200 |     107.855µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:48:10Z" level=info msg="[GIN] 2023/11/30 - 01:48:10 | 200 |     140.471µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:48:10Z" level=info msg="[GIN] 2023/11/30 - 01:48:10 | 200 |      35.989µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:11Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:48:11Z" level=info msg="[GIN] 2023/11/30 - 01:48:11 | 200 |     134.197µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:48:11Z" level=info msg="[GIN] 2023/11/30 - 01:48:11 | 200 |     266.599µs |      172.29.0.1 | GET      \"/ui/api/users\""
time="2023-11-30T01:48:15Z" level=info msg="[GIN] 2023/11/30 - 01:48:15 | 200 |     128.575µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:48:16Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:48:16Z" level=info msg="[GIN] 2023/11/30 - 01:48:16 | 200 |     296.981µs |      172.29.0.1 | GET      \"/ui/api/newcode\""
time="2023-11-30T01:48:32Z" level=info msg="Requested: webapp\n"
time="2023-11-30T01:48:32Z" level=info msg="[GIN] 2023/11/30 - 01:48:32 | 200 |      85.731µs |      172.29.0.1 | GET      \"/service/json/1/webapp?environment=production&apiVer=3\""
time="2023-11-30T01:48:32Z" level=info msg="Got code honkmgau"
time="2023-11-30T01:48:32Z" level=info msg="Request: {honkmgau remarkable RM110-150-64960}Token for:nick"
time="2023-11-30T01:48:32Z" level=info msg="[GIN] 2023/11/30 - 01:48:32 | 200 |     241.849µs |      172.29.0.1 | POST     \"/token/json/2/device/new\""
time="2023-11-30T01:48:33Z" level=info msg="setting scopes: intgr screenshare hwcmail:-1 mail:-1 sync:default"
time="2023-11-30T01:48:33Z" level=info msg="[GIN] 2023/11/30 - 01:48:33 | 200 |     309.789µs |      172.29.0.1 | POST     \"/token/json/2/user/new\""
time="2023-11-30T01:48:33Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T01:48:33Z" level=info msg="[GIN] 2023/11/30 - 01:48:33 | 200 |     360.128µs |      172.29.0.1 | GET      \"/integrations/v1/\""
time="2023-11-30T01:48:33Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T01:48:33Z" level=info msg="connecting websocket from: nick"
time="2023-11-30T01:48:33Z" level=info msg="[GIN] 2023/11/30 - 01:48:33 | 200 |     181.807µs |      172.29.0.1 | GET      \"/notifications/ws/json/1\""
time="2023-11-30T01:48:33Z" level=debug msg="hub: adding a client"
time="2023-11-30T01:48:40Z" level=info msg="[GIN] 2023/11/30 - 01:48:40 | 200 |     117.816µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:42Z" level=info msg="[GIN] 2023/11/30 - 01:48:42 | 200 |      42.523µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:43Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T01:48:44Z" level=info msg="[GIN] 2023/11/30 - 01:48:44 | 200 |      26.317µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:46Z" level=info msg="[GIN] 2023/11/30 - 01:48:46 | 200 |      22.666µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:46Z" level=info msg="[GIN] 2023/11/30 - 01:48:46 | 200 |    2.6602189s |      172.29.0.1 | POST     \"/convert/v1/handwriting\""
time="2023-11-30T01:48:48Z" level=info msg="[GIN] 2023/11/30 - 01:48:48 | 200 |       25.09µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:50Z" level=info msg="[GIN] 2023/11/30 - 01:48:50 | 200 |      34.549µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:52Z" level=info msg="[GIN] 2023/11/30 - 01:48:52 | 200 |      35.727µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:48:56Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T01:48:56Z" level=info msg="[GIN] 2023/11/30 - 01:48:56 | 200 |     338.868µs |      172.29.0.1 | GET      \"/integrations/v1/\""
time="2023-11-30T01:49:00Z" level=info msg="[GIN] 2023/11/30 - 01:49:00 | 200 |      22.707µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:49:03Z" level=info msg="[GIN] 2023/11/30 - 01:49:03 | 200 |      31.124µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:49:05Z" level=info msg="[GIN] 2023/11/30 - 01:49:05 | 200 |      23.037µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:49:07Z" level=info msg="[GIN] 2023/11/30 - 01:49:07 | 200 |      23.894µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:49:09Z" level=info msg="[GIN] 2023/11/30 - 01:49:09 | 200 |       22.35µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:49:12Z" level=info msg="[GIN] 2023/11/30 - 01:49:12 | 200 |      47.368µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:49:14Z" level=info msg="[GIN] 2023/11/30 - 01:49:14 | 200 |       21.36µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:49:40Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:40Z" level=info msg="[GIN] 2023/11/30 - 01:49:40 | 200 |     104.689µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:49:40Z" level=info msg="[GIN] 2023/11/30 - 01:49:40 | 200 |     150.467µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:49:41Z" level=info msg=/documents
time="2023-11-30T01:49:41Z" level=info msg="[GIN] 2023/11/30 - 01:49:41 | 200 |      91.079µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:49:41Z" level=info msg="[GIN] 2023/11/30 - 01:49:41 | 200 |     959.856µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:49:41Z" level=info msg="[GIN] 2023/11/30 - 01:49:41 | 200 |      231.05µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:49:41Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:41Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:41Z" level=info msg="[GIN] 2023/11/30 - 01:49:41 | 200 |     107.623µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:49:41Z" level=info msg="[GIN] 2023/11/30 - 01:49:41 | 200 |     159.559µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:49:41Z" level=info msg="[GIN] 2023/11/30 - 01:49:41 | 200 |     159.755µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:49:42Z" level=info msg=/documents
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |      90.888µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     768.642µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     319.969µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:49:42Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:42Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     174.567µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     179.007µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     157.205µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:49:42Z" level=info msg=/documents
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |      81.537µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     698.884µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     316.859µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:49:42Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     233.406µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:49:42Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     245.059µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     100.041µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:49:42Z" level=info msg=/documents
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |      64.077µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |      247.85µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |    1.296459ms |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:49:42Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     109.463µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:49:42Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     110.603µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     131.237µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:49:42Z" level=info msg=/documents
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |      60.888µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     315.186µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |    1.096124ms |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:49:42Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |      73.925µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:49:42Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:49:42Z" level=info msg="[GIN] 2023/11/30 - 01:49:42 | 200 |     174.033µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:49:43Z" level=info msg="[GIN] 2023/11/30 - 01:49:43 | 200 |      105.19µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:51:00Z" level=info msg=/documents
time="2023-11-30T01:51:00Z" level=info msg="[GIN] 2023/11/30 - 01:51:00 | 200 |     183.982µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:51:00Z" level=info msg="[GIN] 2023/11/30 - 01:51:00 | 200 |     687.241µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:51:00Z" level=info msg="[GIN] 2023/11/30 - 01:51:00 | 200 |     228.933µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:51:00Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:00Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:00Z" level=info msg="[GIN] 2023/11/30 - 01:51:00 | 200 |     140.526µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:51:00Z" level=info msg="[GIN] 2023/11/30 - 01:51:00 | 200 |     138.819µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:51:00Z" level=info msg="[GIN] 2023/11/30 - 01:51:00 | 200 |     110.312µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:51:01Z" level=info msg=/documents
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |      68.798µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     725.506µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     779.518µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:51:01Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |      91.458µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:51:01Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     177.557µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     108.158µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:51:01Z" level=info msg=/documents
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |      78.386µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     474.634µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     808.751µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:51:01Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |      98.227µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:51:01Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     226.475µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     163.945µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:51:01Z" level=info msg=/documents
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |      50.218µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     839.056µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     955.934µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:51:01Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:01Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |      43.494µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     131.261µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     109.675µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:51:01Z" level=info msg=/documents
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |      77.924µs |      172.29.0.1 | GET      \"/documents\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     293.045µs |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     610.305µs |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T01:51:01Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:01Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     123.151µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     148.934µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T01:51:01Z" level=info msg="[GIN] 2023/11/30 - 01:51:01 | 200 |     121.008µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T01:54:03Z" level=info msg="[GIN] 2023/11/30 - 01:54:03 | 200 |      29.499µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:54:05Z" level=info msg="[GIN] 2023/11/30 - 01:54:05 | 200 |      21.981µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:54:07Z" level=info msg="[GIN] 2023/11/30 - 01:54:07 | 200 |      36.426µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:54:09Z" level=info msg="[GIN] 2023/11/30 - 01:54:09 | 200 |      23.167µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:54:11Z" level=info msg="[GIN] 2023/11/30 - 01:54:11 | 200 |      36.797µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:54:13Z" level=info msg="[GIN] 2023/11/30 - 01:54:13 | 200 |      27.712µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:54:57Z" level=info msg="[GIN] 2023/11/30 - 01:54:57 | 200 |      23.949µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:54:59Z" level=info msg="[GIN] 2023/11/30 - 01:54:59 | 200 |      35.052µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:55:01Z" level=info msg="[GIN] 2023/11/30 - 01:55:01 | 200 |      24.638µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:55:09Z" level=info msg="[GIN] 2023/11/30 - 01:55:09 | 200 |     116.516µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:55:11Z" level=info msg="[GIN] 2023/11/30 - 01:55:11 | 200 |      33.004µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T01:55:13Z" level=info msg="[GIN] 2023/11/30 - 01:55:13 | 200 |      32.348µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:05:46Z" level=warning msg="Can't read from ws websocket: close 1006 (abnormal closure): unexpected EOF"
time="2023-11-30T02:05:46Z" level=info msg="hub: removing client"
time="2023-11-30T02:05:54Z" level=info msg="[GIN] 2023/11/30 - 02:05:54 | 200 |      25.812µs |      172.29.0.1 | GET      \"/settings/v1/beta\""
time="2023-11-30T02:05:54Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T02:05:54Z" level=info msg="[GIN] 2023/11/30 - 02:05:54 | 200 |     251.144µs |      172.29.0.1 | GET      \"/integrations/v1/\""
time="2023-11-30T02:05:58Z" level=info msg="[GIN] 2023/11/30 - 02:05:58 | 200 |      28.779µs |      172.29.0.1 | GET      \"/discovery/v1/endpoints\""
time="2023-11-30T02:05:59Z" level=info msg="[GIN] 2023/11/30 - 02:05:59 | 200 |      25.754µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:00Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T02:06:00Z" level=info msg="connecting websocket from: nick"
time="2023-11-30T02:06:00Z" level=info msg="[GIN] 2023/11/30 - 02:06:00 | 200 |     161.362µs |      172.29.0.1 | GET      \"/notifications/ws/json/1\""
time="2023-11-30T02:06:00Z" level=debug msg="hub: adding a client"
time="2023-11-30T02:06:01Z" level=info msg="[GIN] 2023/11/30 - 02:06:01 | 200 |      22.352µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:03Z" level=info msg="[GIN] 2023/11/30 - 02:06:03 | 200 |       22.48µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:05Z" level=info msg="[GIN] 2023/11/30 - 02:06:05 | 200 |      23.772µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:07Z" level=info msg="[GIN] 2023/11/30 - 02:06:07 | 200 |      35.388µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:09Z" level=info msg="[GIN] 2023/11/30 - 02:06:09 | 200 |      24.913µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:11Z" level=info msg="[GIN] 2023/11/30 - 02:06:11 | 200 |      24.293µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:13Z" level=info msg="[GIN] 2023/11/30 - 02:06:13 | 200 |      23.235µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:15Z" level=info msg="[GIN] 2023/11/30 - 02:06:15 | 200 |      37.031µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:17Z" level=info msg="[GIN] 2023/11/30 - 02:06:17 | 200 |      25.457µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:19Z" level=info msg="[GIN] 2023/11/30 - 02:06:19 | 200 |      24.095µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:21Z" level=info msg="[GIN] 2023/11/30 - 02:06:21 | 200 |      23.192µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:23Z" level=info msg="[GIN] 2023/11/30 - 02:06:23 | 200 |      22.645µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:26Z" level=info msg="[GIN] 2023/11/30 - 02:06:26 | 200 |       37.05µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:28Z" level=info msg="[GIN] 2023/11/30 - 02:06:28 | 200 |      22.154µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:06:30Z" level=info msg="[GIN] 2023/11/30 - 02:06:30 | 200 |      23.035µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:07:56Z" level=warning msg="Can't read from ws websocket: close 1006 (abnormal closure): unexpected EOF"
time="2023-11-30T02:07:56Z" level=info msg="hub: removing client"
time="2023-11-30T02:08:05Z" level=info msg="Stopping the service..."
time="2023-11-30T02:08:05Z" level=info msg=Stopped
Log level: debug
time="2023-11-30T02:10:28Z" level=warning msg="RM_HTTPS_COOKIE is not set, use only when not using https!"
time="2023-11-30T02:10:28Z" level=info msg="Version: v0.0.16"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached."
time="2023-11-30T02:10:28Z" level=info
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] [WARNING] Running in \"debug\" mode. Switch to \"release\" mode in production."
time="2023-11-30T02:10:28Z" level=info msg=" - using env:\texport GIN_MODE=release"
time="2023-11-30T02:10:28Z" level=info msg=" - using code:\tgin.SetMode(gin.ReleaseMode)"
time="2023-11-30T02:10:28Z" level=info
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /discovery/v1/endpoints   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func1 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /health                   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func2 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /token/json/2/device/new  --> github.com/ddvk/rmfakecloud/internal/app.(*App).newDevice-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /token/json/2/user/new    --> github.com/ddvk/rmfakecloud/internal/app.(*App).newUserToken-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /token/json/2/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /token/json/3/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /service/json/1/:service  --> github.com/ddvk/rmfakecloud/internal/app.(*App).locateService-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func3 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func4 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /v1/reports               --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func5 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /notifications/ws/json/1  --> github.com/ddvk/rmfakecloud/internal/app.(*App).connectWebSocket-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/request --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadRequest-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/update-status --> github.com/ddvk/rmfakecloud/internal/app.(*App).updateStatus-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDocument-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /document-storage/json/2/docs --> github.com/ddvk/rmfakecloud/internal/app.(*App).listDocuments-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /api/v2/document          --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /share/v1/email           --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /api/v1/page              --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /convert/v1/handwriting   --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /doc/v1/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDoc-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDocV2-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] OPTIONS /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func6 (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/folders/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsList-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file/metadata --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetMetadata-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetFile-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /integrations/v1/:integrationid/files/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsUpload-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /integrations/v1/         --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrations-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /api/v1/sync-complete     --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncComplete-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /sync/v2/sync-complete    --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncCompleteV2-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncGetRootV3-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] PUT    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncUpdateRootV3-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageRead-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] PUT    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageWrite-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /favicon.ico              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func1 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /robots.txt               --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func2 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /pdf.worker.js            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func3 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /ui/api/register          --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).register-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /ui/api/login             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).login-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /ui/api/logout            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func5 (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] HEAD   /ui/api/                  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func6 (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /ui/api/sync              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func7 (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /ui/api/newcode           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /ui/api/profile           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /ui/api/changePassword    --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /ui/api/changeEmail       --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).listDocuments-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocument-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /ui/api/documents/upload  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createDocument-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] DELETE /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteDocument-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] PUT    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateDocument-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /ui/api/folders           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createFolder-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid/metadata --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocumentMetadata-fm (5 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getUser-fm (6 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] DELETE /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteUser-fm (6 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] PUT    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateUser-fm (6 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] POST   /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createUser-fm (6 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getAppUsers-fm (6 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadDocument-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] PUT    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadDocument-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] GET    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadBlob-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="[GIN-debug] PUT    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadBlob-fm (4 handlers)"
time="2023-11-30T02:10:28Z" level=info msg="STORAGE_URL (Cloud URL): https://rm.mydomain.com"
time="2023-11-30T02:10:28Z" level=info msg="Data: /data"
time="2023-11-30T02:10:28Z" level=info msg="Listening on port: 3000"
time="2023-11-30T02:10:28Z" level=info msg="Using plain HTTP"
time="2023-11-30T02:13:08Z" level=info msg=/
time="2023-11-30T02:13:08Z" level=info msg="[GIN] 2023/11/30 - 02:13:08 | 200 |     307.206µs |      172.29.0.1 | GET      \"/\""
time="2023-11-30T02:13:08Z" level=info msg="[GIN] 2023/11/30 - 02:13:08 | 200 |    2.842261ms |      172.29.0.1 | GET      \"/static/js/main.9c2de5b1.js\""
time="2023-11-30T02:13:08Z" level=info msg="[GIN] 2023/11/30 - 02:13:08 | 200 |    3.409176ms |      172.29.0.1 | GET      \"/static/css/main.d94d89ba.css\""
time="2023-11-30T02:13:09Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T02:13:09Z" level=info msg="[GIN] 2023/11/30 - 02:13:09 | 200 |     299.436µs |      172.29.0.1 | HEAD     \"/ui/api/\""
time="2023-11-30T02:13:09Z" level=info msg="[GIN] 2023/11/30 - 02:13:09 | 200 |     480.078µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T02:13:10Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T02:13:10Z" level=info msg="[GIN] 2023/11/30 - 02:13:10 | 200 |      93.126µs |      172.29.0.1 | GET      \"/favicon.ico\""
time="2023-11-30T02:13:10Z" level=info msg="[GIN] 2023/11/30 - 02:13:10 | 200 |     272.359µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T02:13:31Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T02:13:31Z" level=info msg="uploading documents from: nick"
time="2023-11-30T02:13:31Z" level=info msg="Parent: "
time="2023-11-30T02:13:31Z" level=info msg="[ui] Uploading Simulacra and Simulation.pdf , size: 488004"
time="2023-11-30T02:13:31Z" level=info msg="[ui]  [10] Uploaded document id0c24ddc5-1cc5-4b6d-9b65-1e922d8b3e12"
time="2023-11-30T02:13:31Z" level=info msg="[GIN] 2023/11/30 - 02:13:31 | 200 |   15.216565ms |      172.29.0.1 | POST     \"/ui/api/documents/upload\""
time="2023-11-30T02:13:31Z" level=info msg="hub: dispatching notification"
time="2023-11-30T02:13:31Z" level=info msg="Broadcast notification, for all devices of  uid:nick id 7f908ae9-bde4-4a61-82be-969ef4be1b98"
time="2023-11-30T02:13:31Z" level=info msg="[ui-authmiddleware] User from token: nick"
time="2023-11-30T02:13:31Z" level=info msg="[GIN] 2023/11/30 - 02:13:31 | 200 |     275.287µs |      172.29.0.1 | GET      \"/ui/api/documents\""
time="2023-11-30T02:13:53Z" level=info msg="[GIN] 2023/11/30 - 02:13:53 | 200 |      36.583µs |      172.29.0.1 | GET      \"/settings/v1/beta\""
time="2023-11-30T02:13:53Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T02:13:53Z" level=info msg="[GIN] 2023/11/30 - 02:13:53 | 200 |     391.585µs |      172.29.0.1 | GET      \"/integrations/v1/\""
time="2023-11-30T02:13:58Z" level=info msg="[GIN] 2023/11/30 - 02:13:58 | 200 |      33.664µs |      172.29.0.1 | GET      \"/discovery/v1/endpoints\""
time="2023-11-30T02:13:59Z" level=info msg="[GIN] 2023/11/30 - 02:13:59 | 200 |      28.341µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:00Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T02:14:00Z" level=info msg="connecting websocket from: nick"
time="2023-11-30T02:14:00Z" level=info msg="[GIN] 2023/11/30 - 02:14:00 | 200 |     213.921µs |      172.29.0.1 | GET      \"/notifications/ws/json/1\""
time="2023-11-30T02:14:00Z" level=debug msg="hub: adding a client"
time="2023-11-30T02:14:01Z" level=info msg="[GIN] 2023/11/30 - 02:14:01 | 200 |      34.163µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:03Z" level=info msg="[GIN] 2023/11/30 - 02:14:03 | 200 |      17.918µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:05Z" level=info msg="[GIN] 2023/11/30 - 02:14:05 | 200 |      20.315µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:07Z" level=info msg="[GIN] 2023/11/30 - 02:14:07 | 200 |      36.179µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:09Z" level=info msg="[GIN] 2023/11/30 - 02:14:09 | 200 |      24.232µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:39Z" level=info msg="[GIN] 2023/11/30 - 02:14:39 | 200 |      32.852µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:41Z" level=info msg="[GIN] 2023/11/30 - 02:14:41 | 200 |      48.251µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:44Z" level=info msg="[GIN] 2023/11/30 - 02:14:44 | 200 |      34.695µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:46Z" level=info msg="[GIN] 2023/11/30 - 02:14:46 | 200 |       25.04µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:48Z" level=info msg="[GIN] 2023/11/30 - 02:14:48 | 200 |      33.458µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:14:51Z" level=info msg="[GIN] 2023/11/30 - 02:14:51 | 200 |      37.787µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:17:12Z" level=warning msg="Can't read from ws websocket: close 1006 (abnormal closure): unexpected EOF"
time="2023-11-30T02:17:12Z" level=info msg="hub: removing client"
time="2023-11-30T02:17:21Z" level=info msg="[GIN] 2023/11/30 - 02:17:21 | 200 |      31.252µs |      172.29.0.1 | GET      \"/settings/v1/beta\""
time="2023-11-30T02:17:21Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T02:17:21Z" level=info msg="[GIN] 2023/11/30 - 02:17:21 | 200 |     252.768µs |      172.29.0.1 | GET      \"/integrations/v1/\""
time="2023-11-30T02:17:25Z" level=info msg="[GIN] 2023/11/30 - 02:17:25 | 200 |      25.098µs |      172.29.0.1 | GET      \"/discovery/v1/endpoints\""
time="2023-11-30T02:17:26Z" level=info msg="[GIN] 2023/11/30 - 02:17:26 | 200 |      22.209µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:17:27Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T02:17:27Z" level=info msg="connecting websocket from: nick"
time="2023-11-30T02:17:27Z" level=info msg="[GIN] 2023/11/30 - 02:17:27 | 200 |     150.592µs |      172.29.0.1 | GET      \"/notifications/ws/json/1\""
time="2023-11-30T02:17:27Z" level=debug msg="hub: adding a client"
time="2023-11-30T02:17:28Z" level=info msg="[GIN] 2023/11/30 - 02:17:28 | 200 |      35.536µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:17:31Z" level=info msg="[GIN] 2023/11/30 - 02:17:31 | 200 |      21.469µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:17:39Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T02:17:39Z" level=info msg="[GIN] 2023/11/30 - 02:17:39 | 200 |     233.072µs |      172.29.0.1 | GET      \"/integrations/v1/\""
time="2023-11-30T02:18:25Z" level=warning msg="Can't read from ws websocket: close 1006 (abnormal closure): unexpected EOF"
time="2023-11-30T02:18:25Z" level=info msg="hub: removing client"
time="2023-11-30T02:18:38Z" level=info msg="[GIN] 2023/11/30 - 02:18:38 | 200 |      61.989µs |      172.29.0.1 | GET      \"/settings/v1/beta\""
time="2023-11-30T02:18:38Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T02:18:38Z" level=info msg="[GIN] 2023/11/30 - 02:18:38 | 200 |     217.097µs |      172.29.0.1 | GET      \"/integrations/v1/\""
time="2023-11-30T02:18:42Z" level=info msg="[GIN] 2023/11/30 - 02:18:42 | 200 |      30.047µs |      172.29.0.1 | GET      \"/discovery/v1/endpoints\""
time="2023-11-30T02:18:43Z" level=info msg="[GIN] 2023/11/30 - 02:18:43 | 200 |      20.363µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:18:44Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
time="2023-11-30T02:18:44Z" level=info msg="connecting websocket from: nick"
time="2023-11-30T02:18:44Z" level=info msg="[GIN] 2023/11/30 - 02:18:44 | 200 |     346.369µs |      172.29.0.1 | GET      \"/notifications/ws/json/1\""
time="2023-11-30T02:18:44Z" level=debug msg="hub: adding a client"
time="2023-11-30T02:18:45Z" level=info msg="[GIN] 2023/11/30 - 02:18:45 | 200 |       40.03µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:18:47Z" level=info msg="[GIN] 2023/11/30 - 02:18:47 | 200 |      37.254µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:18:49Z" level=info msg="[GIN] 2023/11/30 - 02:18:49 | 200 |       22.19µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:18:51Z" level=info msg="[GIN] 2023/11/30 - 02:18:51 | 200 |      34.359µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:18:53Z" level=info msg="[GIN] 2023/11/30 - 02:18:53 | 200 |      26.171µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:18:55Z" level=info msg="[GIN] 2023/11/30 - 02:18:55 | 200 |      22.283µs |      172.29.0.1 | POST     \"/v1/reports\""
time="2023-11-30T02:18:57Z" level=info msg="[GIN] 2023/11/30 - 02:18:57 | 200 |      21.669µs |      172.29.0.1 | POST     \"/v1/reports\""

Doing this: docker exec rmfakecloud /rmfakecloud-docker

Shows this:

Log level: debug
time="2023-11-30T02:59:24Z" level=warning msg="RM_HTTPS_COOKIE is not set, use only when not using https!"
time="2023-11-30T02:59:24Z" level=info msg="Version: v0.0.16"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached."
time="2023-11-30T02:59:24Z" level=info
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] [WARNING] Running in \"debug\" mode. Switch to \"release\" mode in production."
time="2023-11-30T02:59:24Z" level=info msg=" - using env:\texport GIN_MODE=release"
time="2023-11-30T02:59:24Z" level=info msg=" - using code:\tgin.SetMode(gin.ReleaseMode)"
time="2023-11-30T02:59:24Z" level=info
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /discovery/v1/endpoints   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func1 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /health                   --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func2 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /token/json/2/device/new  --> github.com/ddvk/rmfakecloud/internal/app.(*App).newDevice-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /token/json/2/user/new    --> github.com/ddvk/rmfakecloud/internal/app.(*App).newUserToken-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /token/json/2/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /token/json/3/device/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDevice-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /service/json/1/:service  --> github.com/ddvk/rmfakecloud/internal/app.(*App).locateService-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func3 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /settings/v1/beta         --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func4 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /v1/reports               --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func5 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /notifications/ws/json/1  --> github.com/ddvk/rmfakecloud/internal/app.(*App).connectWebSocket-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/request --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadRequest-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/upload/update-status --> github.com/ddvk/rmfakecloud/internal/app.(*App).updateStatus-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] PUT    /document-storage/json/2/delete --> github.com/ddvk/rmfakecloud/internal/app.(*App).deleteDocument-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /document-storage/json/2/docs --> github.com/ddvk/rmfakecloud/internal/app.(*App).listDocuments-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /api/v2/document          --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /share/v1/email           --> github.com/ddvk/rmfakecloud/internal/app.(*App).sendEmail-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /api/v1/page              --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /convert/v1/handwriting   --> github.com/ddvk/rmfakecloud/internal/app.(*App).handleHwr-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /doc/v1/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDoc-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).uploadDocV2-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] OPTIONS /doc/v2/files             --> github.com/ddvk/rmfakecloud/internal/app.(*App).registerRoutes.func6 (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/folders/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsList-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file/metadata --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetMetadata-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /integrations/v1/:integrationid/files/:file --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsGetFile-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /integrations/v1/:integrationid/files/:folderid --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrationsUpload-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /integrations/v1/         --> github.com/ddvk/rmfakecloud/internal/app.(*App).integrations-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /api/v1/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /api/v1/sync-complete     --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncComplete-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/downloads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageDownload-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /sync/v2/signed-urls/uploads --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageUpload-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /sync/v2/sync-complete    --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncCompleteV2-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncGetRootV3-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] PUT    /sync/v3/root             --> github.com/ddvk/rmfakecloud/internal/app.(*App).syncUpdateRootV3-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageRead-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] PUT    /sync/v3/files/:file      --> github.com/ddvk/rmfakecloud/internal/app.(*App).blobStorageWrite-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] HEAD   /static/*filepath         --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /favicon.ico              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func1 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /robots.txt               --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func2 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /pdf.worker.js            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func3 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /ui/api/register          --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).register-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /ui/api/login             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).login-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /ui/api/logout            --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func5 (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] HEAD   /ui/api/                  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func6 (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /ui/api/sync              --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).RegisterRoutes.func7 (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /ui/api/newcode           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /ui/api/profile           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).newCode-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /ui/api/changePassword    --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /ui/api/changeEmail       --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).changePassword-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).listDocuments-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocument-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /ui/api/documents/upload  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createDocument-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] DELETE /ui/api/documents/:docid  --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteDocument-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] PUT    /ui/api/documents         --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateDocument-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /ui/api/folders           --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createFolder-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /ui/api/documents/:docid/metadata --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getDocumentMetadata-fm (5 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getUser-fm (6 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] DELETE /ui/api/users/:userid     --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).deleteUser-fm (6 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] PUT    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).updateUser-fm (6 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] POST   /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).createUser-fm (6 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /ui/api/users             --> github.com/ddvk/rmfakecloud/internal/ui.(*ReactAppWrapper).getAppUsers-fm (6 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadDocument-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] PUT    /storage/:token           --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadDocument-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] GET    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).downloadBlob-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="[GIN-debug] PUT    /blobstorage              --> github.com/ddvk/rmfakecloud/internal/storage/fs.(*App).uploadBlob-fm (4 handlers)"
time="2023-11-30T02:59:24Z" level=info msg="STORAGE_URL (Cloud URL): https://rm.mydomain.com"
time="2023-11-30T02:59:24Z" level=info msg="Data: /data"
time="2023-11-30T02:59:24Z" level=info msg="Listening on port: 3000"
time="2023-11-30T02:59:24Z" level=info msg="Using plain HTTP"
time="2023-11-30T02:59:24Z" level=fatal msg="listen: listen tcp :3000: bind: address already in use\n"
Eeems commented 7 months ago

It appears that the service doesn't always complain about the port being in use. This might be an issue with the container restart not working as expected or something.

time="2023-11-30T01:40:03Z" level=info msg="Listening on port: 3000"
time="2023-11-30T01:40:03Z" level=info msg="Using plain HTTP"
time="2023-11-30T01:40:21Z" level=info msg="Stopping the service..."
time="2023-11-30T01:40:21Z" level=info msg=Stopped
...
time="2023-11-30T01:40:21Z" level=info msg="Listening on port: 3000"
time="2023-11-30T01:40:21Z" level=info msg="Using plain HTTP"
time="2023-11-30T01:40:23Z" level=info msg=/login
...

So the device is successfully hitting this service, which was not apparent from the lack of log lines being provided before.

One thing I noticed is that you aren't using the new sync15 protocol. This might be the issue, as 3.x has had major changes to the sync protocol, and likely isn't working properly with the older protocol. I would recommend changing to sync15 and trying again: https://github.com/ddvk/rmfakecloud#breaking-changes

...
time="2023-11-30T01:48:33Z" level=info msg="[GIN] 2023/11/30 - 01:48:33 | 200 |     360.128µs |      172.29.0.1 | GET      \"/integrations/v1/\""
time="2023-11-30T01:48:33Z" level=info msg="[auth-middleware] UserId: nick deviceId: RM110-150-64960 newSync: false"
...
nickian commented 7 months ago

Ahh, bingo! It's working now. Thank you for all of your help and taking the time to look at the logs!

If anyone else runs into this, here is what I did:

On the server, made sure sync15: true was added to the .userprofile (nano ./data/users/nick/.userprofile).

Then just did docker compose down and docker compose up -d again.

Then on the device ./installer.sh uninstall, rebooted, then ./installer.sh install and re-paired to the server with a new code.