個人ブログ更新の手間を極限まで削ぎ落とした話
はじめに
既製のサービス
ブログを始めよう! となった際に、noteやはてなブログのような既製のブログサービスで行う場合には、始める手間もなく、本文を書き、画像をアップロードするだけでよい。
しかし、ブログのサービスが終了してしまうリスクを孕んでいる。
WordPressブログ
上記の問題を解決する際に使用する方法として挙げられるのが、自分でドメインとサーバを契約した、WordPressブログである。 筆者は使用したことが無いためわからないが、この場合も一度構築してしまえば、手間はないだろう。
しかし、一般的にWordPress対応のレンタルサーバはコストがかかる。 また、データベースを用いるため、クライアントに表示させるまでに時間がかかってしまう。
静的ブログ
もう一つの選択肢として、静的ブログが挙げられる。これは、WordPressで使用したデータベースを使わないため、レンタル代が安価で済む。
しかし、自らファイルの作成からアップロードまで全てをやらなければならず、とても手間がかかる。
筆者の場合
筆者は費用を抑え、高速な応答を求めたため、静的ブログを始めた。
ただし、本文の作成、本文以外の要素の作成、手動アップロード、動作確認といった手間が重なった。その結果、面倒となりブログが放置状態となっていた。
すべてのメリットを合成
本記事で紹介するのは、上記3つの方式の「いいとこ取り」をする方法である。具体的には、以下を同時に満たすことを目指す。
- 既製サービスのように、本文の作成・画像の配置と少々のアップロードのみで済ませる
- WordPressのように自分でドメイン・サーバを持ち、サービス終了のリスクをなくす
- 静的ブログのように、データベースを使わず安価に運用する
- SEOや閲覧者のために、DBを使用しない高速な応答と少ない通信量を実現する
- カテゴリ・タグといった分類の手間をなくし、本文に集中する
- 画像を記事ごとに整理し、置き場所に迷わないようにする
- 数式やコードも、書くだけで表示されるようにする
- 手動だったアップロードを自動化し、公開の手間をなくす
採用した構成
- いちいちHTMLやCSSを書きたくない -> 静的サイトジェネレータ Zola を使用
- サーバにコストを掛けたくない -> ロリポップのエコノミープラン(契約当時月額99円・36ヶ月契約)
- タグやカテゴリ分けは手間が掛かる -> タグ・カテゴリ分けの廃止
- アップロードに手間が掛かる -> GitHub Actionsを使用
- 変更を差し戻ししたい -> Gitを使用
- 画像の用意・加工が手間 -> テキスト中心にし、画像は記事フォルダに集約
- 数式を画像で作るのが面倒 -> KaTeXで数式を記述
なぜ静的サイトジェネレータ(Zola)?
- 手間を削ぎ落す
- HTML/CSSを毎回手書きしたくない
- Markdownで本文を書けばよい
- 費用削減(AI課金をゼロにする)
- HTMLを毎回AIに書かせる方法だと、月額料金が継続的にかかる
- AIに頼らずに、自力でMarkdownを書くだけでよい
- 仕組みを一度作れば、以降の更新にコストがかからない
- なぜZola?
- Rust製でビルドが高速
- 依存地獄がない
- Zolaが使えなくなっても、書いたMarkdown記事は他のツールで流用できる
なぜレンタルサーバ(ロリポップ)のエコノミープラン?
- 費用削減
- 契約当時には、月99円と圧倒的に安価。ドメインと合わせても月200円ほどで、財布に優しい
- 静的ファイルを置くだけで済むため、高速なDB・高速なSSD・大容量な通信帯域といった高性能なサーバは必要ない。
- リスク回避
- 独自ドメイン + 自前のサーバなので、無料ブログサービスのようなサービス終了のリスクがない
- プランの制約と回避策
- DBが使用不可 -> 静的サイトなので、そもそも必要ない
タグ分け・カテゴリ分けの廃止
- 筆者は、様々な分野に興味を持つため、カテゴリ乱立のリスクがあった
- 学問は相互に関連しあっており、明確に区切ることは不可 - 教職課程の履修の影響
- タグはどれも対等であるべきだが、実際には粒度や重要度がばらついてしまう - 一貫設計の手間
GitHub Actionsの採用
- 手間の削減
- 元々FileZillaというFTPソフトを使用していた。しかし、手動アップロードには手間がかかる
- Webページのビルドに使用していた
zola buildコマンドの実行の手間を削減
Gitの活用
- 連携
- GitHub Actionを使用するための下地
- AI対策
- 生成AI等により、文の意味が少しずつゆがめられてしまっても、ロールバック可能
テキスト中心のブログへ
- 静的サイト・Markdownブログで画像を使用する場合に、埋め込みに手間がかかる
- 画像はあくまでサラダであって、主菜ではない
- 装飾目的では使用しない。必要な場面でのみ使用する。
- クライアントの通信量削減
KaTeXで数式を記述
- 前述のとおり、画像は手間がかかる
- TeXの記法に慣れ親しんでいる
- インラインで書ける
- 画像を使用しないことで、通信量削減
実際の更新の流れ
Before(放置していたとき)
- ローカルでMarkdownの記事を書く
zola serveコマンドで、ローカルサーバ起動- ブラウザで
127.0.0.1:1111にアクセスし、動作確認 zola buildコマンドを実行し、ローカルでビルド- FileZillaを用いて、サーバのファイルを手動で全て削除
- FileZillaを用いて、ビルドしてできたファイルを手動ですべてアップロード
After(執筆時現在)
- ローカルでMarkdownの記事を書く
- 公開してよければ、
draft = trueを外す git add ./git commit/git pushの3コマンドを実行
- 以降は、GitHub Actionsが自動でビルド・デプロイを行う
- 書いてpushするだけで公開が完了
削れた手間
- 手動でのビルド実行が不要に
- FTPソフトの操作が不要に
- 本番環境での表示確認が不要に(ローカル確認だけで済む)
まとめ
- 達成できたこと
- 既製のブログサービスのような手軽さ -> 本文を書いてpushするだけ
- WordPressブログのような永続性 -> 自前のドメイン・サーバを用いることで、サービス終了のリスクをゼロに
- 静的ブログの安さ・速さ -> 月額99円(当時)、DBを使用しない、軽さを実現した
- 分類・画像・公開の手間 -> めんどくさいところは削除、自動化を行った
- 結果
- 本文を書いて、ちょっとコマンドを打つだけで簡単にブログを更新
- 既製サービス程の手軽さで、自前のブログを利用
- 注意点
- 手軽なのはあくまで「運用面」の話。構築の手間は重い
- 仕組みを作れば後は楽 が好きな人以外にはおすすめできない
- 同様の悩みを持つ人へ
- ブログを更新できないのは、自分ではなく仕組みが悪い
- 完璧を目指さずに、面倒な部分を一つ一つ消していく