diff --git a/BTCPayServer.Tests/FastTests.cs b/BTCPayServer.Tests/FastTests.cs index 09dcf1baf..5701837de 100644 --- a/BTCPayServer.Tests/FastTests.cs +++ b/BTCPayServer.Tests/FastTests.cs @@ -103,11 +103,13 @@ namespace BTCPayServer.Tests { var compose1 = File.ReadAllText(Path.Combine(TestUtils.TryGetSolutionDirectoryInfo().FullName, "BTCPayServer.Tests", "docker-compose.yml")); var compose2 = File.ReadAllText(Path.Combine(TestUtils.TryGetSolutionDirectoryInfo().FullName, "BTCPayServer.Tests", "docker-compose.altcoins.yml")); + var compose3 = File.ReadAllText(Path.Combine(TestUtils.TryGetSolutionDirectoryInfo().FullName, "BTCPayServer.Tests", "docker-compose.mutinynet.yml")); + var compose4 = File.ReadAllText(Path.Combine(TestUtils.TryGetSolutionDirectoryInfo().FullName, "BTCPayServer.Tests", "docker-compose.testnet.yml")); List GetImages(string content) { - List images = new List(); - foreach (var line in content.Split(new[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries)) + var images = new List(); + foreach (var line in content.Split(["\n", "\r\n"], StringSplitOptions.RemoveEmptyEntries)) { var l = line.Trim(); if (l.StartsWith("image:", StringComparison.OrdinalIgnoreCase)) @@ -120,13 +122,15 @@ namespace BTCPayServer.Tests var img1 = GetImages(compose1); var img2 = GetImages(compose2); - var groups = img1.Concat(img2).GroupBy(g => g.Name); + var img3 = GetImages(compose3); + var img4 = GetImages(compose4); + var groups = img1.Concat(img2).Concat(img3).Concat(img4).GroupBy(g => g.Name); foreach (var g in groups) { - var tags = new HashSet(g.Select(o => o.Tag)); + var tags = new HashSet(g.Select(o => o.Tag)); if (tags.Count != 1) { - Assert.Fail($"All docker images '{g.Key}' in docker-compose.yml and docker-compose.altcoins.yml should have the same tags. (Found {string.Join(',', tags)})"); + Assert.Fail($"All docker images '{g.Key}' across the docker-compose.yml files should have the same tags. (Found {string.Join(',', tags)})"); } } } diff --git a/BTCPayServer.Tests/docker-compose.altcoins.yml b/BTCPayServer.Tests/docker-compose.altcoins.yml index cd6792de7..8f3a9feb7 100644 --- a/BTCPayServer.Tests/docker-compose.altcoins.yml +++ b/BTCPayServer.Tests/docker-compose.altcoins.yml @@ -180,6 +180,7 @@ services: dev-bitcoind-poll=1 ports: - "30992:9835" # api port + - "30892:9735" # server port expose: - "9735" # server port - "9835" # api port @@ -208,6 +209,7 @@ services: dev-bitcoind-poll=1 ports: - "30993:9835" # api port + - "30893:9735" # server port expose: - "9735" # server port - "9835" # api port @@ -252,9 +254,12 @@ services: no-rest-tls=1 ports: - "35531:8080" + - "30894:9735" - "53280:10009" expose: + - "8080" - "9735" + - "10009" volumes: - "merchant_lnd_datadir:/data" - "bitcoin_datadir:/deps/.bitcoin" @@ -287,8 +292,10 @@ services: no-rest-tls=1 ports: - "35532:8080" + - "30895:9735" expose: - "8080" + - "9735" - "10009" volumes: - "customer_lnd_datadir:/root/.lnd" diff --git a/BTCPayServer.Tests/docker-compose.mutinynet.yml b/BTCPayServer.Tests/docker-compose.mutinynet.yml new file mode 100644 index 000000000..c970e37df --- /dev/null +++ b/BTCPayServer.Tests/docker-compose.mutinynet.yml @@ -0,0 +1,298 @@ +version: "3" + +# Run `docker-compose up dev` for bootstrapping your development environment +# Doing so will expose NBXplorer, Bitcoind RPC and postgres port to the host so that tests can Run, +# The Visual Studio launch setting `Docker-signet` is configured to use this environment. +services: + + # The dev container is not actually used, it is just handy to run `docker-compose up dev` to start all services + dev: + image: alpine:3.7 + command: [ "/bin/sh", "-c", "trap : TERM INT; while :; do echo Ready to code and debug like a rockstar!!!; sleep 2073600; done & wait" ] + depends_on: + - nbxplorer + - postgres + - customer_lightningd + - merchant_lightningd + - customer_lnd + - merchant_lnd + - sshd + - tor + + sshd: + build: + context: . + dockerfile: sshd.Dockerfile + ports: + - "21622:22" + expose: + - 22 + volumes: + - "sshd_datadir:/root/.ssh" + + devlnd: + image: btcpayserver/mutinynet:c23afab47fbe + environment: + BITCOIN_NETWORK: signet + BITCOIN_WALLETDIR: "/data/wallets" + BITCOIN_EXTRA_ARGS: | + deprecatedrpc=signrawtransaction + connect=bitcoind:39388 + fallbackfee=0.0002 + rpcallowip=0.0.0.0/0 + [signet] + signetchallenge=512102f7561d208dd9ae99bf497273e16f389bdbd6c4742ddb8e6b216e64fa2928ad8f51ae + addnode=45.79.52.207:38333 + dnsseed=0 + signetblocktime=30 + depends_on: + - nbxplorer + - postgres + - customer_lnd + - merchant_lnd + + selenium: + image: selenium/standalone-chrome:125.0 + extra_hosts: + - "tests:172.23.0.18" + expose: + - "4444" + networks: + default: + custom: + + nbxplorer: + image: nicolasdorier/nbxplorer:2.5.12 + restart: unless-stopped + ports: + - "32838:32838" + expose: + - "32838" + environment: + NBXPLORER_NETWORK: signet + NBXPLORER_CHAINS: "btc" + NBXPLORER_BTCRPCURL: http://bitcoind:43782/ + NBXPLORER_BTCNODEENDPOINT: bitcoind:39388 + NBXPLORER_BTCRPCUSER: ceiwHEbqWI83 + NBXPLORER_BTCRPCPASSWORD: DwubwWsoo3 + NBXPLORER_BIND: 0.0.0.0:32838 + NBXPLORER_MINGAPSIZE: 5 + NBXPLORER_MAXGAPSIZE: 10 + NBXPLORER_VERBOSE: 1 + NBXPLORER_POSTGRES: User ID=postgres;Include Error Detail=true;Host=postgres;Port=5432;Database=nbxplorer_mutinynet + NBXPLORER_EXPOSERPC: 1 + NBXPLORER_NOAUTH: 1 + depends_on: + - bitcoind + + bitcoind: + restart: unless-stopped + image: btcpayserver/mutinynet:c23afab47fbe + environment: + BITCOIN_NETWORK: signet + BITCOIN_WALLETDIR: "/data/wallets" + BITCOIN_EXTRA_ARGS: |- + rpcuser=ceiwHEbqWI83 + rpcpassword=DwubwWsoo3 + rpcport=43782 + rpcbind=0.0.0.0:43782 + rpcallowip=0.0.0.0/0 + port=39388 + whitelist=0.0.0.0/0 + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtx=tcp://0.0.0.0:28333 + deprecatedrpc=signrawtransaction + fallbackfee=0.0002 + [signet] + signetchallenge=512102f7561d208dd9ae99bf497273e16f389bdbd6c4742ddb8e6b216e64fa2928ad8f51ae + addnode=45.79.52.207:38333 + dnsseed=0 + signetblocktime=30 + ports: + - "43782:43782" + - "39388:39388" + expose: + - "43782" # RPC + - "39388" # P2P + - "28332" # ZMQ + - "28333" # ZMQ + volumes: + - "bitcoin_datadir:/data" + + customer_lightningd: + image: btcpayserver/lightning:v24.08.2 + stop_signal: SIGKILL + restart: unless-stopped + environment: + EXPOSE_TCP: "true" + LIGHTNINGD_CHAIN: "btc" + LIGHTNINGD_NETWORK: "signet" + LIGHTNINGD_OPT: | + developer + bitcoin-datadir=/etc/bitcoin + bitcoin-rpcconnect=bitcoind + announce-addr=customer_lightningd:9735 + log-level=debug + funding-confirms=1 + dev-fast-gossip + dev-bitcoind-poll=1 + ports: + - "30992:9835" # api port + - "30892:9735" # server port + expose: + - "9735" # server port + - "9835" # api port + volumes: + - "bitcoin_datadir:/etc/bitcoin" + - "customer_lightningd_datadir:/root/.lightning" + depends_on: + - bitcoind + + merchant_lightningd: + image: btcpayserver/lightning:v24.08.2 + stop_signal: SIGKILL + restart: unless-stopped + environment: + EXPOSE_TCP: "true" + LIGHTNINGD_CHAIN: "btc" + LIGHTNINGD_NETWORK: "signet" + LIGHTNINGD_OPT: | + developer + bitcoin-datadir=/etc/bitcoin + bitcoin-rpcconnect=bitcoind + announce-addr=merchant_lightningd:9735 + funding-confirms=1 + log-level=debug + dev-fast-gossip + dev-bitcoind-poll=1 + ports: + - "30993:9835" # api port + - "30893:9735" # server port + expose: + - "9735" # server port + - "9835" # api port + volumes: + - "bitcoin_datadir:/etc/bitcoin" + - "merchant_lightningd_datadir:/root/.lightning" + depends_on: + - bitcoind + + postgres: + image: postgres:13.13 + environment: + POSTGRES_HOST_AUTH_METHOD: trust + ports: + - "39372:5432" + expose: + - "5432" + + merchant_lnd: + image: btcpayserver/lnd:v0.18.3-beta + restart: unless-stopped + environment: + LND_CHAIN: "btc" + LND_ENVIRONMENT: "signet" + LND_EXPLORERURL: "http://nbxplorer:32838/" + LND_REST_LISTEN_HOST: http://merchant_lnd:8080 + LND_EXTRA_ARGS: | + restlisten=merchant_lnd:8080 + rpclisten=127.0.0.1:10008 + rpclisten=merchant_lnd:10009 + bitcoin.node=bitcoind + bitcoind.rpchost=bitcoind:43782 + bitcoind.rpcuser=ceiwHEbqWI83 + bitcoind.rpcpass=DwubwWsoo3 + bitcoind.zmqpubrawblock=tcp://bitcoind:28332 + bitcoind.zmqpubrawtx=tcp://bitcoind:28333 + externalip=merchant_lnd:9735 + bitcoin.defaultchanconfs=1 + no-macaroons=1 + debuglevel=debug + trickledelay=1000 + no-rest-tls=1 + ports: + - "35531:8080" + - "30894:9735" + - "53280:10009" + expose: + - "8080" + - "9735" + - "10009" + volumes: + - "merchant_lnd_datadir:/data" + - "bitcoin_datadir:/deps/.bitcoin" + depends_on: + - bitcoind + + customer_lnd: + image: btcpayserver/lnd:v0.18.3-beta + restart: unless-stopped + environment: + LND_CHAIN: "btc" + LND_ENVIRONMENT: "signet" + LND_EXPLORERURL: "http://nbxplorer:32838/" + LND_REST_LISTEN_HOST: http://customer_lnd:8080 + LND_EXTRA_ARGS: | + restlisten=customer_lnd:8080 + rpclisten=127.0.0.1:10008 + rpclisten=customer_lnd:10009 + bitcoin.node=bitcoind + bitcoind.rpchost=bitcoind:43782 + bitcoind.rpcuser=ceiwHEbqWI83 + bitcoind.rpcpass=DwubwWsoo3 + bitcoind.zmqpubrawblock=tcp://bitcoind:28332 + bitcoind.zmqpubrawtx=tcp://bitcoind:28333 + externalip=customer_lnd:9735 + bitcoin.defaultchanconfs=1 + no-macaroons=1 + debuglevel=debug + trickledelay=1000 + no-rest-tls=1 + ports: + - "35532:8080" + - "30895:9735" + expose: + - "8080" + - "9735" + - "10009" + volumes: + - "customer_lnd_datadir:/root/.lnd" + - "bitcoin_datadir:/deps/.bitcoin" + depends_on: + - bitcoind + + tor: + restart: unless-stopped + image: btcpayserver/tor:0.4.6.5 + container_name: tor + environment: + TOR_PASSWORD: btcpayserver + ports: + - "9050:9050" # SOCKS + - "9051:9051" # Tor Control + volumes: + - "tor_datadir:/home/tor/.tor" + - "torrcdir:/usr/local/etc/tor" + - "tor_servicesdir:/var/lib/tor/hidden_services" + +volumes: + sshd_datadir: + bitcoin_datadir: + elementsd_liquid_datadir: + customer_lightningd_datadir: + merchant_lightningd_datadir: + lightning_charge_datadir: + customer_lnd_datadir: + merchant_lnd_datadir: + tor_datadir: + torrcdir: + tor_servicesdir: + +networks: + default: + driver: bridge + custom: + driver: bridge + ipam: + config: + - subnet: 172.23.0.0/16 diff --git a/BTCPayServer.Tests/docker-compose.testnet.yml b/BTCPayServer.Tests/docker-compose.testnet.yml new file mode 100644 index 000000000..b301ba2de --- /dev/null +++ b/BTCPayServer.Tests/docker-compose.testnet.yml @@ -0,0 +1,288 @@ +version: "3" + +# Run `docker-compose up dev` for bootstrapping your development environment +# Doing so will expose NBXplorer, Bitcoind RPC and postgres port to the host so that tests can Run, +# The Visual Studio launch setting `Docker-testnet` is configured to use this environment. +services: + + # The dev container is not actually used, it is just handy to run `docker-compose up dev` to start all services + dev: + image: alpine:3.7 + command: [ "/bin/sh", "-c", "trap : TERM INT; while :; do echo Ready to code and debug like a rockstar!!!; sleep 2073600; done & wait" ] + depends_on: + - nbxplorer + - postgres + - customer_lightningd + - merchant_lightningd + - customer_lnd + - merchant_lnd + - sshd + - tor + + sshd: + build: + context: . + dockerfile: sshd.Dockerfile + ports: + - "21622:22" + expose: + - 22 + volumes: + - "sshd_datadir:/root/.ssh" + + devlnd: + image: btcpayserver/bitcoin:26.0 + environment: + BITCOIN_NETWORK: testnet + BITCOIN_WALLETDIR: "/data/wallets" + BITCOIN_EXTRA_ARGS: | + deprecatedrpc=signrawtransaction + connect=bitcoind:39388 + fallbackfee=0.0002 + rpcallowip=0.0.0.0/0 + depends_on: + - nbxplorer + - postgres + - customer_lnd + - merchant_lnd + + selenium: + image: selenium/standalone-chrome:125.0 + extra_hosts: + - "tests:172.23.0.18" + expose: + - "4444" + networks: + default: + custom: + + nbxplorer: + image: nicolasdorier/nbxplorer:2.5.12 + restart: unless-stopped + ports: + - "32838:32838" + expose: + - "32838" + environment: + NBXPLORER_NETWORK: testnet + NBXPLORER_CHAINS: "btc" + NBXPLORER_BTCRPCURL: http://bitcoind:43782/ + NBXPLORER_BTCNODEENDPOINT: bitcoind:39388 + NBXPLORER_BTCRPCUSER: ceiwHEbqWI83 + NBXPLORER_BTCRPCPASSWORD: DwubwWsoo3 + NBXPLORER_BIND: 0.0.0.0:32838 + NBXPLORER_MINGAPSIZE: 5 + NBXPLORER_MAXGAPSIZE: 10 + NBXPLORER_VERBOSE: 1 + NBXPLORER_POSTGRES: User ID=postgres;Include Error Detail=true;Host=postgres;Port=5432;Database=nbxplorer_testnet + NBXPLORER_EXPOSERPC: 1 + NBXPLORER_NOAUTH: 1 + depends_on: + - bitcoind + + bitcoind: + restart: unless-stopped + image: btcpayserver/bitcoin:26.0 + environment: + BITCOIN_NETWORK: testnet + BITCOIN_WALLETDIR: "/data/wallets" + BITCOIN_EXTRA_ARGS: |- + rpcuser=ceiwHEbqWI83 + rpcpassword=DwubwWsoo3 + rpcport=43782 + rpcbind=0.0.0.0:43782 + rpcallowip=0.0.0.0/0 + port=39388 + whitelist=0.0.0.0/0 + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtx=tcp://0.0.0.0:28333 + deprecatedrpc=signrawtransaction + fallbackfee=0.0002 + ports: + - "43782:43782" + - "39388:39388" + expose: + - "43782" # RPC + - "39388" # P2P + - "28332" # ZMQ + - "28333" # ZMQ + volumes: + - "bitcoin_datadir:/data" + + customer_lightningd: + image: btcpayserver/lightning:v24.08.2 + stop_signal: SIGKILL + restart: unless-stopped + environment: + EXPOSE_TCP: "true" + LIGHTNINGD_CHAIN: "btc" + LIGHTNINGD_NETWORK: "testnet" + LIGHTNINGD_OPT: | + developer + bitcoin-datadir=/etc/bitcoin + bitcoin-rpcconnect=bitcoind + announce-addr=customer_lightningd:9735 + log-level=debug + funding-confirms=1 + dev-fast-gossip + dev-bitcoind-poll=1 + ports: + - "30992:9835" # api port + - "30892:9735" # server port + expose: + - "9735" # server port + - "9835" # api port + volumes: + - "bitcoin_datadir:/etc/bitcoin" + - "customer_lightningd_datadir:/root/.lightning" + depends_on: + - bitcoind + + merchant_lightningd: + image: btcpayserver/lightning:v24.08.2 + stop_signal: SIGKILL + restart: unless-stopped + environment: + EXPOSE_TCP: "true" + LIGHTNINGD_CHAIN: "btc" + LIGHTNINGD_NETWORK: "testnet" + LIGHTNINGD_OPT: | + developer + bitcoin-datadir=/etc/bitcoin + bitcoin-rpcconnect=bitcoind + announce-addr=merchant_lightningd:9735 + funding-confirms=1 + log-level=debug + dev-fast-gossip + dev-bitcoind-poll=1 + ports: + - "30993:9835" # api port + - "30893:9735" # server port + expose: + - "9735" # server port + - "9835" # api port + volumes: + - "bitcoin_datadir:/etc/bitcoin" + - "merchant_lightningd_datadir:/root/.lightning" + depends_on: + - bitcoind + + postgres: + image: postgres:13.13 + environment: + POSTGRES_HOST_AUTH_METHOD: trust + ports: + - "39372:5432" + expose: + - "5432" + + merchant_lnd: + image: btcpayserver/lnd:v0.18.3-beta + restart: unless-stopped + environment: + LND_CHAIN: "btc" + LND_ENVIRONMENT: "testnet" + LND_EXPLORERURL: "http://nbxplorer:32838/" + LND_REST_LISTEN_HOST: http://merchant_lnd:8080 + LND_EXTRA_ARGS: | + restlisten=merchant_lnd:8080 + rpclisten=127.0.0.1:10008 + rpclisten=merchant_lnd:10009 + bitcoin.node=bitcoind + bitcoind.rpchost=bitcoind:43782 + bitcoind.rpcuser=ceiwHEbqWI83 + bitcoind.rpcpass=DwubwWsoo3 + bitcoind.zmqpubrawblock=tcp://bitcoind:28332 + bitcoind.zmqpubrawtx=tcp://bitcoind:28333 + externalip=merchant_lnd:9735 + bitcoin.defaultchanconfs=1 + no-macaroons=1 + debuglevel=debug + trickledelay=1000 + no-rest-tls=1 + ports: + - "35531:8080" + - "30894:9735" + - "53280:10009" + expose: + - "8080" + - "9735" + - "10009" + volumes: + - "merchant_lnd_datadir:/data" + - "bitcoin_datadir:/deps/.bitcoin" + depends_on: + - bitcoind + + customer_lnd: + image: btcpayserver/lnd:v0.18.3-beta + restart: unless-stopped + environment: + LND_CHAIN: "btc" + LND_ENVIRONMENT: "testnet" + LND_EXPLORERURL: "http://nbxplorer:32838/" + LND_REST_LISTEN_HOST: http://customer_lnd:8080 + LND_EXTRA_ARGS: | + restlisten=customer_lnd:8080 + rpclisten=127.0.0.1:10008 + rpclisten=customer_lnd:10009 + bitcoin.node=bitcoind + bitcoind.rpchost=bitcoind:43782 + bitcoind.rpcuser=ceiwHEbqWI83 + bitcoind.rpcpass=DwubwWsoo3 + bitcoind.zmqpubrawblock=tcp://bitcoind:28332 + bitcoind.zmqpubrawtx=tcp://bitcoind:28333 + externalip=customer_lnd:9735 + bitcoin.defaultchanconfs=1 + no-macaroons=1 + debuglevel=debug + trickledelay=1000 + no-rest-tls=1 + ports: + - "35532:8080" + - "30895:9735" + expose: + - "8080" + - "9735" + - "10009" + volumes: + - "customer_lnd_datadir:/root/.lnd" + - "bitcoin_datadir:/deps/.bitcoin" + depends_on: + - bitcoind + + tor: + restart: unless-stopped + image: btcpayserver/tor:0.4.6.5 + container_name: tor + environment: + TOR_PASSWORD: btcpayserver + ports: + - "9050:9050" # SOCKS + - "9051:9051" # Tor Control + volumes: + - "tor_datadir:/home/tor/.tor" + - "torrcdir:/usr/local/etc/tor" + - "tor_servicesdir:/var/lib/tor/hidden_services" + +volumes: + sshd_datadir: + bitcoin_datadir: + elementsd_liquid_datadir: + customer_lightningd_datadir: + merchant_lightningd_datadir: + lightning_charge_datadir: + customer_lnd_datadir: + merchant_lnd_datadir: + tor_datadir: + torrcdir: + tor_servicesdir: + +networks: + default: + driver: bridge + custom: + driver: bridge + ipam: + config: + - subnet: 172.23.0.0/16 diff --git a/BTCPayServer.Tests/docker-compose.yml b/BTCPayServer.Tests/docker-compose.yml index 57116f468..4afd631dd 100644 --- a/BTCPayServer.Tests/docker-compose.yml +++ b/BTCPayServer.Tests/docker-compose.yml @@ -166,6 +166,7 @@ services: dev-bitcoind-poll=1 ports: - "30992:9835" # api port + - "30892:9735" # server port expose: - "9735" # server port - "9835" # api port @@ -194,6 +195,7 @@ services: dev-bitcoind-poll=1 ports: - "30993:9835" # api port + - "30893:9735" # server port expose: - "9735" # server port - "9835" # api port @@ -239,6 +241,7 @@ services: ports: - "35531:8080" - "53280:10009" + - "30894:9735" expose: - "8080" - "9735" @@ -275,6 +278,7 @@ services: no-rest-tls=1 ports: - "35532:8080" + - "30895:9735" expose: - "8080" - "9735" diff --git a/BTCPayServer/Configuration/BTCPayServerOptions.cs b/BTCPayServer/Configuration/BTCPayServerOptions.cs index aab084d45..9e24bc35d 100644 --- a/BTCPayServer/Configuration/BTCPayServerOptions.cs +++ b/BTCPayServer/Configuration/BTCPayServerOptions.cs @@ -62,9 +62,6 @@ namespace BTCPayServer.Configuration Logs.Configuration.LogInformation("Network: " + NetworkType.ToString()); - if (conf.GetOrDefault("launchsettings", false) && NetworkType != ChainName.Regtest) - throw new ConfigException($"You need to run BTCPayServer with the run.sh or run.ps1 script"); - if (conf.GetOrDefault("POSTGRES", null) == null) { var allowDeprecated = conf.GetOrDefault("DEPRECATED", false); diff --git a/BTCPayServer/Properties/launchSettings.json b/BTCPayServer/Properties/launchSettings.json index 8f591de7e..f471ce64a 100644 --- a/BTCPayServer/Properties/launchSettings.json +++ b/BTCPayServer/Properties/launchSettings.json @@ -70,6 +70,82 @@ }, "applicationUrl": "https://localhost:14142/" }, + "Bitcoin-HTTPS-TESTNET": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "BTCPAY_EXPERIMENTALV2_CONFIRM": "true", + "BTCPAY_NETWORK": "testnet", + "BTCPAY_LAUNCHSETTINGS": "true", + "BTCPAY_PORT": "14142", + "BTCPAY_HttpsUseDefaultCertificate": "true", + "BTCPAY_VERBOSE": "true", + "BTCPAY_BTCLIGHTNING": "type=clightning;server=tcp://127.0.0.1:30993/", + "BTCPAY_BTCEXTERNALLNDREST": "type=lnd-rest;server=http://lnd:lnd@127.0.0.1:35531/;allowinsecure=true", + "BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json", + "BTCPAY_BTCEXTERNALSPARK": "server=/spark/btc/;cookiefile=fake", + "BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake", + "BTCPAY_BTCEXTERNALRTL": "server=/rtl/api/authenticate/cookie;cookiefile=fake", + "BTCPAY_BTCEXTERNALTHUNDERHUB": "server=/thub/sso;cookiefile=fake", + "BTCPAY_BTCEXTERNALTORQ": "server=/torq/cookie-login;cookiefile=fake", + "BTCPAY_EXTERNALSERVICES": "totoservice:totolink;Lightning Terminal:/lit/;", + "BTCPAY_EXTERNALCONFIGURATOR": "passwordfile=testpwd;server=/configurator", + "BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/", + "BTCPAY_ALLOW-ADMIN-REGISTRATION": "true", + "BTCPAY_DISABLE-REGISTRATION": "false", + "ASPNETCORE_ENVIRONMENT": "Development", + "BTCPAY_CHAINS": "btc", + "BTCPAY_POSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=btcpayserver_testnet", + "BTCPAY_SSHCONNECTION": "root@127.0.0.1:21622", + "BTCPAY_SSHPASSWORD": "opD3i2282D", + "BTCPAY_DEBUGLOG": "debug.log", + "BTCPAY_TORRCFILE": "../BTCPayServer.Tests/TestData/Tor/torrc", + "BTCPAY_SOCKSENDPOINT": "localhost:9050", + "BTCPAY_DOCKERDEPLOYMENT": "true", + "BTCPAY_RECOMMENDED-PLUGINS": "", + "BTCPAY_CHEATMODE": "true", + "BTCPAY_EXPLORERPOSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=nbxplorer_testnet" + }, + "applicationUrl": "https://localhost:14142/" + }, + "Bitcoin-HTTPS-MUTINYNET": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "BTCPAY_EXPERIMENTALV2_CONFIRM": "true", + "BTCPAY_NETWORK": "signet", + "BTCPAY_LAUNCHSETTINGS": "true", + "BTCPAY_PORT": "14142", + "BTCPAY_HttpsUseDefaultCertificate": "true", + "BTCPAY_VERBOSE": "true", + "BTCPAY_BTCLIGHTNING": "type=clightning;server=tcp://127.0.0.1:30993/", + "BTCPAY_BTCEXTERNALLNDREST": "type=lnd-rest;server=http://lnd:lnd@127.0.0.1:35531/;allowinsecure=true", + "BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json", + "BTCPAY_BTCEXTERNALSPARK": "server=/spark/btc/;cookiefile=fake", + "BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake", + "BTCPAY_BTCEXTERNALRTL": "server=/rtl/api/authenticate/cookie;cookiefile=fake", + "BTCPAY_BTCEXTERNALTHUNDERHUB": "server=/thub/sso;cookiefile=fake", + "BTCPAY_BTCEXTERNALTORQ": "server=/torq/cookie-login;cookiefile=fake", + "BTCPAY_EXTERNALSERVICES": "totoservice:totolink;Lightning Terminal:/lit/;", + "BTCPAY_EXTERNALCONFIGURATOR": "passwordfile=testpwd;server=/configurator", + "BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/", + "BTCPAY_ALLOW-ADMIN-REGISTRATION": "true", + "BTCPAY_DISABLE-REGISTRATION": "false", + "ASPNETCORE_ENVIRONMENT": "Development", + "BTCPAY_CHAINS": "btc", + "BTCPAY_POSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=btcpayserver_mutinynet", + "BTCPAY_SSHCONNECTION": "root@127.0.0.1:21622", + "BTCPAY_SSHPASSWORD": "opD3i2282D", + "BTCPAY_DEBUGLOG": "debug.log", + "BTCPAY_TORRCFILE": "../BTCPayServer.Tests/TestData/Tor/torrc", + "BTCPAY_SOCKSENDPOINT": "localhost:9050", + "BTCPAY_DOCKERDEPLOYMENT": "true", + "BTCPAY_RECOMMENDED-PLUGINS": "", + "BTCPAY_CHEATMODE": "true", + "BTCPAY_EXPLORERPOSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=nbxplorer_mutinynet" + }, + "applicationUrl": "https://localhost:14142/" + }, "Altcoins": { "commandName": "Project", "launchBrowser": true,