
Caddyは、ややニッチではあるものの、優れたウェブサーバーです。ウェブアプリケーションだけでなく、静的ページもスムーズに配信できます。Caddyの非常に便利な機能の一つは、Caddyfileと呼ばれるファイルから静的サイトを生成できることです。curlを使えば、このプロセスを自動化し、情報を投稿したり、シングルページアプリケーションを作成したりするための、独自の効率的なシステムを構築することも可能です。
Caddyのインストール手順については既に説明しましたが、今回はCaddyfileを使って単一のWebページをデプロイする方法をご紹介します。簡単で、可能性は無限大です。
参照: 採用キット: Python 開発者 (TechRepublic Premium)
必要なもの
Caddyにページをデプロイするには、Webサーバーを起動しておく必要があります。これで準備は完了です。それでは、最初のページをデプロイしてみましょう。
Caddyfileの作成方法
まず最初に、Caddyfileを作成します。CaddyにデプロイするページはJSONを使って作成することもできますが、最も簡単な方法はCaddyfileを作成することです。Caddyfileは非常にシンプルなフォーマットで、作成も簡単です。
まずは、定番の「Hello, world!」アプリケーションから始めましょう。Caddyサーバーにログインし、次のコマンドでファイルを作成します。
nano Caddyfile
そのファイルに、次の 2 行を追加します。
:2015
respond: "Hello, TechRepublic!"
これで完了です。ファイルを保存して閉じてください。
ここで、caddy コマンドを使用して、ファイルを JSON に変換します。
caddy adapt
上記のコマンドは、Caddyfile が保存されているディレクトリと同じディレクトリで実行する必要があります。Caddyfile を別の場所に保存している場合は、コマンドは以下のようになります。
caddy adapt --config /PATH/Caddyfile
PATH
Caddyfile への正確なパスはどこにありますか。
次に、次のコマンドでページをデプロイします。
caddy run
ポート2019が既に使用されているというエラーが表示された場合、修正は簡単です。Caddyfileを開いて編集し、ページの先頭に以下のコードを追加してください。
{
admin 0.0.0.0:2020
}
ウェブブラウザを開き、http://SERVER:2015
(SERVER
CaddyサーバーのIPアドレス)にアクセスします。ウェブページに以下の内容が表示されます。
Hello, TechRepublic!
もう 1 つのデバッグのヒント: Caddyfile のフォーマットに問題があるという警告を受け取った場合は、いつでも次のコマンドを実行して問題を解決できます。
caddy fmt
これにより、修正された書式が印刷されるので、それをコピーして Caddyfile に貼り付けることができます。
「Hello, world!」ページを作るよりも少し便利なことをしてみましょう。今回は、Caddyfileが格納されているディレクトリからファイルブラウザを作成します。これは、サーバー内からディレクトリへの即時アクセスを許可する必要がある場合に役立ちます。
次のようにして新しいファイルを作成します。
nano Caddyfile
以前のCaddyfileの内容がまだ残っている場合は削除してください。新しいファイルに以下の内容を追加してください。
{
admin 0.0.0.0:2020
}
:2015
file_server browse
ファイルを保存して閉じます。以下のコマンドでファイルを修正します。
caddy adapt
次に、次のコマンドを使用して、新しい Caddyfile で Caddy サーバーを実行します。
caddy run
ご覧のとおり (図 A )、Caddyfile が使用された現在の作業ディレクトリを提供しています。
図A

これをさらに便利にしてみましょう。ファイルサーバーが起動したので、少し工夫を加えた基本的なHTMLファイルを追加してみましょう。この新しいファイルは、ホスティングサーバーのIPアドレスを出力します。このHTMLファイルは、Caddyfileと同じディレクトリに作成します。その前に、Ctrl + Cキーを押してCaddyサーバーを停止し、次のコマンドでCaddyfileを開いてください。
nano Caddyfile
強力なCaddyテンプレートシステムを利用できるように、templatesディレクティブを追加します。ファイルは以下のようになります。
{
admin 0.0.0.0:2020
}
:2015
templates
file_server browse
ファイルを保存して閉じます。以下のコードでHTMLファイルを作成します。
nano caddy.html
そのファイルに次の内容を貼り付けます。
<!DOCTYPE html>
<html>
<head>
<title>TechRepublic Caddy How to</title>
</head>
<body>
What is my IP Address: {{.RemoteIP}
</body>
</html>
重要な行は次のとおりです。
What is my IP Address: {{.RemoteIP}}
この{{.RemoteIP}}
行は、ホスティングサーバーのIPアドレスをCaddyに出力します。ファイルを保存して閉じます。
次のコマンドでCaddyを再度実行します。
caddy run
Web ブラウザから caddy.html をクリックすると、次のような内容が印刷されたページが表示されます。
What is my IP Address: 192.168.1.62
他にも活用できるテンプレートはたくさんあります。詳しくは、Caddyテンプレートのドキュメントをご覧ください。
おめでとうございます。Caddyfile を使って単一の Web ページをデプロイできました。次回は、Caddyfile のデプロイを自動化する方法について説明します。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。