Skip to main content

Watches for changes to traefik acme json files and extracts certificates to a specific folder

Project description

Overview

Github Tags PyPi Version Docker

This tool can be used to extract acme certificates (ex: lets encrupt) from traefik json files. The tool is design to watch for changes to a folder for any files that match a filespec (defaults to *,json however can be set to a specific file name) and when changes are detected it will process the file and extract any certificates that are in it to the specified output path

Installation

Python Script/Tool

Installation can be done via the python package installer tool pip

$ pip install traefik-certificate-exporter

Usage

usage: traefik-certificate-exporter [-h] [-c CONFIGFILE] [-d SETTINGS.DATAPATH] [-w] [-fs SETTINGS.FILESPEC] [-o SETTINGS.OUTPUTPATH] [--traefik-resolver-id SETTINGS.TRAEFIKRESOLVERID] [--flat] [--restart-container]
                                    [--dry-run] [-r] [--include-resolvername-in-outputpath] [-ll {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [-id [SETTINGS.DOMAINS.INCLUDE ...] | -xd [SETTINGS.DOMAINS.EXCLUDE ...]]

Extract traefik letsencrypt certificates.

options:
  -h, --help            show this help message and exit
  -c CONFIGFILE, --config-file CONFIGFILE
                        the path to watch for changes (default: config.yaml)
  -d SETTINGS.DATAPATH, --data-path SETTINGS.DATAPATH
                        the path that contains the acme json files
  -w, --watch-for-changes
                        If specified, monitor and watch for changes to acme files
  -fs SETTINGS.FILESPEC, --file-spec SETTINGS.FILESPEC
                        file that contains the traefik certificates
  -o SETTINGS.OUTPUTPATH, --output-path SETTINGS.OUTPUTPATH
                        The folder to exports the certificates in to
  --traefik-resolver-id SETTINGS.TRAEFIKRESOLVERID
                        Traefik certificate-resolver-id.
  --flat                If specified, all certificates into a single folder
  --restart-container   If specified, any container that are labeled with 'com.github.ravensorb.traefik-certificate-exporter.domain-restart=<DOMAIN>' will be restarted if the domain name of a generated certificates
                        matches the value of the lable. Multiple domains can be seperated by ','
  --dry-run             Don't write files and do not restart docker containers.
  -r, --run-at-start    Runs Export immediately on start (used with watch-for-changes).
  --include-resolvername-in-outputpath
                        Added the resolvername in the path used to export the certificates (ignored if flat is specified).
  -ll {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
                        Set the logging level (default: INFO)
  -id [SETTINGS.DOMAINS.INCLUDE ...], --include-domains [SETTINGS.DOMAINS.INCLUDE ...]
                        If specified, only certificates that match domains in this list will be extracted
  -xd [SETTINGS.DOMAINS.EXCLUDE ...], --exclude-domains [SETTINGS.DOMAINS.EXCLUDE ...]
                        If specified. certificates that match domains in this list will be ignored

Examples

Watch the letsencrypt folder for any changes to files matching acme-*.json and export any certs managed by the resolver called "resolver-http"

Script

Run it once and then exit

traefik-certificate-exporter \
                            -d /mnt/traefik-data/letsencrypt \
                            -o /mnt/certs \
                            -fs "acme-*.json" \
                            -r

Run it and watch for changes to the files

traefik-certificate-exporter \
                            -d /mnt/traefik-data/letsencrypt \
                            -o /mnt/certs \
                            -fs "acme-*.json" 
                            -w

Credits

This tool is HEAVLY influenced by the excellent work of DanielHuisman and Marc Brückner

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

traefik_certificate_exporter-0.1.3.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file traefik_certificate_exporter-0.1.3.tar.gz.

File metadata

  • Download URL: traefik_certificate_exporter-0.1.3.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.6 Linux/5.15.0-112-generic

File hashes

Hashes for traefik_certificate_exporter-0.1.3.tar.gz
Algorithm Hash digest
SHA256 398205e854d554096fd6ebe66e89557d3039182d303206775db6cc7ee55f5d03
MD5 aaf446500d39f06ead02e082bec4fdb1
BLAKE2b-256 e01d7fc5972de1bf0e0b60adf147629d7278cedf658c628c80bfb3b6bbe2b0a6

See more details on using hashes here.

File details

Details for the file traefik_certificate_exporter-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for traefik_certificate_exporter-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3f265e58ccfce525dd75189a552c90137af982b342065d4042b92d00c9998228
MD5 3cd39722937f7bead934fc4ce52546d8
BLAKE2b-256 e07f795471c74828125f5cd7cd5c9627ca6f55a7bd94576ffd5e920312d2bb8f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page