From 24996f3695fa5102965fd49c7db1b46697bc8b15 Mon Sep 17 00:00:00 2001
From: idk
Date: Mon, 5 Oct 2020 12:35:07 -0400
Subject: [PATCH] add detailed step-by-step install guide for Windows per
recommendation from SimSec
---
i2p2www/downloads.py | 4 +
i2p2www/pages/downloads/list.html | 6 +-
i2p2www/pages/downloads/windows.html | 175 ++++++++++++++++++
.../images/download/windows/bwbrowser.png | Bin 0 -> 140303 bytes
.../images/download/windows/bwdisclaimer.png | Bin 0 -> 114680 bytes
.../static/images/download/windows/bwdone.png | Bin 0 -> 117471 bytes
.../images/download/windows/bwintro.png | Bin 0 -> 72734 bytes
.../static/images/download/windows/bwtest.png | Bin 0 -> 102124 bytes
.../download/windows/firefox-installer.png | Bin 0 -> 73310 bytes
.../images/download/windows/firefox.png | Bin 0 -> 75072 bytes
.../static/images/download/windows/geti2p.png | Bin 0 -> 49667 bytes
.../images/download/windows/getjava.png | Bin 0 -> 108763 bytes
.../images/download/windows/i2plang.png | Bin 0 -> 4417 bytes
.../images/download/windows/i2plicense.png | Bin 0 -> 26431 bytes
.../images/download/windows/i2pnext.png | Bin 0 -> 20066 bytes
.../images/download/windows/i2ppath.png | Bin 0 -> 19227 bytes
.../images/download/windows/installbase.png | Bin 0 -> 23227 bytes
.../images/download/windows/installed.png | Bin 0 -> 19297 bytes
.../images/download/windows/installedjava.png | Bin 0 -> 13784 bytes
.../images/download/windows/installjava.png | Bin 0 -> 9474 bytes
.../images/download/windows/installjava2.png | Bin 0 -> 47113 bytes
.../images/download/windows/installrun.png | Bin 0 -> 19796 bytes
.../download/windows/installshortcuts.png | Bin 0 -> 25577 bytes
.../static/images/download/windows/nojava.png | Bin 0 -> 5020 bytes
.../images/download/windows/oraclejava.png | Bin 0 -> 95111 bytes
.../images/download/windows/profile.png | Bin 0 -> 72776 bytes
.../images/download/windows/profiledone.png | Bin 0 -> 9566 bytes
.../images/download/windows/profilelang.png | Bin 0 -> 4692 bytes
.../download/windows/profilelicense.png | Bin 0 -> 16327 bytes
.../images/download/windows/startjava.png | Bin 0 -> 22308 bytes
i2p2www/urls.py | 1 +
31 files changed, 184 insertions(+), 2 deletions(-)
create mode 100644 i2p2www/pages/downloads/windows.html
create mode 100644 i2p2www/static/images/download/windows/bwbrowser.png
create mode 100644 i2p2www/static/images/download/windows/bwdisclaimer.png
create mode 100644 i2p2www/static/images/download/windows/bwdone.png
create mode 100644 i2p2www/static/images/download/windows/bwintro.png
create mode 100644 i2p2www/static/images/download/windows/bwtest.png
create mode 100644 i2p2www/static/images/download/windows/firefox-installer.png
create mode 100644 i2p2www/static/images/download/windows/firefox.png
create mode 100644 i2p2www/static/images/download/windows/geti2p.png
create mode 100644 i2p2www/static/images/download/windows/getjava.png
create mode 100644 i2p2www/static/images/download/windows/i2plang.png
create mode 100644 i2p2www/static/images/download/windows/i2plicense.png
create mode 100644 i2p2www/static/images/download/windows/i2pnext.png
create mode 100644 i2p2www/static/images/download/windows/i2ppath.png
create mode 100644 i2p2www/static/images/download/windows/installbase.png
create mode 100644 i2p2www/static/images/download/windows/installed.png
create mode 100644 i2p2www/static/images/download/windows/installedjava.png
create mode 100644 i2p2www/static/images/download/windows/installjava.png
create mode 100644 i2p2www/static/images/download/windows/installjava2.png
create mode 100644 i2p2www/static/images/download/windows/installrun.png
create mode 100644 i2p2www/static/images/download/windows/installshortcuts.png
create mode 100644 i2p2www/static/images/download/windows/nojava.png
create mode 100644 i2p2www/static/images/download/windows/oraclejava.png
create mode 100644 i2p2www/static/images/download/windows/profile.png
create mode 100644 i2p2www/static/images/download/windows/profiledone.png
create mode 100644 i2p2www/static/images/download/windows/profilelang.png
create mode 100644 i2p2www/static/images/download/windows/profilelicense.png
create mode 100644 i2p2www/static/images/download/windows/startjava.png
diff --git a/i2p2www/downloads.py b/i2p2www/downloads.py
index 9554d57a..e3ff2231 100644
--- a/i2p2www/downloads.py
+++ b/i2p2www/downloads.py
@@ -66,6 +66,10 @@ def downloads_list():
def downloads_debian():
return render_template('downloads/debian.html')
+# Windows-specific page
+def downloads_windows():
+ return render_template('downloads/windows.html')
+
# Firefox-specific page
def downloads_firefox():
# TODO: read mirror list or list of available files
diff --git a/i2p2www/pages/downloads/list.html b/i2p2www/pages/downloads/list.html
index f664d93e..f75b506a 100644
--- a/i2p2www/pages/downloads/list.html
+++ b/i2p2www/pages/downloads/list.html
@@ -80,9 +80,11 @@ I2P connections.
{% call package('windows') %}
{% trans -%}
- Download the file and run it.
+ Download the file and double-click to run it.
{%- endtrans %}
-
+
diff --git a/i2p2www/pages/downloads/windows.html b/i2p2www/pages/downloads/windows.html
new file mode 100644
index 00000000..66fe861d
--- /dev/null
+++ b/i2p2www/pages/downloads/windows.html
@@ -0,0 +1,175 @@
+{% extends "global/layout.html" %}
+{% block title %}Microsoft Windows{% endblock %}
+{% block content %}
+{{ _('Installing I2P, its dependencies, and recommended external software on Windows 10') }}
+
+{% trans -%}This is a detailed, step-by-step guide to installing and configuring I2P, including
+all dependencies and setting up a browser, on a new Windows 10 system. Many users
+will be able to skip steps if they already have Java 8 or Firefox installed.{%- endtrans %}
+
+{{ _('So what are we going to do here?') }}
+
+{% trans -%}We're going to finish four tasks. We are going to:{%- endtrans %}
+
+
+- {% trans -%}Install Java{%- endtrans %}
+- {% trans -%}Install I2P{%- endtrans %}
+- {% trans -%}Install a Better Browser(Firefox){%- endtrans %}
+- {% trans -%}Configure I2P Bandwidth{%- endtrans %}
+
+
+{{ _('Part One: Install Java') }}
+
+{% trans -%}In order to use I2P, you will need a suitable Java environment. On Windows, users should
+probably choose Oracle's Java 8 implementation. Please install it by following the
+instructions below:{%- endtrans %}
+
+{% trans -%}If you already have Java installed, you may{%- endtrans %} Skip This Step
+
+
+- {% trans -%}I2P requires Java to run, if you don't have Java installed, you will get an error
+that looks like this:{%- endtrans %}
+
+
+
+- {% trans -%}We appreciate that you have a wide range of choices in Java software, but the Oracle
+Java software is the easiest to install and use with I2P on Windows.{%- endtrans %} Please use this version from Oracle.
+
+
+
+- {% trans -%}Download it from{%- endtrans %} here:
+
+
+
+- {% trans -%}Double-click the Java Installer you just downloaded. Don't set a custom path, just
+use the default one.{%- endtrans %}
+
+
+
+- {% trans -%}Java will show you some information about what it is and where it runs while you
+wait for it to finish installing.{%- endtrans %}
+
+
+
+- {% trans -%}When you see this, Java is almost installed.{%- endtrans %}
+
+
+
+- {% trans -%}Java is now installed!{%- endtrans %}
+
+
+
+
+
+{{ _('Part Two: Install I2P') }}
+
+
+- {% trans -%}Download I2P from{%- endtrans %} {% trans -%}https://geti2p.net{%- endtrans %}.
+
+
+
+- {% trans -%}'I2P is available in many languages. Pick one that is familiar to you.'{%- endtrans %}
+
+
+
+- {% trans -%}On the first screen, we introduce our software.{%- endtrans %}
+
+
+
+- {% trans -%}I2P is mostly public domain software, with permissive licenses and a small amount of GPL2'ed
+Free Software.{%- endtrans %}
+
+
+
+- {% trans -%}You should probably leave I2P installed at the default path, as it is easiest to work with this
+way.{%- endtrans %}
+
+
+
+- {% trans -%}Don't bother running it as a Windows service for now, an easy-to-use shortcut will be added to
+the start menu for you to control I2P with.{%- endtrans %}
+
+
+
+- {% trans -%}I2P will copy it's files into the install location.{%- endtrans %}
+
+
+
+- {% trans -%}I2P is now installed! You can start it using the "Start I2P" entries in your Start Menu and on your Desktop.{%- endtrans %}

