From 08bc7667fc45311cd7daf9c23f684892cb6342fd Mon Sep 17 00:00:00 2001 From: Andrew Camilleri Date: Mon, 17 Sep 2018 10:20:49 +0200 Subject: [PATCH 1/5] allow to specify generator image when building --- build.ps1 | 3 ++- build.sh | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build.ps1 b/build.ps1 index 840d9a4..89ed908 100755 --- a/build.ps1 +++ b/build.ps1 @@ -1,6 +1,7 @@ # This script will run docker-compose-generator in a container to generate the yml files +if (-not ($BTCPAYGEN_DOCKER_IMAGE)) { $BTCPAYGEN_DOCKER_IMAGE = "btcpayserver/docker-compose-generator" } -docker pull btcpayserver/docker-compose-generator +docker pull $BTCPAYGEN_DOCKER_IMAGE: docker run -v "$(Get-Location)\Generated:/app/Generated" ` -v "$(Get-Location)\docker-compose-generator\docker-fragments:/app/docker-fragments" ` -e "BTCPAYGEN_CRYPTO1=$BTCPAYGEN_CRYPTO1" ` diff --git a/build.sh b/build.sh index 62b1a65..eba13bd 100755 --- a/build.sh +++ b/build.sh @@ -1,7 +1,7 @@ #!/bin/bash # This script will run docker-compose-generator in a container to generate the yml files -docker pull btcpayserver/docker-compose-generator +docker pull ${BTCPAYGEN_DOCKER_IMAGE:-"btcpayserver/docker-compose-generator"} docker run -v "$(pwd)/Generated:/app/Generated" \ -v "$(pwd)/docker-compose-generator/docker-fragments:/app/docker-fragments" \ -e "BTCPAYGEN_CRYPTO1=$BTCPAYGEN_CRYPTO1" \ From 6f2865617d7d8f4725ffd26f7eaf9dd6a030daae Mon Sep 17 00:00:00 2001 From: Andrew Camilleri Date: Sun, 16 Sep 2018 18:29:38 +0200 Subject: [PATCH 2/5] run cusom image as well --- build.ps1 | 2 +- build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.ps1 b/build.ps1 index 89ed908..d02efbd 100755 --- a/build.ps1 +++ b/build.ps1 @@ -17,7 +17,7 @@ docker run -v "$(Get-Location)\Generated:/app/Generated" ` -e "BTCPAYGEN_ADDITIONAL_FRAGMENTS=$BTCPAYGEN_ADDITIONAL_FRAGMENTS" ` -e "BTCPAYGEN_LIGHTNING=$BTCPAYGEN_LIGHTNING" ` -e "BTCPAYGEN_SUBNAME=$BTCPAYGEN_SUBNAME" ` - --rm btcpayserver/docker-compose-generator + --rm $BTCPAYGEN_DOCKER_IMAGE If ($BTCPAYGEN_REVERSEPROXY -eq "nginx") { Copy-Item ".\Production\nginx.tmpl" -Destination ".\Generated" diff --git a/build.sh b/build.sh index eba13bd..7f82e69 100755 --- a/build.sh +++ b/build.sh @@ -17,7 +17,7 @@ docker run -v "$(pwd)/Generated:/app/Generated" \ -e "BTCPAYGEN_ADDITIONAL_FRAGMENTS=$BTCPAYGEN_ADDITIONAL_FRAGMENTS" \ -e "BTCPAYGEN_LIGHTNING=$BTCPAYGEN_LIGHTNING" \ -e "BTCPAYGEN_SUBNAME=$BTCPAYGEN_SUBNAME" \ - --rm btcpayserver/docker-compose-generator + --rm ${BTCPAYGEN_DOCKER_IMAGE:-"btcpayserver/docker-compose-generator"} if [ "$BTCPAYGEN_REVERSEPROXY" == "nginx" ]; then cp Production/nginx.tmpl Generated/nginx.tmpl From add439ddfac7a3af4d7f41d2dcaf12cfa63eed0d Mon Sep 17 00:00:00 2001 From: Andrew Camilleri Date: Tue, 25 Sep 2018 10:17:55 +0200 Subject: [PATCH 3/5] allow way to build a local generator image instead of relying of existing one --- build.ps1 | 9 +++++++-- build.sh | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/build.ps1 b/build.ps1 index d02efbd..3c4da33 100755 --- a/build.ps1 +++ b/build.ps1 @@ -1,7 +1,12 @@ # This script will run docker-compose-generator in a container to generate the yml files -if (-not ($BTCPAYGEN_DOCKER_IMAGE)) { $BTCPAYGEN_DOCKER_IMAGE = "btcpayserver/docker-compose-generator" } -docker pull $BTCPAYGEN_DOCKER_IMAGE: +If (-not ($BTCPAYGEN_DOCKER_IMAGE)) { $BTCPAYGEN_DOCKER_IMAGE = "btcpayserver/docker-compose-generator" } +If($BTCPAYGEN_DOCKER_IMAGE -eq "build"){ + docker build docker-compose-generator --tag build +} Else { + docker pull $BTCPAYGEN_DOCKER_IMAGE: +} + docker run -v "$(Get-Location)\Generated:/app/Generated" ` -v "$(Get-Location)\docker-compose-generator\docker-fragments:/app/docker-fragments" ` -e "BTCPAYGEN_CRYPTO1=$BTCPAYGEN_CRYPTO1" ` diff --git a/build.sh b/build.sh index 7f82e69..2820aaa 100755 --- a/build.sh +++ b/build.sh @@ -1,7 +1,13 @@ #!/bin/bash +if [ "$BTCPAYGEN_DOCKER_IMAGE" == "build" ] +then + docker build docker-compose-generator --tag build +else + docker pull ${BTCPAYGEN_DOCKER_IMAGE:-"btcpayserver/docker-compose-generator"} +fi + # This script will run docker-compose-generator in a container to generate the yml files -docker pull ${BTCPAYGEN_DOCKER_IMAGE:-"btcpayserver/docker-compose-generator"} docker run -v "$(pwd)/Generated:/app/Generated" \ -v "$(pwd)/docker-compose-generator/docker-fragments:/app/docker-fragments" \ -e "BTCPAYGEN_CRYPTO1=$BTCPAYGEN_CRYPTO1" \ From a756f91c1c22e4e3d3d912ed9e4326d5e682f2cb Mon Sep 17 00:00:00 2001 From: Andrew Camilleri Date: Sat, 29 Sep 2018 18:03:09 +0200 Subject: [PATCH 4/5] pr changes --- build.ps1 | 6 +++--- build.sh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.ps1 b/build.ps1 index 3c4da33..0303c5f 100755 --- a/build.ps1 +++ b/build.ps1 @@ -1,10 +1,10 @@ # This script will run docker-compose-generator in a container to generate the yml files If (-not ($BTCPAYGEN_DOCKER_IMAGE)) { $BTCPAYGEN_DOCKER_IMAGE = "btcpayserver/docker-compose-generator" } -If($BTCPAYGEN_DOCKER_IMAGE -eq "build"){ - docker build docker-compose-generator --tag build +If($BTCPAYGEN_DOCKER_IMAGE -eq "btcpayserver/docker-compose-generator:local"){ + docker build docker-compose-generator --tag $BTCPAYGEN_DOCKER_IMAGE } Else { - docker pull $BTCPAYGEN_DOCKER_IMAGE: + docker pull $BTCPAYGEN_DOCKER_IMAGE } docker run -v "$(Get-Location)\Generated:/app/Generated" ` diff --git a/build.sh b/build.sh index 2820aaa..b0d1b24 100755 --- a/build.sh +++ b/build.sh @@ -1,8 +1,8 @@ #!/bin/bash -if [ "$BTCPAYGEN_DOCKER_IMAGE" == "build" ] +if [ "$BTCPAYGEN_DOCKER_IMAGE" == "btcpayserver/docker-compose-generator:local" ] then - docker build docker-compose-generator --tag build + docker build docker-compose-generator --tag $BTCPAYGEN_DOCKER_IMAGE else docker pull ${BTCPAYGEN_DOCKER_IMAGE:-"btcpayserver/docker-compose-generator"} fi From dbce1bd8751f6499c400c3882e6d511c07b53571 Mon Sep 17 00:00:00 2001 From: Andrew Camilleri Date: Sun, 30 Sep 2018 09:59:37 +0200 Subject: [PATCH 5/5] update readme --- README.md | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 9dcc178..ac93170 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,7 @@ You can read [the article](https://medium.com/@BtcpayServer/hosting-btcpay-serve * `ACME_CA_URI`: The API endpoint to ask for HTTPS certificate (Default: `https://acme-v01.api.letsencrypt.org/directory`) * `BTCPAY_HOST_SSHKEYFILE`: Optional, SSH private key that BTCPay can use to connect to this VM's SSH server. This key will be copied to BTCPay's data directory * `BTCPAY_SSHTRUSTEDFINGERPRINTS`: Optional, BTCPay will ensure that it is connecting to the expected SSH server by checking the host's public key against these fingerprints +* `BTCPAYGEN_DOCKER_IMAGE`: Optional, Specify which generator image to use if you have customized the C# generator. Set to `btcpayserver/docker-compose-generator:local` to build the generator locally at runtime. # Tooling @@ -270,20 +271,9 @@ BTCPAY_SSHKEYFILE=/datadir/id_rsa 1. Add support for your crypto to [NBitcoin](https://github.com/MetacoSA/NBitcoin/tree/master/NBitcoin.Altcoins), [NBxplorer](https://github.com/dgarage/NBXplorer), and [BTCPayServer](https://github.com/btcpayserver/btcpayserver). (Use examples from other coins) 2. Create your own docker image ([Example for BTC](https://hub.docker.com/r/nicolasdorier/docker-bitcoin/)) 3. Create a docker-compose fragment ([Example for BTC](docker-compose-generator/docker-fragments/bitcoin.yml)) -4. Add your CryptoDefinition ([Example for BTC](docker-compose-generator/src/CryptoDefinition.cs)) - -When testing your coin, **DO NOT USE `build.sh`**, since it uses a pre-built docker image. - -Instead, install [.NET Core 2.1 SDK](https://www.microsoft.com/net/download/windows) and run: - -```bash -BTCPAYGEN_CRYPTO1="EXAMPLE-COIN" -BTCPAYGEN_SUBNAME="test" -cd docker-compose-generator/src -dotnet run -``` - -This will generate your docker-compose in the `Generated` folder, which you can then run and test. +4. Add your coin to CryptoDefinition ([Example for BTC](docker-compose-generator/src/CryptoDefinition.cs)) +5. Tell the setup script to build the docker compose generator image locally by specifying the environment variable `BTCPAYGEN_DOCKER_IMAGE` to `btcpayserver/docker-compose-generator:local` +6. Configure the BtcPay environment variables as usual and run [build.sh](build.sh) (or [build.ps1](build.ps1)) to generate the docker compose script under `Generated` Note that BTCPayServer developers will not spend excessive time testing your image, so make sure it works.