筑波大学宇宙技術プロジェクト STEP の公式 Web サイトです。
ロケットと模擬人工衛星 CanSat の活動、製作した機体、ニュースを掲載しています。
- Astro:静的サイトの生成
- Tailwind CSS:スタイルの構築
- Bun:依存関係の管理とスクリプトの実行
- microCMS:ニュースの管理
- Cloudflare Workers:プレビュー環境
- Bun
- microCMS の API エンドポイント
- microCMS の API キー
ニュースを含むページを開発・ビルドするには、microCMS の認証情報が必要です。
依存関係をインストールします。
bun installプロジェクトルートの .env に microCMS の認証情報を設定します。
MICROCMS_ENDPOINT=https://example.microcms.io/api/v1
MICROCMS_API_KEY=your-api-key.env は Git の管理対象外です。
開発サーバーを起動します。
bun run dev起動後に http://localhost:4321 を開きます。
| コマンド | 用途 |
|---|---|
bun run dev |
開発サーバーを起動する |
bun run build |
通常の本番ビルドを dist/ に生成する |
bun run build:prod |
/~step/ 配下で公開する本番ビルドを生成する |
bun run preview |
生成済みの本番ビルドをローカルで確認する |
bun run lint |
ESLint を実行する |
bun run format |
Prettier でコードを整形する |
本番ビルドを確認する場合は、次の順に実行します。
bun run build
bun run preview.
├── public/ # そのまま配信する静的ファイル
├── src/
│ ├── assets/ # ページで使う画像
│ ├── components/ # 共通コンポーネント
│ ├── content/about/ # About ページのデータ
│ ├── layouts/ # 共通レイアウト
│ ├── lib/microcms.ts # microCMS との通信
│ └── pages/ # ページと URL の定義
├── astro.config.mjs # Astro の設定
├── package.json # スクリプトと依存関係
└── wrangler.jsonc # Cloudflare Workers の設定
About ページの代表挨拶とメンバー情報は src/content/about/data.yaml で管理します。
ロケットと CanSat の紹介文は、それぞれ src/pages/rocket.astro と src/pages/cansat.astro に定義しています。
名刺の QR コードなどから開くリンク集は src/pages/links.astro(/links)です。ヘッダーのメニューには載せていません。
ニュースは microCMS の news API からビルド時に取得します。
取得したニュース画像は public/cms-images/ にキャッシュされますが、このディレクトリは Git の管理対象外です。
GitHub Actions でプレビュー環境と本番環境へデプロイします。
- ブランチへ push すると、Cloudflare Workers のプレビュー環境を生成する
Deployワークフローを手動実行すると、本番用のビルドを生成して STB サーバーへ転送する- microCMS から
repository_dispatchを送ると、ニュース更新後の本番デプロイを実行できる
GitHub Actions には次の認証情報を設定します。
| 名前 | 種別 | 用途 |
|---|---|---|
MICROCMS_ENDPOINT |
Secret | microCMS の API エンドポイント |
MICROCMS_API_KEY |
Secret | microCMS の API キー |
CLOUDFLARE_API_TOKEN |
Secret | プレビュー環境のデプロイ |
CLOUDFLARE_ACCOUNT_ID |
Variable | Cloudflare アカウントの識別子 |
STB_SSH_PRIVATE_KEY |
Secret | 本番サーバーへの SFTP 接続 |
認証情報をソースコードや .env 以外の公開ファイルに保存しないでください。