Ruby on Railsで構築されたオンラインカンファレンスシステム
詳細はNotionを参照してください(メンバー限定)
- OS: macOS, Linux, Windows
- Docker
devboxを使用すると、チーム全体で統一された開発環境を簡単にセットアップできます。
- 統一された開発環境: チーム全体で同じバージョンのツールを使用
- 簡単なセットアップ: rbenv/nodenvの手動インストールが不要
- 再現性の保証: devbox.lockでバージョンを固定
- AWS認証情報の自動取得: Secrets Managerから認証情報を自動で取得
- セキュアなシークレット管理: 認証情報はファイルに書き出さず、環境変数として保持
注意: Node.jsはdevboxが提供する22系の安定版を使用します(.node-versionでは22.16.0を指定していますが、devboxではnodejs@22で22系の安定バージョンを自動取得)。マイナーバージョンの違いはありますが互換性があるため、開発に支障はありません。
# 1. devboxのインストール
curl -fsSL https://get.jetify.com/devbox | bash
# 2. リポジトリのクローン
git clone https://github.com/cloudnativedaysjp/dreamkast.git
cd dreamkast
# 3. devbox環境の初期化
devbox shell
# 4. 初回セットアップ(依存関係インストール)
devbox run setup
# 5. AWS認証とシークレット取得(sourceで実行)
source bin/devbox-auth.sh
# 6. アプリケーション起動
devbox run startブラウザで http://localhost:8080 にアクセスしてください。
curl -fsSL https://get.jetify.com/devbox | bash詳細: https://www.jetify.com/devbox/docs/installing_devbox/
devbox shell初回実行時、必要なパッケージ(Ruby、Node.js、Docker等)が自動ダウンロードされます(5-10分程度)。
devbox run setupこのコマンドは以下を実行します:
yarn install --check-filesbundle install
source bin/devbox-auth.sh重要: sourceコマンドで実行してください。これにより認証情報が現在のシェルセッションの環境変数として設定されます。
このコマンドは以下を自動的に実行します:
- AWS SSO設定の自動構成(SSO Start URLを含む)
- AWS SSOログイン(ブラウザで認証)
- ECRログイン
- AWS Secrets Managerから認証情報を自動取得し、環境変数にエクスポート
- Auth0設定(CLIENT_ID, CLIENT_SECRET, DOMAIN)
- Rails Master Key
- AWSクレデンシャル
セキュリティ: 認証情報はファイルに書き出されず、現在のシェルセッション内でのみ有効です。新しいターミナルを開いた場合は再度認証が必要です。
注意: 初回実行時はブラウザでAWS SSOの認証が求められます。Dreamkastチームから付与されたAWSアカウントでログインしてください。
リモート環境での認証: リモート環境(SSH接続先など)でブラウザが開けない場合は、環境変数DEVBOX_REMOTE=1を使用します:
DEVBOX_REMOTE=1 source bin/devbox-auth.shこのコマンドは認証URLとコードを表示するので、手元のブラウザで開いて認証を完了してください。
devbox run startこのコマンドは以下を実行します:
- Docker Composeサービスの起動(db, redis, localstack, nginx, ui, fifo-worker)
- データベースマイグレーション(
rails db:migrate) - シードデータ投入(
rails db:seed) - Railsアプリケーションの起動
ブラウザで http://localhost:8080 にアクセスしてください。
注意: PC起動後は毎回devbox run startを実行してください。このコマンドでDockerコンテナが起動します。
devbox shell
source bin/devbox-auth.sh # 認証(新しいシェルセッションごとに必要)
devbox run startdevbox shell
devbox run testまたは個別テスト:
bundle exec rspec spec/models/talk_spec.rbbundle exec rubocop --autocorrect-allマイグレーション:
bundle exec rails db:migrateシードデータ投入:
bundle exec rails db:seedサービス一覧:
docker compose psログ確認:
docker compose logs -f dbサービス再起動:
docker compose restart db初回実行時はパッケージダウンロードで時間がかかります。2回目以降はキャッシュが効くため高速です。
# DBサービスの状態確認
docker compose ps db
# DBログ確認
docker compose logs db
# DB再起動
docker compose restart db# node_modules削除
rm -rf node_modules
# 再インストール
yarn install --check-files# vendor/bundle削除
rm -rf vendor/bundle
# 再インストール
bundle install# AWS SSOセッションの更新
aws sso login --profile dreamkast
# 認証スクリプト再実行
source bin/devbox-auth.sh# AWS認証状態確認
aws sts get-caller-identity --profile dreamkast
# Secrets Managerへのアクセス権限確認
aws secretsmanager describe-secret \
--secret-id dreamkast/reviewapp-env \
--region us-west-2 \
--profile dreamkastアクセス権限がない場合は、Dreamkastチームに権限付与を依頼してください。
環境変数RAILS_MASTER_KEYが設定されているか確認してください。
# 設定確認
echo $RAILS_MASTER_KEY
# 未設定の場合は認証スクリプトを再実行
source bin/devbox-auth.sh注意: 認証情報は現在のシェルセッションでのみ有効です。新しいターミナルを開いた場合はsource bin/devbox-auth.shを再実行してください。
devboxを使わない場合の代替セットアップ方法:
- Docker Composeを使ったセットアップ - 最速でセットアップしたい場合
- ローカル環境を使ったセットアップ - rbenv/nodenvを使った従来方式
git config pre-commit.ruby "bundle exec ruby"
git config pre-commit.checks "[rubocop]"