2012-12-11 05:26:18 +00:00
|
|
|
{% extends "global/layout.html" %}
|
2013-01-30 03:47:49 +00:00
|
|
|
{% block title %}{% trans %}Plugins{% endtrans %}{% endblock %}
|
|
|
|
{% block lastupdated %}{% trans %}June 2012{% endtrans %}{% endblock %}
|
2012-12-14 03:41:29 +00:00
|
|
|
{% block accuratefor %}0.9{% endblock %}
|
2010-07-26 15:23:17 +00:00
|
|
|
{% block content %}
|
2014-01-09 19:39:15 +00:00
|
|
|
<h2>{% trans %}General Information{% endtrans %}</h2>
|
2013-01-30 03:47:49 +00:00
|
|
|
<p>{% trans -%}
|
2010-07-26 15:23:17 +00:00
|
|
|
I2P includes a plugin architecture
|
|
|
|
to support easy development and installation of additional software.
|
2013-01-30 03:47:49 +00:00
|
|
|
{%- endtrans %}</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
2013-01-30 03:47:49 +00:00
|
|
|
<p>{% trans -%}
|
2012-06-09 13:27:58 +00:00
|
|
|
There are now plugins available that support distributed email, blogs, IRC
|
|
|
|
clients, distributed file storage, wikis, and more.
|
2013-01-30 03:47:49 +00:00
|
|
|
{%- endtrans %}</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
2021-12-10 15:13:26 -05:00
|
|
|
<h3>{% trans -%}Easy Installation of Applications{%- endtrans %}</h3>
|
|
|
|
<p>{% trans -%}
|
|
|
|
I2P Plugins can be installed by copying the plugin download URL onto
|
|
|
|
the appropriate section on the <a href="http://127.0.0.1:7657/configplugins">Router Console Plugin Configuration Page</a>.
|
|
|
|
{%- endtrans %}</p>
|
|
|
|
|
|
|
|
<p>{% trans -%}
|
|
|
|
Start by copying the plugin URL from the page where it is published.
|
|
|
|
{%- endtrans %}</p>
|
|
|
|
<img src="/_static/images/plugins/plugin-step-0.png">
|
|
|
|
|
|
|
|
<p>{% trans -%}
|
|
|
|
Then visit the plugin configuration page, which you can find linked on the console homepage.
|
|
|
|
{%- endtrans %}</p>
|
|
|
|
<img src="/_static/images/plugins/plugin-step-1.png">
|
|
|
|
|
|
|
|
<p>{% trans -%}
|
|
|
|
Paste in the URL and click the "Install Plugin" button.
|
|
|
|
{%- endtrans %}</p>
|
|
|
|
<img src="/_static/images/plugins/plugin-step-2.png">
|
|
|
|
|
2021-12-10 15:54:38 -05:00
|
|
|
<h3>{% trans -%}Benefits to i2p users and app developers:{%- endtrans %}</h3>
|
|
|
|
|
2010-07-26 15:23:17 +00:00
|
|
|
<ul>
|
2013-01-30 03:47:49 +00:00
|
|
|
<li>{% trans -%}
|
|
|
|
Easy distribution of applications
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Allows innovation and use of additional libraries without worrying about
|
|
|
|
increasing the size of <code>i2pupdate.sud</code>
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Support large or special-purpose applications that would never be bundled
|
|
|
|
with the I2P installation
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Cryptographically signed and verified applications
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Automatic updates of applications, just like for the router
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Separate initial install and update packages, if desired, for smaller update downloads
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
One-click installation of applications. No more asking users to modify
|
|
|
|
<code>wrapper.config</code> or <code>clients.config</code>
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Isolate applications from the base <code>$I2P</code> installation
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Automatic compatibility checking for I2P version, Java version, Jetty
|
|
|
|
version, and previous installed application version
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Automatic link addition in console
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Automatic startup of application, including modifying classpath, without requiring a restart
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Automatic integration and startup of webapps into console Jetty instance
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans pluginsite=i2pconv('plugins.i2p') -%}
|
|
|
|
Facilitate creation of 'app stores' like the one at
|
|
|
|
<a href="http://{{ pluginsite }}">{{ pluginsite }}</a>
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
One-click uninstall
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Language and theme packs for the console
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Bring detailed application information to the router console
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Non-java applications also supported
|
|
|
|
{%- endtrans %}</li>
|
2010-07-26 15:23:17 +00:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
2014-01-09 19:39:15 +00:00
|
|
|
<h3>{% trans %}Required I2P version{% endtrans %}</h3>
|
2013-01-30 03:47:49 +00:00
|
|
|
<p>{% trans %}0.7.12 or newer.{% endtrans %}</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
2021-12-10 16:06:01 -05:00
|
|
|
<h3>{% trans %}Updating a Plugin{% endtrans %}</h3>
|
2012-06-09 13:27:58 +00:00
|
|
|
|
2013-01-30 03:47:49 +00:00
|
|
|
<p>{% trans -%}
|
|
|
|
To update a plugin to the latest version, just click the update button on
|
2010-07-26 15:23:17 +00:00
|
|
|
<a href="http://127.0.0.1:7657/configclients.jsp#plugin">configclients.jsp</a>.
|
2012-06-09 13:27:58 +00:00
|
|
|
There is also a button to check if the plugin has a more recent version, as
|
|
|
|
well as a button to check for updates for all plugins. Plugins will be checked
|
|
|
|
for updates automatically when updating to a new I2P release (not including dev
|
2013-01-30 03:47:49 +00:00
|
|
|
builds).
|
|
|
|
{%- endtrans %}</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
|
|
|
|
2013-01-30 03:47:49 +00:00
|
|
|
<h3>{% trans %}Development{% endtrans %}</h3>
|
|
|
|
<p>{% trans pluginspec=site_url('docs/spec/plugin'), zzz=i2pconv('zzz.i2p') -%}
|
|
|
|
See the latest <a href="{{ pluginspec }}">plugin specification</a> and the
|
|
|
|
<a href="http://{{ zzz }}/forums/16">plugin forum</a> on {{ zzz }}.
|
|
|
|
{%- endtrans %}</p>
|
2012-06-09 13:27:58 +00:00
|
|
|
|
2013-01-30 03:47:49 +00:00
|
|
|
<p>{% trans pluginsite=i2pconv('plugins.i2p') -%}
|
|
|
|
See also the sources for plugins developed by various people. Some plugins, such
|
|
|
|
as <a href="http://{{ pluginsite }}/plugins/snowman">snowman</a>, were developed
|
|
|
|
specifically as examples.
|
|
|
|
{%- endtrans %}</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
2013-01-30 03:47:49 +00:00
|
|
|
<p>{% trans -%}
|
|
|
|
<b>Developers wanted!</b> Plugins are a great way to learn more about I2P
|
|
|
|
or easily add some feature.
|
|
|
|
{%- endtrans %}</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
2013-01-30 03:47:49 +00:00
|
|
|
<h3>{% trans %}Getting Started{% endtrans %}</h3>
|
2013-10-26 11:03:57 +00:00
|
|
|
<p>{% trans url='https://github.com/i2p/i2p.scripts/tree/master/plugin/makeplugin.sh' -%}
|
2013-01-30 03:47:49 +00:00
|
|
|
To create a plugin from an existing binary package you will need to get
|
|
|
|
makeplugin.sh from <a href="{{ url }}">the i2p.scripts branch in monotone</a>.
|
|
|
|
{%- endtrans %}</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
2013-01-30 03:47:49 +00:00
|
|
|
|
|
|
|
<h3>{% trans %}Known Issues{% endtrans %}</h3>
|
|
|
|
<p>{% trans -%}
|
|
|
|
Note that the router's plugin architecture does <b>NOT</b> currently
|
|
|
|
provide any additional security isolation or sandboxing of plugins.
|
|
|
|
{%- endtrans %}</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
|
|
|
<ul>
|
2013-01-30 03:47:49 +00:00
|
|
|
<li>{% trans -%}
|
|
|
|
Updates of a plugin with included jars (not wars) won't be recognized if
|
2012-06-09 13:27:58 +00:00
|
|
|
the plugin was already run, as it requires class loader trickery to flush the
|
2013-01-30 03:47:49 +00:00
|
|
|
class cache; a full router restart is required.
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
The stop button may be displayed even if there is nothing to stop.
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Plugins running in a separate JVM create a <code>logs/</code> directory in
|
|
|
|
<code>$CWD</code>.
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
No initial keys are present, except for those of jrandom and zzz (using the
|
2012-06-09 13:27:58 +00:00
|
|
|
same keys as for router update), so the first key seen for a signer is
|
2013-01-30 03:47:49 +00:00
|
|
|
automatically accepted—there is no signing key authority.
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
When deleting a plugin, the directory is not always deleted, especially on
|
|
|
|
Windows.
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Installing a plugin requiring Java 1.6 on a Java 1.5 machine will result in a
|
|
|
|
"plugin is corrupt" message if pack200 compression of the plugin file is used.
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Theme and translation plugins are untested.
|
|
|
|
{%- endtrans %}</li>
|
|
|
|
|
|
|
|
<li>{% trans -%}
|
|
|
|
Disabling autostart doesn't always work.
|
|
|
|
{%- endtrans %}</li>
|
2010-07-26 15:23:17 +00:00
|
|
|
</ul>
|
|
|
|
|
2012-06-09 13:27:58 +00:00
|
|
|
<!-- vim: set noai ff=unix nosi ft=html tw=79 et sw=4 ts=4 spell spelllang=en: -->
|
2010-07-26 15:23:17 +00:00
|
|
|
{% endblock %}
|