From f28dbbe3a41521eb02f1cd2c2f920253f0e89d81 Mon Sep 17 00:00:00 2001 From: hankhill19580 Date: Fri, 31 Jan 2020 18:46:51 +0000 Subject: [PATCH] combine browser configuration with post-install guide and update some screenshots --- i2p2www/downloads.py | 3 + i2p2www/pages/downloads/browser-content.html | 142 +++++++++++++++++ i2p2www/pages/downloads/config.html | 7 + i2p2www/pages/downloads/list.html | 3 - i2p2www/pages/downloads/post-install.html | 2 +- i2p2www/pages/downloads/redirect.html | 1 + i2p2www/pages/site/about/browser-config.html | 144 +----------------- .../static/images/firefox57.preferences.png | Bin 3347 -> 26686 bytes i2p2www/static/styles/duck/default.css | 1 + i2p2www/static/styles/duck/desktop.css | 5 +- i2p2www/urls.py | 1 + 11 files changed, 161 insertions(+), 148 deletions(-) create mode 100644 i2p2www/pages/downloads/browser-content.html create mode 100644 i2p2www/pages/downloads/config.html diff --git a/i2p2www/downloads.py b/i2p2www/downloads.py index f2d731b5..9554d57a 100644 --- a/i2p2www/downloads.py +++ b/i2p2www/downloads.py @@ -79,6 +79,9 @@ def downloads_firefox(): def downloads_lab(): return render_template('downloads/lab.html') +def downloads_config(): + return render_template('downloads/config.html') + # Specific file downloader def downloads_select(version, file): mirrors=read_mirrors() diff --git a/i2p2www/pages/downloads/browser-content.html b/i2p2www/pages/downloads/browser-content.html new file mode 100644 index 00000000..21d74d34 --- /dev/null +++ b/i2p2www/pages/downloads/browser-content.html @@ -0,0 +1,142 @@ +

{% trans -%} +Your web browser will need to be configured in order to browse web sites on I2P +and to utilize the outproxies available within I2P. Below are walkthroughs for +some of the most popular browsers. +{%- endtrans %}

+ +

{{ _('Firefox Profile for Windows') }}

+

{% trans profile='/firefox' -%} +If you are using Windows, the recommended way of accessing I2P is using the +Firefox profile. +{%- endtrans %}

+

{% trans -%} +If you do not wish to use that profile or are not on Windows, you need to +configure your browser yourself. Read below on how to that. +{%- endtrans %}

+ +

{{ _('How to configure your browser') }}

+ + + + +

Firefox

+

{% trans %}Instructions for Firefox 57 and above:{% endtrans %}

+

{% trans -%} +From the Menu button in the top right, select Preferences. +Scroll down until you see the Network Proxy section, as shown in the +screenshot below. Click on Settings +{%- endtrans %}

+ +

{% trans -%} +In the Connection Settings pop-up, select Manual proxy + configuration. Set both the HTTP and SSL Proxy to address +127.0.0.1 with port 4444 as shown in the following +screenshot. +{%- endtrans %}

