A light-weight web server that serves any website published to IPFS. It monitors a BCH address and automatically updates when new content is announced by that address.
Here is a non-technical video overview of how governments censor content on the internet, and how decentralized publishing tools can be used to circumvent it.
This is the server-side software that serves up content to users with a normal web browser. It works in conjunction with the memo-push publishing tool. Memo-push is used to announce new content via the BCH network. This software is used to retrieve that new content from the IPFS network and serve it to users. It also serves content directly to the Tor network as well, via a hidden service.
This project was forked from the koa-api-boilerplate
- node ^10.15.1
- npm ^6.7.0
- Clone and install dependencies:
git clone https://github.com/Permissionless-Software-Foundation/ipfs-web-server cd ipfs-web-server npm install
- Install IPFS and ensure the
daemon is running by executing
There are two forms of using this repository. Development is best for hacking and development of the server. Production packages the repository into a Docker container for easy deployment. It also adds a Tor docker container so that your website content can be accessed directly through Tor and the Tor browser.
Ensure the IPFS daemon is running.
Start the server:
It's assumed that you are starting with a fresh installation of Ubuntu 18.04 LTS on a 64-bit machine. It's also assumed that you are installing as a non-root user with sudo privileges.
Install Docker on the host system. This tutorial shows how to install Docker on a Ubuntu system. It's specifically targeted to Digital Ocean's cloud servers, but should work for any Ubuntnu system.
Install Docker Compose too. This tutorial shows how to do so on a Ubuntu system.
Build the image:
Run the docker container:
Or, run the docker container in daemon mode:
docker-compose up -d
Note: It takes time for the container to crawl the IPFS peer-to-peer network
and connect to peers, in order to find the initial content it wants to download.
You can speed up this processes by pre-downloading the initial content into the
ipfs-data directory. If working regularly with this software, consider forking
app to make uploading of IPFS content faster.
Note: Your website will be able to be accessed directly over the Tor network.
The .onion address for your website can be found in
v1.1.3 uploaded to IPFS:
- Get it:
ipfs get QmULHyBTAHQxT9Rnd6n7bfnXCDFdcHtZQKM4Jn1JsSteUG
- Pin it:
ipfs pin add -r QmULHyBTAHQxT9Rnd6n7bfnXCDFdcHtZQKM4Jn1JsSteUG