diff --git a/i2p2www/blog/2021/09/15/i2p-jpackages.draft.rst b/i2p2www/blog/2021/09/15/i2p-jpackages.draft.rst new file mode 100644 index 0000000000000000000000000000000000000000..70c39d0f51d25b3c7700f0541a8b20fd9432cbc5 --- /dev/null +++ b/i2p2www/blog/2021/09/15/i2p-jpackages.draft.rst @@ -0,0 +1,102 @@ +========================================================================== +{% 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 diff --git a/i2p2www/pages/downloads/nsis.html b/i2p2www/pages/downloads/nsis.html new file mode 100644 index 0000000000000000000000000000000000000000..767b30ed45893d8ac9e0562886e333f91f6671f4 --- /dev/null +++ b/i2p2www/pages/downloads/nsis.html @@ -0,0 +1,110 @@ +{% 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 %}