65 lines
1.8 KiB
Markdown
65 lines
1.8 KiB
Markdown
## Intergalactic
|
|
|
|
Intergalactic is a client-side gateway to the [IPFS](https://ipfs.io/)
|
|
distributed web. After the initial page load and bootstrapping, it pulls
|
|
content from IPFS peers entirely in your browser.
|
|
|
|
### Motivation
|
|
|
|
Intergalactic brings the distributed web to anyone with a web browser. Web
|
|
developers and content producers, simply publish your content through IPFS,
|
|
and then bring it to your users with Intergalactic. All without downloads,
|
|
software installation, or running IPFS yourself.
|
|
|
|
### How It Works
|
|
|
|
Intergalactic automatically installs a JavaScript [service
|
|
worker](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API)
|
|
in your browser that intercepts requests to IPFS multihash URLs, and fetches
|
|
their content from the IPFS network before rendering in the browser. In other
|
|
words, Intergalactic serves as a translation layer between HTTP and IPFS
|
|
without needing to go through a central server.
|
|
|
|
Additionally, Intergalactic treats each IPFS base hash as its own separate
|
|
[origin](https://en.wikipedia.org/wiki/Same-origin_policy). This helps avoid
|
|
cross-site request forgery among IPFS pages, even if they're all served on the
|
|
same domain.
|
|
|
|
## Installation
|
|
|
|
```shell
|
|
npm install
|
|
```
|
|
|
|
TODO
|
|
|
|
## Usage
|
|
|
|
### Development
|
|
|
|
First, run the following from your copy of Intergalactic's source code:
|
|
|
|
```shell
|
|
node server.js
|
|
```
|
|
|
|
Then, enter a URL like `http://localhost:3000/ipfs/<hash>` into your web
|
|
browser, where `<hash>` is the IPFS hash of some content on the network.
|
|
|
|
If the corresponding content is loadable, it will load and render in your
|
|
browser.
|
|
|
|
Open your browser's web console to see what's going on and debug any issues
|
|
loading content.
|
|
|
|
|
|
### Production
|
|
|
|
TODO
|
|
|
|
|
|
### Compatibility
|
|
|
|
So far, this is only tested in Firefox 57 on Linux. If you have success or
|
|
issues on other browsers, please let me know.
|