A lightweight sidecar container for Traefik Proxy to issue Step-CA certs in Docker Swarm
561
A lightweight sidecar container for Traefik Proxy that automatically provisions and renews certificates from a Step CA server.
The primary use case for this sidecar is when using Traefik in a Docker Swarm environment. It is deployed as a single replica to any manager node and automatically discovers and configures TLS certificates for services that have the appropriate labels.
!!! note
This project is not affiliated with Smallstep nor Traefik.
It is a community project created by [JoKneeMo](https://github.com/jokneemo).
If you're using Step CA and Traefik in a production or enterprise environment, please consider purchasing a subscription from them.
Run alongside Traefik in your docker-compose.yml.
See docker-compose.yml for a more complete example.
services:
stepclient:
image: ghcr.io/jokneemo/stepclient:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./certificates:/certificates # Map to the same path used in Traefik
- ./traefik/conf/stepclient.yaml:/stepclient.yaml
environment:
STEP_CA_URL: https://stepca.example.com
STEP_FINGERPRINT: ...
STEP_PROVISIONER: jwk-provisioner
# Secrets (mapped via docker secrets or file mounts)
STEP_PROVISIONER_KEY: /run/secrets/stepca_key
STEP_PASSWORD_FILE: /run/secrets/stepca_password
| Environment Variable | Default | Description |
|---|---|---|
INTERVAL_SECONDS | 300 | Check interval in seconds (default 5 minutes) |
RENEW_BEFORE_HOURS | 480 | Renewal threshold in hours (default 20 days) |
ISSUE_IF_TLS_TRUE | true | Only issue if traefik.http.routers.x.tls=true |
IGNORE_IF_CERTRESOLVER_PRESENT | true | Ignore routers with existing certresolver |
NOT_AFTER | 1128h | Certificate lifetime duration (default 47 days) |
STEP_CA_URL | Step CA URL, e.g. https://stepca.example.com:9000 | |
STEP_FINGERPRINT | Step CA SHA256 Fingerprint | |
STEP_PROVISIONER | Step CA JWK Provisioner Name | |
STEP_PROVISIONER_KEY | /run/secrets/stepca_key | Path to provisioner key |
STEP_PASSWORD_FILE | /run/secrets/stepca_password | Path to password file |
OUTPUT_DIR | /certificates | Directory to write certificates, mount at the same path used in Traefik |
TRAEFIK_YAML_PATH | /stepclient.yaml | Path to Traefik dynamic configuration file |
pip install -e .
stepclient-traefik
Content type
Image
Digest
sha256:91674e730…
Size
46.9 MB
Last updated
8 months ago
docker pull jokneemo/stepclient-traefik