From 01c5b2a3a4bb80baaa5fba4a987e2b3c3b014604 Mon Sep 17 00:00:00 2001 From: Raghav Date: Wed, 18 Jun 2025 22:10:35 -0400 Subject: [PATCH 01/13] Update to Traefik v3 --- .env.sample | 1 + compose.yml | 1 + traefik.yml.tmpl | 1 + 3 files changed, 3 insertions(+) diff --git a/.env.sample b/.env.sample index ffe1c2c..688ef0c 100644 --- a/.env.sample +++ b/.env.sample @@ -10,6 +10,7 @@ LETS_ENCRYPT_EMAIL=certs@example.com # DASHBOARD_ENABLED=true # WARN, INFO etc. LOG_LEVEL=WARN +LOG_MAX_AGE=1 # This is here so later lines can extend it; you likely don't wanna edit COMPOSE_FILE="compose.yml" diff --git a/compose.yml b/compose.yml index 3b9b9f7..b09c018 100644 --- a/compose.yml +++ b/compose.yml @@ -27,6 +27,7 @@ services: environment: - DASHBOARD_ENABLED - LOG_LEVEL + - LOG_MAX_AGE healthcheck: test: ["CMD", "traefik", "healthcheck"] interval: 30s diff --git a/traefik.yml.tmpl b/traefik.yml.tmpl index a30ef55..a4d65ec 100644 --- a/traefik.yml.tmpl +++ b/traefik.yml.tmpl @@ -4,6 +4,7 @@ core: log: level: {{ env "LOG_LEVEL" }} + maxAge: {{ env "LOG_MAX_AGE" }} providers: swarm: From 8d7f9bd6a26a1bf2b32b50e5ec6b32ca15258723 Mon Sep 17 00:00:00 2001 From: Raghav Date: Fri, 8 Aug 2025 22:17:46 -0400 Subject: [PATCH 02/13] traefik_yml_version --- abra.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abra.sh b/abra.sh index dcd1537..4a149d7 100644 --- a/abra.sh +++ b/abra.sh @@ -1,3 +1,3 @@ -export TRAEFIK_YML_VERSION=v23 +export TRAEFIK_YML_VERSION=v24 export FILE_PROVIDER_YML_VERSION=v10 export ENTRYPOINT_VERSION=v4 From f7087646b171133deaca8510ea23835dbf9c070f Mon Sep 17 00:00:00 2001 From: ripclap Date: Tue, 12 Aug 2025 00:20:11 +0000 Subject: [PATCH 03/13] Added Azure DNS 01-Challenge support --- compose.azure.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 compose.azure.yml diff --git a/compose.azure.yml b/compose.azure.yml new file mode 100644 index 0000000..a069bca --- /dev/null +++ b/compose.azure.yml @@ -0,0 +1,33 @@ +version: "3.8" + +services: + app: + environment: + - AZURE_TENANT_ID_FILE=${AZURE_TENANT_ID_FILE} + - AZURE_CLIENT_ID_FILE=${AZURE_CLIENT_ID_FILE} + - AZURE_CLIENT_SECRET_FILE=${AZURE_CLIENT_SECRET_FILE} + - AZURE_SUBSCRIPTION_ID_FILE=${AZURE_SUBSCRIPTION_ID_FILE} + - AZURE_RESOURCE_GROUP_FILE=${AZURE_RESOURCE_GROUP_FILE} + secrets: + - AZURE_TENANT_ID + - AZURE_CLIENT_ID + - AZURE_CLIENT_SECRET + - AZURE_SUBSCRIPTION_ID + - AZURE_RESOURCE_GROUP + +secrets: + AZURE_TENANT_ID: + name: ${STACK_NAME}_AZURE_TENANT_ID_${SECRET_AZURE_TENANT_ID_VERSION} + external: true + AZURE_CLIENT_ID: + name: ${STACK_NAME}_AZURE_CLIENT_ID_${SECRET_AZURE_CLIENT_ID_VERSION} + external: true + AZURE_CLIENT_SECRET: + name: ${STACK_NAME}_AZURE_CLIENT_SECRET_${SECRET_AZURE_CLIENT_SECRET_VERSION} + external: true + AZURE_SUBSCRIPTION_ID: + name: ${STACK_NAME}_AZURE_SUBSCRIPTION_ID_${SECRET_AZURE_SUBSCRIPTION_ID_VERSION} + external: true + AZURE_RESOURCE_GROUP: + name: ${STACK_NAME}_AZURE_RESOURCE_GROUP_${SECRET_AZURE_RESOURCE_GROUP_VERSION} + external: true \ No newline at end of file From c7e510fbad725fd478fa30b29c4d135a01fe21cc Mon Sep 17 00:00:00 2001 From: ripclap Date: Tue, 12 Aug 2025 00:20:57 +0000 Subject: [PATCH 04/13] Added Azure DNS 01-Challenge support --- .env.sample | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.env.sample b/.env.sample index ffe1c2c..ce598f2 100644 --- a/.env.sample +++ b/.env.sample @@ -58,6 +58,20 @@ COMPOSE_FILE="compose.yml" #DIGITALOCEAN_ENABLED=1 #SECRET_DIGITALOCEAN_AUTH_TOKEN_VERSION=v1 +## Azure, https://azure.com +#COMPOSE_FILE="$COMPOSE_FILE:compose.azure.yml" +#AZURE_TENANT_ID_FILE=/run/secrets/AZURE_TENANT_ID +#AZURE_CLIENT_ID_FILE=/run/secrets/AZURE_CLIENT_ID +#AZURE_CLIENT_SECRET_FILE=/run/secrets/AZURE_CLIENT_SECRET +#AZURE_SUBSCRIPTION_ID_FILE=/run/secrets/AZURE_SUBSCRIPTION_ID +#AZURE_RESOURCE_GROUP_FILE=/run/secrets/AZURE_RESOURCE_GROUP + +#SECRET_AZURE_TENANT_ID_VERSION=v1 +#SECRET_AZURE_CLIENT_ID_VERSION=v1 +#SECRET_AZURE_CLIENT_SECRET_VERSION=v1 +#SECRET_AZURE_SUBSCRIPTION_ID_VERSION=v1 +#SECRET_AZURE_RESOURCE_GROUP_VERSION=v1 + ##################################################################### # Manual wildcard certificate insertion # ##################################################################### From 2db1a03d94fa9cbd760ab462a300376d133bce14 Mon Sep 17 00:00:00 2001 From: ripclap Date: Mon, 11 Aug 2025 17:37:22 -0700 Subject: [PATCH 05/13] Updated TRAEFIK_YML_VERSION --- abra.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abra.sh b/abra.sh index dcd1537..4a149d7 100644 --- a/abra.sh +++ b/abra.sh @@ -1,3 +1,3 @@ -export TRAEFIK_YML_VERSION=v23 +export TRAEFIK_YML_VERSION=v24 export FILE_PROVIDER_YML_VERSION=v10 export ENTRYPOINT_VERSION=v4 From b8aa102a01719ac0449b0de5c08fc172ef9da327 Mon Sep 17 00:00:00 2001 From: ripclap Date: Tue, 12 Aug 2025 01:21:56 -0700 Subject: [PATCH 06/13] azure: update code to align with established conventions --- .env.sample | 19 ++++++++----------- compose.azure.yml | 26 +++++--------------------- entrypoint.sh.tmpl | 4 ++++ 3 files changed, 17 insertions(+), 32 deletions(-) diff --git a/.env.sample b/.env.sample index ce598f2..d4e4b04 100644 --- a/.env.sample +++ b/.env.sample @@ -59,18 +59,15 @@ COMPOSE_FILE="compose.yml" #SECRET_DIGITALOCEAN_AUTH_TOKEN_VERSION=v1 ## Azure, https://azure.com +## To insert your Azure client secret: +## abra app secret insert {myapp.example.coop} azure_secret v1 "" #COMPOSE_FILE="$COMPOSE_FILE:compose.azure.yml" -#AZURE_TENANT_ID_FILE=/run/secrets/AZURE_TENANT_ID -#AZURE_CLIENT_ID_FILE=/run/secrets/AZURE_CLIENT_ID -#AZURE_CLIENT_SECRET_FILE=/run/secrets/AZURE_CLIENT_SECRET -#AZURE_SUBSCRIPTION_ID_FILE=/run/secrets/AZURE_SUBSCRIPTION_ID -#AZURE_RESOURCE_GROUP_FILE=/run/secrets/AZURE_RESOURCE_GROUP - -#SECRET_AZURE_TENANT_ID_VERSION=v1 -#SECRET_AZURE_CLIENT_ID_VERSION=v1 -#SECRET_AZURE_CLIENT_SECRET_VERSION=v1 -#SECRET_AZURE_SUBSCRIPTION_ID_VERSION=v1 -#SECRET_AZURE_RESOURCE_GROUP_VERSION=v1 +#AZURE_ENABLED=1 +#AZURE_TENANT_ID= +#AZURE_CLIENT_ID= +#AZURE_SUBSCRIPTION_ID= +#AZURE_RESOURCE_GROUP= +#SECRET_AZURE_SECRET_VERSION=v1 ##################################################################### # Manual wildcard certificate insertion # diff --git a/compose.azure.yml b/compose.azure.yml index a069bca..4faf82c 100644 --- a/compose.azure.yml +++ b/compose.azure.yml @@ -3,31 +3,15 @@ version: "3.8" services: app: environment: - - AZURE_TENANT_ID_FILE=${AZURE_TENANT_ID_FILE} - - AZURE_CLIENT_ID_FILE=${AZURE_CLIENT_ID_FILE} - - AZURE_CLIENT_SECRET_FILE=${AZURE_CLIENT_SECRET_FILE} - - AZURE_SUBSCRIPTION_ID_FILE=${AZURE_SUBSCRIPTION_ID_FILE} - - AZURE_RESOURCE_GROUP_FILE=${AZURE_RESOURCE_GROUP_FILE} - secrets: - AZURE_TENANT_ID - AZURE_CLIENT_ID - - AZURE_CLIENT_SECRET - AZURE_SUBSCRIPTION_ID - AZURE_RESOURCE_GROUP + - AZURE_CLIENT_SECRET_FILE=/run/secrets/azure_secret + secrets: + - azure_secret secrets: - AZURE_TENANT_ID: - name: ${STACK_NAME}_AZURE_TENANT_ID_${SECRET_AZURE_TENANT_ID_VERSION} + azure_secret: + name: ${STACK_NAME}_azure_secret_${SECRET_AZURE_CLIENT_SECRET_VERSION} external: true - AZURE_CLIENT_ID: - name: ${STACK_NAME}_AZURE_CLIENT_ID_${SECRET_AZURE_CLIENT_ID_VERSION} - external: true - AZURE_CLIENT_SECRET: - name: ${STACK_NAME}_AZURE_CLIENT_SECRET_${SECRET_AZURE_CLIENT_SECRET_VERSION} - external: true - AZURE_SUBSCRIPTION_ID: - name: ${STACK_NAME}_AZURE_SUBSCRIPTION_ID_${SECRET_AZURE_SUBSCRIPTION_ID_VERSION} - external: true - AZURE_RESOURCE_GROUP: - name: ${STACK_NAME}_AZURE_RESOURCE_GROUP_${SECRET_AZURE_RESOURCE_GROUP_VERSION} - external: true \ No newline at end of file diff --git a/entrypoint.sh.tmpl b/entrypoint.sh.tmpl index f4e6232..8da044b 100644 --- a/entrypoint.sh.tmpl +++ b/entrypoint.sh.tmpl @@ -11,4 +11,8 @@ export OVH_APPLICATION_SECRET=$(cat "$OVH_APPLICATION_SECRET_FILE") export DO_AUTH_TOKEN=$(cat "$DO_AUTH_TOKEN_FILE") {{ end }} +{{ if eq (env "AZURE_ENABLED") "1" }} +export AZURE_CLIENT_SECRET=$(cat "$AZURE_CLIENT_SECRET_FILE") +{{ end }} + /entrypoint.sh "$@" From 445feab87cdf659c85d132502ecef86fc6cf6889 Mon Sep 17 00:00:00 2001 From: ripclap Date: Tue, 12 Aug 2025 09:44:59 -0700 Subject: [PATCH 07/13] Revert "Updated TRAEFIK_YML_VERSION" This reverts commit 2db1a03d94fa9cbd760ab462a300376d133bce14. --- abra.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abra.sh b/abra.sh index 4a149d7..dcd1537 100644 --- a/abra.sh +++ b/abra.sh @@ -1,3 +1,3 @@ -export TRAEFIK_YML_VERSION=v24 +export TRAEFIK_YML_VERSION=v23 export FILE_PROVIDER_YML_VERSION=v10 export ENTRYPOINT_VERSION=v4 From 52c2cbf7ec597730ddc0ca8c4768a18e16bf6634 Mon Sep 17 00:00:00 2001 From: Ammar Hussein Date: Wed, 13 Aug 2025 05:27:39 -0700 Subject: [PATCH 08/13] chore: publish 3.5.0+v3.4.5 release --- compose.yml | 2 +- release/3.5.0+v3.4.5 | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 release/3.5.0+v3.4.5 diff --git a/compose.yml b/compose.yml index 3b9b9f7..0b8047a 100644 --- a/compose.yml +++ b/compose.yml @@ -47,7 +47,7 @@ services: - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "traefik.http.routers.${STACK_NAME}.service=api@internal" - "traefik.http.routers.${STACK_NAME}.middlewares=security@file" - - "coop-cloud.${STACK_NAME}.version=3.4.2+v3.4.5" + - "coop-cloud.${STACK_NAME}.version=3.5.0+v3.4.5" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - "backupbot.backup=${ENABLE_BACKUPS:-true}" diff --git a/release/3.5.0+v3.4.5 b/release/3.5.0+v3.4.5 new file mode 100644 index 0000000..35aa32d --- /dev/null +++ b/release/3.5.0+v3.4.5 @@ -0,0 +1 @@ +Add support to azure DNS-01 acme challenge \ No newline at end of file From 1ec509eee8ffcdcf6d7c28bd26cbde2d4f96b7ee Mon Sep 17 00:00:00 2001 From: ripclap Date: Wed, 13 Aug 2025 19:05:05 +0000 Subject: [PATCH 09/13] Fixed azure secret variable --- compose.azure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose.azure.yml b/compose.azure.yml index 4faf82c..3c391f8 100644 --- a/compose.azure.yml +++ b/compose.azure.yml @@ -13,5 +13,5 @@ services: secrets: azure_secret: - name: ${STACK_NAME}_azure_secret_${SECRET_AZURE_CLIENT_SECRET_VERSION} + name: ${STACK_NAME}_azure_secret_${SECRET_AZURE_SECRET_VERSION} external: true From f2e746344e6d6d458246b3c58f612d45dae490c9 Mon Sep 17 00:00:00 2001 From: ripclap Date: Wed, 13 Aug 2025 19:10:53 +0000 Subject: [PATCH 10/13] chore: publish 3.5.1+v3.4.5 release --- compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose.yml b/compose.yml index 0b8047a..e50eff5 100644 --- a/compose.yml +++ b/compose.yml @@ -47,7 +47,7 @@ services: - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "traefik.http.routers.${STACK_NAME}.service=api@internal" - "traefik.http.routers.${STACK_NAME}.middlewares=security@file" - - "coop-cloud.${STACK_NAME}.version=3.5.0+v3.4.5" + - "coop-cloud.${STACK_NAME}.version=3.5.1+v3.4.5" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - "backupbot.backup=${ENABLE_BACKUPS:-true}" From a3ab012d55b6397030fc5e605a434db07de4ee44 Mon Sep 17 00:00:00 2001 From: ripclap Date: Wed, 13 Aug 2025 19:17:11 +0000 Subject: [PATCH 11/13] revert f2e746344e6d6d458246b3c58f612d45dae490c9 revert chore: publish 3.5.1+v3.4.5 release --- compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose.yml b/compose.yml index e50eff5..0b8047a 100644 --- a/compose.yml +++ b/compose.yml @@ -47,7 +47,7 @@ services: - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "traefik.http.routers.${STACK_NAME}.service=api@internal" - "traefik.http.routers.${STACK_NAME}.middlewares=security@file" - - "coop-cloud.${STACK_NAME}.version=3.5.1+v3.4.5" + - "coop-cloud.${STACK_NAME}.version=3.5.0+v3.4.5" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - "backupbot.backup=${ENABLE_BACKUPS:-true}" From 304915a3968fffa5c9bdf7301c915c508c3f67e4 Mon Sep 17 00:00:00 2001 From: Raghav Date: Mon, 25 Aug 2025 12:26:52 -0400 Subject: [PATCH 12/13] Set default LOG_MAX_AGE --- compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose.yml b/compose.yml index b09c018..2c60441 100644 --- a/compose.yml +++ b/compose.yml @@ -27,7 +27,7 @@ services: environment: - DASHBOARD_ENABLED - LOG_LEVEL - - LOG_MAX_AGE + - ${LOG_MAX_AGE:-0} healthcheck: test: ["CMD", "traefik", "healthcheck"] interval: 30s From 88e1a67146db3bc57bfae3292a3cb962ef353a1a Mon Sep 17 00:00:00 2001 From: Raghav Date: Thu, 28 Aug 2025 18:01:23 -0400 Subject: [PATCH 13/13] chore: publish 3.6.0+v3.4.5 release --- release/3.6.0+v3.4.5 | 1 + 1 file changed, 1 insertion(+) create mode 100644 release/3.6.0+v3.4.5 diff --git a/release/3.6.0+v3.4.5 b/release/3.6.0+v3.4.5 new file mode 100644 index 0000000..8b9f916 --- /dev/null +++ b/release/3.6.0+v3.4.5 @@ -0,0 +1 @@ +Expose log_max_age option. This option controls Traefik's maximum retention for log files in number of days. By default (when LOG_MAX_AGE=0), files are not removed based on age. \ No newline at end of file