Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
413e39c924 | ||
![]() |
69d7242116 | ||
![]() |
5021cbaae8 |
@@ -1,4 +1,4 @@
|
|||||||
Using a `git bundle` to fetch the I2P source code
|
Using a git bundle to fetch the I2P source code
|
||||||
=================================================
|
=================================================
|
||||||
|
|
||||||
Cloning large software repositories over I2P can be difficult, and using git can
|
Cloning large software repositories over I2P can be difficult, and using git can
|
||||||
@@ -25,13 +25,13 @@ Someone will need to supply you with a torrent file or a magnet link
|
|||||||
corresponding to an existing ```git bundle``` that they have already generated
|
corresponding to an existing ```git bundle``` that they have already generated
|
||||||
for you. A recent, correctly-generated bundle of the mainline i2p.i2p source
|
for you. A recent, correctly-generated bundle of the mainline i2p.i2p source
|
||||||
code as-of Wednesday, March 18, 2020, can be found inside of I2P at my pastebin
|
code as-of Wednesday, March 18, 2020, can be found inside of I2P at my pastebin
|
||||||
[paste.idk.i2p/f/4hq37i](http://paste.idk.i2p/f/4h137i).
|
[paste.idk.i2p/f/4hq37i](http://paste.idk.i2p/f/4hq37i).
|
||||||
|
|
||||||
Once you have a bundle, you will need to use git to create a working repository
|
Once you have a bundle, you will need to use git to create a working repository
|
||||||
from it. If you're using GNU/Linux and i2psnark, the git bundle should be
|
from it. If you're using GNU/Linux and i2psnark, the git bundle should be
|
||||||
located in $HOME/.i2p/i2psnark or, as a service on Debian,
|
located in \$HOME/.i2p/i2psnark or, as a service on Debian,
|
||||||
/var/lib/i2p/i2p-config/i2psnark. If you are using BiglyBT on GNU/Linux, it is
|
/var/lib/i2p/i2p-config/i2psnark. If you are using BiglyBT on GNU/Linux, it is
|
||||||
probably at "$HOME/BiglyBT Downloads/" instead. The examples here assume
|
probably at "\$HOME/BiglyBT Downloads/" instead. The examples here assume
|
||||||
I2PSnark on GNU/Linux, if you use something else, replace the path to the
|
I2PSnark on GNU/Linux, if you use something else, replace the path to the
|
||||||
bundle with the download directory preferred by your client and platform.
|
bundle with the download directory preferred by your client and platform.
|
||||||
|
|
||||||
|
16
Makefile
Normal file
16
Makefile
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
install:
|
||||||
|
mkdir -p $(HOME)/Workspace/mtn/i2p.www/i2p2www/blog/2020/03/16
|
||||||
|
cp gitlab-over-i2p.rst $(HOME)/Workspace/mtn/i2p.www/i2p2www/blog/2020/03/16
|
||||||
|
#cp *.png $(HOME)/Workspace/mtn/i2p.www/i2p2www/static/images/git/
|
||||||
|
|
||||||
|
rst:
|
||||||
|
pandoc BUNDLES.md -o bundle-over-snark.rst
|
||||||
|
|
||||||
|
release-bundle:
|
||||||
|
cat desc | gothub release -p -u eyedeekay -r git-over-i2p -t bundles -n "Pregenerated Bundles" -d -; true
|
||||||
|
cat desc | gothub edit -p -u eyedeekay -r git-over-i2p -t bundles -n "Pregenerated Bundles" -d -; true
|
||||||
|
|
||||||
|
upload-bundle:
|
||||||
|
gothub upload -R -u eyedeekay -r git-over-i2p -t bundles -n "i2p.i2p.bundle.torrent" -f $(HOME)/.i2p/i2psnark/i2p.i2p.bundle.torrent
|
||||||
|
gothub upload -R -u eyedeekay -r git-over-i2p -t bundles -n "i2p.i2p.bundle" -f $(HOME)/.i2p/i2psnark/i2p.i2p.bundle
|
48
TERMS.md
Normal file
48
TERMS.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
Terms and Conditions for http://git.idk.i2p
|
||||||
|
===========================================
|
||||||
|
|
||||||
|
This is a work-in-progress document. It is not yet finalized. It will be soon.
|
||||||
|
|
||||||
|
Privacy Policy
|
||||||
|
--------------
|
||||||
|
|
||||||
|
git.idk.i2p and it's administrators will never share any information with any
|
||||||
|
third parties, except as required by law in the jurisdictions where it is
|
||||||
|
hosted(USA and Canada). Logs are kept for 24 hours only, and are never shared
|
||||||
|
with a third party. Account information given by the user may be visible on a
|
||||||
|
public profile, it is the user's responsibility to audit the information that
|
||||||
|
they share publicly.
|
||||||
|
|
||||||
|
Acceptance
|
||||||
|
----------
|
||||||
|
|
||||||
|
Accounts are open to the public. They approved by an admin on a case-by-case
|
||||||
|
basis. While real names and real e-mail addresses are not required, if we
|
||||||
|
suspect your account of being malicious in any way, it may never be approved,
|
||||||
|
a right which we reserve in perpetuity. Once you account is approved, the
|
||||||
|
following conditions apply.
|
||||||
|
|
||||||
|
If you cannot abide the terms and conditions below, or simply don't trust me to
|
||||||
|
host your repositories responsibly, please [consider hosting your own Gitlab
|
||||||
|
service](https://geti2p.net/en/blog/post/2020/03/16/gitlab-over-i2p).
|
||||||
|
|
||||||
|
Abuse
|
||||||
|
-----
|
||||||
|
|
||||||
|
Attempting to use git.idk.i2p to spam, communicate with or distribute malware,
|
||||||
|
or publicize and distribute materials that are illegal in the US or Canada are
|
||||||
|
strictly prohibited. Accounts found to be abusing the service to do this will
|
||||||
|
be deactivated permanently.
|
||||||
|
|
||||||
|
Files that may infringe the copyright of a specific organization will be
|
||||||
|
reviewed on a case-by-case basis and files or repositories will be removed if
|
||||||
|
the violation actually occurred.
|
||||||
|
|
||||||
|
Attempting to attack git.idk.i2p, including but not limited to by resource
|
||||||
|
wasting/exhaustion, user impersonation, defamatory tactics against the project
|
||||||
|
or other developers, attempts to exploit underlying git or SSH services, or
|
||||||
|
attempts to de-anonymize the service are prohibited. Accounts found to be
|
||||||
|
mounting attacks will be deactivated.
|
||||||
|
|
||||||
|
git.idk.i2p services are provided free of charge by idk for use by the I2P
|
||||||
|
project and by the I2P community.
|
111
bundle-over-snark.rst
Normal file
111
bundle-over-snark.rst
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
Using a git bundle to fetch the I2P source code
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
Cloning large software repositories over I2P can be difficult, and using
|
||||||
|
git can sometimes make this harder. Fortunately, it can also sometimes
|
||||||
|
make it easier. Git has a ``git bundle`` command which can be used to
|
||||||
|
turn a git repository into a file which git can then clone, fetch, or
|
||||||
|
import from a location on your local disk. By combining this capability
|
||||||
|
with bittorrent downloads, we can solve our remaining problems with
|
||||||
|
``git clone``.
|
||||||
|
|
||||||
|
Before you Start
|
||||||
|
----------------
|
||||||
|
|
||||||
|
If you intend to generate a git bundle, you **must** already possess a
|
||||||
|
full copy of the **git** repository, not the mtn repository. You can get
|
||||||
|
it from github or from git.idk.i2p, but a shallow clone(a clone done to
|
||||||
|
–depth=1) *will not* *work*. It will fail silently, creating what looks
|
||||||
|
like a bundle, but when you try to clone it it will fail. If you are
|
||||||
|
just retrieving a pre-generated git bundle, then this section does not
|
||||||
|
apply to you.
|
||||||
|
|
||||||
|
Fetching I2P Source via Bittorrent
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
Someone will need to supply you with a torrent file or a magnet link
|
||||||
|
corresponding to an existing ``git bundle`` that they have already
|
||||||
|
generated for you. A recent, correctly-generated bundle of the mainline
|
||||||
|
i2p.i2p source code as-of Wednesday, March 18, 2020, can be found inside
|
||||||
|
of I2P at my pastebin
|
||||||
|
`paste.idk.i2p/f/4hq37i <http://paste.idk.i2p/f/4h137i>`__.
|
||||||
|
|
||||||
|
Once you have a bundle, you will need to use git to create a working
|
||||||
|
repository from it. If you’re using GNU/Linux and i2psnark, the git
|
||||||
|
bundle should be located in $HOME/.i2p/i2psnark or, as a service on
|
||||||
|
Debian, /var/lib/i2p/i2p-config/i2psnark. If you are using BiglyBT on
|
||||||
|
GNU/Linux, it is probably at “$HOME/BiglyBT Downloads/” instead. The
|
||||||
|
examples here assume I2PSnark on GNU/Linux, if you use something else,
|
||||||
|
replace the path to the bundle with the download directory preferred by
|
||||||
|
your client and platform.
|
||||||
|
|
||||||
|
Using ``git clone``
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Cloning from a git bundle is easy, just:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
git clone $HOME/.i2p/i2psnark/i2p.i2p.bundle
|
||||||
|
|
||||||
|
If you get the following error, try using git init and git fetch
|
||||||
|
manually instead.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
fatal: multiple updates for ref 'refs/remotes/origin/master' not allowed
|
||||||
|
|
||||||
|
Using ``git init`` and ``git fetch``
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
First, create an i2p.i2p directory to turn into a git repository.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
mkdir i2p.i2p && cd i2p.i2p
|
||||||
|
|
||||||
|
Next, initialize an empty git repository to fetch changes back into.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
git init
|
||||||
|
|
||||||
|
Finally, fetch the repository from the bundle.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
git fetch $HOME/.i2p/i2psnark/i2p.i2p.bundle
|
||||||
|
|
||||||
|
Replace the bundle remote with the upstream remote
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Now that you have a bundle, you can keep up with changes by setting the
|
||||||
|
remote to the upstream repository source.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
git remote set-url origin git@127.0.0.1:i2p-hackers/i2p.i2p
|
||||||
|
|
||||||
|
Generating a Bundle
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
First, follow the `Git guide for Users <GIT.md>`__ until you have a
|
||||||
|
successfully ``--unshallow``\ ed clone of clone of the i2p.i2p
|
||||||
|
repository. If you already have a clone, make sure you run
|
||||||
|
``git fetch --unshallow`` before you generate a torrent bundle.
|
||||||
|
|
||||||
|
Once you have that, simply run the corresponding ant target:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
ant bundle
|
||||||
|
|
||||||
|
and copy the resulting bundle into your I2PSnark downloads directory.
|
||||||
|
For instance:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
cp i2p.i2p.bundle* $HOME/.i2p/i2psnark/
|
||||||
|
|
||||||
|
In a minute or two, I2PSnark will pick up on the torrent. Click on the
|
||||||
|
“Start” button to begin seeding the torrent.
|
28
desc
Normal file
28
desc
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
Using these files:
|
||||||
|
==================
|
||||||
|
|
||||||
|
These files are provided so that people who wish to can help seed the torrent.
|
||||||
|
To use these files, download them to your i2psnark directory:
|
||||||
|
|
||||||
|
First download the file itself:
|
||||||
|
|
||||||
|
```wget -c -O $HOME/.i2p/i2psnark/i2p.i2p.bundle https://github.com/eyedeekay/git-over-i2p/releases/download/bundles/i2p.i2p.bundle```
|
||||||
|
|
||||||
|
Then download the torrent.
|
||||||
|
|
||||||
|
```wget -c -O $HOME/.i2p/i2psnark/i2p.i2p.bundle.torrent https://github.com/eyedeekay/git-over-i2p/releases/download/bundles/i2p.i2p.bundle.torrent```
|
||||||
|
|
||||||
|
or, on Debian with a system service
|
||||||
|
|
||||||
|
```sudo -u i2psvc wget -c -O /var/lib/i2p/i2p-config/i2psnark/i2p.i2p.bundle https://github.com/eyedeekay/git-over-i2p/releases/download/bundles/i2p.i2p.bundle```
|
||||||
|
|
||||||
|
Then download the torrent.
|
||||||
|
|
||||||
|
```sudo -u i2psvc wget -c -O /var/lib/i2p/i2p-config/i2psnark/i2p.i2p.bundle.torrent https://github.com/eyedeekay/git-over-i2p/releases/download/bundles/i2p.i2p.bundle.torrent```
|
||||||
|
|
||||||
|
I2PSnark will pick up the torrent momentarily. Click the "Start" button to help
|
||||||
|
seed the torrent.
|
||||||
|
|
||||||
|
BiglyBT users should use this magnet link instead.
|
||||||
|
|
||||||
|
```magnet:?xt=urn:btih:OK7GWEX5WOCSTLGDUIVNP2JHQQX5VICP&dn=i2p.i2p.bundle&net=Public&net=I2P&net=Tor&tr=http%3A%2F%2Fzviyq72xcmjupynn5y2f5qa3u7bxyu34jnqmwt6czte2l7idxm7q.b32.i2p%2Fannounce&tr=http%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce&tr=http%3A%2F%2Ftracker2.postman.i2p%2Fannounce.php&tr=http%3A%2F%2Fs5ikrdyjwbcgxmqetxb3nyheizftms7euacuub2hic7defkh3xhq.b32.i2p%2Fa&tr=http%3A%2F%2Fuajd4nctepxpac4c4bdyrdw7qvja2a5u3x25otfhkptcjgd53ioq.b32.i2p%2Fannounce&tr=http%3A%2F%2Fw7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p%2Fa&tr=udp%3A%2F%2Fp4p.arenabg.com%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.internetwarriors.net%3A1337%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%2Fannounce&tr=udp%3A%2F%2Ftracker.cyberia.is%3A6969%2Fannounce&tr=udp%3A%2F%2Fretracker.lanta-net.ru%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.sbsub.com%3A2710%2Fannounce&tr=udp%3A%2F%2Ftracker.tiny-vps.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.moeking.me%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.nyap2p.com%3A8080%2Fannounce&tr=udp%3A%2F%2Fbt1.archive.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker3.itzmx.com%3A6961%2Fannounce&tr=udp%3A%2F%2Fbt2.archive.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fipv4.tracker.harry.lu%2Fannounce&tr=udp%3A%2F%2F9.rarbg.to%3A2940%2Fannounce&tr=udp%3A%2F%2F9.rarbg.me%3A2790%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce```
|
251
gitlab-over-i2p.rst
Normal file
251
gitlab-over-i2p.rst
Normal file
@@ -0,0 +1,251 @@
|
|||||||
|
{% trans -%}Gitlab over I2P Setup{%- endtrans %}
|
||||||
|
================================================
|
||||||
|
|
||||||
|
.. meta::
|
||||||
|
:author: idk
|
||||||
|
:date: 2020-03-16
|
||||||
|
:excerpt: {% trans -%}Mirror I2P Git repositories and Bridge Clearnet repositories for others.{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
This is the setup process I use for configuring Gitlab and I2P, with
|
||||||
|
Docker in place to manage the service itself. Gitlab is very easy to
|
||||||
|
host on I2P in this fashion, it can be administered by one person
|
||||||
|
without much difficulty. In my configuration, I use a Debian VM to host
|
||||||
|
docker containers and an I2P router, on a Debian Host system, however,
|
||||||
|
this may be more than necessary for some people. These instructions
|
||||||
|
should work on any Debian-based system, regardless of whether it is in a
|
||||||
|
VM or not, and should easily translate to any system where Docker and an
|
||||||
|
I2P router are available. This guide starts at Docker and does not
|
||||||
|
assume any VM underneath.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}Dependencies and Docker{%- endtrans %}
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
Because Gitlab runs in a container, we only need to install the
|
||||||
|
dependencies required for the container on our main system.
|
||||||
|
Conveniently, you can install everything you need with:
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
sudo apt install docker.io
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
on an otherwise unmodified Debian system, or if you have added Docker’s
|
||||||
|
own “Community” Debian repository, you may use:
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
sudo apt install docker-ce
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
instead.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
------------------------------------------------------
|
||||||
|
{% trans -%}Fetch the Docker Containers{%- endtrans %}
|
||||||
|
------------------------------------------------------
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
Once you have docker installed, you can fetch the docker containers
|
||||||
|
required for gitlab. *Don’t run them yet.*
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
docker pull gitlab/gitlab-ce
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
For those who are concerned, the gitlab-ce Docker image is built using
|
||||||
|
only Ubuntu Docker images as a parent, which are built from scratch
|
||||||
|
images. Since there are no third-party images involved here, updates
|
||||||
|
should come as soon as they are available in the host images. To review
|
||||||
|
the Dockerfile for yourself, visit the `Gitlab source
|
||||||
|
code <https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/master/docker/Dockerfile>`__.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}Set up an I2P HTTP Proxy for Gitlab to use(Important information, optional steps){%- endtrans %}
|
||||||
|
------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
Gitlab servers inside of I2P can be run with or without the ability to
|
||||||
|
interact with servers on the internet outside of I2P. In the case where
|
||||||
|
the Gitlab server is *not allowed* to interact with servers outside of
|
||||||
|
I2P, they cannot be de-anonymized by cloning a git repository from a git
|
||||||
|
server on the internet outside of I2P. They can, however, export and
|
||||||
|
mirror repositories from other git services inside of I2P.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
In the case where the Gitlab server is *allowed* to interact with
|
||||||
|
servers outside of I2P, it can act as a “Bridge” for the users, who can
|
||||||
|
use it to mirror content outside I2P to an I2P-accessible source,
|
||||||
|
however it *is not anonymous* in this case. Git services on the
|
||||||
|
non-anonymous internet will be connected to directly.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
**If you want to have a bridged, non-anonymous Gitlab instance with
|
||||||
|
access to** **web repositories,** no further modification is necessary.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
**If you want to have an I2P-Only Gitlab instance with no access to
|
||||||
|
Web-Only** **Repositories**, you will need to configure Gitlab to use an
|
||||||
|
I2P HTTP Proxy. Since the default I2P HTTP proxy only listens on
|
||||||
|
``127.0.0.1``, you will need to set up a new one for Docker that listens
|
||||||
|
on the Host/Gateway address of the Docker network, which is usually
|
||||||
|
``172.17.0.1``. I configure mine on port ``4446``.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}Start the Container Locally{%- endtrans %}
|
||||||
|
------------------------------------------------------
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
Once you have that set up, you can start the container and publish your
|
||||||
|
Gitlab instance locally.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
docker run --detach \
|
||||||
|
--env HTTP_PROXY=http://172.17.0.1:4446 \
|
||||||
|
--publish 127.0.0.1:8443:443 --publish 127.0.0.1:8080:80 --publish 127.0.0.1:8022:22 \
|
||||||
|
--name gitlab \
|
||||||
|
--restart always \
|
||||||
|
--volume /srv/gitlab/config:/etc/gitlab:Z \
|
||||||
|
--volume /srv/gitlab/logs:/var/log/gitlab:Z \
|
||||||
|
--volume /srv/gitlab/data:/var/opt/gitlab:Z \
|
||||||
|
gitlab/gitlab-ce:latest
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
Visit your Local Gitlab instance and set up your admin account. Choose a
|
||||||
|
strong password, and configure user account limits to match your
|
||||||
|
resources.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}Modify gitlab.rb(Optional, but a good idea for “Bridged non-anonymous” hosts){%- endtrans %}
|
||||||
|
--------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
It’s also possible to apply your HTTP Proxy settings in a more granular
|
||||||
|
way, so that you can only allow users to mirror repositories from the
|
||||||
|
domains that you choose. Since the domain is presumably operated by an
|
||||||
|
organization, you can use this to ensure that repositories that are
|
||||||
|
mirrorable follow a reasonable set of policies. After all, there is far
|
||||||
|
more abusive content on the non-anonymous internet than there is on I2P,
|
||||||
|
we wouldn’t want to make it too easy to introduce abusive content from
|
||||||
|
such a nefarious place.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
Add the following lines to your gitlab.rb file inside the
|
||||||
|
/src/gitlab/config container. These settings will take effect when you
|
||||||
|
restart in a moment.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
gitlab_rails['env'] = {
|
||||||
|
"http_proxy" => "http://172.17.0.1:4446",
|
||||||
|
"https_proxy" => "http://172.17.0.1:4446",
|
||||||
|
"no_proxy" => ".github.com,.gitlab.com"
|
||||||
|
}
|
||||||
|
gitaly['env'] = {
|
||||||
|
"http_proxy" => "http://172.17.0.1:4446",
|
||||||
|
"https_proxy" => "http://172.17.0.1:4446",
|
||||||
|
"no_proxy" => "unix,.github.com,.gitlab.com"
|
||||||
|
}
|
||||||
|
gitlab_workhorse['env'] = {
|
||||||
|
"http_proxy" => "http
|
||||||
|
"https_proxy" => "http://172.17.0.1:4446",
|
||||||
|
"no_proxy" => "unix,.github.com,.gitlab.com"
|
||||||
|
}
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
{% trans -%}Set up your Service tunnels and sign up for a Hostname{%- endtrans %}
|
||||||
|
---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
Once you have Gitlab set up locally, go to the I2P Router console. You
|
||||||
|
will need to set up two server tunnels, one leading to the Gitlab
|
||||||
|
web(HTTP) interface on TCP port 8080, and one to the Gitlab SSH
|
||||||
|
interface on TCP Port 8022.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}Gitlab Web(HTTP) Interface{%- endtrans %}
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
For the Web interface, use an “HTTP” server tunnel. From
|
||||||
|
http://127.0.0.1:7657/i2ptunnelmgr launch the “New Tunnel Wizard” and
|
||||||
|
enter the following values at each step:
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
1. {% trans -%}Select “Server Tunnel”{%- endtrans %}
|
||||||
|
2. {% trans -%}Select “HTTP Server”{%- endtrans %}
|
||||||
|
3. {% trans -%}Fill in “Gitlab Web Service” or otherwise describe the tunnel{%- endtrans %}
|
||||||
|
4. {% trans -%}Fill in ``127.0.0.1`` for the host and ``8080`` for the port.{%- endtrans %}
|
||||||
|
5. {% trans -%}Select “Automatically start tunnel when Router Starts”{%- endtrans %}
|
||||||
|
6. {% trans -%}Confirm your selections.{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}Register a Hostname(Optional){%- endtrans %}
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
Web services on I2P can register hostnames for themselves by providing
|
||||||
|
an authentication string to a jump service provider like
|
||||||
|
`stats.i2p <http://stats.i2p>`__. To do this, open the
|
||||||
|
http://127.0.0.1:7657/i2ptunnelmgr again and click on the “Gitlab Web
|
||||||
|
Service” item you just set up. Scroll to the bottom of the “Edit Server
|
||||||
|
Settings” section and click Registration Authentication. Copy the field
|
||||||
|
that says “Authentication for adding Hostname” and visit
|
||||||
|
`stats.i2p <http://stats.i2p/i2p/addkey.html>`__ to add your hostname.
|
||||||
|
Note that if you want to use a subdomain(Like git.idk.i2p) then you will
|
||||||
|
have to use the correct authentication string for your subdomain, which
|
||||||
|
is a little bit more complicated and merits it’s own instructions.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}Gitlab SSH Interface{%- endtrans %}
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
For the SSH interface, use a “Standard” server tunnel. From
|
||||||
|
http://127.0.0.1:7657/i2ptunnelmgr launch the “New Tunnel Wizard” and
|
||||||
|
enter the following values at each step:
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
1. {% trans -%}Select “Server Tunnel”{%- endtrans %}
|
||||||
|
2. {% trans -%}Select “Standard Server”{%- endtrans %}
|
||||||
|
3. {% trans -%}Fill in “Gitlab SSH Service” or otherwise describe the tunnel{%- endtrans %}
|
||||||
|
4. {% trans -%}Fill in ``127.0.0.1`` for the host and ``8022`` for the port.{%- endtrans %}
|
||||||
|
5. {% trans -%}Select “Automatically start tunnel when Router Starts”{%- endtrans %}
|
||||||
|
6. {% trans -%}Confirm your selections.{%- endtrans %}
|
||||||
|
|
||||||
|
{% trans -%}Re-start the Gitlab Service with the new Hostname{%- endtrans %}
|
||||||
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
{% trans -%}
|
||||||
|
Finally, if you either modified ``gitlab.rb`` or you registered a
|
||||||
|
hostname, you will need to re-start the gitlab service for the settings
|
||||||
|
to take effect.
|
||||||
|
{%- endtrans %}
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
docker stop gitlab
|
||||||
|
docker rm gitlab
|
||||||
|
docker run --detach \
|
||||||
|
--hostname your.hostname.i2p \
|
||||||
|
--hostname thisisreallylongbase32hostnamewithfiftytwocharacters.b32.i2p \
|
||||||
|
--env HTTP_PROXY=http://172.17.0.1:4446 \
|
||||||
|
--publish 127.0.0.1:8443:443 --publish 127.0.0.1:8080:80 --publish 127.0.0.1:8022:22 \
|
||||||
|
--name gitlab \
|
||||||
|
--restart always \
|
||||||
|
--volume /srv/gitlab/config:/etc/gitlab:Z \
|
||||||
|
--volume /srv/gitlab/logs:/var/log/gitlab:Z \
|
||||||
|
--volume /srv/gitlab/data:/var/opt/gitlab:Z \
|
||||||
|
gitlab/gitlab-ce:latest
|
33
resources/07-Git Repo-i2ptunnel.config
Normal file
33
resources/07-Git Repo-i2ptunnel.config
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# NOTE: This I2P config file must use UTF-8 encoding
|
||||||
|
# Last saved: Jan 7, 2020, 9:38 PM
|
||||||
|
description=SSH Tunnel for git.idk.i2p
|
||||||
|
interface=127.0.0.1
|
||||||
|
listenPort=7822
|
||||||
|
name=Git Repo
|
||||||
|
option.i2cp.closeIdleTime=1800000
|
||||||
|
option.i2cp.closeOnIdle=false
|
||||||
|
option.i2cp.delayOpen=false
|
||||||
|
option.i2cp.destination.sigType=7
|
||||||
|
option.i2cp.newDestOnResume=false
|
||||||
|
option.i2cp.reduceIdleTime=1200000
|
||||||
|
option.i2cp.reduceOnIdle=false
|
||||||
|
option.i2cp.reduceQuantity=1
|
||||||
|
option.i2p.streaming.connectDelay=500
|
||||||
|
option.i2p.streaming.maxWindowSize=16
|
||||||
|
option.inbound.backupQuantity=3
|
||||||
|
option.inbound.length=1
|
||||||
|
option.inbound.lengthVariance=0
|
||||||
|
option.inbound.nickname=Git Repo
|
||||||
|
option.inbound.quantity=3
|
||||||
|
option.outbound.backupQuantity=3
|
||||||
|
option.outbound.length=1
|
||||||
|
option.outbound.lengthVariance=0
|
||||||
|
option.outbound.nickname=Git Repo
|
||||||
|
option.outbound.quantity=3
|
||||||
|
option.persistentClientKey=true
|
||||||
|
option.useSSL=false
|
||||||
|
privKeyFile=i2ptunnel6.1-privKeys.dat
|
||||||
|
sharedClient=false
|
||||||
|
startOnLoad=true
|
||||||
|
targetDestination=redactedfromthisversionsetupanotheritseasy.b32.i2p
|
||||||
|
type=client
|
Reference in New Issue
Block a user