T time

プログラミングや電子工作、各種ガジェットに関するブログです。

Caddy

f:id:tatur0u:20150615195659j:plain

Caddy - The HTTP/2 Web Server Made for Humans

静的なコンテンツを簡単に公開するためのHTTPサーバを紹介します。

Caddyとは

Caddyは手元の静的コンテンツを簡単に公開するためのHTTPサーバです。

以下の特徴があります。

  • 指定のディレクトリ以下をその構造のまま公開する
  • MarkdownをHTMLに変換する

その他にもいろいろあります。

f:id:tatur0u:20150615211011p:plain

指定のディレクトリ以下をその構造のまま公開する

なんといってもCaddyの魅力はこの手軽さです。 特定のディレクトリに index.html を作成しコマンドを叩くだけで、ブラウザからアクセスできます。

$ cat > index.html 
<!DOCTYPE html>
<html>
<body>
<h1>Hello Caddy</h1>
</body>
</html>
^C
$ ls
index.html
$ caddy

ブラウザで http://localhost:2015 にアクセスしてみてください。
ポート番号が 2015 なのは公開した年だそうです。おしゃれ。

MarkdownをHTMLに変換する

Markdownを動的にHTMLに変換して見せてくれます。 Markdownでメモをとっている人は多いと思うので、それがそのままコンテンツになると便利です。

Markdownを見せるには設定ファイルが必要です。 caddyfile というファイル名で設定ファイルを作ります(ファイル名は何でもOKです)。

$ ls
index.html
$ cat > caddyfile
localhost:2015
markdown /md
^C
$ ls
caddyfile index.html

2行目の /md はMarkdownファイルを置く場所であり、見せ先でもあります。 /md にMarkdownファイルを作成します。

$ mkdir md
$ ls
caddyfile index.html md/
$ cat > md/index.md
# Hello Caddy

This is Markdown format.

* I
* have
* list
^C
$ ls md/
index.md

Caddyを実行する時に設定ファイルを読み込ませます。

$ ls
caddyfile index.html md/
$ caddy -conf="./caddyfile"

ブラウザで http://localhost:2015/md にアクセスしてみてください。

提供方式

Caddyはgo製のアプリケーションです。 以下のプラットフォーム向けにバイナリが提供されています。

導入方法

Ubuntuに導入する方法です。 バイナリをダウンロードしてZIPを解凍するだけなので、他のプラットフォームでも同じような手順で導入できるはずです。

インストール

以下を適当なファイルに保存して実行するとインストールできます。
2016-06-15日現在の最新は v0.7.1 でしたが、新しいバージョンがリリースされている場合は version 変数の値を変更してください。

#!/bin/bash
# アプリ名
app="caddy"
# バージョン
version="v0.7.1"
# インストールパス
libpath="/opt/${app}/${version}/"
# 実行ファイルのパス
binpath="/usr/local/bin/"

# インストール先のディレクトリを作成
sudo mkdir -p $libpath
# ダウンロード
cd $libpath
sudo wget "https://github.com/mholt/caddy/releases/download/${version}/caddy_linux_amd64.zip"
# ダウンロードしたファイルを解凍
sudo unzip caddy_linux_amd64.zip

# 実行ファイルへのシンボリックリンクを作成
cd $binpath
sudo ln -s "${libpath}/${app}"