Compare commits
17 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
104b5d7486 | ||
![]() |
716c56967c | ||
![]() |
d1d2721e36 | ||
![]() |
a46870bb72 | ||
![]() |
797165ad8b | ||
![]() |
3366f0ffdc | ||
![]() |
2d3f1a540d | ||
![]() |
710a1faac2 | ||
![]() |
99ae995fa0 | ||
![]() |
76b5e6b2e8 | ||
![]() |
1acf807a13 | ||
![]() |
9a7353a6e8 | ||
![]() |
166f62cbe3 | ||
![]() |
7188a28ebd | ||
![]() |
231c9f07bd | ||
![]() |
5abecda122 | ||
![]() |
48ee44606a |
57
DOCKER.md
Normal file
57
DOCKER.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
### Docker
|
||||||
|
|
||||||
|
To make it easier to deploy reseeds, it is possible to run this software as a
|
||||||
|
Docker image. Because the software requires access to a network database to host
|
||||||
|
a reseed, you will need to mount the netDb as a volume inside your docker
|
||||||
|
container to provide access to it, and you will need to run it as the same user
|
||||||
|
and group inside the container as I2P.
|
||||||
|
|
||||||
|
When you run a reseed under Docker in this fashion, it will automatically
|
||||||
|
generate a self-signed certificate for your reseed server in a Docker volume
|
||||||
|
mamed reseed-keys. *Back up this directory*, if it is lost it is impossible
|
||||||
|
to reproduce.
|
||||||
|
|
||||||
|
Please note that Docker is not currently compatible with .onion reseeds unless
|
||||||
|
you pass the --network=host tag.
|
||||||
|
|
||||||
|
#### If I2P is running as your user, do this:
|
||||||
|
|
||||||
|
docker run -itd \
|
||||||
|
--name reseed \
|
||||||
|
--publish 443:8443 \
|
||||||
|
--restart always \
|
||||||
|
--volume $HOME/.i2p/netDb:$HOME/.i2p/netDb:z \
|
||||||
|
--volume reseed-keys:/var/lib/i2p/i2p-config/reseed \
|
||||||
|
eyedeekay/reseed \
|
||||||
|
--signer $YOUR_EMAIL_HERE
|
||||||
|
|
||||||
|
#### If I2P is running as another user, do this:
|
||||||
|
|
||||||
|
docker run -itd \
|
||||||
|
--name reseed \
|
||||||
|
--user $(I2P_UID) \
|
||||||
|
--group-add $(I2P_GID) \
|
||||||
|
--publish 443:8443 \
|
||||||
|
--restart always \
|
||||||
|
--volume /PATH/TO/USER/I2P/HERE/netDb:/var/lib/i2p/i2p-config/netDb:z \
|
||||||
|
--volume reseed-keys:/var/lib/i2p/i2p-config/reseed \
|
||||||
|
eyedeekay/reseed \
|
||||||
|
--signer $YOUR_EMAIL_HERE
|
||||||
|
|
||||||
|
#### **Debian/Ubuntu and Docker**
|
||||||
|
|
||||||
|
In many cases I2P will be running as the Debian system user ```i2psvc```. This
|
||||||
|
is the case for all installs where Debian's Advanced Packaging Tool(apt) was
|
||||||
|
used to peform the task. If you used ```apt-get install``` this command will
|
||||||
|
work for you. In that case, just copy-and-paste:
|
||||||
|
|
||||||
|
docker run -itd \
|
||||||
|
--name reseed \
|
||||||
|
--user $(id -u i2psvc) \
|
||||||
|
--group-add $(id -g i2psvc) \
|
||||||
|
--publish 443:8443 \
|
||||||
|
--restart always \
|
||||||
|
--volume /var/lib/i2p/i2p-config/netDb:/var/lib/i2p/i2p-config/netDb:z \
|
||||||
|
--volume reseed-keys:/var/lib/i2p/i2p-config/reseed \
|
||||||
|
eyedeekay/reseed \
|
||||||
|
--signer $YOUR_EMAIL_HERE
|
46
EXAMPLES.md
Normal file
46
EXAMPLES.md
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
## Example Commands:
|
||||||
|
|
||||||
|
### Without a webserver, standalone, automatic OnionV3 with TLS support
|
||||||
|
|
||||||
|
```
|
||||||
|
./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --i2p --p2p
|
||||||
|
```
|
||||||
|
|
||||||
|
### Without a webserver, standalone, serve P2P with LibP2P
|
||||||
|
|
||||||
|
```
|
||||||
|
./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --p2p
|
||||||
|
```
|
||||||
|
|
||||||
|
### Without a webserver, standalone, upload a single signed .su3 to github
|
||||||
|
|
||||||
|
* This one isn't working yet, I'll get to it eventually, I've got a cooler idea now.
|
||||||
|
|
||||||
|
```
|
||||||
|
./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --github --ghrepo=reseed-tools --ghuser=eyedeekay
|
||||||
|
```
|
||||||
|
|
||||||
|
### Without a webserver, standalone, in-network reseed
|
||||||
|
|
||||||
|
```
|
||||||
|
./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --i2p
|
||||||
|
```
|
||||||
|
|
||||||
|
### Without a webserver, standalone, Regular TLS, OnionV3 with TLS
|
||||||
|
|
||||||
|
```
|
||||||
|
./reseed-tools reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion
|
||||||
|
```
|
||||||
|
|
||||||
|
### Without a webserver, standalone, Regular TLS, OnionV3 with TLS, and LibP2P
|
||||||
|
|
||||||
|
```
|
||||||
|
./reseed-tools reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --p2p
|
||||||
|
```
|
||||||
|
|
||||||
|
### Without a webserver, standalone, Regular TLS, OnionV3 with TLS, I2P In-Network reseed, and LibP2P, self-supervising
|
||||||
|
|
||||||
|
```
|
||||||
|
./reseed-tools reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --p2p --littleboss=start
|
||||||
|
```
|
60
Makefile
60
Makefile
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
VERSION=0.1.9
|
VERSION=0.2.1
|
||||||
APP=reseed-tools
|
APP=reseed-tools
|
||||||
USER_GH=eyedeekay
|
USER_GH=eyedeekay
|
||||||
|
|
||||||
@@ -19,6 +19,18 @@ WHOAMI=$(shell whoami)
|
|||||||
echo:
|
echo:
|
||||||
@echo "type make version to do release $(APP) $(VERSION) $(GOOS) $(GOARCH) $(MIN_GO_VERSION) $(I2P_UID) $(I2P_GID)"
|
@echo "type make version to do release $(APP) $(VERSION) $(GOOS) $(GOARCH) $(MIN_GO_VERSION) $(I2P_UID) $(I2P_GID)"
|
||||||
|
|
||||||
|
index:
|
||||||
|
@echo "<!DOCTYPE html>" > index.html
|
||||||
|
@echo "<html>" >> index.html
|
||||||
|
@echo "<head>" >> index.html
|
||||||
|
@echo " <title>Reseed Tools</title>" >> index.html
|
||||||
|
@echo " <link rel=\"stylesheet\" type=\"text/css\" href =\"/style.css\" />" >> index.html
|
||||||
|
@echo "</head>" >> index.html
|
||||||
|
@echo "<body>" >> index.html
|
||||||
|
pandoc README.md >> index.html
|
||||||
|
@echo "</body>" >> index.html
|
||||||
|
@echo "</html>" >> index.html
|
||||||
|
|
||||||
build:
|
build:
|
||||||
go build $(ARG) -o reseed-tools-$(GOOS)-$(GOARCH)
|
go build $(ARG) -o reseed-tools-$(GOOS)-$(GOARCH)
|
||||||
|
|
||||||
@@ -26,7 +38,7 @@ build:
|
|||||||
/usr/lib/go-$(MIN_GO_VERSION)/bin/go build $(ARG) -o reseed-tools-$(GOOS)-$(GOARCH)
|
/usr/lib/go-$(MIN_GO_VERSION)/bin/go build $(ARG) -o reseed-tools-$(GOOS)-$(GOARCH)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm reseed-tools-* *.key *.i2pKeys *.crt *.crl *.pem tmp -rfv
|
rm reseed-tools-* tmp -rfv
|
||||||
|
|
||||||
tar:
|
tar:
|
||||||
tar --exclude="./.git" --exclude="./tmp" -cvf ../reseed-tools.tar.xz .
|
tar --exclude="./.git" --exclude="./tmp" -cvf ../reseed-tools.tar.xz .
|
||||||
@@ -41,7 +53,7 @@ install:
|
|||||||
install -m644 etc/systemd/system/reseed.d/reseed.conf /etc/systemd/system/reseed.d/reseed.conf
|
install -m644 etc/systemd/system/reseed.d/reseed.conf /etc/systemd/system/reseed.d/reseed.conf
|
||||||
install -m644 etc/systemd/system/reseed.d/reseed.service /etc/systemd/system/reseed.d/reseed.service
|
install -m644 etc/systemd/system/reseed.d/reseed.service /etc/systemd/system/reseed.d/reseed.service
|
||||||
|
|
||||||
checkinstall:
|
checkinstall: build
|
||||||
fakeroot checkinstall \
|
fakeroot checkinstall \
|
||||||
--default \
|
--default \
|
||||||
--install=no \
|
--install=no \
|
||||||
@@ -155,16 +167,19 @@ jar: gojava
|
|||||||
echo $(JAVA_HOME)
|
echo $(JAVA_HOME)
|
||||||
./gojava -v -o reseed.jar -s . build ./reseed
|
./gojava -v -o reseed.jar -s . build ./reseed
|
||||||
|
|
||||||
release: plugins version upload upload-bin upload-plugins upload-single-deb
|
release: version upload checkinstall upload-single-deb plugins upload-su3s upload-bin
|
||||||
|
|
||||||
version:
|
version:
|
||||||
cat README.md | gothub release -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -d -
|
cat README.md | gothub release -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -d -
|
||||||
|
|
||||||
|
delete-version:
|
||||||
|
gothub delete -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION)
|
||||||
|
|
||||||
edit:
|
edit:
|
||||||
cat README.md | gothub edit -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -d -
|
cat README.md | gothub edit -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -d -
|
||||||
|
|
||||||
upload: binary tar
|
upload: tar
|
||||||
gothub upload -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -f ../reseed-tools.tar.xz -n "reseed-tools.tar.xz"
|
gothub upload -R -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -f ../reseed-tools.tar.xz -n "reseed-tools.tar.xz"
|
||||||
|
|
||||||
binary:
|
binary:
|
||||||
GOOS=darwin GOARCH=amd64 make build
|
GOOS=darwin GOARCH=amd64 make build
|
||||||
@@ -205,6 +220,22 @@ upload-bin:
|
|||||||
GOOS=windows GOARCH=amd64 make upload-single-bin
|
GOOS=windows GOARCH=amd64 make upload-single-bin
|
||||||
GOOS=windows GOARCH=386 make upload-single-bin
|
GOOS=windows GOARCH=386 make upload-single-bin
|
||||||
|
|
||||||
|
rm-su3s:
|
||||||
|
rm *.su3 -f
|
||||||
|
|
||||||
|
download-su3s: rm-su3s
|
||||||
|
GOOS=darwin GOARCH=amd64 make download-single-su3
|
||||||
|
GOOS=darwin GOARCH=arm64 make download-single-su3
|
||||||
|
GOOS=linux GOARCH=386 make download-single-su3
|
||||||
|
GOOS=linux GOARCH=amd64 make download-single-su3
|
||||||
|
GOOS=linux GOARCH=arm make download-single-su3
|
||||||
|
GOOS=linux GOARCH=arm64 make download-single-su3
|
||||||
|
GOOS=openbsd GOARCH=amd64 make download-single-su3
|
||||||
|
GOOS=freebsd GOARCH=386 make download-single-su3
|
||||||
|
GOOS=freebsd GOARCH=amd64 make download-single-su3
|
||||||
|
GOOS=windows GOARCH=amd64 make download-single-su3
|
||||||
|
GOOS=windows GOARCH=386 make download-single-su3
|
||||||
|
|
||||||
upload-su3s:
|
upload-su3s:
|
||||||
GOOS=darwin GOARCH=amd64 make upload-single-su3
|
GOOS=darwin GOARCH=amd64 make upload-single-su3
|
||||||
GOOS=darwin GOARCH=arm64 make upload-single-su3
|
GOOS=darwin GOARCH=arm64 make upload-single-su3
|
||||||
@@ -218,20 +249,27 @@ upload-su3s:
|
|||||||
GOOS=windows GOARCH=amd64 make upload-single-su3
|
GOOS=windows GOARCH=amd64 make upload-single-su3
|
||||||
GOOS=windows GOARCH=386 make upload-single-su3
|
GOOS=windows GOARCH=386 make upload-single-su3
|
||||||
|
|
||||||
|
download-single-su3:
|
||||||
|
wget -N -c "https://github.com/eyedeekay/reseed-tools/releases/download/v$(VERSION)/reseed-tools-$(GOOS)-$(GOARCH).su3"
|
||||||
|
|
||||||
upload-single-deb:
|
upload-single-deb:
|
||||||
gothub upload -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -f reseed-tools_$(VERSION)-1_amd64.deb -l "`sha256sum reseed-tools_$(VERSION)-1_amd64.deb`" -n "reseed-tools_$(VERSION)-1_amd64.deb"
|
gothub upload -R -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -f reseed-tools_$(VERSION)-1_amd64.deb -l "`sha256sum reseed-tools_$(VERSION)-1_amd64.deb`" -n "reseed-tools_$(VERSION)-1_amd64.deb"
|
||||||
|
|
||||||
upload-single-bin:
|
upload-single-bin:
|
||||||
gothub upload -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -f reseed-tools-"$(GOOS)"-"$(GOARCH)" -l "`sha256sum reseed-tools-$(GOOS)-$(GOARCH)`" -n "reseed-tools-$(GOOS)"-"$(GOARCH)"
|
gothub upload -R -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -f reseed-tools-"$(GOOS)"-"$(GOARCH)" -l "`sha256sum reseed-tools-$(GOOS)-$(GOARCH)`" -n "reseed-tools-$(GOOS)"-"$(GOARCH)"
|
||||||
|
|
||||||
upload-single-su3:
|
upload-single-su3:
|
||||||
gothub upload -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -f reseed-tools-"$(GOOS)"-"$(GOARCH).su3" -l "`sha256sum reseed-tools-$(GOOS)-$(GOARCH).su3`" -n "reseed-tools-$(GOOS)"-"$(GOARCH).su3"
|
gothub upload -R -s $(GITHUB_TOKEN) -u $(USER_GH) -r $(APP) -t v$(VERSION) -f reseed-tools-"$(GOOS)"-"$(GOARCH).su3" -l "`sha256sum reseed-tools-$(GOOS)-$(GOARCH).su3`" -n "reseed-tools-$(GOOS)"-"$(GOARCH).su3"
|
||||||
|
|
||||||
tmp/content:
|
tmp/content:
|
||||||
mkdir -p tmp
|
mkdir -p tmp
|
||||||
cp -rv content tmp/content
|
cp -rv content tmp/content
|
||||||
|
|
||||||
su3s: tmp/content
|
tmp/lib:
|
||||||
|
mkdir -p tmp/lib
|
||||||
|
cp "$(HOME)/Workspace/GIT_WORK/i2p.i2p/build/shellservice.jar" tmp/lib/shellservice.jar
|
||||||
|
|
||||||
|
su3s: tmp/content tmp/lib
|
||||||
i2p.plugin.native -name=reseed-tools-$(GOOS)-$(GOARCH) \
|
i2p.plugin.native -name=reseed-tools-$(GOOS)-$(GOARCH) \
|
||||||
-signer=hankhill19580@gmail.com \
|
-signer=hankhill19580@gmail.com \
|
||||||
-version "$(VERSION)" \
|
-version "$(VERSION)" \
|
||||||
@@ -243,7 +281,7 @@ su3s: tmp/content
|
|||||||
-consoleurl="http://127.0.0.1:8443" \
|
-consoleurl="http://127.0.0.1:8443" \
|
||||||
-updateurl="http://idk.i2p/reseed-tools/reseed-tools-$(GOOS)-$(GOARCH).su3" \
|
-updateurl="http://idk.i2p/reseed-tools/reseed-tools-$(GOOS)-$(GOARCH).su3" \
|
||||||
-website="http://idk.i2p/reseed-tools/" \
|
-website="http://idk.i2p/reseed-tools/" \
|
||||||
-icondata="content/images/reseed.png" \
|
-icondata="content/images/reseed-icon.png" \
|
||||||
-delaystart="3" \
|
-delaystart="3" \
|
||||||
-desc="`cat description-pak`" \
|
-desc="`cat description-pak`" \
|
||||||
-exename=reseed-tools-$(GOOS)-$(GOARCH) \
|
-exename=reseed-tools-$(GOOS)-$(GOARCH) \
|
||||||
|
146
README.md
146
README.md
@@ -1,8 +1,9 @@
|
|||||||
I2P Reseed Tools
|
I2P Reseed Tools
|
||||||
==================
|
==================
|
||||||
|
|
||||||
This tool provides a secure and efficient reseed server for the I2P network. There are several utility commands to
|
This tool provides a secure and efficient reseed server for the I2P network.
|
||||||
create, sign, and validate SU3 files. Please note that this requires at least Go version 1.13, and uses Go Modules.
|
There are several utility commands to create, sign, and validate SU3 files.
|
||||||
|
Please note that this requires at least Go version 1.13, and uses Go Modules.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
@@ -16,7 +17,33 @@ In order to install the build-dependencies on Ubuntu or Debian, you may use:
|
|||||||
sudo apt-get install golang-go git make
|
sudo apt-get install golang-go git make
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installation(From Source)
|
## Installation
|
||||||
|
|
||||||
|
Reseed-tools can be run as a user, as a freestanding service, or be installed
|
||||||
|
as an I2P Plugin. It will attempt to configure itself automatically. You should
|
||||||
|
make sure to set the `--signer` flag or the `RESEED_EMAIL` environment variable
|
||||||
|
to configure your signing keys/contact info.
|
||||||
|
|
||||||
|
#### Plugin install URL's
|
||||||
|
|
||||||
|
Plugin releases are available inside of i2p at http://idk.i2p/reseed-tools/
|
||||||
|
and via the github mirror at https://github.com/eyedeekay/reseed-tools/releases.
|
||||||
|
These can be installed by adding them on the
|
||||||
|
[http://127.0.0.1:7657/configplugins](http://127.0.0.1:7657/configplugins).
|
||||||
|
|
||||||
|
- darwin/amd64: [http://idk.i2p/reseed-tools/reseed-tools-darwin-amd64.su3](http://idk.i2p/reseed-tools/reseed-tools-darwin-amd64.su3)
|
||||||
|
- darwin/arm64: [http://idk.i2p/reseed-tools/reseed-tools-darwin-arm64.su3](http://idk.i2p/reseed-tools/reseed-tools-darwin-arm64.su3)
|
||||||
|
- linux/386: [http://idk.i2p/reseed-tools/reseed-tools-linux-386.su3](http://idk.i2p/reseed-tools/reseed-tools-linux-386.su3)
|
||||||
|
- linux/amd64: [http://idk.i2p/reseed-tools/reseed-tools-linux-amd64.su3](http://idk.i2p/reseed-tools/reseed-tools-linux-amd64.su3)
|
||||||
|
- linux/arm: [http://idk.i2p/reseed-tools/reseed-tools-linux-arm.su3](http://idk.i2p/reseed-tools/reseed-tools-linux-arm.su3)
|
||||||
|
- linux/arm64: [http://idk.i2p/reseed-tools/reseed-tools-linux-arm64.su3](http://idk.i2p/reseed-tools/reseed-tools-linux-arm64.su3)
|
||||||
|
- openbsd/amd64: [http://idk.i2p/reseed-tools/reseed-tools-openbsd-amd64.su3](http://idk.i2p/reseed-tools/reseed-tools-openbsd-amd64.su3)
|
||||||
|
- freebsd/386: [http://idk.i2p/reseed-tools/reseed-tools-freebsd-386.su3](http://idk.i2p/reseed-tools/reseed-tools-freebsd-386.su3)
|
||||||
|
- freebsd/amd64: [http://idk.i2p/reseed-tools/reseed-tools-freebsd-amd64.su3](http://idk.i2p/reseed-tools/reseed-tools-freebsd-amd64.su3)
|
||||||
|
- windows/amd64: [http://idk.i2p/reseed-tools/reseed-tools-windows-amd64.su3](http://idk.i2p/reseed-tools/reseed-tools-windows-amd64.su3)
|
||||||
|
- windows/386: [http://idk.i2p/reseed-tools/reseed-tools-windows-386.su3](http://idk.i2p/reseed-tools/reseed-tools-windows-386.su3)
|
||||||
|
|
||||||
|
### Installation(From Source)
|
||||||
|
|
||||||
```
|
```
|
||||||
git clone https://i2pgit.org/idk/reseed-tools
|
git clone https://i2pgit.org/idk/reseed-tools
|
||||||
@@ -65,6 +92,8 @@ The contact email for your reseed should be added in:
|
|||||||
Self-signed certificates will be auto-generated for these services. To change
|
Self-signed certificates will be auto-generated for these services. To change
|
||||||
this you should edit the `/etc/init.d/reseed`.
|
this you should edit the `/etc/init.d/reseed`.
|
||||||
|
|
||||||
|
## Example Commands:
|
||||||
|
|
||||||
### Without a webserver, standalone with TLS support
|
### Without a webserver, standalone with TLS support
|
||||||
|
|
||||||
If this is your first time running a reseed server (ie. you don't have any existing keys),
|
If this is your first time running a reseed server (ie. you don't have any existing keys),
|
||||||
@@ -76,8 +105,6 @@ Afterwards an HTTPS reseed server will start on the default port and generate 6
|
|||||||
reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --tlsHost=your-domain.tld
|
reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --tlsHost=your-domain.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
## Example Commands:
|
|
||||||
|
|
||||||
### Locally behind a webserver (reverse proxy setup), preferred:
|
### Locally behind a webserver (reverse proxy setup), preferred:
|
||||||
|
|
||||||
If you are using a reverse proxy server it may provide the TLS certificate instead.
|
If you are using a reverse proxy server it may provide the TLS certificate instead.
|
||||||
@@ -86,110 +113,5 @@ If you are using a reverse proxy server it may provide the TLS certificate inste
|
|||||||
reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --port=8443 --ip=127.0.0.1 --trustProxy
|
reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --port=8443 --ip=127.0.0.1 --trustProxy
|
||||||
```
|
```
|
||||||
|
|
||||||
### Without a webserver, standalone, self-supervising(Automatic restarts)
|
- **Usage** [More examples can be found here.](EXAMPLES.md)
|
||||||
|
- **Docker** [Eocker examples can be found here](DOCKER.md)
|
||||||
```
|
|
||||||
./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --littleboss=start
|
|
||||||
```
|
|
||||||
|
|
||||||
### Without a webserver, standalone, automatic OnionV3 with TLS support
|
|
||||||
|
|
||||||
```
|
|
||||||
./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --i2p --p2p
|
|
||||||
```
|
|
||||||
|
|
||||||
### Without a webserver, standalone, serve P2P with LibP2P
|
|
||||||
|
|
||||||
```
|
|
||||||
./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --p2p
|
|
||||||
```
|
|
||||||
|
|
||||||
### Without a webserver, standalone, upload a single signed .su3 to github
|
|
||||||
|
|
||||||
* This one isn't working yet, I'll get to it eventually, I've got a cooler idea now.
|
|
||||||
|
|
||||||
```
|
|
||||||
./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --github --ghrepo=reseed-tools --ghuser=eyedeekay
|
|
||||||
```
|
|
||||||
|
|
||||||
### Without a webserver, standalone, in-network reseed
|
|
||||||
|
|
||||||
```
|
|
||||||
./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --i2p
|
|
||||||
```
|
|
||||||
|
|
||||||
### Without a webserver, standalone, Regular TLS, OnionV3 with TLS
|
|
||||||
|
|
||||||
```
|
|
||||||
./reseed-tools reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion
|
|
||||||
```
|
|
||||||
|
|
||||||
### Without a webserver, standalone, Regular TLS, OnionV3 with TLS, and LibP2P
|
|
||||||
|
|
||||||
```
|
|
||||||
./reseed-tools reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --p2p
|
|
||||||
```
|
|
||||||
|
|
||||||
### Without a webserver, standalone, Regular TLS, OnionV3 with TLS, I2P In-Network reseed, and LibP2P, self-supervising
|
|
||||||
|
|
||||||
```
|
|
||||||
./reseed-tools reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --p2p --littleboss=start
|
|
||||||
```
|
|
||||||
|
|
||||||
### Docker
|
|
||||||
|
|
||||||
To make it easier to deploy reseeds, it is possible to run this software as a
|
|
||||||
Docker image. Because the software requires access to a network database to host
|
|
||||||
a reseed, you will need to mount the netDb as a volume inside your docker
|
|
||||||
container to provide access to it, and you will need to run it as the same user
|
|
||||||
and group inside the container as I2P.
|
|
||||||
|
|
||||||
When you run a reseed under Docker in this fashion, it will automatically
|
|
||||||
generate a self-signed certificate for your reseed server in a Docker volume
|
|
||||||
mamed reseed-keys. *Back up this directory*, if it is lost it is impossible
|
|
||||||
to reproduce.
|
|
||||||
|
|
||||||
Please note that Docker is not currently compatible with .onion reseeds unless
|
|
||||||
you pass the --network=host tag.
|
|
||||||
|
|
||||||
#### If I2P is running as your user, do this:
|
|
||||||
|
|
||||||
docker run -itd \
|
|
||||||
--name reseed \
|
|
||||||
--publish 443:8443 \
|
|
||||||
--restart always \
|
|
||||||
--volume $HOME/.i2p/netDb:$HOME/.i2p/netDb:z \
|
|
||||||
--volume reseed-keys:/var/lib/i2p/i2p-config/reseed \
|
|
||||||
eyedeekay/reseed \
|
|
||||||
--signer $YOUR_EMAIL_HERE
|
|
||||||
|
|
||||||
#### If I2P is running as another user, do this:
|
|
||||||
|
|
||||||
docker run -itd \
|
|
||||||
--name reseed \
|
|
||||||
--user $(I2P_UID) \
|
|
||||||
--group-add $(I2P_GID) \
|
|
||||||
--publish 443:8443 \
|
|
||||||
--restart always \
|
|
||||||
--volume /PATH/TO/USER/I2P/HERE/netDb:/var/lib/i2p/i2p-config/netDb:z \
|
|
||||||
--volume reseed-keys:/var/lib/i2p/i2p-config/reseed \
|
|
||||||
eyedeekay/reseed \
|
|
||||||
--signer $YOUR_EMAIL_HERE
|
|
||||||
|
|
||||||
#### **Debian/Ubuntu and Docker**
|
|
||||||
|
|
||||||
In many cases I2P will be running as the Debian system user ```i2psvc```. This
|
|
||||||
is the case for all installs where Debian's Advanced Packaging Tool(apt) was
|
|
||||||
used to peform the task. If you used ```apt-get install``` this command will
|
|
||||||
work for you. In that case, just copy-and-paste:
|
|
||||||
|
|
||||||
docker run -itd \
|
|
||||||
--name reseed \
|
|
||||||
--user $(id -u i2psvc) \
|
|
||||||
--group-add $(id -g i2psvc) \
|
|
||||||
--publish 443:8443 \
|
|
||||||
--restart always \
|
|
||||||
--volume /var/lib/i2p/i2p-config/netDb:/var/lib/i2p/i2p-config/netDb:z \
|
|
||||||
--volume reseed-keys:/var/lib/i2p/i2p-config/reseed \
|
|
||||||
eyedeekay/reseed \
|
|
||||||
--signer $YOUR_EMAIL_HERE
|
|
||||||
|
@@ -37,6 +37,14 @@ func getDefaultSigner() string {
|
|||||||
return intentionalsigner
|
return intentionalsigner
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getHostName() string {
|
||||||
|
hostname := os.Getenv("RESEED_HOSTNAME")
|
||||||
|
if hostname == "" {
|
||||||
|
hostname, _ = os.Hostname()
|
||||||
|
}
|
||||||
|
return hostname
|
||||||
|
}
|
||||||
|
|
||||||
func NewReseedCommand() cli.Command {
|
func NewReseedCommand() cli.Command {
|
||||||
ndb, err := getmeanetdb.WhereIstheNetDB()
|
ndb, err := getmeanetdb.WhereIstheNetDB()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -54,6 +62,7 @@ func NewReseedCommand() cli.Command {
|
|||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "tlsHost",
|
Name: "tlsHost",
|
||||||
|
Value: getHostName(),
|
||||||
Usage: "The public hostname used on your TLS certificate",
|
Usage: "The public hostname used on your TLS certificate",
|
||||||
},
|
},
|
||||||
cli.BoolFlag{
|
cli.BoolFlag{
|
||||||
|
BIN
content/images/reseed-icon.png
Normal file
BIN
content/images/reseed-icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
Before Width: | Height: | Size: 198 KiB After Width: | Height: | Size: 200 KiB |
67
index.html
Normal file
67
index.html
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Reseed Tools</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href ="/style.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 id="i2p-reseed-tools">I2P Reseed Tools</h1>
|
||||||
|
<p>This tool provides a secure and efficient reseed server for the I2P network. There are several utility commands to create, sign, and validate SU3 files. Please note that this requires at least Go version 1.13, and uses Go Modules.</p>
|
||||||
|
<h2 id="dependencies">Dependencies</h2>
|
||||||
|
<p><code>go</code>, <code>git</code>, and optionally <code>make</code> are required to build the project. Precompiled binaries for most platforms are available at my github mirror https://github.com/eyedeekay/i2p-tools-1.</p>
|
||||||
|
<p>In order to install the build-dependencies on Ubuntu or Debian, you may use:</p>
|
||||||
|
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true"></a><span class="fu">sudo</span> apt-get install golang-go git make</span></code></pre></div>
|
||||||
|
<h2 id="installation">Installation</h2>
|
||||||
|
<p>Reseed-tools can be run as a user, as a freestanding service, or be installed as an I2P Plugin. It will attempt to configure itself automatically. You should make sure to set the <code>--signer</code> flag or the <code>RESEED_EMAIL</code> environment variable to configure your signing keys/contact info.</p>
|
||||||
|
<h4 id="plugin-install-urls">Plugin install URL’s</h4>
|
||||||
|
<p>Plugin releases are available inside of i2p at http://idk.i2p/reseed-tools/ and via the github mirror at https://github.com/eyedeekay/reseed-tools/releases. These can be installed by adding them on the <a href="http://127.0.0.1:7657/configplugins">http://127.0.0.1:7657/configplugins</a>.</p>
|
||||||
|
<ul>
|
||||||
|
<li>darwin/amd64: <a href="http://idk.i2p/reseed-tools/reseed-tools-darwin-amd64.su3">http://idk.i2p/reseed-tools/reseed-tools-darwin-amd64.su3</a></li>
|
||||||
|
<li>darwin/arm64: <a href="http://idk.i2p/reseed-tools/reseed-tools-darwin-arm64.su3">http://idk.i2p/reseed-tools/reseed-tools-darwin-arm64.su3</a></li>
|
||||||
|
<li>linux/386: <a href="http://idk.i2p/reseed-tools/reseed-tools-linux-386.su3">http://idk.i2p/reseed-tools/reseed-tools-linux-386.su3</a></li>
|
||||||
|
<li>linux/amd64: <a href="http://idk.i2p/reseed-tools/reseed-tools-linux-amd64.su3">http://idk.i2p/reseed-tools/reseed-tools-linux-amd64.su3</a></li>
|
||||||
|
<li>linux/arm: <a href="http://idk.i2p/reseed-tools/reseed-tools-linux-arm.su3">http://idk.i2p/reseed-tools/reseed-tools-linux-arm.su3</a></li>
|
||||||
|
<li>linux/arm64: <a href="http://idk.i2p/reseed-tools/reseed-tools-linux-arm64.su3">http://idk.i2p/reseed-tools/reseed-tools-linux-arm64.su3</a></li>
|
||||||
|
<li>openbsd/amd64: <a href="http://idk.i2p/reseed-tools/reseed-tools-openbsd-amd64.su3">http://idk.i2p/reseed-tools/reseed-tools-openbsd-amd64.su3</a></li>
|
||||||
|
<li>freebsd/386: <a href="http://idk.i2p/reseed-tools/reseed-tools-freebsd-386.su3">http://idk.i2p/reseed-tools/reseed-tools-freebsd-386.su3</a></li>
|
||||||
|
<li>freebsd/amd64: <a href="http://idk.i2p/reseed-tools/reseed-tools-freebsd-amd64.su3">http://idk.i2p/reseed-tools/reseed-tools-freebsd-amd64.su3</a></li>
|
||||||
|
<li>windows/amd64: <a href="http://idk.i2p/reseed-tools/reseed-tools-windows-amd64.su3">http://idk.i2p/reseed-tools/reseed-tools-windows-amd64.su3</a></li>
|
||||||
|
<li>windows/386: <a href="http://idk.i2p/reseed-tools/reseed-tools-windows-386.su3">http://idk.i2p/reseed-tools/reseed-tools-windows-386.su3</a></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="installationfrom-source">Installation(From Source)</h3>
|
||||||
|
<pre><code>git clone https://i2pgit.org/idk/reseed-tools
|
||||||
|
cd reseed-tools
|
||||||
|
make build
|
||||||
|
# Optionally, if you want to install to /usr/bin/reseed-tools
|
||||||
|
sudo make install</code></pre>
|
||||||
|
<h2 id="usage">Usage</h2>
|
||||||
|
<h4 id="debianubuntu-note">Debian/Ubuntu note:</h4>
|
||||||
|
<p>Debian users who are running I2P as a system service must also run the <code>reseed-tools</code> as the same user. This is so that the reseed-tools can access the I2P service’s netDb directory. On Debian and Ubuntu, that user is <code>i2psvc</code> and the netDb directory is: <code>/var/lib/i2p/i2p-config/netDb</code>.</p>
|
||||||
|
<h5 id="systemd-service">Systemd Service</h5>
|
||||||
|
<p>A systemd service is provided which should work with the I2P Debian package when reseed-tools is installed in <code>/usr/bin/reseed-tools</code>. If you install with <code>make install</code> this service is also installed. This service will cause the bundles to regenerate every 12 hours.</p>
|
||||||
|
<p>The contact email for your reseed should be added in: <code>/etc/systemd/system/reseed.d/reseed.conf</code>.</p>
|
||||||
|
<p>Self-signed certificates will be auto-generated for these services. To change this you should edit the <code>/etc/systemd/system/reseed.d/reseed.service</code>.</p>
|
||||||
|
<ul>
|
||||||
|
<li>To enable starting the reseed service automatically with the system: <code>sudo systemctl enable reseed.service</code></li>
|
||||||
|
<li>To run the service manually: <code>sudo sysctl start reseed.service</code><br />
|
||||||
|
</li>
|
||||||
|
<li>To reload the systemd services: <code>sudo systemctl daemon-reload</code></li>
|
||||||
|
<li>To view the status/logs: <code>sudo journalctl -u reseed.service</code></li>
|
||||||
|
</ul>
|
||||||
|
<h5 id="sysv-service">SysV Service</h5>
|
||||||
|
<p>An initscript is also provided. The initscript, unlike the systemd service, cannot schedule itself to restart. You should restart the service roughly once a day to ensure that the information does not expire.</p>
|
||||||
|
<p>The contact email for your reseed should be added in: <code>/etc/init.d/reseed</code>.</p>
|
||||||
|
<p>Self-signed certificates will be auto-generated for these services. To change this you should edit the <code>/etc/init.d/reseed</code>.</p>
|
||||||
|
<h2 id="example-commands">Example Commands:</h2>
|
||||||
|
<h3 id="without-a-webserver-standalone-with-tls-support">Without a webserver, standalone with TLS support</h3>
|
||||||
|
<p>If this is your first time running a reseed server (ie. you don’t have any existing keys), you can simply run the command and follow the prompts to create the appropriate keys, crl and certificates. Afterwards an HTTPS reseed server will start on the default port and generate 6 files in your current directory (a TLS key, certificate and crl, and a su3-file signing key, certificate and crl).</p>
|
||||||
|
<pre><code>reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --tlsHost=your-domain.tld</code></pre>
|
||||||
|
<h3 id="locally-behind-a-webserver-reverse-proxy-setup-preferred">Locally behind a webserver (reverse proxy setup), preferred:</h3>
|
||||||
|
<p>If you are using a reverse proxy server it may provide the TLS certificate instead.</p>
|
||||||
|
<pre><code>reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --port=8443 --ip=127.0.0.1 --trustProxy</code></pre>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Usage</strong> <a href="EXAMPLES.md">More examples can be found here.</a></li>
|
||||||
|
<li><strong>Docker</strong> <a href="DOCKER.md">Eocker examples can be found here</a></li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
Reference in New Issue
Block a user