diff --git a/installer/resources/eepsite/contexts/base-context.xml b/installer/resources/eepsite/contexts/base-context.xml
index ee995738b886e0eb51973b651f9f464c2444a5d0..99f788d3fe84c40d52b740c266a6c80272c1c6aa 100644
--- a/installer/resources/eepsite/contexts/base-context.xml
+++ b/installer/resources/eepsite/contexts/base-context.xml
@@ -37,5 +37,46 @@ to serve static html files and images.
     <Arg>org.eclipse.jetty.servlet.DefaultServlet</Arg>
     <Arg>/</Arg>
   </Call>
+  <Call name="addServlet">
+    <Arg>org.eclipse.jetty.servlet.DefaultServlet</Arg>
+    <Arg>/</Arg>
+  </Call>
+  <Call name="addFilter">
+    <!-- Add a filter to gzip on-the fly, since if we don't do it, I2P will.
+      -  This lowers the resource usage in the Java process on the client side,
+      -  by pushing the decompression out of Java and into the browser.
+      -  For all the reasons noted in the GzipFilter javadocs, this is normally
+      -  a bad idea for static content, but this is I2P.
+      -  See I2PTunnelHTTPServer for the I2P compressor.
+      -->
+    <Arg>
+      <New class="org.eclipse.jetty.servlet.FilterHolder" >
+        <Arg>
+          <New class="org.eclipse.jetty.servlets.GzipFilter" />
+        </Arg>
+        <Call name="setInitParameter">
+          <!-- minimum in Java is 1300 -->
+          <Arg>minGzipSize</Arg>
+          <Arg>512</Arg>
+        </Call>
+        <Call name="setInitParameter">
+          <!-- In Java we have a blacklist. This covers the most common cases. -->
+          <Arg>mimeTypes</Arg>
+          <Arg>application/pdf,application/x-javascript,application/xhtml+xml,application/xml,image/svg+xml,text/css,text/html,text/plain</Arg>
+        </Call>
+      </New>
+    </Arg>
+    <Arg>/*</Arg>
+    <Arg>
+      <!-- just guessing here -->
+      <Call class="java.util.EnumSet" name="of" >
+        <Arg>
+          <Call class="javax.servlet.DispatcherType" name="valueOf" >
+            <Arg>REQUEST</Arg>
+          </Call>
+        </Arg>
+      </Call>
+    </Arg>
+  </Call>
 </Configure>
 
diff --git a/installer/resources/eepsite/contexts/cgi-context.xml b/installer/resources/eepsite/contexts/cgi-context.xml
index 3ae8f390d12dc3758f70577a4185b2fd37475fd6..01df01123406a092fd08af2a55423b707cdeb182 100644
--- a/installer/resources/eepsite/contexts/cgi-context.xml
+++ b/installer/resources/eepsite/contexts/cgi-context.xml
@@ -33,4 +33,35 @@ Configure a custom context for the eepsite.
     <Arg>org.eclipse.jetty.servlets.CGI</Arg>
     <Arg>/</Arg>
   </Call>
+  <Call name="addFilter">
+    <!-- See base-context.xml for info.
+         Unlike for DefaultServlet, there's not even a theoretical
+         inefficiency for using this.
+      -->
+    <Arg>
+      <New class="org.eclipse.jetty.servlet.FilterHolder" >
+        <Arg>
+          <New class="org.eclipse.jetty.servlets.GzipFilter" />
+        </Arg>
+        <Call name="setInitParameter">
+          <Arg>minGzipSize</Arg>
+          <Arg>512</Arg>
+        </Call>
+        <Call name="setInitParameter">
+          <Arg>mimeTypes</Arg>
+          <Arg>application/pdf,application/x-javascript,application/xhtml+xml,application/xml,image/svg+xml,text/css,text/html,text/plain</Arg>
+        </Call>
+      </New>
+    </Arg>
+    <Arg>/*</Arg>
+    <Arg>
+      <Call class="java.util.EnumSet" name="of" >
+        <Arg>
+          <Call class="javax.servlet.DispatcherType" name="valueOf" >
+            <Arg>REQUEST</Arg>
+          </Call>
+        </Arg>
+      </Call>
+    </Arg>
+  </Call>
 </Configure>