mirror of
https://github.com/SnowMB/traefik-certificate-extractor.git
synced 2025-01-31 12:19:31 +08:00
change all appearances of snowmb
This commit is contained in:
parent
c82fdb9c5c
commit
af2c1f09a6
10
README.md
10
README.md
@ -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 `,`.
|
||||||
|
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user