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