Cette page est exacte pour la version 0.9.50 du routeur.

Installer I2P sur Docker

Démarrage très rapide

Si vous voulez juste donner à I2P une petite chance ou vous l'utilisez dans un réseau domestique, suivez ces étapes.:

  1. Créez deux répertoires "i2pconfig" et "i2ptorrents"
  2. Copiez le texte suivant et enregistrez le dans un fichier "docker-compose.yml"
  3. 
    version: "3.5"
    services:
        i2p:
            image: geti2p/i2p
            network_mode: host
            volumes:
                - ./i2pconfig:/i2p/.i2p
                - ./i2ptorrents:/i2psnark
    
  4. Exécutez "docker-compose up"
  5. Démarrez un navigateur et allez à http://127.0.0.1:7657 pour finaliser le sorcier mise en place.

Prenez note que cette approche de démarrage rapide n'est pas recommandée pour les déploiements de production sur des serveurs à distance. Veuillez lire le reste de ce document pour plus d'information.

Construire une image

Il y a une image I2P proposée sur DockerHub. Si vous ne voulez pas utiliser celle-là, vous pouvez en construire une vous-même :

docker build -t i2p .

Exécutez un conteneur

Volumes

Le conteneur requiert un volume pour les données de configuration pour qu'il soit monté. Autrement, vous pouvez monter un volume séparé pour les téléchargements torrent ("i2psnark"). Voir les exemples ci-dessous.

Utilisation de la mémoire

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

Ports

Il y a plusieurs ports qui sont exposés par l'image. Vous pouvez choisir lesquels à publier en fonction de vos besoins.

Port Interface Description TCP/UDP
4444 127.0.0.1 Mandataire HTTP TCP
4445 127.0.0.1 HTTPS Mandataire TCP
6668 127.0.0.1 IRC Mandataire TCP
7654 127.0.0.1 Protocole I2CP TCP
7656 127.0.0.1 Pont SAM TCP TCP
7657 127.0.0.1 Console du routeur TCP
7658 127.0.0.1 Site I2P TCP
7659 127.0.0.1 SMTP Mandataire TCP
7660 127.0.0.1 POP3 Mandataire TCP
7652 interface LAN UPnP TCP
7653 interface LAN UPnP UDP
12345 0.0.0.0 Protocole I2NP TCP et UDP

Vous avez probablement envie d'avoir au moins la console du routeur (7657) et le mandataire HTTP (4444). Si vous voulez que I2P puisse recevoir les connexions entrantes d'internet et ne pense plus que c'est derrière un pare-feu, publiez le port de Protocole I2NP (12345)- mais faites bien attention à le publier à un port différent aléatoire, autrement les autres pourront distinguer que vous faites tourner I2P dans un image Docker.

Mise en réseau

Un guide des bonnes pratiques pour les déploiements est au-delà de la portée de ce document, mais en général vous devrez essayer de minimiser le nombre de ports publiés tout en exposant seulement les ports I2NP à internet. Cela veut dire que les services sur la liste ci-dessus qui sont liés 127.0.0.1 (ce qui inclut la console du routeur) devront être accéder par d'autres moyens comme creuser un tunnel ssh ou être configuré manuellement pour être lié à une nouvelle interface.

Exemple

Voilà un exemple de conteneur qui qui monte i2phome en répertoire domestique, i2ptorrents pour les torrents et ouvre les protocoles mandataire HTTP, IRC, console du routeur et I2NP. Il limite aussi la mémoire disponible du JVM à 256MB.

docker run \
    -e JVM_XMX=256m \
    -v i2phome:/i2p/.i2p \
    -v i2ptorrents:/i2psnark \
    -p 4444:4444 \
    -p 6668:6668 \
    -p 7657:7657 \
    -p 54321:12345 \
    -p 54321:12345/udp \  # I2NP port needs TCP and UDP.  Change the 54321 to something random, greater than 1024.
    i2p:latest