Skip to content

Caddy

Instalacja

Założenia konfiguracyjne

  • Aplikacja (Compose + konfiguracja) znajduje się w /srv/docker/caddy.
  • Dane Caddy (certyfikaty, storage ACME) trzymamy w /srv/docker/data/caddy.
  • Logi są domyślnie dostępne przez docker logs.

Tworzenie katalogów

Tworzymy katalog aplikacji:

sudo mkdir -p /srv/docker/caddy
sudo chown -R "$USER:$USER" /srv/docker/caddy

Tworzymy katalog danych Caddy:

sudo mkdir -p /srv/docker/data/caddy/{data,config}
sudo chown -R "$USER:$USER" /srv/docker/data/caddy

Dostęp do sieci Docker

Wymagany dostęp do sieci proxy

Aby udostępnić aplikację publicznie, wymaga ona dostępu do zewnętrznej sieci Docker proxy.

Tworzenie sieci Docker


Konfiguracja Docker Compose

Przechodzimy do katalogu aplikacji:

cd /srv/docker/caddy

Tworzymy plik compose.yaml:

sudo micro compose.yaml

W pliku umieszczamy:

compose.yaml
services:
  caddy:
    image: caddy:2.10
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - /srv/docker/data/caddy/data:/data
      - /srv/docker/data/caddy/config:/config
    networks:
      - proxy

networks:
  proxy:
    external: true

Zapisujemy plik i wychodzimy z edytora.


Tworzenie pliku Caddyfile

Tworzymy plik Caddyfile:

sudo micro Caddyfile

Wklejamy przykładową zawartość:

Caddyfile
:80 {
  respond "Caddy działa w Dockerze 🚀"
}

Konfiguracja logowania Basic Auth

Jeśli chcemy wymusić logowanie do panelu, możemy dodać autoryzację Basic Auth:

  1. Generujemy hash hasła:
docker exec -it caddy caddy hash-password --plaintext "haslo"
  1. Wstawiamy do Caddyfile (przykład: login user):
Caddyfile
baserow.fulc.ro {
  basicauth /login {
    user $2a$14$WSTAW_TUTAJ_HASH
  }
  reverse_proxy baserow:80
}

Zapisujemy plik i wychodzimy z edytora.

Uruchomienie kontenera

Uruchamiamy Caddy:

docker compose up -d

Sprawdzamy, czy kontener działa:

docker ps | grep caddy

Test

Sprawdzamy działanie w przeglądarce:

http://138.199.151.222

Logi

Podgląd logów Caddy:

docker logs -f caddy