+
+
+{{ _('Part Three: Install a Better Browser(Firefox or Tor Browser)') }}
+
+{% trans -%}If you already have either Firefox or Tor Browser installed, skip the first 2 steps.{%- endtrans %}
+
+{% trans -%}Unfortunately for Windows users, Microsoft Edge does not have proxy settings that are safe to use with I2P. The browser
+that is easiest to configure with I2P in a reasonably good way is Firefox(Although Chrome is possible, this procedure
+is only recommended for experts). I2P participants who want to browse I2P Sites can follow these steps to install
+and configure Firefox for I2P.{%- endtrans %}
+
+{% trans -%}If you already have Firefox installed, you may{%- endtrans %} Skip This Step
+
+
+- {% trans -%}Get Firefox from{%- endtrans %} htps://mozilla.org.
+
+
+
+- {% trans -%}Run the installer.{%- endtrans %}
+
+
+
+
+
+{{ _('Install the I2P Firefox Profile') }}
+
+
+- {% trans -%}Download the Firefox Profile Bundle from the I2P Web Site.{%- endtrans %}
+
+
+
+- {% trans -%}Select the language you want to use for the install process.{%- endtrans %}
+
+
+
+- {% trans -%}The Profile Bundle incorporates lots of external software, so it has a detailed license
+document. All of the external software is Free and Open Source, with the license included.{%- endtrans %}
+
+
+
+- {% trans -%}You now have a browser ready for I2P!{%- endtrans %}

