6 Commits

Author SHA1 Message Date
Cantibra 76994eabf8 4
Traefik / Traefik (amd64, cicd.any, bookworm trixie noble, main) (push) Successful in 2m4s
Traefik / Traefik (arm64, cicd.any, bookworm trixie noble, main) (push) Successful in 2m4s
2026-07-18 15:35:12 +02:00
Cantibra 3191102e2b 3
Traefik / Traefik (amd64, cicd.any, bookworm trixie noble, main) (push) Successful in 1m40s
Traefik / Traefik (arm64, cicd.any, bookworm trixie noble, main) (push) Successful in 1m39s
2026-07-06 12:32:15 +02:00
Cantibra 67a9e689da 3
Traefik / Traefik (amd64, cicd.any, bookworm trixie noble, main) (push) Failing after 18s
Traefik / Traefik (arm64, cicd.any, bookworm trixie noble, main) (push) Failing after 26s
2026-07-06 12:30:17 +02:00
Cantibra f15bd850ce 3
Traefik / Traefik (amd64, cicd.any, bookworm trixie noble, main) (push) Failing after 25s
Traefik / Traefik (arm64, cicd.any, bookworm trixie noble, main) (push) Failing after 23s
2026-07-06 12:21:24 +02:00
Cantibra 4ca007c80b 2
Traefik / Traefik (arm64, cicd.any, bookworm trixie noble, main) (push) Successful in 1m56s
Traefik / Traefik (amd64, cicd.any, bookworm trixie noble, main) (push) Successful in 2m0s
2026-06-11 07:15:43 +02:00
Cantibra 3244bf45d4 1
Traefik / Traefik (amd64, cicd.any, bookworm trixie noble, main) (push) Successful in 2m0s
Traefik / Traefik (arm64, cicd.any, bookworm trixie noble, main) (push) Successful in 1m47s
2026-05-21 07:32:42 +02:00
10 changed files with 45 additions and 108 deletions
+1 -1
View File
@@ -1 +1 @@
VERSION='3.7.1' VERSION='3.7.8'
+4 -3
View File
@@ -45,7 +45,7 @@ jobs:
- name: Traefik [Download] - name: Traefik [Download]
if: steps.cache-traefik.outputs.cache-hit != 'true' if: steps.cache-traefik.outputs.cache-hit != 'true'
run: | run: |
/usr/bin/wget --verbose --output-document='./sources.tar.gz' 'https://github.com/traefik/traefik/releases/download/v${{ steps.environment.outputs.version }}/traefik_v${{ steps.environment.outputs.version }}_linux_${{ matrix.architecture }}.tar.gz' /usr/bin/curl --verbose --location --output './sources.tar.gz' 'https://github.com/traefik/traefik/releases/download/v${{ steps.environment.outputs.version }}/traefik_v${{ steps.environment.outputs.version }}_linux_${{ matrix.architecture }}.tar.gz'
- name: Traefik [Extract] - name: Traefik [Extract]
if: steps.cache-traefik.outputs.cache-hit != 'true' if: steps.cache-traefik.outputs.cache-hit != 'true'
run: | run: |
@@ -68,11 +68,12 @@ jobs:
/usr/bin/chmod --verbose '0755' './traefik/DEBIAN/prerm' /usr/bin/chmod --verbose '0755' './traefik/DEBIAN/prerm'
/usr/bin/chmod --verbose '0755' './traefik/etc/init.d/traefik' /usr/bin/chmod --verbose '0755' './traefik/etc/init.d/traefik'
/usr/bin/touch './traefik/etc/traefik/traefik.env' /usr/bin/touch './traefik/etc/traefik/traefik.env'
/usr/bin/chmod --verbose '0640' './traefik/etc/traefik/traefik.env'
/usr/bin/chmod --verbose '0750' './traefik/etc/traefik/acme' /usr/bin/chmod --verbose '0750' './traefik/etc/traefik/acme'
/usr/bin/chmod --verbose '0750' './traefik/etc/traefik/acme/00-export' /usr/bin/chmod --verbose '0750' './traefik/etc/traefik/acme/00-export'
/usr/bin/chmod --verbose '0750' './traefik/etc/traefik/acme/01-changelog'
/usr/bin/chmod --verbose '0640' './traefik/etc/traefik/acme/acme.env' /usr/bin/chmod --verbose '0640' './traefik/etc/traefik/acme/acme.env'
/usr/bin/chmod --verbose '0640' './traefik/etc/traefik/providers.yml'
/usr/bin/chmod --verbose '0640' './traefik/etc/traefik/traefik.env'
/usr/bin/chmod --verbose '0640' './traefik/etc/traefik/traefik.yml'
/usr/bin/install --directory --verbose './traefik/usr/sbin' /usr/bin/install --directory --verbose './traefik/usr/sbin'
/usr/bin/mv --verbose './sources/traefik' './traefik/usr/sbin' /usr/bin/mv --verbose './sources/traefik' './traefik/usr/sbin'
- name: Debian Package [Generate] - name: Debian Package [Generate]
-1
View File
@@ -2,5 +2,4 @@
/etc/traefik/traefik.env /etc/traefik/traefik.env
/etc/traefik/traefik.yml /etc/traefik/traefik.yml
/etc/traefik/acme/00-export /etc/traefik/acme/00-export
/etc/traefik/acme/01-changelog
/etc/traefik/acme/acme.env /etc/traefik/acme/acme.env
+1 -1
View File
@@ -2,7 +2,7 @@ Package: traefik
Version: Version:
Architecture: Architecture:
Installed-Size: Installed-Size:
Depends: jq Depends: jq, openssl, ssl-cert
Priority: optional Priority: optional
Section: misc Section: misc
Homepage: http://www.privlab.it Homepage: http://www.privlab.it
+5 -1
View File
@@ -37,7 +37,11 @@ case "${1}" in
/usr/bin/install --directory --group='traefik' --mode='750' --owner='traefik' '/var/lib/traefik' /usr/bin/install --directory --group='traefik' --mode='750' --owner='traefik' '/var/lib/traefik'
/usr/bin/install --directory --group='traefik' --mode='750' --owner='traefik' '/var/log/traefik' /usr/bin/install --directory --group='traefik' --mode='750' --owner='traefik' '/var/log/traefik'
/usr/bin/install --directory --group='traefik' --mode='750' --owner='traefik' '/var/logrotate/traefik' /usr/bin/install --directory --group='traefik' --mode='750' --owner='traefik' '/var/logrotate/traefik'
/usr/bin/chown --quiet --recursive 'traefik' '/etc/traefik' /usr/bin/chown --quiet 'traefik' \
'/etc/traefik' \
'/etc/traefik/providers.yml' \
'/etc/traefik/traefik.env' \
'/etc/traefik/traefik.yml'
if [ -x '/usr/bin/deb-systemd-invoke' ]; then if [ -x '/usr/bin/deb-systemd-invoke' ]; then
/usr/bin/systemctl --system daemon-reload > '/dev/null' || true /usr/bin/systemctl --system daemon-reload > '/dev/null' || true
if [ -n "${2}" ]; then if [ -n "${2}" ]; then
+31 -27
View File
@@ -24,8 +24,27 @@ set -o pipefail
### ###
source '/etc/traefik/acme/acme.env' source '/etc/traefik/acme/acme.env'
ACME_STORAGE="${ACME_STORAGE:='/var/lib/traefik/acme'}"
ACME_DATABASE="${ACME_DATABASE:='/var/lib/traefik/acme.json'}" ACME_DATABASE="${ACME_DATABASE:='/var/lib/traefik/acme.json'}"
ACME_STORAGE="${ACME_STORAGE:='/etc/ssl/traefik'}"
###
#
# Function Section
#
###
function export () {
local PREFIX="${1}"
/usr/bin/echo "${CERTIFICATE}" | \
/usr/bin/base64 --decode > "${ACME_STORAGE}/${DOMAIN}/root.${PREFIX}.crt"
/usr/bin/chmod '0440' "${ACME_STORAGE}/${DOMAIN}/root.${PREFIX}.crt"
/usr/bin/chown 'root':'ssl-cert' "${ACME_STORAGE}/${DOMAIN}/root.${PREFIX}.crt"
/usr/bin/echo "${KEY}" | \
/usr/bin/base64 --decode > "${ACME_STORAGE}/${DOMAIN}/root.${PREFIX}.key"
/usr/bin/chmod '0440' "${ACME_STORAGE}/${DOMAIN}/root.${PREFIX}.key"
/usr/bin/chown 'root':'ssl-cert' "${ACME_STORAGE}/${DOMAIN}/root.${PREFIX}.key"
}
### ###
@@ -34,50 +53,35 @@ ACME_DATABASE="${ACME_DATABASE:='/var/lib/traefik/acme.json'}"
# #
### ###
if [[ "${EUID}" -ne '0' && "${USER}" != 'traefik' ]]; then if [[ "${EUID}" -ne '0' ]]; then
/usr/bin/echo -e 'Error: Permission Denied' /usr/bin/echo -e 'Error: Permission Denied'
exit 1 exit 1
fi fi
if [[ -d "${ACME_STORAGE}" ]]; then if [[ -d "${ACME_STORAGE}" ]]; then
/usr/bin/rm --force --recursive "${ACME_STORAGE}" /usr/bin/rm --force --recursive "${ACME_STORAGE}"
else
/usr/bin/install --directory --group='ssl-cert' --mode='2750' --owner='root' "${ACME_STORAGE}"
fi fi
/usr/bin/install --directory --group='traefik' --mode='0700' --owner='traefik' "${ACME_STORAGE}"
for RESOLVER in $(/usr/bin/jq --raw-output --exit-status 'keys[]' "${ACME_DATABASE}"); do for RESOLVER in $(/usr/bin/jq --raw-output --exit-status 'keys[]' "${ACME_DATABASE}"); do
ACCOUNT=$(/usr/bin/jq --raw-output --arg resolver "${RESOLVER}" --exit-status '.[$resolver].Account.PrivateKey' "${ACME_DATABASE}") ACCOUNT=$(/usr/bin/jq --raw-output --arg resolver "${RESOLVER}" --exit-status '.[$resolver].Account.PrivateKey' "${ACME_DATABASE}")
/usr/bin/install --directory --group='traefik' --mode='0700' --owner='traefik' "${ACME_STORAGE}/.${RESOLVER}" /usr/bin/install --directory --group='root' --mode='0700' --owner='root' "${ACME_STORAGE}/.acme"
/usr/bin/install --directory --group='root' --mode='0700' --owner='root' "${ACME_STORAGE}/.acme/${RESOLVER}"
/usr/bin/echo -e "-----BEGIN RSA PRIVATE KEY-----\n${ACCOUNT}\n-----END RSA PRIVATE KEY-----" | \ /usr/bin/echo -e "-----BEGIN RSA PRIVATE KEY-----\n${ACCOUNT}\n-----END RSA PRIVATE KEY-----" | \
/usr/bin/openssl 'rsa' -inform 'pem' -out "${ACME_STORAGE}/.${RESOLVER}/account.key" &> '/dev/null' /usr/bin/openssl 'rsa' -inform 'pem' -out "${ACME_STORAGE}/.acme/${RESOLVER}/account.key" &> '/dev/null'
/usr/bin/chmod '0400' "${ACME_STORAGE}/.${RESOLVER}/account.key" /usr/bin/chmod '0400' "${ACME_STORAGE}/.acme/${RESOLVER}/account.key"
/usr/bin/chown 'traefik':'traefik' "${ACME_STORAGE}/.${RESOLVER}/account.key"
for DOMAIN in $(/usr/bin/jq --raw-output --arg resolver "${RESOLVER}" --exit-status '.[$resolver].Certificates[].domain.main' "${ACME_DATABASE}"); do for DOMAIN in $(/usr/bin/jq --raw-output --arg resolver "${RESOLVER}" --exit-status '.[$resolver].Certificates[].domain.main' "${ACME_DATABASE}"); do
CERTIFICATE=$(/usr/bin/jq --raw-output --arg resolver "${RESOLVER}" --arg domain "${DOMAIN}" --exit-status '.[$resolver].Certificates[] | select (.domain.main == $domain ) | .certificate' "${ACME_DATABASE}") CERTIFICATE=$(/usr/bin/jq --raw-output --arg resolver "${RESOLVER}" --arg domain "${DOMAIN}" --exit-status '.[$resolver].Certificates[] | select (.domain.main == $domain ) | .certificate' "${ACME_DATABASE}")
KEY=$(/usr/bin/jq --raw-output --arg resolver "${RESOLVER}" --arg domain "${DOMAIN}" --exit-status '.[$resolver].Certificates[] | select (.domain.main == $domain ) | .key' "${ACME_DATABASE}") KEY=$(/usr/bin/jq --raw-output --arg resolver "${RESOLVER}" --arg domain "${DOMAIN}" --exit-status '.[$resolver].Certificates[] | select (.domain.main == $domain ) | .key' "${ACME_DATABASE}")
/usr/bin/install --directory --group='traefik' --mode='0700' --owner='traefik' "${ACME_STORAGE}/${DOMAIN}" /usr/bin/install --directory --group='ssl-cert' --mode='2750' --owner='root' "${ACME_STORAGE}/${DOMAIN}"
case "${RESOLVER}" in case "${RESOLVER}" in
*rsa*) *rsa*)
/usr/bin/install --directory --group='traefik' --mode='0700' --owner='traefik' "${ACME_STORAGE}/${DOMAIN}/rsa" export 'rsa'
/usr/bin/echo "${CERTIFICATE}" | \
/usr/bin/base64 --decode > "${ACME_STORAGE}/${DOMAIN}/rsa/root.crt"
/usr/bin/chmod '0400' "${ACME_STORAGE}/${DOMAIN}/rsa/root.crt"
/usr/bin/chown 'traefik':'traefik' "${ACME_STORAGE}/${DOMAIN}/rsa/root.crt"
/usr/bin/echo "${KEY}" | \
/usr/bin/base64 --decode > "${ACME_STORAGE}/${DOMAIN}/rsa/root.key"
/usr/bin/chmod '0400' "${ACME_STORAGE}/${DOMAIN}/rsa/root.key"
/usr/bin/chown 'traefik':'traefik' "${ACME_STORAGE}/${DOMAIN}/rsa/root.key"
;; ;;
*ecdsa*) *ecdsa*)
/usr/bin/install --directory --group='traefik' --mode='0700' --owner='traefik' "${ACME_STORAGE}/${DOMAIN}/ecc" export 'ecc'
/usr/bin/echo "${CERTIFICATE}" | \
/usr/bin/base64 --decode > "${ACME_STORAGE}/${DOMAIN}/ecc/root.crt"
/usr/bin/chmod '0400' "${ACME_STORAGE}/${DOMAIN}/ecc/root.crt"
/usr/bin/chown 'traefik':'traefik' "${ACME_STORAGE}/${DOMAIN}/ecc/root.crt"
/usr/bin/echo "${KEY}" | \
/usr/bin/base64 --decode > "${ACME_STORAGE}/${DOMAIN}/ecc/root.key"
/usr/bin/chmod '0400' "${ACME_STORAGE}/${DOMAIN}/ecc/root.key"
/usr/bin/chown 'traefik':'traefik' "${ACME_STORAGE}/${DOMAIN}/ecc/root.key"
;; ;;
esac esac
done done
-62
View File
@@ -1,62 +0,0 @@
#!/usr/bin/bash
#
# Generate changelog with hashsum from the exported certificates
#
###
#
# Options Section
#
###
set -e
set -u
set -o pipefail
###
#
# Variables Section
#
###
source '/etc/traefik/acme/acme.env'
ACME_STORAGE="${ACME_STORAGE:='/var/lib/traefik/acme'}"
ACME_STORAGE_HASH="${ACME_STORAGE_HASH:='/var/lib/traefik/acme.md5sum'}"
ACME_STORAGE_CHANGELOG="${ACME_STORAGE_CHANGELOG:='/var/lib/traefik/acme.log'}"
###
#
# Runtime Environment
#
###
if [[ "${EUID}" -ne '0' && "${USER}" != 'traefik' ]]; then
/usr/bin/echo -e 'Error: Permission Denied'
exit 1
fi
TMP_DIRECTORY=$(/usr/bin/mktemp --directory --quiet)
trap "/usr/bin/rm --force --recursive ${TMP_DIRECTORY}" EXIT
if [[ ! -f "${ACME_STORAGE_HASH}" ]]; then
/usr/bin/find "${ACME_STORAGE}" -type f -exec /usr/bin/md5sum {} + > "${ACME_STORAGE_HASH}"
/usr/bin/chmod 0600 "${ACME_STORAGE_HASH}"
/usr/bin/chown 'traefik':'traefik' "${ACME_STORAGE_HASH}"
/usr/bin/diff '/dev/null' "${ACME_STORAGE_HASH}" | /usr/bin/grep '^>' | /usr/bin/mawk '{print $3}' > "${ACME_STORAGE_CHANGELOG}" || \
/usr/bin/true
/usr/bin/chmod 0600 "${ACME_STORAGE_CHANGELOG}"
/usr/bin/chown 'traefik':'traefik' "${ACME_STORAGE_CHANGELOG}"
exit 0
fi
/usr/bin/find "${ACME_STORAGE}" -type f -exec /usr/bin/md5sum {} + > "${TMP_DIRECTORY}/traefik_acme.md5sum"
/usr/bin/diff "${ACME_STORAGE_HASH}" "${TMP_DIRECTORY}/traefik_acme.md5sum" | /usr/bin/grep '^>' | /usr/bin/mawk '{print $3}' > "${ACME_STORAGE_CHANGELOG}" || \
/usr/bin/true
/usr/bin/cat "${TMP_DIRECTORY}/traefik_acme.md5sum" > "${ACME_STORAGE_HASH}"
+2 -8
View File
@@ -10,14 +10,8 @@
# Default: '/var/lib/traefik/acme.json' # Default: '/var/lib/traefik/acme.json'
ACME_DATABASE='/var/lib/traefik/acme.json' ACME_DATABASE='/var/lib/traefik/acme.json'
# Default: '/var/lib/traefik/acme' # Default: '/etc/ssl/traefik'
ACME_STORAGE='/var/lib/traefik/acme' ACME_STORAGE='/etc/ssl/traefik'
# Default: '/var/lib/traefik/acme.md5sum'
ACME_STORAGE_HASH='/var/lib/traefik/acme.md5sum'
# Default: '/var/lib/traefik/acme.log'
ACME_STORAGE_CHANGELOG='/var/lib/traefik/acme.log'
################################ ################################
+1 -2
View File
@@ -5,8 +5,7 @@ accessLog:
# - - - - - API - - - - - # # - - - - - API - - - - - #
api: api: {}
disableDashboardAd: true
# - - - - - Certificates Resolver - - - - - # # - - - - - Certificates Resolver - - - - - #
@@ -8,8 +8,6 @@ Type=simple
EnvironmentFile=/etc/traefik/acme/acme.env EnvironmentFile=/etc/traefik/acme/acme.env
ExecStartPre=/usr/bin/sleep 3s ExecStartPre=/usr/bin/sleep 3s
ExecStart=/usr/bin/run-parts --exit-on-error --new-session /etc/traefik/acme ExecStart=/usr/bin/run-parts --exit-on-error --new-session /etc/traefik/acme
User=traefik
Group=traefik
PrivateDevices=true PrivateDevices=true
PrivateTmp=true PrivateTmp=true
ProtectSystem=strict ProtectSystem=strict