diff --git a/README.md b/README.md index 1bbb505..1e23654 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ If you have go installed you can download, build, and install this tool with `go ``` go get i2pgit.org/idk/reseed-tools -i2p-tools -h +reseed-tools -h ``` ## Usage @@ -76,13 +76,13 @@ work for you. In that case, just copy-and-paste: ### Locally behind a webserver (reverse proxy setup), preferred: ``` -i2p-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 with TLS support ``` -i2p-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 ``` If this is your first time running a reseed server (ie. you don't have any existing keys), @@ -103,25 +103,25 @@ Requires ```go mod``` and at least go 1.13. To build the idk/reseed-tools fork, from anywhere: git clone https://i2pgit.org/idk/reseed-tools - cd i2p-tools-1 + cd reseed-tools make build ### Without a webserver, standalone, self-supervising(Automatic restarts) ``` -./i2p-tools-1 reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --littleboss=start +./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --littleboss=start ``` ### Without a webserver, standalone, automatic OnionV3 with TLS support ``` -./i2p-tools-1 reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --i2p --p2p +./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --i2p --p2p ``` ### Without a webserver, standalone, serve P2P with LibP2P ``` -./i2p-tools-1 reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --p2p +./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --p2p ``` ### Without a webserver, standalone, upload a single signed .su3 to github @@ -129,29 +129,29 @@ fork, from anywhere: * This one isn't working yet, I'll get to it eventually, I've got a cooler idea now. ``` -./i2p-tools-1 reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --github --ghrepo=i2p-tools-1 --ghuser=eyedeekay +./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 ``` -./i2p-tools-1 reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --i2p +./reseed-tools reseed --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --i2p ``` ### Without a webserver, standalone, Regular TLS, OnionV3 with TLS ``` -./i2p-tools-1 reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion +./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 ``` -./i2p-tools-1 reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --p2p +./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 ``` -./i2p-tools-1 reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --p2p --littleboss=start +./reseed-tools reseed --tlsHost=your-domain.tld --signer=you@mail.i2p --netdb=/home/i2p/.i2p/netDb --onion --p2p --littleboss=start ``` diff --git a/cmd/reseed.go b/cmd/reseed.go index 320dc8e..78579a4 100644 --- a/cmd/reseed.go +++ b/cmd/reseed.go @@ -208,13 +208,42 @@ func reseedAction(c *cli.Context) { var i2pTlsCert, i2pTlsKey string var i2pkey i2pkeys.I2PKeys + if tlsHost != "" { + onionTlsHost = tlsHost + i2pTlsHost = tlsHost + tlsKey = c.String("tlsKey") + // if no key is specified, default to the host.pem in the current dir + if tlsKey == "" { + tlsKey = tlsHost + ".pem" + onionTlsKey = tlsHost + ".pem" + i2pTlsKey = tlsHost + ".pem" + } + + tlsCert = c.String("tlsCert") + // if no certificate is specified, default to the host.crt in the current dir + if tlsCert == "" { + tlsCert = tlsHost + ".crt" + onionTlsCert = tlsHost + ".crt" + i2pTlsCert = tlsHost + ".crt" + } + + // prompt to create tls keys if they don't exist? + auto := c.Bool("yes") + err := checkOrNewTLSCert(tlsHost, &tlsCert, &tlsKey, auto) + if nil != err { + log.Fatalln(err) + } + } + if c.Bool("i2p") { var err error i2pkey, err = LoadKeys("reseed.i2pkeys", c) if err != nil { log.Fatalln(err) } - i2pTlsHost = i2pkey.Addr().Base32() + if i2pTlsHost == "" { + i2pTlsHost = i2pkey.Addr().Base32() + } if i2pTlsHost != "" { // if no key is specified, default to the host.pem in the current dir if i2pTlsKey == "" { @@ -250,7 +279,9 @@ func reseedAction(c *cli.Context) { } ok = []byte(key.PrivateKey()) } - onionTlsHost = torutil.OnionServiceIDFromPrivateKey(ed25519.PrivateKey(ok)) + ".onion" + if onionTlsHost == "" { + onionTlsHost = torutil.OnionServiceIDFromPrivateKey(ed25519.PrivateKey(ok)) + ".onion" + } err = ioutil.WriteFile(c.String("onionKey"), ok, 0644) if err != nil { log.Fatalln(err.Error()) @@ -275,27 +306,6 @@ func reseedAction(c *cli.Context) { } } - if tlsHost != "" { - tlsKey = c.String("tlsKey") - // if no key is specified, default to the host.pem in the current dir - if tlsKey == "" { - tlsKey = tlsHost + ".pem" - } - - tlsCert = c.String("tlsCert") - // if no certificate is specified, default to the host.crt in the current dir - if tlsCert == "" { - tlsCert = tlsHost + ".crt" - } - - // prompt to create tls keys if they don't exist? - auto := c.Bool("yes") - err := checkOrNewTLSCert(tlsHost, &tlsCert, &tlsKey, auto) - if nil != err { - log.Fatalln(err) - } - } - reloadIntvl, err := time.ParseDuration(c.String("interval")) if nil != err { fmt.Printf("'%s' is not a valid time interval.\n", reloadIntvl)