diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 20d1079ec0c3cc75227ce887f17fb7974685a0eb..0000000000000000000000000000000000000000
--- a/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-*.pot.old
-*.pyc
-*.pyo
-.pybabel-stamp
-env/
-i2p2www/translations/*/LC_MESSAGES/*.mo
-*~
diff --git a/etc/reqs.txt b/etc/reqs.txt
index 4c05494de6ad2b608e15fd2e315857d4723a77f5..1a8f01caa7acffdbaffebf1d5d960d11e73f2bd4 100644
--- a/etc/reqs.txt
+++ b/etc/reqs.txt
@@ -8,3 +8,4 @@ Pygments==1.6
 python-ctags
 docutils==0.11
 gunicorn==0.17.2
+werkzeug==0.16.1
diff --git a/i2p2www/blog/2020/06/07/file-based-reseed.rst b/i2p2www/blog/2020/06/07/file-based-reseed.rst
new file mode 100644
index 0000000000000000000000000000000000000000..716e3370615f4436bc087bd4feaf1f47ed2a9c61
--- /dev/null
+++ b/i2p2www/blog/2020/06/07/file-based-reseed.rst
@@ -0,0 +1,61 @@
+================================================================
+{% trans -%}Help your Friends Join I2P by Sharing Reseed Bundles{%- endtrans %}
+================================================================
+
+.. meta::
+   :author: idk
+   :date: 2020-06-07
+   :category: reseed
+   :excerpt: {% trans %}Create, exchange, and use reseed bundles{% endtrans %}
+
+{% trans -%}
+Most new I2P routers join the network by bootstrapping with the help of
+a reseed service. However, reseed services are centralized and
+comparatively easy to block, considering the emphasis on de-centralized
+and un-blockable connections in the rest of the I2P network. If a new
+I2P router finds itself unable to bootstrap, it may be a possible to use
+an existing I2P router to generate a working “Reseed bundle” and
+bootstrap without the need of a reseed service.
+{%- endtrans %}
+
+{% trans -%}
+It is possible for a user with a working I2P connection to help a
+blocked router join the network by generating a reseed file and passing
+it to them via a secret or non-blocked channel. In fact, in many
+circumstances, an I2P router that is already connected will not be
+affected by reseed blocking at all, so **having working I2P routers
+around means that existing I2P routers can help new I2P routers by
+providing them with a hidden way of bootstrapping**.
+{%- endtrans %}
+
+{% trans -%}Generating a Reseed Bundle{%- endtrans %}
+--------------------------------------
+
+-  {% trans -%} To create a reseed bundle for others to use, go to the `Reseed
+   configuration page <http://127.0.0.1:7657/configreseed>`__. You will
+   see a section that looks like this. Click the button indicated by the
+   red circle. |Create a Reseed Zip| {%- endtrans %}
+-  {% trans -%} Now that you’ve clicked the button, a zip will be generated
+   containing enough information to bootstrap a new I2P router. Download
+   it and transfer it to the computer with the new, un-bootstrapped I2P
+   router. |Downloads a Reseed Zip| {%- endtrans %}
+
+{% trans -%}Performing a Reseed from File{%- endtrans %}
+------------------------------------------
+
+-  {% trans -%} Obtain an i2preseed.zip file from a friend with an I2P router that is
+   already running, or from a trusted source somewhere on the internet,
+   and visit the `Reseed Configuration
+   page <http://127.0.0.1:7657/configreseed>`__. Click the button that
+   says “Select zip or su3 file” and navigate to that file. |Select a
+   Reseed Zip| {%- endtrans %}
+-  {% trans -%} When you’ve selected your reseed file, click the “Reseed from File”
+   button. |Reseed from a Zip File|. You’re done! Your router will now
+   bootstrap using the zip file, and you will be ready to join the I2P
+   network. {%- endtrans %}
+
+.. |Create a Reseed Zip| image:: /_static/images/reseed/createreseed.png
+.. |Downloads a Reseed Zip| image:: /_static/images/reseed/dlreseed.png
+.. |Select a Reseed Zip| image:: /_static/images/reseed/ulreseed.png
+.. |Reseed from a Zip File| image:: /_static/images/reseed/filereseed.png
+
diff --git a/i2p2www/static/images/reseed/createreseed.png b/i2p2www/static/images/reseed/createreseed.png
new file mode 100644
index 0000000000000000000000000000000000000000..e040547d7fb45df95e4303c03d5d32705ccdf93d
Binary files /dev/null and b/i2p2www/static/images/reseed/createreseed.png differ
diff --git a/i2p2www/static/images/reseed/dlreseed.png b/i2p2www/static/images/reseed/dlreseed.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d9b93c184ac08e86f5c7b27fbde0a69e235160f
Binary files /dev/null and b/i2p2www/static/images/reseed/dlreseed.png differ
diff --git a/i2p2www/static/images/reseed/filereseed.png b/i2p2www/static/images/reseed/filereseed.png
new file mode 100644
index 0000000000000000000000000000000000000000..b860e644ed7ab228782dff8bf2fc94a307eab657
Binary files /dev/null and b/i2p2www/static/images/reseed/filereseed.png differ
diff --git a/i2p2www/static/images/reseed/ulreseed.png b/i2p2www/static/images/reseed/ulreseed.png
new file mode 100644
index 0000000000000000000000000000000000000000..0672f59de6dc9eadbf2fe9958ee2ead641102778
Binary files /dev/null and b/i2p2www/static/images/reseed/ulreseed.png differ
diff --git a/i2p2www/static/styles/duck/default.css b/i2p2www/static/styles/duck/default.css
index 64483d386c6aa3138f9ae7e7cdcf0a1e86ff9dfd..881f958b27b8c28cb5bad92b976313af540c935f 100644
--- a/i2p2www/static/styles/duck/default.css
+++ b/i2p2www/static/styles/duck/default.css
@@ -569,6 +569,11 @@ div#content .inner ul.DREAD {
     padding-right: 1.3rem;
 }
 
+#post li img {
+	display: inline-block;
+	margin-right: 50%;
+}
+
 #post .section {
     overflow: auto;
 }
@@ -902,3 +907,4 @@ html {
     line-height: 1.15;
     -webkit-text-size-adjust: 100%;
 }
+