Essentially, you'll need a web server and either the Java I2P or C++ I2P (I2Pd), but for this guide I'll be using I2Pd and Caddy (since it is pretty simple).
If you don't have a clue of what you're doing, consider going to [w3schools] to learn a thing or two about both CSS
(optional) and HTML. If you already know both, good for you.
Create a directory called 'site' and create a file (outside the directory) called ‘Caddyfile’.
Next, create a file called index.html (inside the directory) and use what you know about HTML.
Extra points if you make it look pretty both visually and technically.
Once finished, edit the Caddyfile file and follow something similar to this:
# Serves the site over on port 1337. :1337 # Uses the directory just created. root * site # Starts serving the files. file_serverPretty simple, right? Now, if you installed Caddy (We're using Caddy, remember? Go get it.), run
./caddy run or caddy run (depends if Caddy is in the PATH, or on a specific location).
If everything went fine, and you can acess 127.0.0.1:1337, then good job.
In the I2Pd router, edit/create the
tunnels.conf file in your ~/.i2pd directory to add the following tunnel (feel free to edit what you want):
[myeepsite] type = http host = 127.0.0.1 port = 1337 keys = sitekeys.datAnd now you just have to restart your router. After that is done, travel to you console over at 127.0.0.1:7070 and go to the "I2P Tunnels" page. You should see "myeepsite" (or whatever you placed inside the square brackets in the tunnel configuration) under the “Server Tunnels” section. Then, for your pleasure, click on it then "Address registration line". It will prompt you to claim your very own .i2p domain, as well as publishing it to the [reg] registration service.
It should be fairly easy for the Java I2P: go to your tunnel manager (if using I2P+, it is at plain sight), and create a new HTTP server. Set up the port the same as the Caddy one, and it should work. If not, figure it out.