Sign inSign up

justinhimself/i2pplus

By justinhimself

Updated 5 months ago

Multiarch i2pplus.

Image
2

10K+

justinhimself/i2pplus repository overview

I2P+ in Docker

Very quick start

If you just want to give I2P+ a quick try or are using it on a home network, simply execute

docker run \
  --name i2pplus \
  --restart unless-stopped \
  -e JVM_XMX=2048m \
  -p 127.0.0.1:4444:4444 \
  -p 127.0.0.1:6668:6668 \
  -p 127.0.0.1:7657:7657 \
  -p 54321:12345 \
  -p 54321:12345/udp \
  -v i2phome:/i2p/.i2p \
  -v i2ptorrents:/i2psnark \
  -d justinhimself/i2pplus

Start a browser and go to http://127.0.0.1:7657 to complete the setup wizard.

Note that this quick-start approach is not recommended for production deployments on remote servers. Please read the rest of this document for more information.

Running a container
Environment Variables

It is possible to set the IP address where the I2P router is accessible by setting the IP_ADDR environment variable in your docker run command or your docker-compose file. For example, if you want to make your I2P router listen on all addresses, then you should pass -e IP_ADDR=0.0.0.0 to your docker run command.

It is also possible to configure the memory available to the I2P router using environment variables. To do this, use the: JVM_XMX environment variable by passing, for example, -e JVM_XMX=256m.

Volumes

The container requires a volume for the configuration data to be mounted. Optionally, you can mount a separate volume for torrent ("i2psnark") downloads. See the example below.

Memory usage

By the default the image limits the memory available to the Java heap to 512MB. You can override that with the JVM_XMX environment variable.

Ports

There are several ports which are exposed by the image. You can choose which ones to publish depending on your specific needs.

PortInterfaceDescriptionTCP/UDP
4444127.0.0.1HTTP ProxyTCP
4445127.0.0.1HTTPS ProxyTCP
6668127.0.0.1IRC ProxyTCP
7654127.0.0.1I2CP ProtocolTCP
7656127.0.0.1SAM Bridge TCPTCP
7657127.0.0.1Router consoleTCP
7658127.0.0.1I2P SiteTCP
7659127.0.0.1SMTP ProxyTCP
7660127.0.0.1POP ProxyTCP
7652LAN interfaceUPnPTCP
7653LAN interfaceUPnPUDP
123450.0.0.0I2NP ProtocolTCP and UDP

You probably want at least the Router Console (7657) and the HTTP Proxy (4444). If you want I2P to be able to receive incoming connections from the internet, and hence not think it's firewalled, publish the I2NP Protocol port (12345) - but make sure you publish to a different random port, otherwise others may be able to guess you're running I2P in a Docker image.

Networking

A best-practices guide for cloud deployments is beyond the scope of this document, but in general you should try to minimize the number of published ports, while exposing only the I2NP ports to the internet. That means that the services in the list above which are bound to 127.0.0.1 (which include the router console) will need to be accessed via other methods like ssh tunneling or be manually configured to bind to a different interface.

Tag summary

Content type

Image

Digest

sha256:cb1636ca3

Size

108.9 MB

Last updated

5 months ago

docker pull justinhimself/i2pplus