セルフホスティングガイド
必要なもの
- Docker
- Node.js 20+
- npm
- 付属の Docker 構成で動かす PostgreSQL 16+
クイックスタート
git clone https://github.com/kirill-markin/flashcards-open-source-app.git
cd flashcards-open-source-app
cp .env.example .env
make db-up
npm install --prefix api
npm install --prefix apps/auth
npm install --prefix apps/backend
npm install --prefix apps/web
続いて、各サービスを別々のターミナルで起動します。
make auth-dev
make backend-dev
make web-dev
次のサービスが起動します。
postgresがポート5432authがポート8081backendがポート8080webがポート3000
ローカル環境でのアクセス先:
- Webアプリ:
http://localhost:3000 - バックエンド API:
http://localhost:8080/v1 - 認証サービス:
http://localhost:8081
設定
.env.example を .env にコピーし、必要に応じて次の項目を調整してください。
DATABASE_URL— Postgres の接続文字列AUTH_MODE— ローカル利用ではnone、メール OTP 認証を使う場合はcognitoBACKEND_ALLOWED_ORIGINS— セッション認証付き API リクエストを許可するブラウザのオリジンPUBLIC_API_BASE_URLとPUBLIC_AUTH_BASE_URL— ディスカバリー応答で独自の公開ホストを案内したい場合に使う任意の上書き値
iOS のローカル設定
メインリポジトリの iOS アプリは、ローカルの API / 認証ホスト設定を次のファイルから読み込みます。
apps/ios/Flashcards/Config/Local.xcconfig
必要であれば、サンプルファイルをコピーしてください。
cp apps/ios/Flashcards/Config/Local.xcconfig.example apps/ios/Flashcards/Config/Local.xcconfig
その後、ローカル環境またはセルフホスト環境の api / auth ドメインを指すように設定します。
更新
git pull
npm install --prefix api
npm install --prefix apps/auth
npm install --prefix apps/backend
npm install --prefix apps/web
依存関係を更新したあとは、ローカルの各サービスを再起動してください。
AWS へのデプロイ
ドキュメントで案内している本番構成は次のとおりです。
app.<domain>に CloudFront + S3api.<domain>に API Gateway + Lambdaauth.<domain>に API Gateway + Lambda- AWS RDS 上の Postgres
- パスワードレスのメール OTP 認証に Cognito
- ルートドメインをほかに使わない場合は、必要に応じて apex ドメインからのリダイレクトを設定
詳しい手順は次を参照してください。