Mirror Your Site Over I2P

I2P logo

Now you have a website, why not offer it in a private alternative such as the Invisible Internet?

Setting up I2P

There are 2 main I2P implementations, I2P and i2pd, we are using i2pd in this guide because it's easier to use in servers.

Installing I2P

i2pd is in most repos, in debian/ubuntu you can install it simply with

# apt install i2pd

Enabling I2P

We are going to create a user for i2pd, because i2pd finds the configuration files in its home directory. And it's easier (and more tidy) to have it in a separate user:

adduser
i2p su i2p
mkdir ~/.i2pd
cd ~/.i2pd

Now that you're in ~/.i2pd, you have to create a file named "tunnels.conf". Which is the config file for every hidden service you're offering over I2P, the content should be like this:

[landchad]
type = http
host = 127.0.0.1
port = 8080
keys = landchad.dat

Then, run i2pd --daemon to start i2pd. Then use lynx or any browser to go to http://127.0.0.1:7070/?page=i2p_tunnels to get your I2P hostname. You can also run these commands to find your hostname:

cd ~/.i2pd/
printf "%s.b32.i2p\n" $(head -c 391 landchad.dat |sha256sum|xxd -r -p | base32 |sed s/=//g | tr A-Z a-z)

Adding the Nginx Config

From here, the steps are almost identical to setting up a normal website configuration file. Follow the steps as if you were making a new website on the webserver tutorial up until the server block of code. Instead, paste this:

server {
listen 127.0.0.1:8080 ;
root /var/www/landchad ;
index index.html ;
}

From here we are almost done, all we have to do is enable the site and reload nginx which is also covered in the webserver tutorial.

Update regularly!

Make sure to update I2P on a regular basis by running:

apt update && apt install i2pd

Contributor - qorg11