Caddy is restarting

1. Caddy version (caddy version):

caddy:command not found

2. How I run Caddy:

docker compose:

 caddy:
    image: caddy:2.4.0
    restart: unless-stopped
    ports:
      - 80:80
      - 443:443
    volumes:
      - /home/mike/docker/caddy/Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
volumes:
  caddy_data:
  caddy_config:

a. System environment:

 uname -a
Linux ubuntumedia 5.4.0-72-generic #80-Ubuntu SMP Mon Apr 12 17:35:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

b. Command:

docker-compose up -d

c. Service/unit/compose file:

version: "3.7"
services:
##########SABNZBD###############################
  sabnzbd:
    image: linuxserver/sabnzbd
    container_name: sabnzbd
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
      - UMASK=002
    volumes:
      - /home/mike/docker/sabnzbd:/config
      - /home/media/data/usenet:/downloads
    ports:
      - 8080:8080
      - 9090:9090
    restart: unless-stopped
 ##########JELLYFIN##############################
  jellyfin:
    container_name: jellyfin
    image: linuxserver/jellyfin
    ports:
     - 8096:8096
    environment:
     - PUID=1000
     - GUID=1000
     - TZ=America/New_York
    volumes:
     - /home/mike/docker/jellyfin:/config
     - /home/media:/media
    restart: unless-stopped
    devices:
      # VAAPI Devices
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card0:/dev/dri/card0
##########RADARR#################################
  radarr:
    image: linuxserver/radarr
    container_name: radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
      - UMASK=002
    depends_on:
      - sabnzbd
    volumes:
      - /home/mike/docker/radarr:/config
      - /home/media/movies:/movies
      - /home/media/data/usenet:/downloads
    ports:
      - 7878:7878
    restart: unless-stopped
##########SONARR################################
  sonarr:
    image: linuxserver/sonarr
    container_name: sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
      - UMASK=002
    depends_on:
      - sabnzbd
    volumes:
      - /home/mike/docker/sonarr:/config
      - /home/media/shows:/tv
      - /home/media/data/usenet:/downloads
    ports:
      - 8989:8989
    restart: unless-stopped
##########OMBI##################################
  ombi:
    image: linuxserver/ombi
    container_name: ombi
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    volumes:
      - /home/mike/docker/ombi:/config
    ports:
      - 3579:3579
    restart: unless-stopped

############CADDY###############################
  caddy:
    image: caddy:2.4.0
    restart: unless-stopped
    ports:
      - 80:80
      - 443:443
    volumes:
      - /home/mike/docker/caddy/Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
volumes:
  caddy_data:
  caddy_config:

d. My complete Caddyfile or JSON config:

ombi.digitalwashu.net{
reverse_proxy 192.168.1.10:3579
}
jellyfin.digitalwashu.net{
reverse_proxy 192.168.1.10:8096
}

3. The problem I’m having:

I’m starting caddy via docker compose. I don’t see anything listening on 443 or 80 via “netstat -tulpn”. Come to discover Caddy seems to be restarting itself. see below.

CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS                         PORTS                                                                                  NAMES
34fb3c0b0832   caddy:2.4.0            "caddy run --config …"   7 minutes ago   Restarting (1) 2 seconds ago                                                                                          docker_caddy_1
1dd75493e895   linuxserver/radarr     "/init"                  24 hours ago    Up 24 hours                    0.0.0.0:7878->7878/tcp, :::7878->7878/tcp                                              radarr
5e60c28d2bd5   linuxserver/ombi       "/init"                  2 days ago      Up 24 hours                    0.0.0.0:3579->3579/tcp, :::3579->3579/tcp                                              ombi
40bc50e57f8d   linuxserver/jellyfin   "/init"                  2 days ago      Up 24 hours                    0.0.0.0:8096->8096/tcp, :::8096->8096/tcp, 8920/tcp                                    jellyfin
5f3bea616ac1   linuxserver/sonarr     "/init"                  3 days ago      Up 24 hours                    0.0.0.0:8989->8989/tcp, :::8989->8989/tcp                                              sonarr
4aa00f1c6385   linuxserver/sabnzbd    "/init"                  3 days ago      Up 24 hours                    0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   sabnzbd

4. Error messages and/or full log output:

 docker logs docker_caddy_1
{"level":"info","ts":1620772105.2475128,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772105.9857144,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772106.7414095,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772107.6775606,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772108.9979444,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772111.1251059,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772114.8487175,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772121.7703526,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772135.1207004,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772161.2734962,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772213.010025,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772273.5174444,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772334.0496645,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772394.5672925,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772455.08088,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772515.5892978,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772576.1126788,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'
{"level":"info","ts":1620772636.6482515,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
run: adapting config using caddyfile: subject does not qualify for certificate: 'jellyfin.digitalwashu.net{'

5. What I already tried:

I’ve tried using various versions for the caddy image to no avail. 2.4.0-alpine, etc. btw, can I use “caddy:latest”? does that work?

6. Links to relevant resources:

You need a space before the { in the Caddyfile. Spaces are significant.

YOU’RE MY HERO. I would never have figured that out - never. Works perfectly now, all is being reverse proxied. thank you!

Caddy should not be automatically restarted if the exit code is 1. (Doing so can lead to looping. Instead, you should fix the problem before restarting.)

Unfortunately @matt this is a dumb limitation of Docker where it isn’t possible to define a restart policy that checks specific error codes. You may remember like ~4-5 years ago when I tried to do this. The next best available is unless-stopped.

Edit: here it was

This topic was automatically closed after 30 days. New replies are no longer allowed.