From 16cd65c37fbcb790477867b3c733399208280df1 Mon Sep 17 00:00:00 2001 From: Andrew Camilleri Date: Thu, 13 Sep 2018 13:18:36 +0200 Subject: [PATCH] add in fragments and additional fragments related to traefik --- .../docker-fragments/traefik-labels.yml | 10 +++++++ .../docker-fragments/traefik.yml | 21 ++++++++++++++ .../src/DockerComposition.cs | 9 ++++++ docker-compose-generator/src/Program.cs | 9 +++--- .../src/docker-compose-generator.csproj | 29 +++++++++++++++++++ 5 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 docker-compose-generator/docker-fragments/traefik-labels.yml create mode 100644 docker-compose-generator/docker-fragments/traefik.yml diff --git a/docker-compose-generator/docker-fragments/traefik-labels.yml b/docker-compose-generator/docker-fragments/traefik-labels.yml new file mode 100644 index 0000000..e98062e --- /dev/null +++ b/docker-compose-generator/docker-fragments/traefik-labels.yml @@ -0,0 +1,10 @@ +version: "3" + +services: + btcpayserver: + labels: + - "traefik.backend=btcpayserver" + - "traefik.backend.loadbalancer.sticky=true" + - "traefik.enable=true" + - "traefik.frontend.rule=Host:${BTCPAY_HOST}" + - "traefik.port.rule=49392" diff --git a/docker-compose-generator/docker-fragments/traefik.yml b/docker-compose-generator/docker-fragments/traefik.yml new file mode 100644 index 0000000..a470f24 --- /dev/null +++ b/docker-compose-generator/docker-fragments/traefik.yml @@ -0,0 +1,21 @@ +version: "3" + +services: + traefik: + restart: unless-stopped + image: traefik + container_name: traefik + ports: + - "80:80" + - "443:443" + volumes: + - "/var/run/docker.sock:/var/run/docker.sock" + - "./traefik.toml:/traefik.toml" + - "./acme.json:/acme.json" + - "./servers.toml:/servers.toml" + - "./traefik_logs:/traefik_logs" + links: + - btcpayserver + +volumes: + traefik_logs: \ No newline at end of file diff --git a/docker-compose-generator/src/DockerComposition.cs b/docker-compose-generator/src/DockerComposition.cs index b9c8f9d..65f4256 100644 --- a/docker-compose-generator/src/DockerComposition.cs +++ b/docker-compose-generator/src/DockerComposition.cs @@ -42,6 +42,15 @@ namespace DockerGenerator composition.SelectedProxy = (Environment.GetEnvironmentVariable("BTCPAYGEN_REVERSEPROXY") ?? "").ToLowerInvariant(); composition.SelectedLN = (Environment.GetEnvironmentVariable("BTCPAYGEN_LIGHTNING") ?? "").ToLowerInvariant(); composition.AdditionalFragments = (Environment.GetEnvironmentVariable("BTCPAYGEN_ADDITIONAL_FRAGMENTS") ?? "").ToLowerInvariant().Split(';').Where(t => !string.IsNullOrWhiteSpace(t)).ToArray(); + if (composition.SelectedProxy == "traefik" && !composition.AdditionalFragments.Contains("traefik-labels")) + { + var additionalFragments = new List(); + additionalFragments.AddRange(composition.AdditionalFragments); + additionalFragments.Add("traefik-labels"); + + composition.AdditionalFragments = additionalFragments.ToArray(); + } + return composition; } } diff --git a/docker-compose-generator/src/Program.cs b/docker-compose-generator/src/Program.cs index 9f028d1..07fbb35 100644 --- a/docker-compose-generator/src/Program.cs +++ b/docker-compose-generator/src/Program.cs @@ -19,7 +19,7 @@ namespace DockerGenerator var productionLocation = Path.GetFullPath(Path.Combine(root, "Production")); var testLocation = Path.GetFullPath(Path.Combine(root, "Production-NoReverseProxy")); - foreach(var proxy in new[] { "nginx", "no-reverseproxy", "traefik", "emit-traefik-labels" }) + foreach(var proxy in new[] { "nginx", "no-reverseproxy", "traefik" }) { foreach(var lightning in new[] { "clightning", "" }) { @@ -40,6 +40,10 @@ namespace DockerGenerator composition.SelectedCryptos.Add(ltc); composition.SelectedLN = lightning; composition.SelectedProxy = proxy; + if (composition.SelectedProxy == "traefik") + { + composition.AdditionalFragments = new []{"traefik-labels"}; + } new Program().Run(composition, name, new string[] {"nginx", "traefik"}.Contains(proxy)? productionLocation : testLocation); } } @@ -74,12 +78,9 @@ namespace DockerGenerator fragments.Add("nginx"); break; case "traefik": - fragments.Add("traefik"); break; - case "emit-traefik-labels": case "no-reverseproxy": - fragments.Add("btcpayserver-noreverseproxy"); break; } diff --git a/docker-compose-generator/src/docker-compose-generator.csproj b/docker-compose-generator/src/docker-compose-generator.csproj index ba248d8..f9be2ab 100644 --- a/docker-compose-generator/src/docker-compose-generator.csproj +++ b/docker-compose-generator/src/docker-compose-generator.csproj @@ -10,4 +10,33 @@ + + + + + + + + + + + + + + + + + + + + + + opt-save-storage.yml + + + nginx.yml + + + +