すべてのページをgitで管理
Giblogでは、すべてのファイルは静的なファイルとしてGitで管理できます。
Giblogは、動的にWebサイトを生成するCMSツールではなく、静的にWebサイトを生成するCMSツールです。
ブログ記事やJavaScriptやスタイルシートや画像ファイル、動画ファイルは、すべてファイルとして管理できます。
データベースに関する知識は、まったく必要がありません。
gitを使った記事の管理
Giblogでは、記事を作成し、ビルドコマンドを実行すると、ヘッダやフッタで囲まれた公開用のHTMLが生成されます。
# 記事を作成 templates/mypage.html # ビルド giblog build
ビルドされたファイルは公開ディレクトリ「public」以下に生成されます。
# 記事を作成 public/mypage.html
サイトの構成は以下のように構成します。Giblogでは「ビルドする前のリソースファイル」と「ビルド後の公開ファイル」は、別々のgitリポジトリで管理するようになっています。
mysite - .git - public - - .git
以下のコマンドを実行することで、上記の構成にすることができます。
# リソースファイルをgit管理 cd mysite git init # 公開ファイルをgit管理 cd public git init
ビルド前のファイルと、ビルド後のファイルの管理を別のGitリポジトリとして管理されているので、公開ファイルを単に「git clone」あるいは「git pull」することで、公開サーバーに配置することができます。
CSSやJavaScript、画像ファイル、動画ファイルなどの、ヘッダやフッタを結合する必要のないファイルは「templates/static」ディレクトリに配置することで、何の編集も行わずに、公開ディレクトリに配置することができます。
# 画像ファイル配置 templates/static/example.png # ビルド giblog build
# 記事を作成 public/example.png
Git登場以前は、CMSが記事の管理機能を持つことが必須でした。記事の管理のために独自のCMSの機能を覚えることがユーザーに求められました。
Giblogは、記事を作成する機能に特化し、記事の管理機能をGitにゆだねます。Giblogのユーザーは、優れた記事管理機能を持つGitの機能をフルに活用できます。
記事のグループ管理機能
Giglogは、記事の管理機能を、Gitにすべてゆだねています。
Gitが得意とするのは、プログラムの共同開発です。複数人で共同してプログラムを開発するという目的のために、Gitは活用されています。
このプログラムの共同管理機能を、記事のグループ管理機能として使うことができます。
GithubにWebサイトのリポジトリを作成して、共同記事の執筆者が、リポジトリをクローンします。
共同執筆者が、自分のローカル環境で、記事を書いて、プルリクエストを依頼します。
すると、メインの執筆者が、その記事の内容を、自分のリポジトリに取り込むことができます。
この記事の管理方法は、セキュリティという面を考えても非常に強固です。
動的にWebサイトを生成するCMSツールでは、記事のグループ管理を行うには、管理画面から、IDとパスワードを入力することを必要とします。
Giblogは、静的にWebサイトを生成するツールであり、共同管理をGitにゆだねるので、セキュリティ上のリスクが軽減されます。
ツールの側のセキュリティホールのために、Webサイトが書き換えられ、企業信用が棄損されるということが、起こらないのです。
gitによる手軽なデプロイ
本番環境へのデプロイは、公開ファイルを管理しているgitリポジトリを、プロダクション環境に「git clone」するだけです。
git clone 公開ファイルのgitリポジトリのURL
2回目以降のデプロイは、git pull origin masterをするだけです。
cd mysite git pull origin master
gitによる手軽なバックアップ
gitは分散管理のリポジトリシステムで、ファイルの変更履歴を、それぞれのリポジトリに完全に保存しています。
つまり、バックアップするには、gitのリポジトリをコピーすればよいだけということになります。
以下のような構成にしておけば、簡単に3重バックアップできます。
Github 開発用サーバー バックアップサーバー
開発用サーバーで、Webサイトを作成します。リソースリポジトリをGithubにpushします。
バックアップサーバーでcronを記述して、Githubから、定期的にgit pull origin masterするようにします。