私、Ry2Xの個人ホームページのリポジトリです。
Astro と Tailwind CSS を使用して構築されており、Cloudflare Pages 上でホスティングされています。
ry2x.net で公開中のサイトのソースコードを管理しています。
- Astro による高速な描画: アイランドアーキテクチャを活用した静的サイトジェネレーター。
- Tailwind CSS: ユーティリティファーストなスタイリング(v4系を採用)。
- Cloudflare Pages: サイトのホスティングと、SSR/APIルート実行環境(
@astrojs/cloudflareアダプターを使用)。 - Markdown ベースのコンテンツ管理:
src/content/以下でプロジェクトやブログ記事を管理。 - コンタクトフォーム: Cloudflare Turnstile によるスパム対策と、Resend API を用いたメール送信機能。
- ダークモード対応: システム設定の自動検知およびヘッダーからの手動切り替え機能。
- Dev Container サポート:
.devcontainerを用いた一貫した開発環境の提供。
- Node.js (v20以上推奨)
- pnpm (
corepack enableで利用可能) - devContainerを使用する場合は、
docker/podmanとdevContainerのセットアップが必要です。
リポジトリをクローンし、依存関係をインストールします。
git clone https://github.com/ry2x/Ry2X_HomePage.git
cd Ry2X_HomePage
pnpm iローカルでの開発とAPIのテスト用に環境変数ファイルを作成します。
クライアントサイド環境変数:
.env.example をコピーして .env を作成します。
cp .env.example .env※ Turnstile のローカルテスト用サイトキー(1x000...)が設定されています。
サーバーサイド環境変数:
.dev.vars.example をコピーして .dev.vars を作成し、実際のAPIキー等を入力します。
cp .dev.vars.example .dev.varspnpm devブラウザでAstroから指定されたローカルURL(例: http://localhost:3000)にアクセスして、サイトを確認します。
最も簡単な方法は、VSCodeでリポジトリを開き、devContainerを起動することです。 このリポジトリをクローンした後、VSCodeで「Reopen in Container」を選択してください。 その後、 2と3の手順をdevContainer内のターミナルで実行してください。
/
├── .devcontainer/ # 開発コンテナ設定
├── .github/ # CI/CDワークフロー (GitHub Actions)
├── public/ # 静的アセット(画像、ファビコン、マニフェストなど)
├── src/
│ ├── assets/ # 処理される画像アセット
│ ├── components/ # UIコンポーネント (Header, Footer, SEO, DarkModeToggleなど)
│ ├── content/ # Markdownコンテンツ (blog, projects)
│ ├── layouts/ # 共通レイアウト (BaseLayout)
│ ├── lib/ # ユーティリティ関数 (コンテンツ取得など)
│ ├── pages/ # ルーティング (ページ、APIエンドポイント)
│ ├── styles/ # グローバルCSS (Tailwind設定)
│ └── types/ # TypeScript型定義
├── astro.config.mjs # Astroの設定ファイル
├── tailwind.config.js # Tailwind CSSの設定ファイル
└── wrangler.jsonc # Cloudflare Workers/Pagesの設定
- プロジェクト:
src/content/projects/にMarkdownファイルを追加。フロントマターでタイトル、説明、URL、使用技術などを指定。 - ブログ:
src/content/blog/にMarkdownファイルを追加。フロントマターでタイトル、日付、タグなどを指定。 ブログ記事やプロジェクトの追加方法、フロントマター(メタデータ)の記述ルールについてはsrc/content/README.mdを参照してください。
このプロジェクトは GitHub Actions を使用して、main ブランチに変更がプッシュされると自動的に Cloudflare Pages にデプロイされるよう設定されています。
.github/workflows/deploy.yml を確認してください。
デプロイには以下の GitHub Secrets が設定されている必要があります:
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_IDPUBLIC_TURNSTILE_SITE_KEYCONTACT_TO_EMAILCONTACT_FROM_EMAIL
© Ry2X. All rights reserved.