Compare commits
34 Commits
oct-2020-m
...
irc-guide
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cb957e5084 | ||
![]() |
af89eb6dba | ||
![]() |
e68b2b33ca | ||
![]() |
0630fdf702 | ||
![]() |
8cbc987caa | ||
![]() |
abbb82394a | ||
![]() |
32f8cbb085 | ||
![]() |
0cd3c23b45 | ||
![]() |
2b4fc77c48 | ||
![]() |
702b325301 | ||
![]() |
76d2017888 | ||
![]() |
63517aa581 | ||
![]() |
1c1d042b88 | ||
![]() |
5907578b58 | ||
![]() |
c2852f7c7b | ||
![]() |
6406b93e21 | ||
![]() |
e0fb0db0cc | ||
![]() |
984c7e1510 | ||
![]() |
f10920fff4 | ||
![]() |
759fa6476d | ||
![]() |
2662a7847f | ||
![]() |
5486e1b46d | ||
![]() |
69d82df530 | ||
![]() |
9a8d69cb3b | ||
![]() |
113d491756 | ||
![]() |
e32879839a | ||
![]() |
ed14a73628 | ||
![]() |
d8d12c2b6b | ||
![]() |
6bef2c76df | ||
![]() |
2b395833e5 | ||
![]() |
c22d3fc8c2 | ||
![]() |
9d05cba3f1 | ||
![]() |
94197daeed | ||
![]() |
5f3c571614 |
18
README.md
@@ -95,6 +95,12 @@ in `etc/translation.vars` can be overridden by creating the file
|
||||
5. Check in the updated translations:
|
||||
|
||||
```
|
||||
# git instructions
|
||||
$ git commit -am "Updated translations"
|
||||
```
|
||||
|
||||
```
|
||||
# older mtn instructions
|
||||
$ mtn ci `cat newtranslations.txt` -m "Updated translations"
|
||||
```
|
||||
|
||||
@@ -105,6 +111,12 @@ in `etc/translation.vars` can be overridden by creating the file
|
||||
or add the language to the table in __init__.py (if it's translated enough to add it to the website).
|
||||
|
||||
```
|
||||
# git instructions
|
||||
$ git add i2p2www/translations/* && git commit -am "New translations"
|
||||
```
|
||||
|
||||
```
|
||||
# older mtn instructions
|
||||
$ mtn add -R i2p2www/translations/ && mtn ci i2p2www/translations/ -m "New translations"
|
||||
```
|
||||
|
||||
@@ -119,6 +131,12 @@ in `etc/translation.vars` can be overridden by creating the file
|
||||
2. Check in any changes to the .pot files (optional):
|
||||
|
||||
```
|
||||
# git instructions
|
||||
$ git commit -am "Updated translation strings"
|
||||
```
|
||||
|
||||
```
|
||||
# older mtn instructions
|
||||
$ mtn ci pots/ -m "Updated translation strings"
|
||||
```
|
||||
|
||||
|
69
i2p2www/meetings/logs/296.log
Normal file
@@ -0,0 +1,69 @@
|
||||
(03:01:04 PM) eyedeekay: Hi everyone, and welcome to the November 3rd Meeting of the I2P project. idk coming at you somewhat unexpectedly from the Marriot wi-fi, dealing with a pretty nasty captive portal, so today I'm two handles, eyedeekay and idk_mobile in case on or the other connections goes down.
|
||||
(03:01:04 PM) eyedeekay: Please bear with me on this, this hotel wi-fi is really just... staggeringly bad. I'll back back on my reliable connection on Thursday.
|
||||
(03:01:04 PM) eyedeekay: On the agenda for today are:
|
||||
(03:01:04 PM) eyedeekay: 1) Hi (idk)
|
||||
(03:01:04 PM) eyedeekay: 2) *brief* meeting procedural review (idk)
|
||||
(03:01:04 PM) eyedeekay: 3) 0.9.48 release (zzz, idk)
|
||||
(03:01:04 PM) eyedeekay: 4) Call for Testers (idk)
|
||||
(03:01:04 PM) eyedeekay: 5) Git Progress Update (idk)
|
||||
(03:01:04 PM) eyedeekay: 6) Router Console additional sites vote(idk)
|
||||
(03:01:04 PM) eyedeekay: Hello everyone, who else is here today?
|
||||
(03:01:38 PM) zzz: hi
|
||||
(03:01:43 PM) eyedeekay: hi zzz
|
||||
(03:02:09 PM) eyedeekay: Anybody else?
|
||||
(03:03:21 PM) eyedeekay: Well 2 is either essential or a moot point I guess 2) About the hi's: Many of us run our IRC clients nearly all the time, and it's not always clear who is here and who is not. So at the start of our meetings, we say "hi" just so we know for sure who is here and ready to participate, and who is making sure that they have the scrollback for later. Please say hi for the meeting when you arrive
|
||||
(03:04:19 PM) eyedeekay: 3) 0.9.48 release
|
||||
(03:05:07 PM) John left the room (quit: Read error).
|
||||
(03:05:11 PM) eyedeekay: 0.9.48 Will see the remaining polish on the Light and Dark Router console themes. Mostly small things, to fine-tune margins and padding around the new icons used in those themes. A new set of icons for the Light and Dark Snark themes have been selected based on feedback, as well.
|
||||
(03:05:11 PM) eyedeekay: 0.9.48 Android release will be using the Android build process which was revised and fixed over the course of last week. The dogfood tastes much better than it has in the previous weeks, looking forward to this one. For those who aren't in the know, for many years our Android releases had their usability greatly compromised due to errors stemming from a misconfigured bootclasspath, which was documented counter-intuitively and minimally, if at all.
|
||||
(03:05:36 PM) eyedeekay: This issue has been resolved for the future.
|
||||
(03:06:37 PM) eyedeekay: Sadie and I have been updating, revising, cutting, and re-arranging documentation on the i2p.www git branch "style-guide"
|
||||
(03:07:38 PM) eyedeekay: Nothing here is set on stone, but are providing more and better examples, specific application help for the bundled I2P applications, updated reseed guides for friend-to-friend reseeds and hosting a reseed server, and updating our comparisons pages
|
||||
(03:08:10 PM) eyedeekay: zzz what would you like to add?
|
||||
(03:08:19 PM) zzz: yeah, re: android
|
||||
(03:08:35 PM) John [john@3n6rizeciinzvbuzub5ux3jru6iazw6drx76cjcwmcc5yaltccca.b32.i2p] entered the room.
|
||||
(03:08:39 PM) zzz: to be clear, you released 0.9.47-1 last week, and it's available at all the places? I don't think I saw any announcement
|
||||
(03:08:53 PM) zzz: so you should get the word out and get some test reports
|
||||
(03:09:17 PM) eyedeekay: Sure I can do an announcement
|
||||
(03:09:24 PM) zzz: re: 48, all is going well. We're at almost 15K lines of diff, pretty typical
|
||||
(03:09:42 PM) zzz: the router encryption type work is going surprisingly well, way ahead of schedule
|
||||
(03:09:48 PM) zzz: that's proposals 152 and 156
|
||||
(03:10:02 PM) zzz: a lot of that work will be in the .48 release, for brave testers
|
||||
(03:10:22 PM) zzz: the preliminary release announcement is up on zzz.i2p for review
|
||||
(03:10:53 PM) zzz: I'd like to decide on a release date today. 23rd or 30th?
|
||||
(03:10:58 PM) zzz: that would be tag freeze in either one week or two from now
|
||||
(03:11:25 PM) zzz: eot
|
||||
(03:12:01 PM) eyedeekay: It no longer matters as much to me, I can't travel for a while anyway, but I'd still like to do the 30th if possible
|
||||
(03:12:44 PM) zzz: ok, 30th it is. tag freeze on the 18th, checkin deadline the 27th. I'll update the post on my forum
|
||||
(03:12:53 PM) eyedeekay: Excellent thanks
|
||||
(03:13:52 PM) eyedeekay: That brings us to 4) call to testers
|
||||
(03:13:55 PM) eyedeekay: As we go into the last month before the 0.9.48 release, I'd like to call on our users to give us feedback on I2P here, or on the project forum(i2pforum.i2p), or on zzz's forum(zzz.i2p), or on reddit.com/r/i2p where I lurk for us.
|
||||
(03:14:24 PM) eyedeekay: I'll post this call up to those places when I put the meeting log up to the site
|
||||
(03:15:00 PM) eyedeekay: Feedback on everything is important, performance, style, configuration. Please be in touch!
|
||||
(03:15:09 PM) zzz: yeah ok I'll probably set a -rc version tag in about a week
|
||||
(03:16:57 PM) Sleepy left the room (quit: Read error).
|
||||
(03:16:58 PM) eyedeekay: Anything else to add on this topic?
|
||||
(03:17:26 PM) zzz: no
|
||||
(03:17:49 PM) eyedeekay: Thanks zzz :)
|
||||
(03:17:57 PM) eyedeekay: 5) Git Update: As of now I have temporarily stopped migrating new repositories while I configure a push rule to enforce GPG-signed commits on the "I2P Developers" namespace. This is a firm requirement for i2p.i2p and i2p.android.base at least. At this time, we have migrated active plugins to the gitlab, as well as i2p.newsxml, i2p.firefox, i2p.scripts, and i2p.www. I have built I2P and I2P for Android successfully from both Git and Monotone this week, including building a mtn-based i2p.android.base on top of a git-based i2p.i2p and a git-based i2p.android.base on top of a mtn-based i2p.i2p. This would imply that after the push rule is set up, i2p.i2p could be migrated without breaking projects that depend on it. TODO for this however is to contact other downstreams, mhatta, zero, and BiglyBT, to inform them of the switch.
|
||||
(03:19:08 PM) zzz: what's the schedule? before or after the 48 release?
|
||||
(03:19:31 PM) zzz: I don't believe any downstreams are using mtn
|
||||
(03:19:52 PM) eyedeekay: I don't think so either, they all use either maven or the github mirror to my knowledge, I just want to make sure
|
||||
(03:21:17 PM) eyedeekay: I think we can do it before 0.9.48 still, if I start it right after I get the push rule set up.
|
||||
(03:22:09 PM) Sleepy [Sleepy@bjy63jgb427hmekhcp6v4kxs7p2le7cpuuvdmngod76fv2isfw4a.b32.i2p] entered the room.
|
||||
(03:22:19 PM) zzz: ok, just don't get too close
|
||||
(03:23:26 PM) zzz: and get positive acks from everybody before you throw the switch. can't have any laggards
|
||||
(03:23:29 PM) eyedeekay: Yeah if I don't think I can get it done with a little time before tag freeze I will delay until 49
|
||||
(03:23:37 PM) eyedeekay: Will do
|
||||
(03:25:08 PM) eyedeekay: Anything else from anyone on this topic?
|
||||
(03:26:01 PM) eyedeekay: OK, then the last one is 6)
|
||||
(03:26:04 PM) eyedeekay: I would like to add 2 of my sites to the router console home page, the first of which is git.idk.i2p, which is my gitlab host which is open to the community and which is where the I2P mtn repositories have been migrating to.
|
||||
(03:26:04 PM) eyedeekay: The second of which is paste.idk.i2p which is a general-purpose pastebin for files and test, which I put up when it appeared that no other pastebins were still accessible.
|
||||
(03:27:00 PM) zzz: no objections
|
||||
(03:28:15 PM) zzz: but I suggest another pass at the proposed tooltips, I have some ideas I'll run by you later
|
||||
(03:29:05 PM) eyedeekay: Fine by me
|
||||
(03:30:55 PM) eyedeekay: All right that brings us to the end of everything I had planned for this meeting, so if anyone else has any other topics for discussion please bring them up now
|
||||
(03:31:20 PM) eyedeekay: timeout 1m
|
||||
(03:32:42 PM) eyedeekay: All right thanks for coming to the meeting zzz, thanks for listening listeners.
|
||||
(03:33:08 PM) eyedeekay: Next month's meeting will be December 8th, same time, same channel
|
||||
(03:33:13 PM) eyedeekay: *Baffs*
|
10
i2p2www/meetings/logs/296.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
I2P dev meeting, November 3, 2020 @ 20:00 UTC
|
||||
=============================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
||||
* **Present:**
|
||||
|
||||
eyedeekay,
|
||||
zzz
|
@@ -19,6 +19,7 @@ configure your browser yourself. Read below on how to that.
|
||||
<ul>
|
||||
<li><a href="#firefox">Firefox</a></li>
|
||||
<li><a href="#chrome">Chrome</a></li>
|
||||
<li><a href="#android">Android</a></li>
|
||||
<li><a href="#ie8">Internet Explorer 8</a></li>
|
||||
<li><a href="#TOS">{{ _('Outproxy Terms Of Service') }}</a></li>
|
||||
</ul>
|
||||
@@ -68,7 +69,7 @@ PeerConnection Settings') }}" title="{{ _('Firefox57 PeerConnection Settings') }
|
||||
<p>{% trans %}An experimental, partially-automated configuration process for
|
||||
Chrome is available. In order to configure it, create a new <em>Profile</em>
|
||||
especially for your I2P browsing, separate from the default profile. Then install
|
||||
this <a href=""><em>Extension</em></a> in your newly-created profile. This profile
|
||||
this <a href="https://chrome.google.com/webstore/detail/i2pchromejs/ikdjcmomgldfciocnpekfndklkfgglpe"><em>Extension</em></a> in your newly-created profile. This profile
|
||||
is now configured to use I2P. Highly detailed instructions are available at the
|
||||
<a href="https://eyedeekay.github.io/I2P-Configuration-for-Chromium">homepage.</a>
|
||||
{% endtrans %}</p>
|
||||
@@ -86,6 +87,37 @@ On Windows, this button will launch you into the shared proxy settings used
|
||||
by <a href="#ie8"><em>Internet Explorer</em></a>, and you can configure it by
|
||||
following the Internet Explorer 8 guide.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<a name="android"></a>
|
||||
<h3>{% trans %} IceRaven and other Firefoxes for Android {% endtrans %}</h3>
|
||||
<h4>{% trans %}Extension-based Configuration{% endtrans %}</h4>
|
||||
<p>{% trans %}Modern Firefoxes(The "Fenix" based Firefoxes) do not generally have
|
||||
an about:config page for you to configure proxy settings manually. It is further
|
||||
not possible to use most extensions in Fenix-based Firefoxes. It is possible to
|
||||
enable support about:config and enable more extensions in Firefox Nightly at the time
|
||||
of this writing, but it's a manual and difficult process. <em>IceRaven</em> is a fork
|
||||
of Firefox which enables a collection of extensions while Mozilla and the Mozilla
|
||||
Community work on adding support for extensions to Firefox for Android. It provides
|
||||
the easiest way of configuring a modern Firefox-based Browser for Android. It does
|
||||
not come from Mozilla and carries no guarantees from them. <em>Installing the extension
|
||||
in IceRaven will proxy all your IceRaven browsing over I2P.</em>{% endtrans %}</p>
|
||||
<p>{% trans %}If you have not installed IceRaven yet, go to the next step. If you have been
|
||||
using IceRaven for a while, go to the main menu, select the History tab, and make
|
||||
sure that you have cleared information about your past browsing by tapping the
|
||||
"Delete History" button.{% endtrans %}</p>
|
||||
<p>{% trans %}Open the IceRaven main menu, and scroll to the top until you see the "Add-Ons"
|
||||
submenu. Tap the "Add-Ons Manager" option in the "Add-Ons" submenu. Install
|
||||
the extension named <em>I2P Proxy for Android and other Systems</em>.
|
||||
{% endtrans %}</p>
|
||||
<p>{% trans %}Your IceRaven browser is now configured to use I2P.
|
||||
{% endtrans %}</p>
|
||||
<p>{% trans %}This extension also works in pre-Fenix(Pre-Firefox-68) Firefox based
|
||||
web browsers, if installed from the following addons.mozilla.org URL.
|
||||
<em><a href="https://addons.mozilla.org/en-US/android/addon/i2p-proxy/">I2P Proxy for Android and Other Systems</a><em>
|
||||
{% endtrans %}</p>
|
||||
<p>{% trans %}This extension is identical to the Chromium extension and is built from the same source.{% endtrans %}</p>
|
||||
<p>{% trans %}In order to enable extension support in Firefox Nightly, you should follow
|
||||
the steps provided by Mozilla on their <a href="https://blog.mozilla.org/addons/2020/09/29/expanded-extension-support-in-firefox-for-android-nightly/">Blog</a>{% endtrans %}</p>
|
||||
<!---->
|
||||
|
||||
<a name="ie8"></a>
|
||||
|
@@ -2,15 +2,15 @@
|
||||
{% set i2pinstall_jar_hash = '3ddf3afb0c06edeed4810c6d1f34d909959dd94640adf7c638781b4a3b282e9e' %}
|
||||
{% set i2psource_hash = 'dbccada6a353b54ceb844fe8cb0912c0363375a2f57214d23fcf463c4e6d2c4f' %}
|
||||
{% set i2pupdate_hash = '328f85ba28ff6f60480aa0dcda88654fabeabcf63b732a770354bff7f134b135' %}
|
||||
{% set i2p_android_hash = 'c4604736ec45f35a1570ace124cc2a111f1c8b2d04972f340752ef4833e9953f' %}
|
||||
{% set i2p_android_hash = 'b35eb467511343a8aecdf6a1f19c0459baac007c99a93e0933ce5ab70b5a7261' %}
|
||||
{% set i2p_macnative_hash = '70447e8a352654afd940cfc6c05f094732de7ab05db7c42c173e49f37259d601' %}
|
||||
|
||||
{% set i2p_windows_subver = '' %}
|
||||
{% set i2p_macosx_launcher_version = '0.1.8' %}
|
||||
|
||||
{% set i2p_android_version = '0.9.47' %}
|
||||
{% set i2p_android_version = '0.9.47-1' %}
|
||||
{% set i2p_android_version_kytv = '0.9.22' %}
|
||||
{% set i2p_android_version_fdroid = '0.9.47' %}
|
||||
{% set i2p_android_version_fdroid = '0.9.47-1' %}
|
||||
|
||||
|
||||
{% macro package_outer(type, name, icon) -%}
|
||||
|
@@ -4,10 +4,20 @@
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('About') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="{{ site_url('about/intro') }}"><div class="menuitem"><span>{{ _('Introduction to I2P') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('about/software') }}"><div class="menuitem"><span>{{ _('Guide to I2P Software') }}</span></div></a></li>
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('Help') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="{{ site_url('faq') }}"><div class="menuitem"><span>{{ _('FAQ') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('about/browser-config') }}"><div class="menuitem"><span>{{ _('How to browse I2P') }}</span></div></a></li>
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('Applications') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="{{ site_url('docs/applications/supported') }}"><div class="menuitem"><span>{{ _('Supported applications') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('docs/applications/bittorrent') }}"><div class="menuitem"><span>{{ _('Bittorrent') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('docs/applications/gitlab') }}"><div class="menuitem"><span>{{ _('GitLab') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('docs/applications/git') }}"><div class="menuitem"><span>{{ _('Git') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('docs/applications/git-bundle') }}"><div class="menuitem"><span>{{ _('git+Bittorrent') }}</span></div></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('References') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="{{ site_url('about/glossary') }}"><div class="menuitem"><span>{{ _('Glossary') }}</span></div></a></li>
|
||||
@@ -21,19 +31,19 @@
|
||||
<li><a href="{{ site_url('get-involved/develop/developers-keys') }}"><div class="menuitem"><span>{{ _('Developers keys') }}</span></div></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('Comparisons') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="{{ site_url('comparison') }}"><div class="menuitem"><span>{{ _('Overview of comparisons') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('comparison/tor') }}"><div class="menuitem"><span>Tor</span></div></a></li>
|
||||
<li><a href="{{ site_url('comparison/freenet') }}"><div class="menuitem"><span>Freenet</span></div></a></li>
|
||||
{#<li><a href="{{ site_url('comparison/gnunet') }}"><div class="menuitem"><span>GNUnet</span></div></a></li> #}
|
||||
<li><a href="{{ site_url('comparison/other-networks') }}"><div class="menuitem"><span>{{ _('Other anonymous networks') }}</span></div></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="{{ site_url('contact') }}"><div class="menuitem"><span>{{ _('Contact us') }}</span></div></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="{{ site_url('get-involved') }}"><div class="menuitem"><span>{{ _('Get involved!') }}</span></div></a></li>
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('Comparisons') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="{{ site_url('comparison') }}"><div class="menuitem"><span>{{ _('Overview of comparisons') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('comparison/tor') }}"><div class="menuitem"><span>Tor</span></div></a></li>
|
||||
<li><a href="{{ site_url('comparison/freenet') }}"><div class="menuitem"><span>Freenet</span></div></a></li>
|
||||
{#<li><a href="{{ site_url('comparison/gnunet') }}"><div class="menuitem"><span>GNUnet</span></div></a></li> #}
|
||||
<li><a href="{{ site_url('comparison/other-networks') }}"><div class="menuitem"><span>{{ _('Other anonymous networks') }}</span></div></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('People') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="{{ site_url('about/team') }}"><div class="menuitem"><span>{{ _('Team') }}</span></div></a></li>
|
||||
@@ -100,15 +110,6 @@
|
||||
<li><a href="{{ site_url('docs/api/i2pcontrol') }}"><div class="menuitem"><span>I2PControl</span></div></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('Applications') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="{{ site_url('docs/applications/supported') }}"><div class="menuitem"><span>{{ _('Supported applications') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('docs/applications/bittorrent') }}"><div class="menuitem"><span>{{ _('Bittorrent') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('docs/applications/gitlab') }}"><div class="menuitem"><span>{{ _('GitLab') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('docs/applications/git') }}"><div class="menuitem"><span>{{ _('Git') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('docs/applications/git-bundle') }}"><div class="menuitem"><span>{{ _('git+Bittorrent') }}</span></div></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('Protocols') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="{{ site_url('docs/protocol') }}"><div class="menuitem"><span>{{ _('Protocol stack') }}</span></div></a></li>
|
||||
|
@@ -2,109 +2,41 @@
|
||||
{% block title %}{{ _('Intro') }}{% endblock %}
|
||||
{% block content %}
|
||||
<h1>{{ _('The Invisible Internet Project') }} (I2P)</h1>
|
||||
<p>{% trans ip='http://en.wikipedia.org/wiki/Internet_Protocol',
|
||||
tcp='http://en.wikipedia.org/wiki/Transmission_Control_Protocol',
|
||||
pke='http://en.wikipedia.org/wiki/Public_key_encryption' -%}
|
||||
I2P is an anonymous network, exposing a simple layer that applications can
|
||||
use to anonymously and securely send messages to each other. The network itself is
|
||||
strictly message based (a la <a href="{{ ip }}">IP</a>), but there is a
|
||||
library available to allow reliable streaming communication on top of it (a la
|
||||
<a href="{{ tcp }}">TCP</a>).
|
||||
All communication is end to end encrypted (in total there are four layers of
|
||||
encryption used when sending a message), and even the end points ("destinations")
|
||||
are cryptographic identifiers (essentially a pair of <a href="{{ pke }}">public keys</a>).
|
||||
<h2>What is I2P?</h2>
|
||||
<p>{% trans %}The Invisible Internet Project (I2P) is a fully encrypted private network layer that has been developed with privacy and security by design in order to provide protection for your activity,
|
||||
location and your identity. The software ships with a router that connects you to the network and applications for sharing, communicating and building. {%- endtrans %}</p>
|
||||
|
||||
<h3>I2P Cares About Privacy</h3>
|
||||
|
||||
<p>{% trans %}The Invisible Internet values privacy and consent, which can only be achieved with privacy-by-default. It is always your choice to share, your platform to own, and the connections you want to make. It is privacy by design, plain, simple and truly free. Additionally I2P offers resistance to pattern recognition and blocking by censors. Because the network relies on peers to route traffic, location blocking is also reduced.{%- endtrans %}</p>
|
||||
|
||||
|
||||
<p>{% trans %}I2P hides the server from the user and the user from the server. All I2P traffic is internal to the I2P network. Traffic inside I2P does not interact with the Internet directly. It is a layer on top of the Internet. It uses encrypted unidirectional tunnels between you and your peers. No one can see where traffic is coming from, where it is going or what the contents are.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>How to Connect to the I2P Network</h3>
|
||||
|
||||
<p>{% trans %}The Invisible Internet Project provides software to download that connects you to the network.In addition to the network privacy benefits, I2P provides an application layer that allows people to use and create familiar apps for daily use. I2P provides its own unique DNS so that you can self host or mirror content on the network. You can create and own your platform that you can add to the I2P directory or only invite your friends. The I2P network functions in the same way the Internet does, just with some extra configuration. The best part is that if you do not find something you want, you can build it. When you download the I2P software, it includes everything you need to connect, share, and create privately.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{{ _('How does it work?') }}</h2>
|
||||
<h3>An Overview of the Network</h3>
|
||||
|
||||
<p>{% trans tunnelrouting=site_url('docs/how/tunnel-routing') -%}
|
||||
To anonymize the messages sent, each client application has their I2P "router"
|
||||
build a few inbound and outbound "<a href="{{ tunnelrouting }}">tunnels</a>" - a
|
||||
sequence of peers that pass messages in one direction (to and from the client,
|
||||
respectively). In turn, when a client wants to send a message to another client,
|
||||
the client passes that message out one of their outbound tunnels targeting one of the
|
||||
other client's inbound tunnels, eventually reaching the destination. Every
|
||||
participant in the network chooses the length of these tunnels, and in doing so,
|
||||
makes a tradeoff between anonymity, latency, and throughput according to their
|
||||
own needs. The result is that the number of peers relaying each end to end
|
||||
message is the absolute minimum necessary to meet both the sender's and the
|
||||
receiver's threat model.
|
||||
<p>{% trans %}I2P uses cryptography to achieve a variety of properties for the tunnels it builds and the communications it transports. I2P tunnels use transports, NTCP2 and SSU, to hide the nature of the traffic being transported over it. Connections are encrypted from router-to-router, and from client-to-client(end-to-end). Forward-secrecy is provided for all connections. Because I2P is cryptographically addressed, I2P addresses are self-authenticating and only belong to the user who generated them.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans netdb=site_url('docs/how/network-database'),
|
||||
dht='http://en.wikipedia.org/wiki/Distributed_hash_table',
|
||||
kad='http://en.wikipedia.org/wiki/Kademlia' -%}
|
||||
The first time a client wants to contact another client, they make a query
|
||||
against the fully distributed "<a href="{{ netdb }}">network
|
||||
database</a>" - a custom structured <a href="{{ dht }}">
|
||||
distributed hash table (DHT)</a> based off the
|
||||
<a href="{{ kad }}">Kademlia algorithm</a>. This is done
|
||||
to find the other client's inbound tunnels efficiently, but subsequent messages
|
||||
between them usually includes that data so no further network database lookups
|
||||
are required.
|
||||
<p>{% trans %}I2P is a secure and traffic protecting Internet-like layer. The network is made up of peers ("routers") and unidirectional inbound and outbound virtual tunnels. Routers communicate with each other using protocols built on existing transport mechanisms (TCP, UDP, etc), passing messages. Client applications have their own cryptographic identifier ("Destination") which enables it to send and receive messages. These clients can connect to any router and authorize the temporary allocation ("lease") of some tunnels that will be used for sending and receiving messages through the network. I2P has its own internal network database (using a modification of the Kademlia DHT) for distributing routing and contact information securely.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans docs=site_url('docs') -%}
|
||||
More details about how I2P works are <a href="{{ docs }}">available</a>.
|
||||
{%- endtrans %}</p>
|
||||
<h3>About Decentralization and I2P</h3>
|
||||
|
||||
<h2>{{ _('What can you do with it?') }}</h2>
|
||||
<p>{% trans %}The I2P network is almost completely decentralized, with exception to what are what are called "Reseed Servers," which is how you first join the network. This is to deal with the DHT ( Distributed Hash Table ) bootstrap problem. Basically, there's not a good and reliable way to get out of running at least one permanent bootstrap node that non-network users can find to get started. Once you're connected to the network, you only discover peers by building "exploratory" tunnels, but to make your initial connection, you need to get a peer set from somewhere. The reseed servers, which you can see listed on http://127.0.0.1:7657/configreseed in the Java I2P router, provide you with those peers. You then connect to them with the I2P router until you find one who you can reach and build exploratory tunnels through. Reseed servers can tell that you bootstrapped from them, but nothing else about your traffic on the I2P network.{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans i2ptunnel=site_url('docs/api/i2ptunnel') -%}
|
||||
Within the I2P network, applications are not restricted in how they can
|
||||
communicate - those that typically use UDP can make use of the base I2P
|
||||
functionality, and those that typically use TCP can use the TCP-like streaming
|
||||
library. We have a generic TCP/I2P bridge application
|
||||
("<a href="{{ i2ptunnel }}">I2PTunnel</a>") that enables people to forward TCP streams
|
||||
into the I2P network as well as to receive streams out of the network and
|
||||
forward them towards a specific TCP/IP address.
|
||||
{%- endtrans %}</p>
|
||||
<h3>I see IP addresses of all other I2P nodes in the router console. Does that mean my IP address is visible by others?</h3>
|
||||
|
||||
<p>{% trans bittorrent='http://www.bittorrent.com/',
|
||||
freenet='https://freenetproject.org/',
|
||||
mnet='https://en.wikipedia.org/wiki/Mnet_%28Computer_program%29',
|
||||
livejournal='http://www.livejournal.com/' -%}
|
||||
I2PTunnel is currently used to let people run their own anonymous website
|
||||
("eepsite") by running a normal webserver and pointing an I2PTunnel 'server'
|
||||
at it, which people can access anonymously over I2P with a normal web browser
|
||||
by running an I2PTunnel HTTP proxy ("eepproxy"). In addition, we use the same
|
||||
technique to run an anonymous IRC network (where the IRC server is hosted
|
||||
anonymously, and standard IRC clients use an I2PTunnel to contact it). There
|
||||
are other application development efforts going on as well, such as one to
|
||||
build an optimized swarming file transfer application (a la
|
||||
<a href="{{ bittorrent }}">BitTorrent</a>), a
|
||||
distributed data store (a la <a href="{{ freenet }}">Freenet</a> /
|
||||
<a href="{{ mnet }}">MNet</a>), and a blogging system (a fully
|
||||
distributed <a href="{{ livejournal }}">LiveJournal</a>), but those are
|
||||
not ready for use yet.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans %}Yes, this is how a fully distributed peer-to-peer network works. Every node participates in routing packets for others, so your IP address must be known to establish connections. While the fact that your computer runs I2P is public, nobody can see your activities in it. You can't say if a user behind this IP address is sharing files, hosting a website, doing research or just running a node to contribute bandwidth to the project.{%- endtrans %}
|
||||
|
||||
<p>{% trans squid='http://www.squid-cache.org/' -%}
|
||||
I2P is not inherently an "outproxy" network - the client you send a message
|
||||
to is the cryptographic identifier, not some IP address, so the message must
|
||||
be addressed to someone running I2P. However, it is possible for that client
|
||||
to be an outproxy, allowing you to anonymously make use of their Internet
|
||||
connection. To demonstrate this, the "eepproxy" will accept normal non-I2P
|
||||
URLs (e.g. "http://www.i2p.net") and forward them to a specific destination
|
||||
that runs a <a href="{{ squid }}">squid</a> HTTP proxy, allowing
|
||||
simple anonymous browsing of the normal web. Simple outproxies like that are
|
||||
not viable in the long run for several reasons (including the cost of running
|
||||
one as well as the anonymity and security issues they introduce), but in
|
||||
certain circumstances the technique could be appropriate.
|
||||
{%- endtrans %}</p>
|
||||
<h3>What I2P Does Not Do</h3>
|
||||
|
||||
<p>{% trans %}The I2P network does not officially "Exit" traffic. It has outproxies to the Internet run by volunteers, which are centralized services. I2P is primarily a hidden service network and outproxying is not an official function, nor is it advised. The privacy benefits you get from participating in the the I2P network come from remaining in the network and not accessing the internet. I2P recommends that you use Tor Browser or a trusted VPN when you want to browse the Internet privately.{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans team=site_url('about/team'), volunteer=site_url('get-involved'),
|
||||
licenses=site_url('get-involved/develop/licenses'), sam=site_url('docs/api/sam'),
|
||||
roadmap=site_url('get-involved/roadmap') -%}
|
||||
The I2P development <a href="{{ team }}">team</a> is an open group, welcome to all
|
||||
who are interested in <a href="{{ volunteer }}">getting involved</a>, and all of
|
||||
the code is <a href="{{ licenses }}">open source</a>. The core I2P SDK and the
|
||||
current router implementation is done in Java (currently working with both
|
||||
sun and kaffe, gcj support planned for later), and there is a
|
||||
<a href="{{ sam }}">simple socket based API</a> for accessing the network from
|
||||
other languages (with a C library available, and both Python and Perl in
|
||||
development). The network is actively being developed and has not yet reached
|
||||
the 1.0 release, but the current <a href="{{ roadmap }}">roadmap</a> describes
|
||||
our schedule.
|
||||
{%- endtrans %}</p>
|
||||
{% endblock %}
|
||||
|
80
i2p2www/pages/site/about/software.html
Normal file
@@ -0,0 +1,80 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Intro') }}{% endblock %}
|
||||
{% block content %}
|
||||
<h1>{{ _('The I2P Software') }} (I2P)</h1>
|
||||
|
||||
<p>{% trans %}When you install the I2P software made available at geti2p.net, you are
|
||||
actually installing an I2P router and an accompanying bundle of basic
|
||||
applications. The I2P Java distribution is the first I2P software gateway and
|
||||
has been actively developed since 2001.{%- endtrans %}</p>
|
||||
<p>{% trans %}The applications are made available through a webUI, which listens at
|
||||
127.0.0.1:7657, and the main page of which is called the “Router Console,”
|
||||
where you monitor the health of your connection to the network and access
|
||||
applications to use on the network.{%- endtrans %}</p>
|
||||
<h3>{% trans %}What is included:{%- endtrans %}</h3>
|
||||
<p>{% trans %}<strong>The Set Up Wizard</strong>: When you download the
|
||||
I2P software, a set up wizard will guide you through a few configuration steps
|
||||
while your router is making its first connections to the network. This happens
|
||||
the same way that your home router connects you to the Internet. During the set
|
||||
up process, you will be given the option to test your bandwidth and set your
|
||||
bandwidth limits in order to ensure a good connection as a network peer.{%- endtrans %}</p>
|
||||
<p>{% trans %}<strong>The I2P Router Console</strong>: Here is where you can see your
|
||||
network connections and information about your router. You will be able to see how many peers you
|
||||
have, and other information that will help if you need to troubleshoot. You can
|
||||
stop and start the router as well. You will see the applications that the
|
||||
software includes, as well as links to some community forums and sites on the
|
||||
I2P network. You will receive news when there is a a new software release, and
|
||||
will be able to download the latest version here as well. Additionally, you can
|
||||
find shortcuts to other available applications. The console is customizable and
|
||||
includes a default light theme with a dark theme option.{%- endtrans %}</p>
|
||||
<p>{% trans %}<strong>SusiMail</strong>: SusiMail is a secure email client. It is primarily
|
||||
intended for use with Postman’s email servers inside of the I2P network . It
|
||||
is designed to avoid leaking information about email use to other networks.
|
||||
SusiMail is bridged so it can send and receive email from the internet as well.
|
||||
Occasionally you may see some services like Gmail classifying it as spam, which
|
||||
you can correct in your Internet email service providers settings.{%- endtrans %}</p>
|
||||
<p>{% trans bittorrent=site_url('docs/applications/bittorrent') -%}<strong><a href="{{ bittorrent }}">I2PSnark</a></strong>: Snark is an I2P network only BitTorrent client. It never makes a connection to a peer over any other network.{%- endtrans %}</p>
|
||||
<p>{% trans addressbook=site_url('docs/naming') -%}<strong><a href="{{ addressbook }}">The AddressBook</a></strong>: This is a locally-defined list of
|
||||
human-readable addresses ( ie: i2p-projekt.i2p) and corresponding I2P addresses.(udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p) It integrates with other applications to
|
||||
allow you to use those human-readable addresses in place of those I2P
|
||||
addresses. It is more similar to a hosts file or a contact list than a network
|
||||
database or a DNS service. There is no recognized global namespace, you decide
|
||||
what any given .i2p domain maps to in the end.{%- endtrans %}</p>
|
||||
<p><strong>The QR Code Generator</strong>: Besides the Addressbook, I2P
|
||||
addresses can be shared by converting them into QR codes and scanning them with
|
||||
a camera. This is especially useful for Android devices.</p>
|
||||
<p>{% trans i2ptunnel=site_url('docs/api/i2ptunnel') -%}<strong><a href="{{ i2ptunnel }}">I2P Hidden Services Manager</a></strong> This is a general-purpose
|
||||
adapter for forwarding services ( ie SSH ) into I2P and proxying client
|
||||
requests to and from I2P. It provides a variety of “Tunnel Types” which are
|
||||
able able to do advance filtering of traffic before it reaches I2P.{%- endtrans %}</p>
|
||||
<h3>{% trans %}Applications Outside I2P to use with I2P{%- endtrans %}</h3>
|
||||
<p>{% trans browser=site_url('about/browser-config') %}<strong><a href="{{ browser }}">Mozilla Firefox</a></strong>: A web browser with advanced privacy and
|
||||
security features, this is the best browser to configure to browse I2P
|
||||
sites.{%- endtrans %}</p>
|
||||
<p>{% trans browser=site_url('about/browser-config') %}<strong><a href="{{ browser }}">Chromium</a></strong>: A web browser developed by Google that is the
|
||||
Open-Source base of Google Chrome, this is sometimes used as an alternative to
|
||||
Firefox.{%- endtrans %}</p>
|
||||
<p>{% trans %}<strong><a href="https://biglybt.com">BiglyBT</a></strong>: A Feature-Rich bittorrent client including I2P
|
||||
support and the unique ability to “Bridge” regular torrents in-to I2P so
|
||||
people can download them anonymously.{%- endtrans %}</p>
|
||||
<p>{% trans ssh=site_url('blog/post/2019/06/15/i2p-i2pd-ssh-config') %}<strong><a href="https://openssh.com">OpenSSH</a></strong>: OpenSSH is a popular program used by systems administrators to <a href="{{ ssh }}">remotely administer a server</a>, or to provide “Shell” accounts for users on the server.{%- endtrans %}</p>
|
||||
<p>{% trans git=site_url('docs/applications/git'), gitlab=site_url('docs/applications/gitlab') %}<strong><a href="{{ git }}">Git</a>/<a href="{{ gitlab}}">Gitlab</a></strong>: Git is a source-code control tool which is
|
||||
distributed, and often recommends a fork-first workflow. Hosting source code on
|
||||
I2P is an important activity, so Gitlab-specific instructions are available for
|
||||
all to use.{%- endtrans %}</p>
|
||||
<p>{% trans %}<strong><a href="https://debian.org">Debian</a> and <a href="https://ubuntu.com">Ubuntu</a> GNU/Linux</strong>: It is possible to obtain
|
||||
packages for Debian and Ubuntu GNU/Linux over I2P using <a href="https://i2pgit.org/idk/apt-transport-i2p">apt-transport-i2p</a> and
|
||||
<a href="https://i2pgit.org/idk/apt-transport-i2phttp">apt-transport-i2phttp</a>. In the future, a bittorrent-based transport may also be
|
||||
developed. {%- endtrans %}</p>
|
||||
<h3>{% trans %} Applications for Developers to create new things{%- endtrans %}</h3>
|
||||
<p>{% trans sam=site_url('docs/api/sam') %}<strong><a href="{{ sam }}">The SAM API Bridge</a></strong>: The SAM API is a language-independent
|
||||
API for writing applications that are I2P-native by communicating with the
|
||||
local I2P router. It can provide Streaming-like capabilities, Anonymous
|
||||
Datagrams, or Repliable Datagrams.{%- endtrans %}</p>
|
||||
<p>{% trans bob=site_url('docs/api/bob') %}<strong><a href="{{ bob }}">The BOB API Bridge</a></strong>: This is a deprecated technology, BOB
|
||||
users should migrate to SAM if it is possible for them to do so.{%- endtrans %}</p>
|
||||
<p>{% trans i2cp=site_url('docs/protocol/i2cp') %}<strong><a href="{{ i2cp }}">The I2CP API</a></strong>: Not strictly an application, this is how Java
|
||||
applications communicate with the I2P router to set up tunnels, generate and
|
||||
manage keys, and communicate with other peers on the network.{%- endtrans %}</p>
|
||||
|
||||
{% endblock %}
|
@@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}SAM V3{% endblock %}
|
||||
{% block lastupdated %}July 2020{% endblock %}
|
||||
{% block accuratefor %}0.9.47{% endblock %}
|
||||
{% block lastupdated %}2020-10{% endblock %}
|
||||
{% block accuratefor %}0.9.48{% endblock %}
|
||||
{% block content %}
|
||||
<p>Specified below is a simple client protocol for interacting with I2P.
|
||||
</p>
|
||||
@@ -838,8 +838,8 @@ $port is the port number of the socket server to which SAM will
|
||||
forward connection requests. It is mandatory.
|
||||
|
||||
</p><p>
|
||||
When a connection request arrives from I2P, the SAM bridge requests a
|
||||
socket connection from $host:$port. If it is accepted after no more
|
||||
When a connection request arrives from I2P, the SAM bridge opens a
|
||||
socket connection to $host:$port. If it is accepted in less
|
||||
than 3 seconds, SAM will accept the connection from I2P, and then:
|
||||
|
||||
</p><p>
|
||||
|
235
i2p2www/pages/site/docs/applications/irc.html
Normal file
@@ -0,0 +1,235 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Configuring IRC Software{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}2020-11{% endblock %}
|
||||
{% block accuratefor %}0.9.47{% endblock %}
|
||||
{% block content %}
|
||||
<h1>{% trans %}IRC Software{% endtrans %}</h1>
|
||||
<ul>
|
||||
<li><a href="#clients">Clients</a></li>
|
||||
<li><a href="#servers">Servers</a></li>
|
||||
</ul>
|
||||
|
||||
<a name="clients"></a>
|
||||
<h2>{% trans %}Clients{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans %} There are many IRC clients that can be used with I2P. In
|
||||
fact, all IRC clients can be connected to the Irc2P Service by connecting
|
||||
them to the IRC Tunnel.{% endtrans %}</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="#pidgin">Pidgin(Windows, Linux) Adium(OSX)</a></li>
|
||||
<li><a href="#xchat">XChat(Windows, Linux) XChat Aqua(OSX)</a></li>
|
||||
<li><a href="#thunderbird">Thunderbird(Windows, Linux, OSX)</a></li>
|
||||
<li><a href="#revolution">Revolution IRC(Android)</a></li>
|
||||
<li><a href="#dispatch">Dispatch(Windows, Linux, OSX)(WebClient)</a></li>
|
||||
</ul>
|
||||
|
||||
<h3>Check the IRC tunnel</h3>
|
||||
<p>{% trans %}To configure any IRC client to chat on Irc2P, first, make sure that
|
||||
your IRC tunnel is available. Visit the <a href="http://127.0.0.1:7657/i2ptunnel/">Hidden Services Manager</a>
|
||||
and look for Irc2P in your "Client Tunnels" section. If the "Status" indicator on
|
||||
the right-hand side is yellow or green, your Irc2P tunnel is ready and you should
|
||||
proceed to the next step.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/tuncheck-irc-all.png') }}"
|
||||
alt="{{ _('IRC Tunnel Check') }}" title="{{ _('IRC Tunnel Check') }}">
|
||||
|
||||
<p>{% trans %}Any IRC client can be connected to this IRC tunnel, but detailed
|
||||
instructions for several popular clients are provided below.{% endtrans %}</p>
|
||||
|
||||
<a name="pidgin"></a>
|
||||
<h3>Pidgin</h3>
|
||||
<p>{% trans %}Pidgin is a very popular Instant Messaging client with built-in IRC
|
||||
support. It is also possible to use it with many other kinds of chat service, and
|
||||
it supports using multiple accounts at once and has a variety of plugin-ins. There
|
||||
is a similar application for OSX called "Adium." The instructions for Pidgin are
|
||||
similar in Adium.
|
||||
{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/pidgin-irc-0.png') }}"
|
||||
alt="{{ _('Open the menu') }}" title="{{ _('Pidgin Step One') }}">
|
||||
|
||||
<p>{% trans %}After launching Pidgin, you should see a "Buddy List" window. From
|
||||
that window, open the "Accounts" menu from the toolbar. Select "Manage Accounts" to
|
||||
begin configuring your I2P account.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/pidgin-irc-1.png') }}"
|
||||
alt="{{ _('Add the account') }}" title="{{ _('Pidgin Step Two') }}">
|
||||
|
||||
<p>{% trans %}Click the "Add" button. In the window that opens, select "IRC" under
|
||||
"Protocol," and set the "Host" to 127.0.0.1. Then pick a username and password. IRC
|
||||
does not require you to register a nickname to join, but you may if you wish, after
|
||||
you connect to Irc2P.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/pidgin-irc-2.png') }}"
|
||||
alt="{{ _('Configure username, hostname, password') }}" title="{{ _('Pidgin Step Three') }}">
|
||||
|
||||
<p>{% trans %}Navigate to the "Advanced" tab and set the "Port" field to 6668 and
|
||||
make sure that SSL is <em>disabled</em>, since your tunnel has encryption provided
|
||||
by I2P.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/pidgin-irc-3.png') }}"
|
||||
alt="{{ _('Configure port') }}" title="{{ _('Pidgin Step Four') }}">
|
||||
|
||||
<a name="xchat"></a>
|
||||
<h3>XChat</h3>
|
||||
<p>{% trans %}Open the Server List menu of XChat and click the "Add" button.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/xchat-irc-0.png') }}"
|
||||
alt="{{ _('Add a server') }}" title="{{ _('XChat Step One') }}">
|
||||
|
||||
<p>{% trans %}Create a new network named "Irc2P" to configure for I2P IRC. Click
|
||||
the "Edit" button on the right-hand side.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/xchat-irc-1.png') }}"
|
||||
alt="{{ _('Add a server') }}" title="{{ _('XChat Step Two') }}">
|
||||
|
||||
<p>{% trans %}Change the value in "Servers" from the default to `localhost/6669`,
|
||||
and configure the default channels you want to join. I suggest #i2p and #i2p-dev
|
||||
{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/xchat-irc-2.png') }}"
|
||||
alt="{{ _('Add a server') }}" title="{{ _('XChat Step Three') }}">
|
||||
|
||||
<p>{% trans %}Close the "Edit Server" window from to return to the Server List
|
||||
page and click "Connect" to join I2PRC.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/xchat-irc-3.png') }}"
|
||||
alt="{{ _('Add a server') }}" title="{{ _('XChat Step Four') }}">
|
||||
|
||||
<a name="thunderbird"></a>
|
||||
<h3>Thunderbird</h3>
|
||||
<p>{% trans %}Click on the "Chat" button in the toolbar at the top of the
|
||||
Thunderbird window.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/thunderbird-irc-0.png') }}"
|
||||
alt="{{ _('Add a chat') }}" title="{{ _('Thunderbird Step One') }}">
|
||||
|
||||
<p>{% trans %}Click the get started button to begin setting up Irc2P.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/thunderbird-irc-1.png') }}"
|
||||
alt="{{ _('Get Started') }}" title="{{ _('Thunderbird Step Two') }}">
|
||||
|
||||
<p>{% trans %}In the first step, select "IRC" for your network type.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/thunderbird-irc-2.png') }}"
|
||||
alt="{{ _('Pick IRC') }}" title="{{ _('Thunderbird Step Three') }}">
|
||||
|
||||
<p>{% trans %}Choose a nickname and set your IRC Server to 127.0.0.1, but do not
|
||||
set a port.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/thunderbird-irc-3.png') }}"
|
||||
alt="{{ _('Set username and server') }}" title="{{ _('Thunderbird Step Four') }}">
|
||||
|
||||
<p>{% trans %}Set a password if you want.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/thunderbird-irc-4.png') }}"
|
||||
alt="{{ _('Add a server') }}" title="{{ _('Thunderbird Step Five') }}">
|
||||
|
||||
<p>{% trans %}Configure the IRC Server with an alias like "Irc2P" and set the
|
||||
port to 6668.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/thunderbird-irc-5.png') }}"
|
||||
alt="{{ _('Add a server') }}" title="{{ _('Thunderbird Step Six') }}">
|
||||
|
||||
<p>{% trans %}If your summary looks like this, then you're ready to connect
|
||||
with Irc2P.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/thunderbird-irc-6.png') }}"
|
||||
alt="{{ _('Add a server') }}" title="{{ _('Thunderbird Step Seven') }}">
|
||||
|
||||
<a name="revolution"></a>
|
||||
<h3>Revolution IRC</h3>
|
||||
<p>{% trans %}Revolution IRC is an easy to use IRC client for Android. It's able to
|
||||
handle multiple accounts on multiple services, so you can use it for Irc2P and for
|
||||
your non-I2P IRC networks as well.{% endtrans %}</p>
|
||||
|
||||
<p>{% trans %}Click the "Add Server" button(Shaped like this: `+`) in the corner
|
||||
to get started configuring Revolution IRC for I2P.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/revolution-irc-0.png') }}"
|
||||
alt="{{ _('Add a server') }}" title="{{ _('Revolution Step One') }}">
|
||||
|
||||
<p>{% trans %}Fill in the server name, change the address to "127.0.0.1" and the
|
||||
port to 6668.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/revolution-irc-1.png') }}"
|
||||
alt="{{ _('Configure it like this') }}" title="{{ _('Revolution Step Two') }}">
|
||||
|
||||
<p>{% trans %}Give yourself a nickname and configure some channels to automatically
|
||||
join.{% endtrans %}</p>
|
||||
|
||||
<img src="{{ url_for('static', filename='images/irc/revolution-irc-2.png') }}"
|
||||
alt="{{ _('Open the menu') }}" title="{{ _('Revolution Step Three') }}">
|
||||
|
||||
<a name="dispatch"></a>
|
||||
<h3>Dispatch</h3>
|
||||
<p>{% trans %}Dispatch is a stable, self-hosted IRC client with a web interface. It
|
||||
has native I2P configuration available by communicating over the{% endtrans %} <a href="{{ site_url('docs/api/samv3') }}">SAM v3 API</a>.</p>
|
||||
|
||||
<p>{% trans %}Dispatch is configured with a file called `config.toml`, which you can
|
||||
configure the common settings.{% endtrans %}</p>
|
||||
|
||||
<p>{% trans %} {% endtrans %}</p>
|
||||
<pre><code>
|
||||
# Defaults for the client connect form
|
||||
[defaults]
|
||||
name = "myinvisibleirc.i2p"
|
||||
host = "anircservergoeshere.b32.i2p"
|
||||
port = 6667
|
||||
channels = [
|
||||
"#i2p",
|
||||
"#i2p-dev"
|
||||
]
|
||||
server_password = ""
|
||||
ssl = false
|
||||
</code></pre>
|
||||
|
||||
<a name="servers"></a>
|
||||
<h2>{% trans %}Servers{% endtrans %}</h2>
|
||||
<ul>
|
||||
<li><a href="#eris">Eris(Windows, OSX, Linux)</a></li>
|
||||
</ul>
|
||||
|
||||
<a name="eris"></a>
|
||||
<h3>Eris</h3>
|
||||
<p>{% trans %}Eris is an easy-to-configure IRC server with self-configuring support
|
||||
for I2P. If you want to run a private IRC server it's one of the easiest ways.{% endtrans %}</p>
|
||||
|
||||
<p>{% trans %} This is a valid configuration of the Eris IRC server, but it uses a
|
||||
default password for the admin account(admin). You should change the operator.admin.password
|
||||
and account.admin.password before deploying to a real service.{% endtrans %}</p>
|
||||
|
||||
<pre><code>
|
||||
mutex: {}
|
||||
network:
|
||||
name: Local
|
||||
server:
|
||||
password: ""
|
||||
listen: []
|
||||
tlslisten: {}
|
||||
i2plisten:
|
||||
invisibleirc:
|
||||
i2pkeys: iirc
|
||||
samaddr: 127.0.0.1:7656
|
||||
log: ""
|
||||
motd: ircd.motd
|
||||
name: myinvisibleirc.i2p
|
||||
description: Hidden IRC Services
|
||||
operator:
|
||||
admin:
|
||||
password: JDJhJDA0JE1vZmwxZC9YTXBhZ3RWT2xBbkNwZnV3R2N6VFUwQUI0RUJRVXRBRHliZVVoa0VYMnlIaGsu
|
||||
account:
|
||||
admin:
|
||||
password: JDJhJDA0JGtUU1JVc1JOUy9DbEh1WEdvYVlMdGVnclp6YnA3NDBOZGY1WUZhdTZtRzVmb1VKdXQ5ckZD
|
||||
www:
|
||||
listen: []
|
||||
tlslisten: {}
|
||||
i2plisten:
|
||||
i2pinfoirc:
|
||||
i2pkeys: iircwww
|
||||
samaddr: "127.0.0.1:7656"
|
||||
templatedir: lang
|
||||
</pre></code>
|
||||
|
||||
{% endblock %}
|
@@ -3,8 +3,8 @@ I2CP Specification
|
||||
==================
|
||||
.. meta::
|
||||
:category: Protocols
|
||||
:lastupdated: 2020-06
|
||||
:accuratefor: 0.9.46
|
||||
:lastupdated: 2020-10
|
||||
:accuratefor: 0.9.48
|
||||
|
||||
.. contents::
|
||||
|
||||
@@ -1223,7 +1223,7 @@ Contents
|
||||
2. 1 byte [Integer]_ number of tunnels
|
||||
3. That many pairs of:
|
||||
|
||||
1. [RouterIdentity]_
|
||||
1. [Hash]_
|
||||
2. [TunnelId]_
|
||||
|
||||
4. End [Date]_
|
||||
|
@@ -6,9 +6,9 @@ ECIES Tunnels
|
||||
:author: chisana, zzz, orignal
|
||||
:created: 2019-07-04
|
||||
:thread: http://zzz.i2p/topics/2737
|
||||
:lastupdated: 2020-10-09
|
||||
:lastupdated: 2020-11-05
|
||||
:status: Open
|
||||
:target: 0.9.51
|
||||
:target: 0.9.48
|
||||
|
||||
.. contents::
|
||||
|
||||
@@ -31,6 +31,9 @@ follow this spec for creating tunnels containing ECIES hops.
|
||||
This proposal specifies changes needed for ECIES-X25519 Tunnel Building.
|
||||
For an overview of all changes required for ECIES routers, see proposal 156 [Prop156]_.
|
||||
|
||||
This proposal maintains the same size for tunnel build records,
|
||||
as required for compatibility. Smaller build records and messages will be
|
||||
implemented later - see [Prop157]_.
|
||||
|
||||
|
||||
Cryptographic Primitives
|
||||
@@ -334,7 +337,6 @@ This is the proposed specification of the tunnel BuildRequestRecord for ECIES-X2
|
||||
Summary of changes:
|
||||
|
||||
- Remove unused 32-byte router hash
|
||||
- Remove reply IV
|
||||
- Change request time from hours to minutes
|
||||
- Add expiration field for future variable tunnel time
|
||||
- Add more space for flags
|
||||
@@ -343,7 +345,7 @@ Summary of changes:
|
||||
- Unencrypted record is longer because there is less encryption overhead
|
||||
|
||||
|
||||
The request record does not contain any explicit tunnel or reply keys.
|
||||
The request record does not contain any ChaCha reply keys.
|
||||
Those keys are derived from a KDF. See below.
|
||||
|
||||
All fields are big-endian.
|
||||
@@ -384,9 +386,14 @@ Bit 7 indicates that the hop will be an inbound gateway (IBGW). Bit 6
|
||||
indicates that the hop will be an outbound endpoint (OBEP). If neither bit is
|
||||
set, the hop will be an intermediate participant. Both cannot be set at once.
|
||||
|
||||
The request exipration is for future variable tunnel duration.
|
||||
For now, the only supported value is 600 (10 minutes).
|
||||
|
||||
The tunnel build options is a Mapping structure as defined in [Common]_.
|
||||
This is for future use. No options are currently defined.
|
||||
If the Mapping structure is empty, this is two bytes 0x00 0x00.
|
||||
The maximum size of the Mapping (including the length field) is 296 bytes,
|
||||
and the maximum value of the Mapping length field is 294.
|
||||
|
||||
|
||||
|
||||
@@ -465,6 +472,8 @@ bytes 0-x: Tunnel Build Reply Options (Mapping)
|
||||
The tunnel build reply options is a Mapping structure as defined in [Common]_.
|
||||
This is for future use. No options are currently defined.
|
||||
If the Mapping structure is empty, this is two bytes 0x00 0x00.
|
||||
The maximum size of the Mapping (including the length field) is 511 bytes,
|
||||
and the maximum value of the Mapping length field is 509.
|
||||
|
||||
The reply byte is one of the following values
|
||||
as defined in [Tunnel-Creation]_ to avoid fingerprinting:
|
||||
@@ -586,13 +595,14 @@ Request Record Keys (ECIES)
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
These keys are explicitly included in ElGamal BuildRequestRecords.
|
||||
For ECIES BuildRequestRecords, these keys are derived from the DH exchange.
|
||||
For ECIES BuildRequestRecords, the tunnel keys and AES reply keys are included,
|
||||
but the ChaCha reply keys are derived from the DH exchange.
|
||||
See [Prop156]_ for details of the router static ECIES keys.
|
||||
|
||||
Below is a description of how to derive the keys previously transmitted in request records.
|
||||
|
||||
|
||||
KDF for Initial h
|
||||
KDF for Initial ck and h
|
||||
````````````````````````
|
||||
|
||||
This is standard [NOISE]_ for pattern "N" with a standard protocol name.
|
||||
@@ -661,6 +671,9 @@ Failing to use unique keys opens an attack vector for colluding hops to confirm
|
||||
sesk = GENERATE_PRIVATE()
|
||||
sepk = DERIVE_PUBLIC(sesk)
|
||||
|
||||
// MixHash(sepk)
|
||||
h = SHA256(h || sepk);
|
||||
|
||||
End of "e" message pattern.
|
||||
|
||||
This is the "es" message pattern:
|
||||
@@ -766,35 +779,15 @@ This design minimizes risk.
|
||||
Implementation Notes
|
||||
=====================
|
||||
|
||||
|
||||
* Older routers do not check the encryption type of the hop and will send ElGamal-encrypted
|
||||
records. Some recent routers are buggy and will send various types of malformed records.
|
||||
Implementers should detect and reject these records prior to the DH operation
|
||||
if possible, to reduce CPU usage.
|
||||
|
||||
|
||||
Issues
|
||||
======
|
||||
|
||||
* Is an HKDF required for the keys, what's the advantage of doing that vs.
|
||||
just including them in the build record as before?
|
||||
|
||||
* Make KDFs be similar to those in Noise (NTCP2) and Ratchet
|
||||
|
||||
* HKDF output no more than 64 bytes preferred
|
||||
|
||||
* In the current Java implementation, the full router hash field in the build
|
||||
request record at bytes 4-35 is not checked and does not appear to be necessary.
|
||||
|
||||
* Each record is CBC encrypted with the same AES reply key and IV, as with the current design.
|
||||
Is this a problem? Can it be fixed?
|
||||
|
||||
* In the current Java implementation, the originator leaves one record empty
|
||||
for itself. Thus a message of n records can only build a tunnel of n-1 hops.
|
||||
This is necessary for inbound tunnels (where the next-to-last hop
|
||||
can see the hash prefix for the next hop), but not for outbound tunnels.
|
||||
However, if the build message length is different for inbound and outbound
|
||||
tunnels, this would allow hops to determine which direction the tunnel was.
|
||||
|
||||
* Should we define new, smaller VTBM/VTBRM I2NP messages for all-ECIES tunnels
|
||||
now instead of waiting for the rollout?
|
||||
|
||||
|
||||
|
||||
Migration
|
||||
|
@@ -5,7 +5,7 @@ ECIES Routers
|
||||
:author: zzz, orignal
|
||||
:created: 2020-09-01
|
||||
:thread: http://zzz.i2p/topics/2950
|
||||
:lastupdated: 2020-10-09
|
||||
:lastupdated: 2020-11-10
|
||||
:status: Open
|
||||
:target: 0.9.51
|
||||
|
||||
@@ -126,6 +126,7 @@ This is as documented in [Prop154]_, now specified in [I2NP]_.
|
||||
The design should enable the router to have a single ECIES Session Key Manager.
|
||||
There should be no need to run "dual key" Session Key Managers as
|
||||
described in [ECIES]_ for Destinations.
|
||||
Routers only have one public key.
|
||||
|
||||
An ECIES router does not have an ElGamal static key.
|
||||
The router still needs an implementation of ElGamal to build tunnels
|
||||
@@ -141,7 +142,7 @@ pre-0.9.46 floodfill router.
|
||||
This is optional. Decision may vary in various I2P implementations
|
||||
and may depend on the amount of the network that has upgraded to
|
||||
0.9.46 or higher.
|
||||
As of this date, approximately 80% of the network is 0.9.46 or higher.
|
||||
As of this date, approximately 85% of the network is 0.9.46 or higher.
|
||||
|
||||
|
||||
|
||||
@@ -172,13 +173,20 @@ This design minimizes risk.
|
||||
Implementation Notes
|
||||
=====================
|
||||
|
||||
Older routers do not check the encryption type of the router and will send ElGamal-encrypted
|
||||
build records or netdb messages.
|
||||
Some recent routers are buggy and will send various types of malformed build records.
|
||||
Some recent routers may send non-anonymous (full ratchet) netdb messages.
|
||||
Implementers should detect and reject these records and messages
|
||||
as early as possible, to reduce CPU usage.
|
||||
|
||||
|
||||
|
||||
Issues
|
||||
======
|
||||
|
||||
|
||||
Proposal 145 [Prop145]_ may or may not be rewritten to be mostly-compatible with
|
||||
Proposal 152 [Prop152]_.
|
||||
|
||||
|
||||
|
||||
@@ -204,13 +212,23 @@ by mid-2019 in reaction to unfinished proposal 145 [Prop145]_.
|
||||
Ensure there's nothing in the code bases
|
||||
that prevents point-to-point connections to non-ElGamal routers.
|
||||
|
||||
Code correctness checks:
|
||||
|
||||
- Ensure that ElGamal routers do not request AEAD-encrypted replies to DatabaseLookup messages
|
||||
(when the reply comes back through an exploratory tunnel to the router)
|
||||
- Ensure that ECIES routers do not request AES-encrypted replies to DatabaseLookup messages
|
||||
(when the reply comes back through an exploratory tunnel to the router)
|
||||
|
||||
Until later phases, when specifications and implementations are complete:
|
||||
|
||||
- Ensure that tunnel builds are not attempted by ElGamal routers through ECIES routers.
|
||||
- Ensure that encrypted ElGamal messages are not sent by ElGamal routers to ECIES floodfill routers.
|
||||
(DatabaseLookups and DatabaseStores)
|
||||
- Ensure that encrypted ECIES messages are not sent by ECIES routers to ElGamal floodfill routers.
|
||||
(DatabaseLookups and DatabaseStores)
|
||||
- Ensure that ECIES routers do not automatically become floodfill.
|
||||
|
||||
No changes should be required.
|
||||
Target release, if changes required: 0.9.48
|
||||
|
||||
|
||||
@@ -223,6 +241,7 @@ by mid-2019 in reaction to unfinished proposal 145 [Prop145]_.
|
||||
Ensure there's nothing in the code bases
|
||||
that prevents storage of non-ElGamal RouterInfos in the network database.
|
||||
|
||||
No changes should be required.
|
||||
Target release, if changes required: 0.9.48
|
||||
|
||||
|
||||
@@ -236,55 +255,72 @@ use its own build request record for an inbound tunnel to test and debug.
|
||||
Then test and support ECIES routers building tunnels with a mix of
|
||||
ElGamal and ECIES hops.
|
||||
|
||||
Then enable tunnel building through ECIES routers with a minimum version TBD.
|
||||
Then enable tunnel building through ECIES routers.
|
||||
No minimum version check should be necessary unless incompatible changes
|
||||
to proposal 152 are made after a release.
|
||||
|
||||
Target release: 0.9.49 or 0.9.50, early-mid 2021
|
||||
Target release: 0.9.48, late 2020
|
||||
|
||||
|
||||
Ratchet messages to ECIES floodfills
|
||||
----------------------------------------
|
||||
|
||||
Implement and test reception of ECIES messages (with zero static key) by ECIES floodfills.
|
||||
Implement and test reception of ECIES messages (with zero static key) by ECIES floodfills,
|
||||
as defined in proposal 144 [Prop144]_.
|
||||
Implement ant test reception of AEAD replies to DatabaseLookup messages by ECIES routers.
|
||||
|
||||
Enable auto-floodfill by ECIES routers.
|
||||
Then enable sending ECIES messages to ECIES routers with a minimum version TBD.
|
||||
Then enable sending ECIES messages to ECIES routers.
|
||||
No minimum version check should be necessary unless incompatible changes
|
||||
to proposal 152 are made after a release.
|
||||
|
||||
Target release: 0.9.49 or 0.9.50, early-mid 2021
|
||||
Preliminary support: 0.9.48, late 2020.
|
||||
ECIES routers will not automatically become floodfill; must be manually configured.
|
||||
|
||||
Target release: 0.9.49, early 2021
|
||||
ECIES routers may automatically become floodfill.
|
||||
|
||||
|
||||
Rekeying
|
||||
------------
|
||||
Rekeying and New Installs
|
||||
---------------------------
|
||||
|
||||
New installs will default to ECIES at some point.
|
||||
|
||||
Gradually rekey all routers to minimize risk and disruption to the network.
|
||||
Use existing code that did the rekeying for sig type migration years ago.
|
||||
This code gives each router a small random chance of rekeying at each restart.
|
||||
After several restarts, a router will probably have rekeyed to ECIES.
|
||||
|
||||
Rekeying may take several releases.
|
||||
Probably start rekeying mid-2021.
|
||||
The criterion for starting rekeying is that a sufficient portion of the network,
|
||||
perhaps 50%, can build tunnels through ECIES routers (0.9.48 or higher).
|
||||
|
||||
Target release: TBD
|
||||
Before aggressively rekeying the entire network, the vast majority
|
||||
(perhaps 90% or more) must be able to build tunnels through ECIES routers (0.9.48 or higher)
|
||||
AND send messages to ECIES floodfills.
|
||||
|
||||
Rekeying will take several releases.
|
||||
|
||||
Target release: 0.9.49 or 0.9.50 to start rekeying;
|
||||
0.9.49 or 0.9.50 for new routers to default to ECIES;
|
||||
late 2021 for the majority of the network to be rekeyed.
|
||||
|
||||
|
||||
New Tunnel Build Message
|
||||
--------------------------
|
||||
New Tunnel Build Message (Phase 2)
|
||||
------------------------------------
|
||||
|
||||
Implement and test the new Tunnel Build Message.
|
||||
Implement and test the new Tunnel Build Message as defined in proposal 157 [Prop157]_.
|
||||
Roll the support out in a release.
|
||||
Do additional testing, then enable it in the next release.
|
||||
|
||||
Probably mid-2021.
|
||||
Testing will be difficult.
|
||||
Before this can be widely tested, a good subset of the network must support it.
|
||||
Before it is broadly useful, a majority of the network must support it.
|
||||
If specification or implementation changes are required after testing,
|
||||
that would delay the rollout for an additional release.
|
||||
|
||||
Target release: TBD
|
||||
|
||||
|
||||
ECIES for New Installs
|
||||
--------------------------
|
||||
|
||||
New installs are ECIES routers.
|
||||
|
||||
Target release: TBD
|
||||
Probably mid-late 2021.
|
||||
Probably mid- or late-2021.
|
||||
|
||||
Target release: TBD; proposal 157 is incomplete.
|
||||
|
||||
|
||||
Rekeying Complete
|
||||
|
@@ -51,3 +51,4 @@ muwire.i2p=sf98w7aoGH1NrWWTaJWn~6vb-vh5X1I7Zp4dDH6l0b~MOMxYO6ZuetLKvMZEu8bv6pwTV
|
||||
idk.i2p=spHxea2xhPjKH9yyEeFJ96aqtvKidH-GiWxs8dH6RWS2FrDoWFhuEkfw77pF~Hv57lLhMaMB3qqWjCtYXOjL48Q1zYbr3MAcTO44wwVPjOU1hU77vbJcUuwBeRvaSr2dZx-FiTSOdQuhPD1EozYNRIMFwZ0fZwKf~3Gj4dEWccOLKs~NbiPsj-~tc5tmhAs8yBeoZEqEBe40X75SfSHY-EnstcZevVAwIXYk3zX3KF0mji3bo2QXuTFcMZHHLiLd2AHLRANzWyvQ9DC1rnCsHJM4xxV4dVp0pHkP1hwBo7E0NJvN4nFkQcj-FI2RJ~cFUCk7qc86PRHwvKCjzSlrgjtDsMUwd83Dz1PfpzCqHNLUFWI7uPKbKcJZhasFm4kEhUyupd85q75Ch2IZE9J2JXodSxmseO5ZKcHK6pFtfR-HbzKjIe92TWHsNkmvtoHiUaOVrWnk-cmo2I1W1VxfL08teDxQ13P80uFaMcameRzuFM2F8pSOpoyEJUDRGLEeBQAEAAcAAA==#!date=1580225024#sig=1xJyj0yq1duNnL-CKXVuUDutbv4rGUAjKVSaRjztXvKDLQE7qv67YWXmc-9qGUbSh2dvuOPs7jEkpv2LFnoICg==
|
||||
git.idk.i2p=80oPWkYFSfbnZvb~9uDtoFvmchhH4CJ1qDmFfXvp-PtEFS8gIaUmN2d4eLiS8NGt-LS-kfJvyiezxUEjK1myFR2C~IIvY~UwPiIe2d2d-VrkFg3dt2FA2qGnf7YBDsgSby~TMjNREyL9lvNznlPu00E1bUpMS09l6llQ7f-xTYloQQzasmR3xTXLe4XEDAhXfGC-KsOhLVhT2BlTHNU0cTaxtZP50K-2grAi~xwA7bUp5Br9TQvdBNyWH1fbzZax50ooPxwdW6wdC3eMbI7qHCiEtF0pexTQ-2~BbALNoFU6HRXoYZwaYNwuDsPSo0XsguUJXOa6eQT90bXkbStqwPrA6p0WvRHUb3wgLug-s7FY~4ncz3lKPOX~zX-adCvXpYgHFgiJas-9i9KyaniNa0SWUEozOaah3TtAdXGRpufUlPm~jwBdFD2kYj~xgI5FGcBxA1OVyTwuWQRmisjf-1eJfsItr1944TKCu2kwgCTsBwX4Lu48ojjKqInpLV61BQAEAAcAAA==#!action=addsubdomain#date=1580498845#olddest=spHxea2xhPjKH9yyEeFJ96aqtvKidH-GiWxs8dH6RWS2FrDoWFhuEkfw77pF~Hv57lLhMaMB3qqWjCtYXOjL48Q1zYbr3MAcTO44wwVPjOU1hU77vbJcUuwBeRvaSr2dZx-FiTSOdQuhPD1EozYNRIMFwZ0fZwKf~3Gj4dEWccOLKs~NbiPsj-~tc5tmhAs8yBeoZEqEBe40X75SfSHY-EnstcZevVAwIXYk3zX3KF0mji3bo2QXuTFcMZHHLiLd2AHLRANzWyvQ9DC1rnCsHJM4xxV4dVp0pHkP1hwBo7E0NJvN4nFkQcj-FI2RJ~cFUCk7qc86PRHwvKCjzSlrgjtDsMUwd83Dz1PfpzCqHNLUFWI7uPKbKcJZhasFm4kEhUyupd85q75Ch2IZE9J2JXodSxmseO5ZKcHK6pFtfR-HbzKjIe92TWHsNkmvtoHiUaOVrWnk-cmo2I1W1VxfL08teDxQ13P80uFaMcameRzuFM2F8pSOpoyEJUDRGLEeBQAEAAcAAA==#oldname=idk.i2p#oldsig=nqvkqfrlNYhJw0lxgkJKJtKC1McbHwo9J8DheCWJ5YbydUnq2iS2VOGj2rDMA5b1uw-uVEP2FRgV1yNzK~ETCw==#sig=sXTy7cMqA-4~q9YBXzr188sjC65I0GugcsxwPeMQ-CT6zKIByWbzLu0HXVWp98fs7fV7gVbHZDpiokn8npZBAQ==
|
||||
gitssh.idk.i2p=Q2ivHumt3AxJuYWAob4-NGvQbQ5P05QSL6B0kIgDurRclYgxNcBhnLxjUSiROP4hQOFkAd9OqZL00~b66iWSOlTAxxC1lOwHqpRw0UJFUwiNMZYskUIrg9r6eDohYQg~1Gxb50hMLp46myspm9jUuzhh8VdW5h6U7F8XksZnip16HwHJcPRqVHjI-6V6FHYfxsXj~bJO-uIFgLx4K9Mr65GQDPhpuzVwPSo5ytRWidxs6BFituAoduANhrDH2rztacHUVuiF8J3OXugLiqqrOemccbCf3jS~3Ed7euJvv3Jf46WyqETjGgjyE8L2CHJeiteFql0AYVcFqw-ufOCxm3yBahZFTnhu5QEEYEn~9izifdFqB78tKkjmGsCcdGLiTIcyYmZYycgIFrZ3P3gRdkGZI4OM5RfpWShdp5FxirIFxIsYMS4mpxGs~PAxJZGR7StIvp4lHYHBmErtzHKMsl55Vam2IZYzJ52ng0q3YRyFfqeM5GqxjGO1hgig4vQ6BQAEAAcAAA==#!action=addsubdomain#date=1588471458#olddest=spHxea2xhPjKH9yyEeFJ96aqtvKidH-GiWxs8dH6RWS2FrDoWFhuEkfw77pF~Hv57lLhMaMB3qqWjCtYXOjL48Q1zYbr3MAcTO44wwVPjOU1hU77vbJcUuwBeRvaSr2dZx-FiTSOdQuhPD1EozYNRIMFwZ0fZwKf~3Gj4dEWccOLKs~NbiPsj-~tc5tmhAs8yBeoZEqEBe40X75SfSHY-EnstcZevVAwIXYk3zX3KF0mji3bo2QXuTFcMZHHLiLd2AHLRANzWyvQ9DC1rnCsHJM4xxV4dVp0pHkP1hwBo7E0NJvN4nFkQcj-FI2RJ~cFUCk7qc86PRHwvKCjzSlrgjtDsMUwd83Dz1PfpzCqHNLUFWI7uPKbKcJZhasFm4kEhUyupd85q75Ch2IZE9J2JXodSxmseO5ZKcHK6pFtfR-HbzKjIe92TWHsNkmvtoHiUaOVrWnk-cmo2I1W1VxfL08teDxQ13P80uFaMcameRzuFM2F8pSOpoyEJUDRGLEeBQAEAAcAAA==#oldname=idk.i2p#oldsig=XtsKWRWdi~eYdRNxBuSpipQP5dMvugVnUjn5JRIfpfbixSTw9OZf~yi7wjh~~8DjXYJ7OU8pgJDogx8n7r~qAg==#sig=PET3WoFCEiADgJWUWVlAtC3qYc5xVS~-NuCKqxThzXNfEaDfMpWPcRnx6huz9qri7qp3ItBED05~aNSZ20YTCQ==
|
||||
paste.idk.i2p=5cg1fY7BdIZmlpp2xcnlHB3BcxIRrYb3OuvDvYxOwP8Dm5M35FDNLIbu81I-8wVj8MoSsyLFQd9Rt~lBelN2hC1Yr12Gy52CpUNntPFb30KRgQqLit~a2NdiGJu134ig6niPcB2XBCF2ehR0ME6RlPLLkwZX8WjOkMp35kzppZ5O2MIiQaf9WrxMKPZbQLcvKgEVoRP6yegefWDPl89u7Y5cVRVHX6kP2uy-g1TB5KP5ER9RpHwcoCn8n9ZjeGb48xT-KjRLu1MjJyxno2Hsifi26Cp9vj8CpAtvOh~25w~a8-6BpCQMjpWPxH2dWkqd6KzT~diqJ6XIXf8pWLqNQmadDMCVxbHA0uKDW0ba4iCkdGcyt1-hZdjN3zzfb4R9hBn1yMC1q0JDN5Ka4TPbN8clfaEx5DB5MwTqFVvzkk4w6CemkzE7fEoxukJqC3g0hJSn6CuuF3kEFyQclViYvkLJ1rbQCf4pyNL8exdeNemoo7OML-BeFHZU9P4L5~4NBQAEAAcAAA==#!action=addsubdomain#date=1583511995#olddest=spHxea2xhPjKH9yyEeFJ96aqtvKidH-GiWxs8dH6RWS2FrDoWFhuEkfw77pF~Hv57lLhMaMB3qqWjCtYXOjL48Q1zYbr3MAcTO44wwVPjOU1hU77vbJcUuwBeRvaSr2dZx-FiTSOdQuhPD1EozYNRIMFwZ0fZwKf~3Gj4dEWccOLKs~NbiPsj-~tc5tmhAs8yBeoZEqEBe40X75SfSHY-EnstcZevVAwIXYk3zX3KF0mji3bo2QXuTFcMZHHLiLd2AHLRANzWyvQ9DC1rnCsHJM4xxV4dVp0pHkP1hwBo7E0NJvN4nFkQcj-FI2RJ~cFUCk7qc86PRHwvKCjzSlrgjtDsMUwd83Dz1PfpzCqHNLUFWI7uPKbKcJZhasFm4kEhUyupd85q75Ch2IZE9J2JXodSxmseO5ZKcHK6pFtfR-HbzKjIe92TWHsNkmvtoHiUaOVrWnk-cmo2I1W1VxfL08teDxQ13P80uFaMcameRzuFM2F8pSOpoyEJUDRGLEeBQAEAAcAAA==#oldname=idk.i2p#oldsig=IxJ1B5U8U2zMCwTbMVps-BRobeY3MJ4GihkGxxzOS5Mewbcc0ugSpknbGGZvCHHR4Wd1wvfJ5Y4fK1Jkc4CoAg==#sig=YG149yexd-Ihx-pXuYxaHF0tTVJ6zopMxxp14cxWKQN1ZShF5vLq6-Dw-CgYYjxVHNBek6HqeG7z7qJyKc0UDQ==
|
||||
|
BIN
i2p2www/static/images/irc/pidgin-irc-0.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
i2p2www/static/images/irc/pidgin-irc-1.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
i2p2www/static/images/irc/pidgin-irc-2.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
i2p2www/static/images/irc/pidgin-irc-3.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
i2p2www/static/images/irc/revolution-irc-0.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
i2p2www/static/images/irc/revolution-irc-1.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
i2p2www/static/images/irc/revolution-irc-2.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
i2p2www/static/images/irc/thunderbird-irc-0.png
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
i2p2www/static/images/irc/thunderbird-irc-1.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
i2p2www/static/images/irc/thunderbird-irc-2.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
i2p2www/static/images/irc/thunderbird-irc-3.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
i2p2www/static/images/irc/thunderbird-irc-4.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
i2p2www/static/images/irc/thunderbird-irc-5.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
i2p2www/static/images/irc/thunderbird-irc-6.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
i2p2www/static/images/irc/tuncheck-irc-all.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
i2p2www/static/images/irc/xchat-irc-0.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
i2p2www/static/images/irc/xchat-irc-1.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
i2p2www/static/images/irc/xchat-irc-2.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
i2p2www/static/images/irc/xchat-irc-3.png
Normal file
After Width: | Height: | Size: 28 KiB |
@@ -1,4 +1,4 @@
|
||||
#! /usr/bin/env sh
|
||||
#! /usr/bin/env bash
|
||||
|
||||
## Set additional docker run arguments by changing the variable
|
||||
## i2p_www_docker_run_args
|
||||
|