Caddy 2を触ってみる

Caddy 2を触ってみる

Caddyとは

Caddy 2 - The Ultimate Server with Automatic HTTPS
Caddy is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go

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を叩く動いていることが確認できる。

今回作ったものはこちら

GitHub - kooooohe/caddy-simple
Contribute to kooooohe/caddy-simple development by creating an account on GitHub.