Epic: service-worker-gateway Productionisation
For general use
Minimal feature set
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/19
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/18
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/23
- [x] https://github.com/ipfs/helia-verified-fetch/issues/9
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/62 (broken relative links on index.html pages)
- [x] https://github.com/ipfs/helia-verified-fetch/issues/11
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/pull/67
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/83
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/26
Optimizations
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/73
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/93
- [x] CI should not [fail when no need to publish to ipfs]
- [x] #110
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/88
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/72 (pick up after others are tackled first)
- [ ] #180
- [x] https://github.com/ipshipyard/waterworks-infra/pull/82
Security and Compliance
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/30
- [x] #181
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/33
- [x] Original URL is passed to @helia/verified-fetch as-is (minimized delta for conformance tests)
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/59
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/116
UX / Configuration
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/133
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/58
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/80
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/22
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/91
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/32
- [ ] Documentation for how to self-host
- Nginx, DNS and TLS setup (expand gist from Russell, replace Fleek with local build + updating DNSLink. via Cloudflare API + token limited to single domain as example)
For inbrowser.link
- [ ] https://github.com/ipshipyard/waterworks-infra/issues/54
- [ ] https://github.com/ipshipyard/waterworks-infra/issues/55
- [x] https://github.com/ipshipyard/waterworks-infra/pull/44
- [x] https://github.com/ipshipyard/waterworks-infra/pull/42
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/pull/53 (remove need for passing BASE_URL during build)
- [ ] Subdomain isolation enforced on
inbrowser.link(subset of https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/30)- [ ] Partially broken, needs https://github.com/ipfs-shipyard/helia-service-worker-gateway/pull/67
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/78
- [ ] Works on localhost gateway and when loaded via ipns:// in Brave
- [ ] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/28)
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/20
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/pull/69 (remove dependency on fleek)
- [x] pin in more places than just our collab cluster
- #105
- #107
- [x] https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/79
- [ ] Migrate Fleek from Ignite team to ipfs.tech infra team account. (low priority, we will use fleek oly for PR reviews)
Until we get automated testing in place, here's a list of CIDs of websites for testing the Service Worker Gateway
| Site | CID | IPNS subdomain |
|---|---|---|
| Wikipedia on IPFS | bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze |
n/a |
| Uniswap Interface | bafybeifaiclxh6pc3bdtrrkpbvvqqxq6hz5r6htdzxaga4fikfpu2u56qi |
n/a |
| CID tool | bafybeiae366charqmeewxags5b2jxtkhfmqyyagvqhrr5l7l7xfpp5ikpa |
cid-ipfs-tech.ipns |
| IPFS Docs | bafybeiedlhslivmuj2iinnpd24ulx3fyd7cjenddbkeoxbf3snjiz3npda |
docs-ipfs-tech.ipns |
I think we should consider how we name this and call it in the docs and materials we will create before we make a splash. I propose we call it "Service Worker IPFS Gateway" or just "Service Worker Gateway" since the fact that it uses Helia is an implementation detail for most users. Moreover, it should be pretty clear that it's powered by Helia since it's the most actively maintained JS IPFS implementation.
I figured it's a good time be bring it up since we're going to be using the inbrowser.link domain for it (which already doesn't have Helia in it).
@2color agree, we can mention Helia on the landing page (https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/58) but this project should be branded as "Service Worker [IPFS] Gateway" or ipfs-swgw.
We already have to move to ipfs/ org, renaming repo could happen at the same time. Let's discuss details in https://github.com/ipfs-shipyard/helia-service-worker-gateway/issues/80
I added a list of CID of sites for manual testing to the issue body. Feel free to add any additional ones.
NOTE: subdomains don't automatically refresh the service worker.. so we need some clever logic for checking for service worker assets, and then redirecting to /#/ipfs-sw-config again.
see https://github.com/ipfs-shipyard/helia-service-worker-gateway/pull/96 for some changes that make this more likely to happen
Question: should we default to an ipfs favicon when favicon.ico doesn't exist...?
We should not modify immutable data. If the DAG that user tries to load does not have favicon, we should not add it.
Add the following examples to the list and make sure are working well enough before sharing:
- Video
- ENS link
- IPNS name
@lidel Some additional items we may want to think about adding here:
- https://github.com/ipfs/helia/issues/665
- https://github.com/ipfs/helia-verified-fetch/issues/52
- https://github.com/ipfs/helia-verified-fetch/issues/160
- https://github.com/ipfs/service-worker-gateway/issues/503
- https://github.com/ipfs/service-worker-gateway/issues/502
I think this is greatly outdated, most of things got resolved, and remaining ones changed priority. We did not maintain list in this issue since March.
Let's close this to reduce noise – if we need new milestone/epic we will fill new issue
@SgtPooki thanks for flagging, for issues that exist in other repos:
- https://github.com/ipfs/helia/issues/665
- https://github.com/ipfs/helia-verified-fetch/issues/52
- https://github.com/ipfs/helia-verified-fetch/issues/160
we should have dedicated tickets here that can be closed once a dependency update with fix is applied. Mind creating them? (using same title + link to upstream bug is enough).
@lidel done:
- https://github.com/ipfs/service-worker-gateway/issues/512
- https://github.com/ipfs/service-worker-gateway/issues/513
- https://github.com/ipfs/service-worker-gateway/issues/514