hirojinblog
記事一覧へ

Astroで個人ブログを作り直した話。MarkdownとGitで手元に残す

GCPの支払い忘れで消えたブログをAstroへ作り直した記録です。記事をMarkdownとGitで管理する構成へ移しました。

web制作 AstroブログMarkdown静的サイト個人開発

ブログのデータが消えた

以前のブログはGCP上のWordPressで動かしていました。支払い通知を見落としたまま放置し、WordPress本体、データベース、画像、テーマ設定をまとめて失いました。

バックアップは残っていましたが、必要な時期の記事までは含まれていませんでした。サーバーを戻すより、残っているHTMLや手元のファイルから記事を拾い、今後は本文をリポジトリで管理する方が現実的だと判断しました。

Astroへ移した理由

今回必要だったのは、記事を書いて公開し、後から修正できる構成です。Astroでは記事をMarkdownとして置き、ページを静的HTMLへ出力できます。データベースや管理画面を常時動かさずに済むため、記事と画像をGitで追跡しやすくなります。

WordPressのような管理画面やプラグインが必要なサイトには別の選択肢がありますが、記事中心の構成では、ファイルを開いて変更履歴を確認できることが大きな利点でした。

現在の構成

src/
content/blog/ Markdown記事
pages/blog/ 記事詳細ページ
pages/category/ カテゴリ一覧
layouts/ 共通HTMLとメタ情報
public/
images/blog/ 記事画像

記事のfrontmatterにはタイトル、説明、公開日、カテゴリ、タグ、画像、参照URLを持たせています。公開記事は/blog/<slug>/を正規URLにし、古いルートは301で移動させます。

Wayback Machineから戻した記事

バックアップにない記事は、Wayback Machineの保存HTMLと古いURLの一覧を照合しました。保存されたHTMLから本文、タイトル、公開日、画像パスを取り出し、現在のMarkdown形式へ変換しています。

本文が残っていないページを推測で埋めることはせず、確認できた範囲だけを移しました。URLや画像だけ残っている場合は、記事本文とは分けて記録しています。

これからも手元に残すもの

記事本文と画像をリポジトリに置くと、サーバーを失っても復元元が残ります。

GCPの支払い通知を見落としたことが今回の原因だったので、技術的なバックアップと合わせて、請求通知も確認できる状態にしておきます。