+{{ _('Firefox57
+Connection Settings') }} +

{% trans -%} +Finally, go to the address about:config and find the property +media.peerConnection.ice.proxy_only. Ensure that this setting is True. +{%- endtrans %}

+{{ _('Firefox57
+PeerConnection Settings') }} + + + +

Chrome

+

{% trans -%} +Chromium-Based Browsers like Chrome have slightly different places for their +proxy settings depending on variant and platform. These instructions may be +slightly different in Brave or Iridium, for instance. From the Main +menu, navigate to the Settings, and search for the menu item. +Clicking it will open the right settings for your platform. +{%- endtrans %}

+{{ _('Chrome Proxy Options') }} +

{% trans -%} +On Windows, this button will launch you into the shared proxy settings used +by Internet Explorer, and you can configure it by +following the Internet Explorer 8 guide. +{%- endtrans %}

+ + + +

{{ _('Internet Explorer') }}

+

{% trans -%} +In the start menu search for the the "Network and Internet Settings" to open the +settings. The last entry in the menu is the Proxy Settings, click it to +your proxy to connect to I2P. +{%- endtrans %}

+{{ _('IE Internet Options') }} +

{% trans -%} +Now set the checkmark at "use a proxy server for your LAN" and at the "Bypass +proxy server for local addresses". With a click on Advanced-button you open the +window to open the ports. Enter the values like on the picture, IP 127.0.0.1 +and port 4444 for HTTP, port 4445 for HTTPS. With clicks on OK you save the +settings and your browser is set to use the I2P proxy. +{%- endtrans %}

+{{ _('IE Proxy Settings') }} + + + +

{{ _('Outproxy Terms Of Service') }}

+

{% trans -%} +Remember: I2P was not designed for creating proxies to the outer Internet. +Instead, it is meant to be used as an internal network. +{%- endtrans %}

+

{% trans -%} +

The I2P project itself does not run any proxies to the Internet. +The only outproxy is a service from the privacy solutions project. +Consider donating to them for a continued stable service. Increased funding will +allow them to improve this service.

+http://privacysolutions.no +{%- endtrans %}

+

{% trans http='false.i2p', https='outproxy-tor.meeh.i2p' -%} +By default, I2P comes with two outproxies configured: {{ http }} +and {{ https }}. Even the domain names are different, it's the same outproxy you hit. +(multi-homed/keyed for better performance) +{%- endtrans %}

+

{% trans -%} +Filtering is active on these outproxies (for example, mibbit and torrent +tracker access is blocked). Eepsites +that are accessible via .i2p addresses are also not allowed via the outproxies. +As a convenience, the outproxy blocks ad servers. +{%- endtrans %}

+

{% trans -%} +Tor is good application to use as an +outproxy to the Internet. +{%- endtrans %}

+ diff --git a/i2p2www/pages/downloads/config.html b/i2p2www/pages/downloads/config.html new file mode 100644 index 00000000..e3a653ac --- /dev/null +++ b/i2p2www/pages/downloads/config.html @@ -0,0 +1,7 @@ +{% extends "global/layout.html" %} +{% block title %}{{ _('Configuration') }}{% endblock %} +{% block content %} + +{% include "downloads/post-install.html" %} +{% include "downloads/browser-content.html" %} +{% endblock %} diff --git a/i2p2www/pages/downloads/list.html b/i2p2www/pages/downloads/list.html index aace478a..1e8ac013 100644 --- a/i2p2www/pages/downloads/list.html +++ b/i2p2www/pages/downloads/list.html @@ -199,9 +199,6 @@ The Mac OS X native installer is signed by {{ signer }} with his Apple Developer whose key is here. {%- endtrans %} - -{% include "downloads/post-install.html" %} -

{{ _('Updates from earlier releases:') }}

{% trans -%} diff --git a/i2p2www/pages/downloads/post-install.html b/i2p2www/pages/downloads/post-install.html index 5e60705c..445eaad5 100644 --- a/i2p2www/pages/downloads/post-install.html +++ b/i2p2www/pages/downloads/post-install.html @@ -1,4 +1,4 @@ -

{{ _('Post-install work') }}

+

{{ _('Post-install work') }}

{% trans -%} After running the installer on windows, simply click on the "Start I2P" button diff --git a/i2p2www/pages/downloads/redirect.html b/i2p2www/pages/downloads/redirect.html index 523225f5..0b11bf40 100644 --- a/i2p2www/pages/downloads/redirect.html +++ b/i2p2www/pages/downloads/redirect.html @@ -11,4 +11,5 @@ Your download will begin shortly. If it doesn't start within 5 seconds, click {% include "downloads/post-install.html" %} +{% include "downloads/browser-content.html" %} {% endblock %} diff --git a/i2p2www/pages/site/about/browser-config.html b/i2p2www/pages/site/about/browser-config.html index 57561b26..ffa72773 100644 --- a/i2p2www/pages/site/about/browser-config.html +++ b/i2p2www/pages/site/about/browser-config.html @@ -1,147 +1,5 @@ {% extends "global/layout.html" %} {% block title %}{{ _('Web Browser Configuration') }}{% endblock %} {% block content %} - -

{% trans -%} -Your web browser will need to be configured in order to browse eepsites and to -utilize the outproxies available within I2P. Below are walkthroughs for some of -the most popular browsers. -{%- endtrans %}

- -

{{ _('Firefox Profile for Windows') }}

-

{% trans profile='/firefox' -%} -If you are using Windows, the recommended way of accessing I2P is using the -Firefox profile. -{%- endtrans %}

-

{% trans -%} -If you do not wish to use that profile or are not on Windows, you need to -configure your browser yourself. Read below on how to that. -{%- endtrans %}

- -

{{ _('How to configure your browser') }}

- - - - -

Firefox

-

{% trans %}Instructions for Firefox 57 and above:{% endtrans %}

-

{% trans -%} -From the Menu button in the top right, select Preferences. -Scroll down until you see the Network Proxy section, as shown in the -screenshot below. Click on Settings -{%- endtrans %}

- -

{% trans -%} -In the Connection Settings pop-up, select Manual proxy - configuration. Set both the HTTP and SSL Proxy to address -127.0.0.1 with port 4444 as shown in the following -screenshot. -{%- endtrans %}

-{{ _('Firefox57
-Connection Settings') }} -

{% trans -%} -Finally, go to the address about:config and find the property -media.peerConnection.ice.proxy_only. Ensure that this setting is True. -{%- endtrans %}

-{{ _('Firefox57
-PeerConnection Settings') }} - - - -

Chrome

-

{% trans -%} -Chromium-Based Browsers like Chrome have slightly different places for their -proxy settings depending on variant and platform. These instructions may be -slightly different in Brave or Iridium, for instance. From the Main -menu, navigate to the Settings, and search for the menu item. -Clicking it will open the right settings for your platform. -{%- endtrans %}

-{{ _('Chrome Proxy Options') }} -

{% trans -%} -On Windows, this button will launch you into the shared proxy settings used -by Internet Explorer, and you can configure it by -following the Internet Explorer 8 guide. -{%- endtrans %}

- - - -

{{ _('Internet Explorer') }}

-

{% trans -%} -In the start menu search for the the "Network and Internet Settings" to open the -settings. The last entry in the menu is the Proxy Settings, click it to -your proxy to connect to I2P. -{%- endtrans %}

-{{ _('IE Internet Options') }} -

{% trans -%} -Now set the checkmark at "use a proxy server for your LAN" and at the "Bypass -proxy server for local addresses". With a click on Advanced-button you open the -window to open the ports. Enter the values like on the picture, IP 127.0.0.1 -and port 4444 for HTTP, port 4445 for HTTPS. With clicks on OK you save the -settings and your browser is set to use the I2P proxy. -{%- endtrans %}

-{{ _('IE Proxy Settings') }} - - - -

{{ _('Outproxy Terms Of Service') }}

-

{% trans -%} -Remember: I2P was not designed for creating proxies to the outer Internet. -Instead, it is meant to be used as an internal network. -{%- endtrans %}

-

{% trans -%} -

The I2P project itself does not run any proxies to the Internet. -The only outproxy is a service from the privacy solutions project. -Consider donating to them for a continued stable service. Higher bandwidth will -increase with the founding of the organization. Maybe more outproxies too.

-http://privacysolutions.no -{%- endtrans %}

-

{% trans http='false.i2p', https='outproxy-tor.meeh.i2p' -%} -By default, I2P comes with two outproxies configured: {{ http }} -and {{ https }}. Even the domain names are different, it's the same outproxy you hit. -(multi-homed/keyed for better performance) -{%- endtrans %}

-

{% trans -%} -Filtering is active on these outproxies (for example, mibbit and torrent -tracker access is blocked). Eepsites -that are accessible via .i2p addresses are also not allowed via the outproxies. -As a convenience, the outproxy blocks ad servers. -{%- endtrans %}

-

{% trans -%} -Tor is good application to use as an -outproxy to the Internet. -{%- endtrans %}

- +{% include "downloads/browser-content.html" %} {% endblock %} diff --git a/i2p2www/static/images/firefox57.preferences.png b/i2p2www/static/images/firefox57.preferences.png index 7c4f83de5a6e737ff8a84c8330cde90b4e05b87f..400e34eb83c2e983fd343af5a08b07e1d0f3d29d 100644 GIT binary patch literal 26686 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%0AlMvUzr4+lz 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 literal 3347 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/browser/develop', 'browser.browser_develop') url('//download', 'downloads.downloads_list') url('//download/debian', 'downloads.downloads_debian') url('//download/firefox', 'downloads.downloads_firefox') +url('//download/config', 'downloads.downloads_config') url('//download/lab', 'downloads.downloads_lab') url('//download///mirrors', 'downloads.downloads_select') url('//download///any//download', 'downloads.downloads_redirect', defaults={'protocol': None, 'domain': None})