Skip to content

cloudnativedaysjp/dreamkast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6,236 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dreamkast

Ruby on Railsで構築されたオンラインカンファレンスシステム

Dreamkastプラットフォームについて

詳細はNotionを参照してください(メンバー限定)

前提条件

  • OS: macOS, Linux, Windows
  • Docker

開発環境のセットアップ

devboxを使用すると、チーム全体で統一された開発環境を簡単にセットアップできます。

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 にアクセスしてください。

セットアップの詳細

1. devboxのインストール

curl -fsSL https://get.jetify.com/devbox | bash

詳細: https://www.jetify.com/devbox/docs/installing_devbox/

2. devbox環境の初期化

devbox shell

初回実行時、必要なパッケージ(Ruby、Node.js、Docker等)が自動ダウンロードされます(5-10分程度)。

3. 初回セットアップ

devbox run setup

このコマンドは以下を実行します:

  • yarn install --check-files
  • bundle install

4. AWS認証とシークレット取得

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とコードを表示するので、手元のブラウザで開いて認証を完了してください。

5. アプリケーション起動

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 start

テスト実行

devbox shell
devbox run test

または個別テスト:

bundle exec rspec spec/models/talk_spec.rb

Lint実行

bundle exec rubocop --autocorrect-all

データベース操作

マイグレーション:

bundle exec rails db:migrate

シードデータ投入:

bundle exec rails db:seed

Docker Composeサービスの管理

サービス一覧:

docker compose ps

ログ確認:

docker compose logs -f db

サービス再起動:

docker compose restart db

トラブルシューティング

devbox shellが遅い

初回実行時はパッケージダウンロードで時間がかかります。2回目以降はキャッシュが効くため高速です。

MySQL接続エラー

# DBサービスの状態確認
docker compose ps db

# DBログ確認
docker compose logs db

# DB再起動
docker compose restart db

yarn installエラー

# node_modules削除
rm -rf node_modules

# 再インストール
yarn install --check-files

bundle installエラー

# vendor/bundle削除
rm -rf vendor/bundle

# 再インストール
bundle install

ECRログインエラー

# AWS SSOセッションの更新
aws sso login --profile dreamkast

# 認証スクリプト再実行
source bin/devbox-auth.sh

Secrets Manager取得エラー

# 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起動時のRAILS_MASTER_KEYエラー

環境変数RAILS_MASTER_KEYが設定されているか確認してください。

# 設定確認
echo $RAILS_MASTER_KEY

# 未設定の場合は認証スクリプトを再実行
source bin/devbox-auth.sh

注意: 認証情報は現在のシェルセッションでのみ有効です。新しいターミナルを開いた場合はsource bin/devbox-auth.shを再実行してください。

その他のセットアップ方法

devboxを使わない場合の代替セットアップ方法:

高度な機能

rubocopの自動実行

git config pre-commit.ruby "bundle exec ruby"
git config pre-commit.checks "[rubocop]"

参考リンク

About

dreamkast is Online Conference Platform !!!!!!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 34