1. The problem I’m having:
Hello, I’m trying to host on the same VPS both some personal websites and Filemakerserver by Claris.
I’m using Docker for everything. I made a docker image of filemaker using this guide ( ClarisPKB ) and pulling the official caddy image from docker repo.
I can properly resolve, trough reverse proxy, to the main page, everything work; but when I try to connect to the admin page, it will not resolve.
2. Error messages and/or full log output:
Error from curl
curl -v vucr.app/admin-console/
* Trying 164.132.224.98:80...
* Connected to vucr.app (164.132.224.98) port 80 (#0)
> GET /admin-console/ HTTP/1.1
> Host: vucr.app
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 308 Permanent Redirect
< Connection: close
< Location: https://vucr.app/admin-console/
< Server: Caddy
< Date: Tue, 06 Aug 2024 15:57:27 GMT
< Content-Length: 0
From Caddy log
caddy | {"level":"debug","ts":1722960251.7090673,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"fms-dockercompose:80","duration":0.000305067,"request":{"remote_ip":"81.56.94.77","remote_port":"40963","client_ip":"81.56.94.77","proto":"HTTP/2.0","method":"GET","host":"vucr.app","uri":"/admin-console/","headers":{"X-Forwarded-Proto":["https"],"Sec-Gpc":["1"],"Sec-Fetch-Mode":["navigate"],"X-Forwarded-For":["81.56.94.77"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Sec-Fetch-Site":["none"],"Sec-Fetch-User":["?1"],"Accept-Language":["it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3"],"X-Forwarded-Host":["vucr.app"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8"],"Sec-Fetch-Dest":["document"],"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Priority":["u=0, i"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"vucr.app"}},"headers":{"Connection":["keep-alive"],"Location":["https://vucr.app:443/admin-console/"],"Access-Control-Allow-Origin":["fms-dockercompose"],"Content-Length":["138"],"Date":["Tue, 06 Aug 2024 16:04:11 GMT"],"Content-Type":["text/html"],"Access-Control-Allow-Credentials":["True"],"Access-Control-Allow-Headers":["Content-Type,Authorization"],"Server":["nginx"]},"status":302}
caddy | {"level":"debug","ts":1722960251.7502472,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"fms-dockercompose:80","total_upstreams":1}
caddy | {"level":"debug","ts":1722960251.7511933,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"fms-dockercompose:80","duration":0.000376467,"request":{"remote_ip":"81.56.94.77","remote_port":"40963","client_ip":"81.56.94.77","proto":"HTTP/2.0","method":"GET","host":"vucr.app","uri":"/admin-console/","headers":{"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"],"X-Forwarded-Host":["vucr.app"],"Sec-Fetch-Mode":["navigate"],"Priority":["u=0, i"],"Sec-Gpc":["1"],"Sec-Fetch-User":["?1"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Te":["trailers"],"X-Forwarded-Proto":["https"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8"],"Accept-Language":["it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3"],"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Site":["none"],"X-Forwarded-For":["81.56.94.77"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"vucr.app"}},"headers":{"Date":["Tue, 06 Aug 2024 16:04:11 GMT"],"Content-Type":["text/html"],"Content-Length":["138"],"Connection":["keep-alive"],"Location":["https://vucr.app:443/admin-console/"],"Server":["nginx"],"Access-Control-Allow-Origin":["fms-dockercompose"],"Access-Control-Allow-Credentials":["True"],"Access-Control-Allow-Headers":["Content-Type,Authorization"]},"status":302}
caddy | {"level":"debug","ts":1722960251.7885177,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"fms-dockercompose:80","total_upstreams":1}
caddy | {"level":"debug","ts":1722960251.7893164,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"fms-dockercompose:80","duration":0.000307265,"request":{"remote_ip":"81.56.94.77","remote_port":"40963","client_ip":"81.56.94.77","proto":"HTTP/2.0","method":"GET","host":"vucr.app","uri":"/admin-console/","headers":{"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8"],"Dnt":["1"],"Sec-Gpc":["1"],"Sec-Fetch-Site":["none"],"Sec-Fetch-Dest":["document"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"],"Sec-Fetch-User":["?1"],"X-Forwarded-Proto":["https"],"X-Forwarded-Host":["vucr.app"],"Upgrade-Insecure-Requests":["1"],"Accept-Language":["it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3"],"Te":["trailers"],"Sec-Fetch-Mode":["navigate"],"Priority":["u=0, i"],"Accept-Encoding":["gzip, deflate, br, zstd"],"X-Forwarded-For":["81.56.94.77"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"vucr.app"}},"headers":{"Content-Length":["138"],"Connection":["keep-alive"],"Access-Control-Allow-Credentials":["True"],"Server":["nginx"],"Content-Type":["text/html"],"Location":["https://vucr.app:443/admin-console/"],"Access-Control-Allow-Origin":["fms-dockercompose"],"Access-Control-Allow-Headers":["Content-Type,Authorization"],"Date":["Tue, 06 Aug 2024 16:04:11 GMT"]},"status":302}
caddy | {"level":"debug","ts":1722960251.8285227,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"fms-dockercompose:80","total_upstreams":1}
caddy | {"level":"debug","ts":1722960251.8294282,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"fms-dockercompose:80","duration":0.000297221,"request":{"remote_ip":"81.56.94.77","remote_port":"40963","client_ip":"81.56.94.77","proto":"HTTP/2.0","method":"GET","host":"vucr.app","uri":"/admin-console/","headers":{"X-Forwarded-For":["81.56.94.77"],"Upgrade-Insecure-Requests":["1"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Accept-Language":["it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3"],"Sec-Fetch-Site":["none"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8"],"Sec-Fetch-User":["?1"],"Priority":["u=0, i"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"],"X-Forwarded-Proto":["https"],"X-Forwarded-Host":["vucr.app"],"Sec-Gpc":["1"],"Te":["trailers"],"Dnt":["1"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Mode":["navigate"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"vucr.app"}},"headers":{"Access-Control-Allow-Credentials":["True"],"Access-Control-Allow-Headers":["Content-Type,Authorization"],"Date":["Tue, 06 Aug 2024 16:04:11 GMT"],"Content-Type":["text/html"],"Content-Length":["138"],"Connection":["keep-alive"],"Location":["https://vucr.app:443/admin-console/"],"Server":["nginx"],"Access-Control-Allow-Origin":["fms-dockercompose"]},"status":302}
caddy | {"level":"debug","ts":1722960251.8656907,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"fms-dockercompose:80","total_upstreams":1}
caddy | {"level":"debug","ts":1722960251.866608,"logger":"http.handlers.reverse_proxy","msg":"upstream roundtrip","upstream":"fms-dockercompose:80","duration":0.000382431,"request":{"remote_ip":"81.56.94.77","remote_port":"40963","client_ip":"81.56.94.77","proto":"HTTP/2.0","method":"GET","host":"vucr.app","uri":"/admin-console/","headers":{"Sec-Gpc":["1"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"],"Sec-Fetch-Dest":["document"],"X-Forwarded-For":["81.56.94.77"],"X-Forwarded-Host":["vucr.app"],"Sec-Fetch-Mode":["navigate"],"Te":["trailers"],"Accept-Language":["it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3"],"X-Forwarded-Proto":["https"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8"],"Dnt":["1"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Site":["none"],"Sec-Fetch-User":["?1"],"Priority":["u=0, i"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"vucr.app"}},"headers":{"Date":["Tue, 06 Aug 2024 16:04:11 GMT"],"Content-Length":["138"],"Connection":["keep-alive"],"Access-Control-Allow-Origin":["fms-dockercompose"],"Access-Control-Allow-Credentials":["True"],"Server":["nginx"],"Content-Type":["text/html"],"Location":["https://vucr.app:443/admin-console/"],"Access-Control-Allow-Headers":["Content-Type,Authorization"]},"status":302}
caddy | {"level":"debug","ts":1722960251.9106214,"logger":"http.handlers.reverse_proxy","msg":"selected upstream","dial":"fms-dockercompose:80","total_upstreams":1}
3. Caddy version:
v2.8.4 h1:q3pe0wpBj1OcHFZ3n/1nl4V4bxBrYoSoab7rL9BMYNk=
4. How I installed and ran Caddy:
I used this docker compose:
services:
caddy:
restart: unless-stopped
cap_add:
- NET_ADMIN
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- /home/ubuntu/CaddyFiles/Caddyfile:/etc/caddy/Caddyfile
- /home/ubuntu/CaddyFiles/data:/data
- /home/ubuntu/CaddyFiles/config:/config
- /home/ubuntu/CaddyFiles/site:/srv
depends_on:
- filemakerserver
image: caddy:latest
filemakerserver:
restart: unless-stopped
hostname: fms-dockercompose
container_name: fms-dockercompose
privileged: true
ports:
# - "80:80"
# - "443:443"
- "8080:80"
- "8443:443"
- "2399:2399"
- "5003:5003"
- "16001:16001"
volumes:
- /home/ubuntu/FileMakerFiles:/opt/FileMaker/FileMaker Server/Data
image: fmsdocker:final
a. System environment:
ubuntu 22.04
Docker version 27.1.1, build 6312585
b. Command:
See the docker compose gile
c. Service/unit/compose file:
services:
caddy:
restart: unless-stopped
cap_add:
- NET_ADMIN
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- /home/ubuntu/CaddyFiles/Caddyfile:/etc/caddy/Caddyfile
- /home/ubuntu/CaddyFiles/data:/data
- /home/ubuntu/CaddyFiles/config:/config
- /home/ubuntu/CaddyFiles/site:/srv
depends_on:
- filemakerserver
image: caddy:latest
filemakerserver:
restart: unless-stopped
hostname: fms-dockercompose
container_name: fms-dockercompose
privileged: true
ports:
# - "80:80"
# - "443:443"
- "8080:80"
- "8443:443"
- "2399:2399"
- "5003:5003"
- "16001:16001"
volumes:
- /home/ubuntu/FileMakerFiles:/opt/FileMaker/FileMaker Server/Data
image: fmsdocker:final
d. My complete Caddy config:
{
debug
}
vucr.app {
reverse_proxy fms-dockercompose:80
}
personal_site_name.com {
#site folder
}
5. Links to relevant resources:
Official guide to run filemaker in docker ClarisPKB