+
+
+
+
+
+- {% trans -%}When you visit the I2P router console for the first time, it will automatically direct you to the bandwidth
+configuration wizard.{%- endtrans %}
+
+
+
+- {% trans -%}During the bandwidth test, we'll need to connect to the external M-Lab Service, which makes{%- endtrans %}
+
+
+
+- {% trans -%}The bandwidth test takes about a minute to run completely.{%- endtrans %}
+
+
+
+- {% trans -%}Here we have an overview of the applications.{%- endtrans %}
+
+
+
+- {% trans -%}Now you have your bandwidth configured to efficiently contribute to I2P.{%- endtrans %}
+
+
+
+
+
+{% trans -%}If you want to re-run the welcome wizard after completing it, you can visit the page
+on{%- endtrans %} your router console.
+
+{% trans -%}That's it! You're now ready to use I2P. You can browse I2P sites, download files, host services,
+e-mail and chat anonymously. Visit the router console homepage to
+get started.{%- endtrans %}
+
+{% endblock %}
diff --git a/i2p2www/static/images/download/windows/bwbrowser.png b/i2p2www/static/images/download/windows/bwbrowser.png
new file mode 100644
index 0000000000000000000000000000000000000000..90b3b10ec963e87885871b6d540fee8f6e6ec17d
GIT binary patch
literal 140303
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