リポジトリ構成 Repository layout
Parky は単一リポジトリ(モノレポ)で管理されています。 プロダクト別のディレクトリに分かれ、それぞれが専用の GitHub Actions ワークフローで個別にデプロイされます。
Parky lives in a single monorepo. Each product sits in its own directory and has its own GitHub Actions workflow for deployment.
ディレクトリ構成Directory layout
parky/
├── web/
│ ├── home/ # 公開ポータル (Astro 5 + Islands) — @parky/home
│ │ └── src/pages/media/ # TOKYO CAR LIFE (Supabase articles 駆動)
│ ├── portal/
│ │ ├── admin/ # 管理者ポータル (React 19 + Vite)
│ │ └── owner/ # オーナー向けポータル (README のみ、未着手)
│ └── packages/ # 共有パッケージ
│ ├── api-client/ # Supabase API クライアントラッパー
│ ├── domain/ # ドメイン型・バリデータ
│ ├── seo/ # SEO ユーティリティ (schema / meta)
│ └── ui/ # 共有 React コンポーネント
│
├── mobileapp/
│ ├── prototype/
│ │ ├── flutter/ # Flutter プロトタイプ本体
│ │ └── web/ # Web 版モック (dev-app-mock.parky.co.jp)
│ └── api/ # モバイル専用 API スタブ (README のみ)
│
├── api/ # Cloudflare Workers BFF(Hono + OpenAPI /v1/*)
│ ├── src/
│ │ ├── routes/ # /v1/* ルート実装(admin / public)
│ │ ├── queue/ # Queues consumer(store-sync / fcm-dispatch)
│ │ ├── lib/ # db / r2 / fcm / queue / store-sync クライアント
│ │ ├── cron/ # Cron Triggers ハンドラ(近傍通知)
│ │ └── middleware/ # auth / cache / rate-limit / error-handler
│ └── wrangler.toml # binding 設定(R2 / Hyperdrive / KV / Queues / AI)
│
├── infra/
│ └── supabase/
│ ├── migrations/ # マイグレーション (000_init_schema + 001–031)
│ ├── seeds/ # シードデータ
│ ├── scripts/ # 運用スクリプト
│ └── config.toml
│
├── docs/ # 本ドキュメントサイト (dev-docs.parky.co.jp)
│ ├── index.html # 全体概要
│ ├── architecture.html
│ ├── data-model.html
│ ├── tech-stack.html
│ ├── conventions.html
│ ├── repository.html
│ ├── assets/ # 共通 CSS/JS
│ ├── portal-admin/ # 管理者ポータル仕様書
│ ├── mobile-app/ # モバイルアプリ仕様書
│ ├── web-app/ # Web版仕様書
│ └── ops/ # 運用手順メモ (markdown)
│
├── scripts/ # 汎用スクリプト (setup / clone 等)
├── .github/workflows/ # CI/CD
├── .memory/ # Claude 用プロジェクトメモリ
├── CLAUDE.md
└── README.md
デプロイパイプラインDeployment pipelines
| 対象 | Target | Workflow | トリガー | Trigger | 配置先 | Deploy to |
|---|---|---|---|---|---|---|
| 管理者ポータル (dev) | Admin portal (dev) | deploy-admin.yml |
dev push on web/portal/admin/** |
dev-admin.parky.co.jp |
||
| 管理者ポータル (prod) | Admin portal (prod) | deploy-admin-prod.yml |
main push / 手動実行 |
main push / manual |
admin.parky.co.jp |
|
| Web版 (dev) | Public web app (dev) | deploy-public-dev.yml |
dev push on web/home/**, web/media/**, web/packages/** |
dev.parky.co.jp |
||
| Web版 (prod) | Public web app (prod) | deploy-public-prod.yml |
main push / 手動実行 |
main push / manual |
parky.co.jp |
|
| ドキュメント | Docs | deploy-admin-docs.yml |
dev push on docs/** / mobileapp/prototype/web/** |
dev.parky.co.jp/docs/ |
||
| App モック | App mockup | deploy-app-mock.yml |
dev push on mobileapp/prototype/web/** |
dev.parky.co.jp/app-mock/ |
||
| LP | LP | deploy-public-prod.yml |
main push on web/lp/users/** |
main push on web/lp/users/** |
parky.co.jp |
|
| メディア (ブログ) | Media (blog) | deploy-media.yml |
main push on web/media/blogsy-child/** |
media.parky.co.jp |
補足:
Note:
dev 環境の Web アセットはすべて Cloudflare Pages に個別プロジェクトとして配置(dev / dev-admin / dev-docs / dev-app-mock / dev-portal-marketing)。Xserver 依存は解消済み(2026-04-19)。
All dev web assets live as individual Cloudflare Pages projects (dev / dev-admin / dev-docs / dev-app-mock / dev-portal-marketing). Xserver dependency was removed on 2026-04-19.
シークレット管理Secrets
- ワークフローは 1Password Service Account トークン経由で SSH 鍵・認証情報を取得
- Workflows pull SSH keys and creds via a 1Password Service Account token.
- GitHub リポジトリの
OP_SERVICE_ACCOUNT_TOKENのみを設定すれば動作 - Only
OP_SERVICE_ACCOUNT_TOKENneeds to be configured in GitHub secrets.