I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Verified Commit 1e1c95cb authored by idk's avatar idk
Browse files

add a page for the NSIS JPackage+Profile+I2P installer

parent 0839c69b
No related branches found
No related tags found
No related merge requests found
==========================================================================
{% trans -%}Improving I2P Adoption and Onboarding using Jpackage, I2P-Zero{%- endtrans %}
==========================================================================
.. meta::
:author: idk
:date: 2021-09-15
:category: general
:excerpt: {% trans %}Versatile and emerging ways of installing and embedding I2P in your application{% endtrans %}
{% trans -%}
For the majority of I2P's existence, it's been an application that runs with the
help of a Java Virtual Machine that is already installed on the platform. This
has always been the normal way to distribute Java applications, but it leads to
a complicated installation procedure for many people. To make things even more
complicated, the "right answer" to making I2P easy to install on any given
platform might not be the same as any other platform. For example, I2P is quite
simple to install with standard tools on Debian and Ubuntu based operating
systems, because we can simply list the required Java components as "Required"
by our package, however on Windows or OSX, there is no such system allowing us to make
sure that a compatible Java is installed.
{%- endtrans %}
{% trans -%}
The obvious solution would be to manage the Java installation ourselves, but
this used to a problem in-and-of-itself, outside of the scope of I2P. However,
in recent Java versions, a new set of options has emerged which has the
potential to solve this problem for many Java software. This exciting tool is
called **"Jpackage."**
{%- endtrans %}
{% trans -%}
I2P-Zero and Dependency-Free I2P Installation
{%- endtrans %}
---------------------------------------------
{% trans -%}
The first very successful effort at building a dependency-free I2P Package was
I2P-Zero, which was created by the Monero project originally for use with the
Monero cryptocurrency. This project got us very excited because of it's success
in creating a general-purpose I2P router which could easily packaged with an
I2P application. Especially on Reddit, many people express their preference for
the simplicity of setting up an I2P-Zero router.
{%- endtrans %}
{% trans -%}
This really proved to us that a dependency-free I2P Package which was easy to
install was possible using modern Java tools, but I2P-Zero's use case was a
little bit different than ours. It is best for embedded apps that need an I2P
router that they can easily control using it's convenient control port on port
"8051". Our next step would be to adapt the technology to the general-purpose
I2P Application.
{%- endtrans %}
{% trans -%}
OSX Application Security Changes affect I2P IzPack Installer
{%- endtrans %}
------------------------------------------------------------
{% trans -%}
The issue became more pressing in recent versions of Mac OSX, where it is no
longer straightforward to use the "Classic" installer which comes in the .jar
format. This is because the application is not "Notarized" by Apple authorities
and it is deemed a security risk. **However**, Jpackage can produce a .dmg file,
which can be notarized by Apple authorities, conveniently solving our problem.
{%- endtrans %}
{% trans -%}
The new I2P .dmg installer, created by Zlatinb, makes I2P easier to install on
OSX than ever, no longer requiring users to install Java themselves and using
standard OSX installation tools in their prescribed ways. The new .dmg installer
makes setting up I2P on Mac OSX easier than it's ever been.
{%- endtrans %}
Get the dmg_.
.. _dmg: https://geti2p.net/en/download/mac
{% trans -%}
The I2P of the future is Easy to Install
{%- endtrans %}
----------------------------------------
{% trans -%}
One of the things I hear from users the most is that if I2P wants adoption, it
needs to be easy to use for people. Many of them want a "Tor Browser Like" user
experience, to quote or paraphrase many familiar Redditors. Installation should
not require complicated and error-prone "post-installation" steps. Many new
users are not prepared to deal with their browser configuration in a thorough
and complete way. To address this problem, we created the I2P Profile Bundle
which configured Firefox so that it would automatically "Just Work" for I2P.
As it's developed, it's added security features and improved integration with
I2P itself. In it's latest version, it **also** bundles a complete, Jpackage
powered I2P Router. The I2P Firefox Profile is now a fully-fledged distribution
of I2P for Windows, with the only remaining dependency being Firefox itself.
This should provide an unprecedented level of convenience for I2P users on
Windows.
{%- endtrans %}
Get the installer_.
.. _installer: https://geti2p.net/en/download/nsis
{% extends "global/layout.html" %}
{%- from "downloads/macros" import package_outer with context -%}
{% block title %}Firefox Profile{% endblock %}
{% block content %}
<h1>{{ _('I2P Easy Install Bundle(Beta)') }}</h1>
<p>{% trans -%}
This is an "All-in-One" installer which includes the complete I2P desktop
software and all of it's dependencies in a single, easy-to-install package. It
is built on the premise that I2P should be easy, and that we should help our
users get their initial configuration in place instead of requiring an elaborate
install process.
{%- endtrans %}</p>
<h2>{{ _('Is it a Zero-Dependency I2P Browser?') }}</h2>
<p><strong>{% trans -%}
Not yet.
{%- endtrans %}</strong>{% trans issueurl="https://i2pgit.org/i2p-hackers/i2p.firefox/-/issues/2" -%} For now, this installer still requires
Firefox to be installed on the system, it does not bundle a Firefox installer of
it's own. This was a judgement made to protect users of the bundle, we believe
that you should obtain your Firefox distribution from a vendor who can provide
updates. Please obtain Firefox from Mozilla. If you would like to discuss
supporting other browsers, please join the discussion on the
<a href="{{ issueurl }}">Gitlab Issue</a>.
{%- endtrans %}</p>
<h2>{{ _('Why should I use it?') }}</h2>
<p>{% trans -%}
This installer package reduces the number of steps required to install an I2P
router on Windows from about 30 to a matter of completing a single, familiar
installer process, combining the I2P installation and Browser configuration into
the same steps. Besides that, it launches the user directly into the
automatically configured I2P browser with their applications ready-to-use, with
no need to refer to potentially unhelpful system-wide Windows settings.
{%- endtrans %}</p>
<h2>{{ _('How do I use it?') }}</h2>
<p>{% trans firefox="https://www.mozilla.org/", postfilename=pver('I2P-Profile-Installer-%s.exe') -%}
First, download and install <a href="{{ firefox }}">Firefox</a>, then,
just download and install <a href="{{ postfilename }}">this installer</a>.
{%- endtrans %}</p>
{%- set name = 'Windows' -%}
{%- set icon = 'images/download/windows.png' -%}
{%- set filename = 'I2P-Profile-Installer-%s.exe' -%}
{%- set hash = '8eb1e9f69200a42192acabe4686bb3541f7f409b2f9702f2f9e5c6870515fa56' -%}
{% call package_outer('windows', name, icon) %}
<div class = "file">
<a class = "default" href="{{ url_for('downloads_redirect', version=pver(), net=def_mirror.net, protocol=def_mirror.protocol, domain=def_mirror.domain, file=pver(filename) )}}">
<span class = "name">{{ pver(filename) }}</span><br/>
<span class="mirror">{{ _('Mirror:') }} <img src="{{ url_for('static', filename='images/flags/'+def_mirror.country+'.png') }}" /> {{ def_mirror.org }}</span>
</a>
<a class="mirrors" href="{{ get_url('downloads_select', version=pver(), file=pver(filename)) }}">{{ _('select alternate mirror') }}</a>
</div>
<div class="meta">
<div class="hash">
<code>{{ hash }}</code>
</div>
</div>
<p>{% trans -%}
Download that file and complete the steps it shows.
{%- endtrans %}</p>
{% endcall %}
{% trans signer='zlatinb',
signingkey=url_for('static', filename='zlatinb.key.crt') -%}
The files are signed by {{ signer }},
<a href="{{ signingkey }}">whose key is here</a>.
{%- endtrans %}
<h2>{{ _('What is in it?') }}</h2>
<p>{% trans -%}
This browser profile also includes both the NoScript and HTTPSEverywhere plugin for
better protection Javascript based attacks and HTTPS support where available. It
also keeps your I2P search activity separate from your visible internet search
activity. The profile configures the I2P Proxy for all sites and browser features.
I2P In Private Browsing is used to provide I2P-Specific browser integrations.
{%- endtrans %}</p>
<h3>{{ _('Source Code and Issue Tracking') }}</h3>
<div>{% trans -%}
If you would like to examine the source code for individual components, you may
find it on i2pgit.org or github.com. The license for each respective component
can be found in the license directory of the <code>i2p.firefox</code> project.
{%- endtrans %}</div>
<div><a href="https://i2pgit.org/i2p-hackers/i2p.firefox">{% trans -%}Gitlab Repository{%- endtrans %}</a></div>
<div><a href="https://github.com/i2p/i2p.firefox">{% trans -%}Github Repository{%- endtrans %}</a></div>
<div>{% trans -%}
If you wish to file an issue about the Firefox profile, please use Gitlab to
contact us. For security-sensitive issues, please remember to check the
"This issue is confidential and should only be visible to team members with at least Reporter access"
option when filing the issue.
{%- endtrans %}</div>
<div><a href="https://i2pgit.org/i2p-hackers/i2p.firefox/issues">{% trans -%}Gitlab Repository{%- endtrans %}</a></div>
<h2>{{ _('How is it different from Tor Browser?') }}</h2>
<p>{% trans -%}
This is not a fork of Firefox. Instead, it is a browser profile with pre-configured
settings, combined with an I2P router and some launcher scripts. That means that
it requires Firefox(Or Tor Browser) to be installed before you can use it. This
is for security reasons, it is important that you are able to recieve reliable
updates from a trustworthy vendor. As much as we would like to, we can't
maintain a whole Firefox fork and provide timely updates for it right now.
{%- endtrans %}</p>
<p>{% trans -%}
I2P routers are designed to have long uptimes, and so unlike Tor Browser, the
lifetime of your I2P Router is not tied to the lifetime of your I2P browsing
session. The browser profile will manage your history, your browser's local
storage and cache, and your browsing context but it will never stop your I2P
router on it's own. You may stop the router using the web interface on the
router console homepage.
{%- endtrans %}</p>
{% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment