Mirror of the Rel4tion website/wiki source, view at <http://rel4tion.org>

[[ 🗃 ^yEzqv rel4tion-wiki ]] :: [📥 Inbox] [📤 Outbox] [🐤 Followers] [🤝 Collaborators] [🛠 Commits]

Clone

HTTPS: git clone https://vervis.peers.community/repos/yEzqv

SSH: git clone USERNAME@vervis.peers.community:yEzqv

Branches

Tags

master :: maint / admin / Git_Server /

I2P.mdwn

Assuming you had a domain name, everything should work now via regular internet connections. But if you want to make your server accessible via I2P, we’ll need to change some things. Assume the I2P eepsite name you want is mysite.i2p and the gitweb interface will be at git.mysite.i2p.

Go to the gitweb configuration at /etc/gitweb.conf and change the URLs to point to the correct address, e.g. $logo_url should point to mysite.i2p and not mysite.org.

In the same file, change the URLs for @git_base_url_list to these:

git://localhost:8951
ssh://git@localhost:8950

Go to the server configuration at /etc/lighttpd/lighttpd.conf and change the gitweb host address to git.mysite.i2p, and change server.port from 80 to 7658. If you want both I2P and clearnet access, you leave it 80 but then you need to update the eepsite server tunnel to point to 80 as well.

Using your favorite browser for I2P go http://127.0.0.1:7657/configclients. We need to turn off the built-in eepsite server, Jetty, so lighttpd can take over. Untick “I2P webserver (eepsite)” so it doesn’t run at startup anymore, and click “Stop” to stop it. In case you need it, the default page you used to see when browsing to your eepsite (i.e. localhos:7658) can be found at /usr/share/i2p/eepsite/docroot/help/index.html.

Load the new lighttpd config by running service lighttpd reload as root. If it reports the port is in use, make sure you stopped Jetty (and any other webserver you don’t intend to use) and retry.

Go to http://127.0.0.1:7657/i2ptunnel. We’re going to setup several tunnels here. First, start the eepsite server tunnel (should be at the top of the page).

Create the following server tunnels:

We’ll go back here to create client tunnels, but first let’s create entries in the local addressbook for the new server tunnels. Copy the Local Destination field in the gitweb server tunnel configuration page (the long random-looking string), then go to http://localhost:7657/dns and switch to the Master addressbook. Here, create a new address with the name git.mysite.i2p and paste the destination you copied.

Now repeat the same process for the git-daemon tunnel with address anon.git.mysite.i2p and for the ssh tunnel with address auth.git.mysite.i2p.

Now, if you didn’t create an addressbook entry for your eepsite before, repeat the same step for the eepsite server tunnel with address mysite.i2p.

Client tunnels need to be added on the client side, i.e. by each team member on their i2p router. I suggest you do it first on your machine even if it’s the same machine which runs the server, so you can easily test the connection. Anyway, here are the steps: Go to the tunnel configuration page and add the following client tunnels:

Done! Now let’s test the new configuration. If something doesn’t work you can try restarting the I2P router or individual tunnels. Any repository will work; the example below uses the ‘testing’ repo preinstalled by gitolite.

$ cd /home/alice/git-repos
$ git clone git://localhost:8951/testing.git
$ rm -R testing
$ git clone ssh://git@localhost:8950/testing.git
$ cd testing
$ touch dummy
$ git add dummy
$ git commit
$ git push origin master

These commands test git:// pull and SSH in both directions, pull and push. If it was successful, the only thing left is to annouce the new eepsite and register it with address servers so finding it is becomes easier.

[[TODO|TODO/OPEN]]

[See repo JSON]