k8oが作成したすべてのコンテンツを公開するウェブサイトです。
pnpm i --frozen-lockfile
# 環境変数設定(URLは https://<name>.localhost を使う。ポート番号は不要)
cp apps/main/.env.example apps/main/.env.local
cp apps/admin/.env.example apps/admin/.env.local
cp packages/database/.env.example packages/database/.env.local
# ローカルHTTPS用のCA証明書をシステムに登録(初回のみ)
pnpm portless trust
# Nodeが portless の自己署名CAを信頼するよう環境変数を設定
# `drizzle-kit migrate` などの Node クライアントが https://*.localhost を叩く際に必要
# 永続化したい場合は ~/.zshrc などに追記する
export NODE_EXTRA_CA_CERTS=$HOME/.portless/ca.pem
# マイグレーション & 開発サーバー起動
pnpm run -F @repo/database migrate
pnpm run devTurborepo Monorepo:
apps/main- Next.js (App Router)apps/admin- Next.js 管理サイト (Better Auth + GitHub OAuth)packages/database- Drizzle ORM + Turso (libSQL)packages/helpers- ユーティリティ関数@k8o/arte-odyssey- UIコンポーネント (npm)
apps/main / apps/admin の配置方針:
app/- App RouterのentryとUI。UIコンポーネントはapp/**/_componentsfeatures/- 機能単位の非UIロジック。interface/application/infrastructureに分けるshared/- アプリ内で横断利用する非UI共通処理packages/helpers- アプリ非依存の純粋helper。cnもここに置く
@repo/database の import 境界は、oxc 移行時に lint ルールとして固定する予定です。現時点では app から直接 DB を読まず、features/*/interface か features/*/application に寄せます。