docker: add configuration to connect I2P routers to a reseeder

The reseeder includes fixes to run from bisentenialwrug/i2p-reseed until the official image has merged them.
Fixes are:
  - autogenerating keys for TLS
  - calling the right command to start the reseeder

The I2P routers are also configured to reseed from a single reseed host.

And finally the keys the reseeder uses to sign the su3 payloads are shared in a volume with the I2P routers.

Unfortunately, it still doesn't work as the reseeder sends empty packers or something. Stil trying to figure that out.

#5 - Create SAM server tunnels in trans-proxy
This commit is contained in:
2021-01-01 22:57:29 +01:00
parent d59d950048
commit cec69b918a
3 changed files with 28 additions and 26 deletions

View File

@@ -1,13 +1,6 @@
version: "3"
services:
i2pd:
build:
context: i2p
ports:
- "26976:26976"
networks:
- no_internet
# Changes ownership of the volumes to the i2psvc user
volume_setup:
@@ -27,18 +20,27 @@ services:
volumes:
- reseed_i2p:/var/lib/i2p/i2p-config/netDb
reseeder:
image: eyedeekay/reseed
command: --signer somebody@test.i2p
image: bisentenialwrug/i2p-reseed
command: --signer somebody@reseeder --interval 30s --numRi 1 --port 8080
user: "101"
depends_on:
- reseed-i2pd
networks:
- no_internet
volumes:
- ./reseed/entrypoint.sh:/var/lib/i2p/go/src/i2pgit.org/idk/reseed-tools/entrypoint.sh
- reseed_i2p:/var/lib/i2p/i2p-config/netDb
- reseed_keys:/var/lib/i2p/i2p-config/reseed
i2pd:
build:
context: i2p
depends_on:
- reseeder
networks:
- no_internet
volumes:
- reseed_keys:/var/lib/i2p/i2p-config/certificates/reseed
volumes:
reseed_i2p: {}
reseed_keys: {}

View File

@@ -1,5 +1,5 @@
# Taken from https://www.github.com/hkparker/i2p-docker
# Adapted to open SAM by default
# Adapted to open SAM by default and allow custom reseeding
FROM debian:buster
ARG I2P_DIR=/usr/share/i2p
@@ -59,21 +59,26 @@ RUN sed -i 's/.*\(en_US\.UTF-8\)/\1/' /etc/locale.gen && \
/usr/sbin/locale-gen && \
/usr/sbin/update-locale LANG=${LANG} LANGUAGE=${LANGUAGE}
ARG RESEED_URL=http://reseeder:8080
COPY clients.config.d/ ${I2PSVC_CONF_DIR}/clients.config.d/
RUN chown -R i2psvc:i2psvc ${I2PSVC_DIR} && \
rm ${I2PSVC_CONF_DIR}/clients.config && \
sed -i 's/127\.0\.0\.1/0.0.0.0/g' ${I2PSVC_CONF_DIR}/i2ptunnel.config && \
# SAM Bridge
# sed -i 's/clientApp.1.args=.+/clientApp.1.args=sam.keys 0.0.0.0 7656 i2cp.tcp.host=0.0.0.0 i2cp.tcp.port=7654/g' ${I2PSVC_CONF_DIR}/clients.config.d/*sam* && \
printf "i2cp.tcp.bindAllInterfaces=true\n" >> ${I2PSVC_CONF_DIR}/router.config && \
printf "i2np.ipv4.firewalled=true\ni2np.ntcp.ipv6=false\n" >> ${I2PSVC_CONF_DIR}/router.config && \
printf "i2np.udp.ipv6=false\ni2np.upnp.enable=false\n" >> ${I2PSVC_CONF_DIR}/router.config && \
printf "i2np.udp.internalPort=26976" >> ${I2PSVC_CONF_DIR}/router.config && \
printf "i2np.udp.port=26976" >> ${I2PSVC_CONF_DIR}/router.config && \
printf "i2np.ntcp.port=26976" >> ${I2PSVC_CONF_DIR}/router.config
echo "i2cp.tcp.bindAllInterfaces=true" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "i2np.ipv4.firewalled=true\ni2np.ntcp.ipv6=false" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "i2np.udp.ipv6=false\ni2np.upnp.enable=false" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "i2np.udp.internalPort=26976" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "i2np.udp.port=26976" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "i2np.ntcp.port=26976" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "i2p.reseedURL=${RESEED_URL}" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "i2p.disableSSLHostnameVerification=true" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "i2np.allowLocal=true" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "router.rejectStartupTime=20000" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "routerconsole.welcomeWizardComplete=true" >> ${I2PSVC_CONF_DIR}/router.config && \
echo "router.blocklist.enable=false" >> ${I2PSVC_CONF_DIR}/router.config
#VOLUME /var/lib/i2p
WORKDIR $I2PSVC_DIR
# Move to i2psvc config dir. It's where we'll be most active
WORKDIR $I2PSVC_CONF_DIR
USER i2psvc
ENTRYPOINT ["/usr/bin/i2prouter"]
CMD ["console"]

View File

@@ -1,5 +0,0 @@
#! /usr/bin/env sh
cp -r /var/lib/i2p/go/src/i2pgit.org/idk/reseed-tools/content ./content
/var/lib/i2p/go/src/i2pgit.org/idk/reseed-tools/reseed-tools reseed --yes=true --netdb=/var/lib/i2p/i2p-config/netDb $@