[meta] decoupling from ipfs-webui
See original GitHub issueJust writing down some thoughts and concerns, needs more analysis, probably can be split into 2-3 phases.
Right now ipfs-desktop is tightly coupled with ipfs-webui:
- ships with a bundled version of ipfs-webui
- opens bundled webui in Electron’s webview
- injects own settings into Settings screen of ipfs-webui
I believe it comes at significant maintenance cost and user confustion:
- requires ipfs-webui to support Electron “browser” and things such as drag&drop broke in Electron before (#1287)
- every time new setting is added, ipfs-desktop release is blocked by ipfs-webui, and same for bugfixes (eg. https://github.com/ipfs-shipyard/ipfs-desktop/issues/1290)
- running Electron webview in the background wastes CPU and memory (not as much since it is now “paused” by switching to a blank subpage - https://github.com/ipfs-shipyard/ipfs-desktop/pull/1198 - but still wasteful)
- when user opens webui from commandline or via browser extension they see the same ipfs-webui, but when they go to Settings ipfs-desktop options are not there (they are there only if webui is opened via ipfs-desktop menubar)
I suspect we could consider:
- remove Desktop-specific items from Settings screen in webui, and put them in menubar submenu instead
- opening webui from
http://127.0.0.1:8080/webui
instead ofwebui://-
pseudoprotocol- ensure offline use case works: if we stop bundling webui with ipfs-desktop and open webui in a web browser, then we need to ensure the proper CID is already in the repo
- we have prior art of doing just that in Brave: ipfs-companion is bundling TAR archive for webui CID and during the startup in Brave checks if it is present in the repo, in not, it imports data from the TAR. Code in precache.js . This ensures webui is always present, and fast, even if initial load happened in “airplane mode”.
- ensure offline use case works: if we stop bundling webui with ipfs-desktop and open webui in a web browser, then we need to ensure the proper CID is already in the repo
- opening in real web browser instead of Electron
Issue Analytics
- State:
- Created 3 years ago
- Comments:15 (14 by maintainers)
Top Results From Across the Web
Create the IPFS Desktop, Companion and WebUI wireframes
Create the IPFS Desktop, Companion and WebUI wireframes #12 ... [meta] decoupling from ipfs-webui ipfs/ipfs-desktop#1389. Open. @jessicaschilling. Copy link.
Read more >A Service Level Agreement Verification System using ...
decoupling the cost of transactions in the Ethereum from the floating exchange rate of the ether cryptocurrency, establishing a cost for each fluctuating ......
Read more >GitTorrent: A Decentralized GitHub (2015) - Hacker News
Hi! I started this project in 2015, using Bitcoin and BitTorrent -- since then, I think Ethereum and IPFS have become better substrates...
Read more >Ipfs node won't connect to my react app running on local host
If you visit https://webui.ipfs.io or https://dev.webui.ipfs.io they will give you similar instructions on how to change your node's CORS ...
Read more >InterPlanetary File System - ArchWiki - Arch Linux
This starts your node, available via the ipfs cli, or the web interface on localhost:5001/webui. Additionally, a local gateway goes up on ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
My general sentiment is electron window wrapper just hides ugly url, and I would much rather try to address that core problem instead of hiding it with dedicated window.
Here is where I wish and hope we can end up one day:
webui.gozala.io
be my default instead.webui.*
(via #hash link or such) so that non-standard port or hosts would work as well.webui.alt.io
is no longer accessible troubleshooting UI can offer to try different alternatives (form the list e.g. https://webui.ipfs.io, https://webui.pinata.cloud/, https://webui.ipfs.io.ipns.localhost:8080` etc) and helps user report the problem in some ways. (in fact troubleshooting could probably be automated by loading diff options in hidden browser window etc…)That way we can have deliver experience that is:
For the record, we successfully decoupled codebases 🥳
Remaining question:
is this level opf decoupling enough, or do we want ditch Electron’s
BrowserWindow
and start opening webui in real web browser instead of Electron window?Analysis below. Would appreciate your thoughts @rafaelramalho19 @jessicaschilling @Gozala TLDR at the end 😉
I thought the main challenge with opening webui in regular browser is Origin isolation, but the longer I think about it, the more UX issues I see. Below is my brain dump with 💚 upsides, 💔 downsides, 🛑 deal-breakers, and 🔧 additional work.
If we use WebUI version bundled with go-ipfs (
:5001/webui
)If we use different version…
#hash
(API port could be different than:5001
)<cid>.ipfs.localhost:8080
)webui.ipfs.io.ipns.localhost:8080
)webui.ipfs..
)ipfs.io
is censored at DNS levelTLDR I think we should keep bundling webui and opening in Electron for now, as it is the least painful option right now.
Opening in regular browser will break for some users if we do it by default, unless we stick with version behind
/webui
on API port, which in turn forbids us from shipping new webui independently of go-ipfs, slowing down our release cycle.What we could do is to introduce opt-in experiment that “opens the latest webui (DNSLink) in default browser”.