change all appearances of snowmb

This commit is contained in:
Snowyo 2018-08-05 19:33:20 +02:00
parent c82fdb9c5c
commit af2c1f09a6
2 changed files with 7 additions and 9 deletions

View File

@ -1,12 +1,10 @@
# Traefik Certificate Extractor # Traefik Certificate Extractor
Forked from [DanielHuisman/traefik-certificate-extractor](https://github.com/DanielHuisman/traefik-certificate-extractor)
Tool to extract Let's Encrypt certificates from Traefik's ACME storage file. Can automatically restart containers using the docker API. Tool to extract Let's Encrypt certificates from Traefik's ACME storage file. Can automatically restart containers using the docker API.
## Installation ## Installation
```shell ```shell
git clone https://github.com/snowmb/traefik-certificate-extractor git clone https://github.com/DanielHuisman/traefik-certificate-extractor
cd traefik-certificate-extractor cd traefik-certificate-extractor
``` ```
@ -36,17 +34,17 @@ optional arguments:
Default file is `./data/acme.json`. The output directories are `./certs` and `./certs_flat`. Default file is `./data/acme.json`. The output directories are `./certs` and `./certs_flat`.
## Docker ## Docker
There is a Docker image available for this tool: [snowmb/traefik-certificate-extractor](https://hub.docker.com/r/snowmb/traefik-certificate-extractor/). There is a Docker image available for this tool: [DanielHuisman/traefik-certificate-extractor](https://hub.docker.com/r/DanielHuisman/traefik-certificate-extractor/).
Example run: Example run:
```shell ```shell
docker run --name extractor -d \ docker run --name extractor -d \
-v /opt/traefik:/app/data \ -v /opt/traefik:/app/data \
-v ./certs:/app/certs \ -v ./certs:/app/certs \
-v /var/run/docker.socket:/var/run/docker.socket \ -v /var/run/docker.socket:/var/run/docker.socket \
snowmb/traefik-certificate-extractor DanielHuisman/traefik-certificate-extractor
``` ```
Mount the whole folder containing the traefik certificate file (`acme.json`) as `/app/data`. The extracted certificates are going to be written to `/app/certs`. Mount the whole folder containing the traefik certificate file (`acme.json`) as `/app/data`. The extracted certificates are going to be written to `/app/certs`.
The docker socket is used to find any containers with this label: `com.github.SnowMB.traefik-certificate-extractor.restart_domain=<DOMAIN>`. The docker socket is used to find any containers with this label: `com.github.DanielHuisman.traefik-certificate-extractor.restart_domain=<DOMAIN>`.
If the domains of an extracted certificate and the restart domain matches, the container is restarted. Multiple domains can be given seperated by `,`. If the domains of an extracted certificate and the restart domain matches, the container is restarted. Multiple domains can be given seperated by `,`.

View File

@ -76,9 +76,9 @@ class PathType(object):
def restartContainerWithDomains(domains): def restartContainerWithDomains(domains):
client = docker.from_env() client = docker.from_env()
container = client.containers.list(filters = {"label" : "com.github.SnowMB.traefik-certificate-extractor.restart_domain"}) container = client.containers.list(filters = {"label" : "com.github.DanielHuisman.traefik-certificate-extractor.restart_domain"})
for c in container: for c in container:
restartDomains = str.split(c.labels["com.github.SnowMB.traefik-certificate-extractor.restart_domain"], ',') restartDomains = str.split(c.labels["com.github.DanielHuisman.traefik-certificate-extractor.restart_domain"], ',')
if not set(domains).isdisjoint(restartDomains): if not set(domains).isdisjoint(restartDomains):
print('restarting container ' + c.id) print('restarting container ' + c.id)
if not args.dry: if not args.dry:
@ -217,7 +217,7 @@ if __name__ == "__main__":
parser.add_argument('-f', '--flat', action='store_true', parser.add_argument('-f', '--flat', action='store_true',
help='outputs all certificates into one folder') help='outputs all certificates into one folder')
parser.add_argument('-r', '--restart_container', action='store_true', parser.add_argument('-r', '--restart_container', action='store_true',
help="uses the docker API to restart containers that are labeled with 'com.github.SnowMB.traefik-certificate-extractor.restart_domain=<DOMAIN>' if the domain name of a generated certificates matches. Multiple domains can be seperated by ','") help="uses the docker API to restart containers that are labeled with 'com.github.DanielHuisman.traefik-certificate-extractor.restart_domain=<DOMAIN>' if the domain name of a generated certificates matches. Multiple domains can be seperated by ','")
parser.add_argument('--dry-run', action='store_true', dest='dry', parser.add_argument('--dry-run', action='store_true', dest='dry',
help="Don't write files and do not start docker containers.") help="Don't write files and do not start docker containers.")
group = parser.add_mutually_exclusive_group() group = parser.add_mutually_exclusive_group()