Esta página está em conformidade com a versão 0.9.50 do roteador.

Instalando a I2P no Docker

Início muito rápido

Se você só quer testar a I2P de forma rápida ou está usando-a em uma rede doméstica, siga estes passos:

  1. Crie dois diretórios, "i2pconfig" e "i2ptorrents"
  2. Copie o texto seguinte e salve em um arquivo "docker-compose.yml"
  3. 
    version: "3.5"
    services:
        i2p:
            image: geti2p/i2p
            network_mode: host
            volumes:
                - ./i2pconfig:/i2p/.i2p
                - ./i2ptorrents:/i2psnark
    
  4. Execute "docker-compose up"
  5. Abra um navegador e vá até http://127.0.0.1:7657 para completar o assistente de instalação.

Note que esse método de início rápido não é recomendado para implantação de produção em servidores remotos. Por favor, leia o resto deste documento para mais informações.

Construindo uma imagem

Existe uma imagem I2P disponível no DockerHub. Se você não quiser usar essa, você próprio pode construir uma:

docker build -t i2p .

Executando um contêiner

Volumes

O contêiner requer um volume para os dados de configuração serem montados. Opcionalmente, você pode montar um volume separado para downloads de torrent ("i2psnark"). Veja o exemplo abaixo.

Uso da memória

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

Portas

Há várias portas que são expostas pela imagem. Você pode escolher quais publicar dependendo das suas necessidades específicas.

Porta Interface Descrição TCP/UDP
4444 127.0.0.1 Proxy HTTP TCP
4445 127.0.0.1 Proxy HTTPS TCP
6668 127.0.0.1 Proxy IRC TCP
7654 127.0.0.1 Protocolo I2CP TCP
7656 127.0.0.1 TCP da Ponte SAM TCP
7657 127.0.0.1 Console do roteador TCP
7658 127.0.0.1 Site I2P TCP
7659 127.0.0.1 Proxy SMTP TCP
7660 127.0.0.1 Proxy POP3 TCP
7652 Interface LAN UPnP TCP
7653 Interface LAN UPnP UDP
12345 0.0.0.0 Protocolo I2NP TCP e UDP

Você provavelmente quer pelo menos o Console do Roteador (7657) e o Proxy HTTP (4444). Se você quiser que a I2P possa receber conexões de entrada da internet, e portanto não achar que está sob firewall, publique a porta do protocolo I2NP Protocol port (12345) - mas certifique-se de publicar para uma porta aleatória diferente, senão outros podem adivinhar que você está executando a I2P em uma imagem Docker.

Rede

Um guia de boas práticas para implantações em nuvem está além do escopo deste documento, mas em geral você deve tentar minimizar o número de portas publicadas, enquanto expõe apenas as portas I2NP à internet. Isso significa que os serviços na lista acima que são vinculados a 127.0.0.1 (o que inclui o painel do roteador) precisarão ser acessados através de outros métodos, como tunelamento ssh, ou ser manualmente configurados para se vincularem a uma interface diferente.

de exemplo

Aqui está um exemplo que monta i2phome como o diretório home, i2ptorrents para torrents, e abre o Proxy HTTP, IRC, Painel do Roteador e Protocolos I2NP. Ele também limita a memória disponível à JVM a 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