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 | HTTP Proxy | 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 console 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.
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