Cal.diy: cal.comのオープンソースコミュニティ版
20時間前原文(github.com)
概要
- Cal.diyはCal.comのオープンソースコミュニティ版、自己ホスティング向け
- 商用・エンタープライズ利用非推奨、個人・非本番環境用
- 高度なサーバー管理・DB管理・セキュリティ知識が必須
- Cal.comは商用・エンタープライズ用途に推奨
- Cal.diyはMITライセンス・完全オープンソース
Cal.diy 概要
- Cal.diyはCal.comから派生した、コミュニティ主体の完全オープンソーススケジューリングプラットフォーム
- エンタープライズ・商用コードは完全削除、MITライセンスのみで提供
- Teams、Organizations、Insights、Workflows、SSO/SAML等のエンタープライズ専用機能は非搭載
- ライセンスキー不要、Cal.comアカウントも不要
- 自己ホスティング専用、運用・管理は全てユーザー責任
- Next.js、tRPC、React.js、Tailwind CSS、Prisma.io、Daily.coで構築
- 商用・エンタープライズ用途やSLAが必要な場合はCal.com利用を強く推奨
必要環境・前提条件
- Node.js(バージョン18.x以上)
- PostgreSQL(バージョン13.x以上)
- Yarn(推奨)
- サーバー管理・DB管理・セキュリティの十分な知識
- 各種インテグレーション利用時は追加認証情報が必要
開発環境セットアップ手順
- リポジトリをクローン
git clone https://github.com/calcom/cal.diy.git- Windowsの場合:
git clone -c core.symlinks=true https://github.com/calcom/cal.diy.git
- Windowsの場合:
- プロジェクトディレクトリに移動
cd cal.diy - パッケージインストール
yarn - .envファイル設定
.env.exampleを複製し.envへリネームopenssl rand -base64 32で生成したキーをNEXTAUTH_SECRETに設定openssl rand -base64 24で生成したキーをCALENDSO_ENCRYPTION_KEYに設定
- Windowsの場合
packages/prisma/.envのシンボリックリンクを削除し、実体ファイルに置き換え
- Nodeバージョンの調整(必要時)
nvm install && nvm useで指定バージョンを利用
クイックスタート(yarn dx)
- Docker/Docker Composeが必要
- ローカルPostgresインスタンスとテストユーザー自動作成
yarn dxで起動、http://localhost:3000でログイン- テストユーザー例:
- Email:
free@example.com/ Password:free/ Role: Free user - Email:
admin@example.com/ Password:ADMINadmin2022!/ Role: Admin
- Email:
- テストユーザー例:
ログレベル調整
- .envファイルに
NEXT_PUBLIC_LOGGER_LEVEL={level}を設定- 例:
NEXT_PUBLIC_LOGGER_LEVEL=3(info以上を出力)
- 例:
Gitpodセットアップ
- Gitpodボタンからオンライン開発環境を即時構築可能
手動セットアップ(DB設定)
- .envファイルの
DATABASE_URLを適切に設定- 例:
postgresql://postgres:postgres@localhost:5432/Your-DB-Name
- 例:
- PrismaによるDB初期化
- 開発:
yarn workspace @calcom/prisma db-migrate - 本番:
yarn workspace @calcom/prisma db-deploy
- 開発:
- Mailhogで開発用メール確認(必要時)
docker run -d -p 8025:8025 -p 1025:1025 mailhog/mailhog
初回ユーザー作成
- Prisma Studio利用:
yarn db-studioでユーザー手動追加 - DBシード:
cd packages/prisma && yarn db-seedでダミーユーザー投入
E2Eテスト
NEXTAUTH_URLを適切に設定(例: http://localhost:3000)- テスト実行:
yarn test-e2e - Playwrightブラウザ未インストール時:
npx playwright installで解決
バージョンアップ手順
git pullで最新化yarnで依存関係更新- DBマイグレーション(開発: db-migrate、本番: db-deploy)
.env変更有無を確認し反映yarn devまたはyarn build && yarn startでサーバー起動
Dockerによるデプロイ
- 公式イメージ: https://hub.docker.com/r/calcom/cal.diy
- ARMアーキテクチャ対応:
{version}-armサフィックスでpull - Docker Composeで起動
- リポジトリクローン:
git clone --recursive https://github.com/calcom/cal.diy.git .env.exampleを.envへコピー・編集- 必須シークレットキー生成
NEXTAUTH_SECRETとCALENDSO_ENCRYPTION_KEYをopenssl等で生成し.envへ
- VAPIDキー(Push通知用)
npx web-push generate-vapid-keysで生成し.envへ
- 起動コマンド例
docker compose up -d(全スタック: Postgres+Web+Prisma Studio)docker compose up -d calcom(Webアプリのみ、DBは外部指定)
- 初回セットアップウィザードで管理者ユーザー作成
- カレンダー連携は後から設定可能
- リポジトリクローン:
バージョンアップ(Docker環境)
- 停止:
docker compose down - イメージ更新:
docker compose pull - 再起動:
docker compose up -d
注意点・推奨事項
- Cal.diyは自己責任で運用、サポート無し
- 商用・エンタープライズ利用はCal.comを利用
- セキュリティ管理・バックアップ・アップデートは全て自己管理
- コミュニティ貢献・Issue報告歓迎(CONTRIBUTING.md参照)