1. Caddy version (caddy version
): v2.3.0
2. How I run Caddy:
a. System environment:
Ubuntu 20.04 LTS x64
Intel Xeon 2 GHz
Docker version 19.03.8, build afacb8b7f0
docker-compose version 1.26.2, build eefe0d31
b. Command:
export CADDY_DATA_DIR=/var/containerdata/caddy
export CDN_DATA_DIR=/var/containerdata/cdn
docker-compose up -d
c. docker-compose file:
---
version: "3.8"
services:
caddy:
image: "lucaslorentz/caddy-docker-proxy:2.3.4-alpine"
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "$CADDY_DATA_DIR:/logs"
- "$CDN_DATA_DIR:/var/www/cdn"
- "./Caddyfile:/etc/caddy/Caddyfile"
networks:
- my-network
whoami:
image: "containous/whoami"
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
labels:
caddy: mydomain.com
caddy.reverse_proxy: "{{upstreams 80}}"
networks:
- my-network
networks:
my-network:
external: true
name: my-network
d. My complete Caddyfile or JSON config:
cdn.mydomain.com{
root * /var/www/cdn
file_server browse
}
mydomain.com{
basicauth /* {
admin JDJhJDE0JG5MRkxxVadfsfdskdFSk16elZDOFNTakZiRFZmNkN5V0lFTWFZZXlH
}
}
3. The problem I’m having:
The docker services are accessible from the internet. I conclude that only the service labels seem required, no further action in the Caddyfile.
But there are very few tutorials or docs around how to combine some features, middleware etc.
Precisely don’t know how to set up basic auth.
4. Error messages and/or full log output:
Nothing.
5. What I already tried:
I’ve also looked at some example from the custom docker github repo.
There are some labels at the last service. Where are those labels documented? I guess I have to do it there and not in the Caddyfile?
I’ve added the same host
addresses from the docker services to the Caddyfile and hoped I could just add basicauth there. But I never had an auth prompt.
I’ve also tried to add a label to the docker service:
caddy.basicauth: "/* {admin JDJhJDE0JG5MRkxxVadfsfdskdFSk16elZDOFNTakZiRFZmNkN5V0lFTWFZZXlH}"
Which leads to the error (the generated Caddyfile looks perfectly valid in my opinion?!)
Removing invalid block: parsing caddyfile tokens for 'basicauth': Caddyfile:2 - Error during parsing: unrecognized hash algorithm: {admin
whoami.mydomain.com {
basicauth /* {admin JDJhJDE0JG5MRkxxVadfsfdskdFSk16elZDOFNTakZiRFZmNkN5V0lFTWFZZXlHX}
reverse_proxy
}
By the way:
I am trying to switch over from traefik v2 and it was said that caddy2 is great for docker. Are there docker examples? Is there some kind of dashboard as in traefik?