Closed accforgithubtest closed 1 month ago
Thanks for opening the issue and for including all those details.
Before explaining what I think is your issue, I will explain very quickly how Isaiah works :
I think this is what's happening on your end :
Am I making the correct assumption that your internet connection is unstable? If not, please let me know so I can investigate somewhere else. (I have tried using Firefox + Private Browsing, and couldn't reproduce the issue. Maybe there's other settings you're using?) Also, maybe would it be a good idea to implement an optional "simple reconnection mechanism" that does not reset everything when the websocket connection is lost? That could help users with unstable connections. Let me know!
Ultimately, for the issue "I still need to select the docker stack every few seconds", I have good news! This is actually an optional prompt. When you're connected to your server and have picked a stack for the first time, press the "X" key, navigate down to "enableOverviewOnLaunch" and toggle off the option. This will disable the prompt at launch / reconnection, plus you'll still be able to navigate between your stacks by pressing the "O" key (as in "Overview").
PS : Thanks a lot for the kind words!
"enableOverviewOnLaunch" and toggle off the option
That helps, thank you. But it looks like this setting is not persisted anywhere ? Once I re-open the browser I need to do the toggle off again.
My internet connection is stable, and this is all within the same LAN, my laptop and the home server are next to each other.
I have put isaiah behind a reverse proxy (caddy-docker-proxy) and is accessible at https://isaiah.local.host I notice from the firefox dev tools network tab that below request is sent every few seconds as a get request. I have copied it as a curl request below.
I guess that this request is the beginning of "reset sequence" ? Not sure why the websocket keeps getting broken though. I do see the warning triangle every-time before I see the request in dev tool network. Do I have to do any additional settings in case of setting up isaiah behind caddy-docker-proxy ?
curl 'wss://isaiah.local.host/ws' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0' -H 'Accept: */*' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Sec-WebSocket-Version: 13' -H 'Origin: https://isaiah.local.host' -H 'Sec-WebSocket-Extensions: permessage-deflate' -H 'Sec-WebSocket-Key: ha6jKElq5G/teOEpyPaFFQ==' -H 'DNT: 1' -H 'Sec-GPC: 1' -H 'Connection: keep-alive, Upgrade' -H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: websocket' -H 'Sec-Fetch-Site: same-origin' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Upgrade: websocket'
maybe would it be a good idea to implement an optional "simple reconnection mechanism"
I do not know what issue I am facing, however something like this will probably fool proof the application and I think this is a great idea.
Also, will it be a good idea to provide environment variables for all the settings available under the "X" Parameters options - so there is a way to define and "persist" preferences ?
You're welcome, and thanks again for the new information about your setup.
To address every point :
Indeed, the request you've included is the beginning of the Websocket connection sequence. In normal conditions, it should run only once, and then, every time that the connection is lost.
Given that your internet connection is perfect, maybe those links can help? I tried searching for caddy-docker-proxy.
https://stackoverflow.com/questions/45272963/reverse-proxy-for-web-sockets-wss-using-caddy
The settings you edit with the preferences menu (by pressing "X") are stored in your browser's localStorage. This enables you to have per-browser / per-device preferences (say...on your phone, on your tablet, on your desktop, etc.). I believe that, because you're using the "Private navigation / Incognito" mode of Firefox, the localStorage is reset every time you open your browser again, hence producing the issue "it looks like [...] not persisted anywhere". The solution would be to use a "normal" browsing, as opposed to a "Private / Incognito" that, by default, will indeed destroy your cookies / localStorage when they're closed.
Regarding both the last point and your idea about the parameters being duplicated from the browser to the environment variables (so that, the server decides, rather than the browser), I think it's a good idea. Thank you very much. I will keep that issue open as long as you need help, and as long as the feature isn't released.
Thank you for the detailed replies. Will try out the links for the reverse proxy setup for websockets. Cheers!
Hey!
I have just published a new release, along with updated documentation.
You will find the troubleshooting guide here.
I think that, from now on, you should be able to use Isaiah inside a private browser while maintaining your preferences persisted, so that you don't have to choose your Docker stack again and again on every single refresh.
Regarding the reset sequence and the fool-proofing, before getting to it, I think I may already have a solution for you. I'd like to ask you :
I have an intuition that your disconnection issues may have something to do with the SERVER_MAX_READ_SIZE
setting. Increasing its value from 100000
to 200000
may fix your problem. The rough explanation is here.
I hope it all helps, and I look forward to reading from you!
Hi again,
It's been a month since the last update.
If you don't mind, I will close the issue in a few days.
If you still encounter any issue, please feel free to let me know!
I use firefox private browsing, and Isaiah keeps asking me to enter the password every few seconds. When I enter password, it says successful and asks me to select the docker stack, however I am asked to enter password again. Its a endless loop which makes it unusable.
For now I am using AUTHENTICATION_ENABLED=false. While this removed the need for entering the password every few seconds, I still need to select the docker stack every few seconds. Would be great to have the issue fixed.
This is a neat project to have lazydocker type functions in a browser, thank you for the project !