1. My Caddy version (caddy version
):
I am using caddy/caddy:alpine
in docker. So that would be v2.0.0-beta.13 right now.
2. How I run Caddy:
a. System environment:
Digitalocean market place droplet Ubuntu Docker 5:19.03.1~3 on 18.04
c. Service/unit/compose file:
version: '3.7'
services:
db:
# specify container name to make it easier to run commands.
# for example, you could run docker exec -i postgres psql -U postgres postgres < schema.sql to run an SQL file against the Postgres database
container_name: bb_db
restart: always
image: couchdb:latest
env_file:
- ./.env
networks:
- network
expose:
- '5984'
- '4369'
- '9100'
ports:
- '5984:5984'
volumes:
- db_data:/opt/couchdb/data
caddy:
build:
context: ./caddy
container_name: bb_caddy
networks:
- network
depends_on:
- db
restart: always
# original image downgrades user but that seems not to work
# see: https://caddy.community/t/basic-docker-compose-setup-failing/6892/7?u=alexander_gabriel
user: root
ports:
- '80:80'
- '443:443'
env_file:
- ./.env
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile
- caddy_certs:/root/.local/share/caddy
- caddy_config:/root/.config/caddy
volumes:
db_data:
caddy_certs:
caddy_config:
networks:
network:
The dockerfile is:
FROM caddy/caddy:alpine
COPY /html /html
d. My complete Caddyfile or JSON config:
{
email alex.barbalex@gmail.com
}
evab.ch, www.evab.ch {
root * /html
encode gzip
file_server
}
api.evab.ch {
reverse_proxy * {
to bb_db:5984
header_down Access-Control-Allow-Origin *
}
}
3. The problem I’m having:
curl https://evab.ch
returns nothing.
curl -v https://evab.ch
returns:
root@pca:/mnt/c/Users/alexa# curl -v https://evab.ch
* Rebuilt URL to: https://evab.ch/
* Trying 134.209.247.100...
* TCP_NODELAY set
* Connected to evab.ch (134.209.247.100) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Unknown (8):
* TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Client hello (1):
* TLSv1.3 (OUT), TLS Unknown, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=evab.ch
* start date: Feb 25 10:57:42 2020 GMT
* expire date: May 25 10:57:42 2020 GMT
* subjectAltName: host "evab.ch" matched cert's "evab.ch"
* issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
* Using Stream ID: 1 (easy handle 0x7fffd27b47e0)
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
> GET / HTTP/2
> Host: evab.ch
> User-Agent: curl/7.58.0
> Accept: */*
>
* TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
< HTTP/2 404
< server: Caddy
< content-length: 0
< date: Fri, 28 Feb 2020 11:29:13 GMT
<
* Connection #0 to host evab.ch left intact
4. Error messages and/or full log output:
docker logs bb_caddy
reveals nothing.
5. What I already tried:
1. The db works fine. curl https://api.evab.ch/bb
returns:
root@pca:/mnt/c/Users/alexa# curl https://api.evab.ch/bb
{"db_name":"bb","purge_seq":"0-g1AAAAEzeJzLYWBg4MhgTmHgzcvPy09JdcjLz8gvLskBCjPlsQBJhgdA6j8QZCUy4FV3AKLuPiF1CyDq9hNS1wBRNx-3uqQEIJlUj9dtSQ4gNfH41SiA1NjjVZPIkCQPUZAFAN6AYvY","update_seq":"4868-g1AAAAFLeJzLYWBg4MhgTmHgzcvPy09JdcjLz8gvLskBCjMlMiTJ____PysJyNbAoSZJAUgm2cOUteFS5gBSFg9Tlo5LWQJIWT1MWTIOZXksQJKhAUgBVc4HK83Gq3QBROl-sNIIvEoPQJTeByuNw6v0AUQpxK3ZWQBcjWYS","sizes":{"file":4621904,"external":8014600,"active":4570121},"other":{"data_size":8014600},"doc_del_count":0,"doc_count":4868,"disk_size":4621904,"disk_format_version":7,"data_size":4570121,"compact_running":false,"cluster":{"q":8,"n":1,"w":1,"r":1},"instance_start_time":"0"}
2. I have a different project that serves files almost exactly same which works fine:
- project: GitHub - FNSKtZH/ae2: Eigenschaften von Flora, Fauna, Moosen und Lebensräumen: Sichten, exportieren, importieren
- backend: ae2/backend at master · FNSKtZH/ae2 · GitHub
- docker-compose: ae2/docker-compose.yml at master · FNSKtZH/ae2 · GitHub
- docker-file: ae2/Dockerfile at master · FNSKtZH/ae2 · GitHub
- caddy-file: ae2/Caddyfile at master · FNSKtZH/ae2 · GitHub
3. searched docs and this forum
6. Links to relevant resources:
Here is the project: https://github.com/barbalex/bb2/tree/master/docker