diff --git a/app.json b/app.json index 82ae344..8ad4ac2 100644 --- a/app.json +++ b/app.json @@ -16,6 +16,10 @@ "LNME_LND_CERT": { "description": "LND TLS cert as HEX", "value": "" + }, + "LNME_TOR_EXE_PATH": { + "description": "Path to the tor executable", + "value": "~/tor/bin/tor" } }, "buildpacks": [ diff --git a/ln/lnd.go b/ln/lnd.go index a4b39ee..6b4f178 100644 --- a/ln/lnd.go +++ b/ln/lnd.go @@ -37,6 +37,7 @@ type LNDoptions struct { CertHex string MacaroonFile string MacaroonHex string + TorExePath string // used when connecting through tor to LND } type LNDclient struct { @@ -138,7 +139,7 @@ func NewLNDclient(lndOptions LNDoptions) (LNDclient, error) { if strings.Contains(lndOptions.Address, ".onion") { // Start Tor - t, err := tor.Start(nil, nil) + t, err := tor.Start(nil, &tor.StartConf{ExePath: lndOptions.TorExePath}) if err != nil { return result, err } diff --git a/lnme.go b/lnme.go index 31f6584..6fadd02 100644 --- a/lnme.go +++ b/lnme.go @@ -94,6 +94,7 @@ func main() { CertHex: cfg.String("lnd-cert"), MacaroonFile: cfg.String("lnd-macaroon-path"), MacaroonHex: cfg.String("lnd-macaroon"), + TorExePath: cfg.String("tor-exe-path"), } lnClient, err := ln.NewLNDclient(lndOptions) if err != nil { @@ -228,6 +229,7 @@ func LoadConfig() *koanf.Koanf { f.String("static-path", "", "Path to a static assets directory.") f.String("port", "", "Port to bind on (deprecated - use listen).") f.String("listen", "", fmt.Sprintf("Address to bind on. (default \"%s\")", DEFAULT_LISTEN)) + f.String("tor-exe-path", "tor", "Path to the Tor executable. Used when connecting through Tor. (default: tor)") var configPath string f.StringVar(&configPath, "config", "config.toml", "Path to a .toml config file.") f.Parse(os.Args[1:])