tiredofit / docker-traefik-cloudflare-companion

Automatically Create CNAME records for containers served by Traefik

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Authentication Error

bigverm23 opened this issue · comments

I have verified the token to work via cloudfare-ddns docker container I use.

cf-companion:
container_name: cf-companion
image: tiredofit/traefik-cloudflare-companion:latest
restart: always
security_opt:
- no-new-privileges:true
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TIMEZONE=$TZ
- TRAEFIK_VERSION=2
#- CF_EMAIL=$CLOUDFLARE_EMAIL# Same as traefik
- CF_TOKEN=$CF_APITOKEN
#- CF_TOKEN=$CLOUDFLARE_API_KEY # Same as traefik
- TARGET_DOMAIN=$DOMAINNAME
- DOMAIN1=$DOMAINNAME
- DOMAIN1_ZONE_ID=$CF_ZONES # Copy from Cloudflare Overview page
- DOMAIN1_PROXIED=TRUE

CloudFlare.exceptions.CloudFlareAPIError: Authentication error
[INFO] ** [traefik-cloudflare-companion] Starting Traefik Cloudflare Companion
Traceback (most recent call last):
File "/usr/sbin/cloudflare-companion", line 276, in
init(doms)
File "/usr/sbin/cloudflare-companion", line 211, in init
check_container_t2(c, doms)
File "/usr/sbin/cloudflare-companion", line 176, in check_container_t2
point_domain(extracted_domains[0], doms)
File "/usr/sbin/cloudflare-companion", line 91, in point_domain
records = cf.zones.dns_records.get(dom['zone_id'], params={u'name': name})
File "/usr/lib/python3.8/site-packages/CloudFlare/cloudflare.py", line 672, in get
return self._base.call_with_auth('GET', self._parts,
File "/usr/lib/python3.8/site-packages/CloudFlare/cloudflare.py", line 126, in call_with_auth
return self._call(method, headers, parts,
File "/usr/lib/python3.8/site-packages/CloudFlare/cloudflare.py", line 502, in _call
raise CloudFlareAPIError(code, message)

Same problem here:

`
Traceback (most recent call last):

File "/usr/sbin/cloudflare-companion", line 276, in

init(doms)

File "/usr/sbin/cloudflare-companion", line 211, in init

check_container_t2(c, doms)

File "/usr/sbin/cloudflare-companion", line 176, in check_container_t2

point_domain(extracted_domains[0], doms)

File "/usr/sbin/cloudflare-companion", line 91, in point_domain

records = cf.zones.dns_records.get(dom['zone_id'], params={u'name': name})

File "/usr/lib/python3.8/site-packages/CloudFlare/cloudflare.py", line 672, in get

return self._base.call_with_auth('GET', self._parts,

File "/usr/lib/python3.8/site-packages/CloudFlare/cloudflare.py", line 126, in call_with_auth

return self._call(method, headers, parts,

File "/usr/lib/python3.8/site-packages/CloudFlare/cloudflare.py", line 502, in _call

raise CloudFlareAPIError(code, message)

`

When I looked at the code it looks like the get_docker_secret lib defaults to searching for files in /var/run/secrets whereas docker-compose says it mounts secrets at /run/secrets: https://docs.docker.com/compose/compose-file/compose-file-v3/

Likewise, I can verify my token works through curl, but I'm getting above mentioned error.
I've tried my secrets, secrets as defined in docs and just plain env variables, all with the same outcome.
I've rolled back to 6.6.2, then 6.5.1 and finally 6.4.0 but that didn't help either.

Has anyone had any success?

See #44 - Solution in last update. When using token for authentication, you must leave out the email.