Home

Awesome

I2P-Bote

Build Status

I2P-Bote is a plugin for I2P that allows users to send and receive emails while preserving privacy. It does not need a mail server because emails are stored in a distributed hash table. They are automatically encrypted and digitally signed, which ensures no one but the intended recipient can read the email, and third parties cannot forge them.

Features

Planned Features

Build process

Dependencies:

Gradle

The build system is based on Gradle. There are several methods for setting Gradle up:

Gradle will pull dependencies over the clearnet by default. To use Tor, create a gradle.properties file in i2p.android.base containing:

```
systemProp.socksProxyHost=localhost
systemProp.socksProxyPort=9150
```

Building the I2P plugin

gradle :webapp:plugin

The plugin will be placed in i2p.i2p-bote/webapp/build/plugin.

Building the standalone WAR

gradle :webapp:war

The WAR will be placed in i2p.i2p-bote/webapp/build/libs.

Running the standalone WAR

Ensure you have an I2P router running locally with an I2CP server port open (on port 7654). Then run:

gradle :webapp:tomcatRunWar

This will build and run the WAR. (Jetty currently does not work.)

The data directory will be placed in i2p.i2p-bote/webapp/i2pbote; logs will be in i2p.i2p-bote/webapp/logs.

Android build process

Additional dependencies:

Preparation

  1. Download the Android SDK. The simplest method is to download Android Studio.

  2. Create a local.properties file in i2p.i2p-bote/android containing:

    i2psrc=/path/to/i2p.i2p
    
  3. If you want to use a local copy of the I2P Android client library, install it in your local Maven repository with:

    cd path/to/i2p.android.base
    ./gradlew client:installArchives
    

Building from the command line

  1. Create a local.properties file in i2p.i2p-bote containing:

    sdk.dir=/path/to/android-studio/sdk
    
  2. gradle :android:assembleDebug

  3. The APK will be placed in i2p.i2p-bote/android/build/apk.

Building with Android Studio

  1. Import i2p.i2p-bote into Android Studio. (This creates the local.properties file automatically).

  2. Build and run the app (Shift+F10).

Signing release builds

  1. Create a signing.properties file in i2p.i2p-bote containing:

    STORE_FILE=/path/to/android.keystore
    STORE_PASSWORD=store.password
    KEY_ALIAS=key.alias
    KEY_PASSWORD=key.password
    
  2. gradle assembleRelease

More information

The links below only work within I2P, i.e., make sure you are running I2P and your browser is using the proxy at localhost:4444.