Caddy 2を触ってみる
Caddyとは
HTTPSを簡単に自動的に使えるようにしてくれる唯一のweb server (2022/05/03)
証明書を自動更新してくれる機能があり、defaultではLet's Encryptを使用。
A(AAAA)レコードを設定したあとに、Caddyfileに下記を書いておけば、あとはよろしくやってくれるというすぐれもの。
※ちなみにGo製
example.com
respond "Hello, kohe!"
Amazon EC2 (Amazon Linux2) & Let's Encrypt
で試してみた
今回はblog.0x0-dev.co.uxというドメインを使って試してみる。
Aレコードを設定後、Caddyをinstall
公式の通りyumでcaddyを入れようとしたがうまく入らなかったため、
curl -sS https://webinstall.dev/caddy | bash
を実行後、Caddyfileを作成
Caddyfile
blog.0x0-dev.co.uk
respond "Hello, kohe!"
同一ディレクトリで
sudo ~/.local/bin/caddy run
を実行。
なんてお手軽にHTTPSが使えるんだろうか。
Docker compose
いろいろ調べて見るとCaddyをdocker compose で動かしているものが少なかったので、ミニマムで動かしてみたいと思う。
今回は "Hello World!!"と書かれたindex.htmlファイルをcaddyで表示させる。
compose.yml
services:
caddy:
image: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "2019:2019"
volumes:
- $PWD/Caddyfile:/etc/caddy/Caddyfile
- $PWD/site:/srv
- $PWD/caddy_data:/data
- $PWD/caddy_config:/config
Caddyfile
{
debug
auto_https off
}
:80 {
root * /srv
file_server
}
※httpsの管理が簡単にできることがcaddyの良さだが、今回はlocalのdockerでとりあえず動かすようにしたので、offにしている。
これだけの設定であとは docker compose upをしcurlを叩く動いていることが確認できる。
今回作ったものはこちら