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

























