├── Dockerfile ├── README.md ├── i2pd.conf ├── i2pd_docker_start.sh ├── i2pd_docker_stop.sh └── subscriptions.txt /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stretch 2 | MAINTAINER Cube 3 | 4 | # We will need these ports to use proxies and web console 5 | EXPOSE 4444 4447 7070 9439 6 | 7 | # Make our image up-to-date (optional) 8 | # Install the dependensies for i2pd 9 | RUN apt-get update -y && \ 10 | apt-get upgrade -y && \ 11 | apt-get install -y wget \ 12 | libboost-date-time1.62.0 \ 13 | libboost-filesystem1.62.0 \ 14 | libboost-program-options1.62.0 \ 15 | libboost-system1.62.0 \ 16 | libminiupnpc10 && \ 17 | 18 | # Fetch the latest package and install it 19 | cd /tmp && \ 20 | wget https://github.com/PurpleI2P/i2pd/releases/download/2.16.0/i2pd_2.16.0-1stretch1_amd64.deb && \ 21 | dpkg -i /tmp/i2pd_2.16.0-1stretch1_amd64.deb && \ 22 | apt-get remove -y wget && \ 23 | apt-get autoremove -y && \ 24 | apt-get clean && \ 25 | rm -rf /var/lib/apt/lists/* /tmp/* && \ 26 | 27 | # Make the i2pd user availiable 28 | usermod -s /bin/bash i2pd 29 | 30 | # Copy configs into the container 31 | COPY i2pd.conf /etc/i2pd/i2pd.conf 32 | COPY subscriptions.txt /etc/i2pd/subscriptions.txt 33 | 34 | # Define the entrypoint 35 | # This allows our container to run as binary 36 | ENTRYPOINT exec su - i2pd -c "/usr/sbin/i2pd --conf ~/i2pd.conf" 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | i2pd-docker 2 | =========== 3 | 4 | This docker file will download latest i2pd from [its Github](https://github.com/PurpleI2P/i2pd/releases/latest) and install it into a container. 5 | 6 | How to install 7 | ======================= 8 | 9 | * The easiest way to install is using Docker hub: 10 | 11 | ``` 12 | $ docker pull hexaedron/i2pd 13 | ``` 14 | 15 | * Or, if you would like to build the image by yourself, clone this repository and build it: 16 | 17 | ``` 18 | $ mkdir i2pd-docker 19 | $ cd i2pd-docker 20 | $ git clone https://github.com/hexaedron/i2pd-docker.git 21 | $ docker build -t i2pd . 22 | ``` 23 | 24 | How to run 25 | ======================= 26 | Just use the `i2pd_docker_start.sh`/`i2pd_docker_stop.sh` scripts from this repository to start and stop the container. 27 | Or, if you prefer doing all the work manually, just type 28 | ``` 29 | $ docker run --name=i2pd -td -p 7070:7070 -p 4444:4444 -p 4447:4447 -p 9439:9439 hexaedron/i2pd 30 | ``` 31 | 32 | The console should now be accessible at port 7070 on your host and the http and socks proxies are at ports 4444 and 4447 respectively. 33 | 34 | **Please note, that console and proxy services are accessible by everyone, so you may wish to write some iptables rules to limit access to them.** 35 | 36 | 37 | Troubleshooting 38 | ======================= 39 | To view logs of the i2pd daemon, type 40 | ``` 41 | $ docker logs -t hexaedron/i2pd 42 | ``` 43 | 44 | Comments and feature requests are always welcome. 45 | 46 | -------------------------------------------------------------------------------- /i2pd.conf: -------------------------------------------------------------------------------- 1 | log = stdout 2 | 3 | daemon = false 4 | service = false 5 | 6 | 7 | ## Port to listen for connections 8 | ## By default i2pd picks random port. You MUST pick a random number too, 9 | ## don't just uncomment this 10 | port = 9439 11 | 12 | ## Enable communication through ipv4 13 | ipv4 = true 14 | 15 | ## Enable communication through ipv6 16 | ipv6 = true 17 | 18 | ## Bandwidth configuration 19 | ## L limit bandwidth to 32Kbs/sec, O - to 256Kbs/sec, P - to 2048Kbs/sec, 20 | ## X - unlimited 21 | ## Default is X for floodfill, L for regular node 22 | bandwidth = O 23 | 24 | 25 | ## Router will be floodfill 26 | # floodfill = true 27 | 28 | [http] 29 | ## Uncomment and set to 'false' to disable Web Console 30 | enabled = true 31 | ## Address and port service will listen on 32 | address = 0.0.0.0 33 | port = 7070 34 | 35 | [httpproxy] 36 | ## Uncomment and set to 'false' to disable HTTP Proxy 37 | enabled = true 38 | ## Address and port service will listen on 39 | address = 0.0.0.0 40 | port = 4444 41 | ## Optional keys file for proxy local destination 42 | # keys = http-proxy-keys.dat 43 | 44 | [socksproxy] 45 | ## Uncomment and set to 'false' to disable SOCKS Proxy 46 | enabled = true 47 | ## Address and port service will listen on 48 | address = 0.0.0.0 49 | port = 4447 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /i2pd_docker_start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Start the container 4 | docker run --name=i2pd -td -p 7070:7070 -p 4444:4444 -p 4447:4447 -p 9439:9439 hexaedron/i2pd 5 | -------------------------------------------------------------------------------- /i2pd_docker_stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Stop and clean 4 | docker stop hexaedron/i2pd 5 | docker rm hexaedron/i2pd 6 | -------------------------------------------------------------------------------- /subscriptions.txt: -------------------------------------------------------------------------------- 1 | http://inr.i2p/export/alive-hosts.txt 2 | http://stats.i2p/cgi-bin/newhosts.txt 3 | http://i2p-projekt.i2p/hosts.txt 4 | http://i2host.i2p/cgi-bin/i2hostetag 5 | http://no.i2p/export/alive-hosts.txt 6 | http://rus.i2p/hosts.txt 7 | http://udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p/hosts.txt 8 | --------------------------------------------------------------------------------