起動と設定
Calendarpit の起動方法、コマンドラインオプション、環境変数、Docker での実行、管理画面のリファレンスです。
Calendarpit は API、OAuth、管理画面を同じオリジンで提供します。
以下は配布パッケージを使う起動方法です。ソースのクローンやビルドは不要です。必要な環境と対応プラットフォームはインストールを参照してください。
Calendarpit の起動方法
インストール済みの CLI
Homebrew でインストールするか、単体実行ファイルを PATH に配置します。そのうえで、プロジェクトのディレクトリで起動します。導入方法はインストールを参照してください。
calendarpit serve --port 4173
calendarpit serve --port 0 --database :memory:これらは起動コマンドの例です。
- 同じデータベースファイルを使うサーバーは 1 つだけ起動してください。
- ポート
0を指定すると、OS が空きポートを割り当てます。 - 実際の URL は起動時の出力で確認できます。
Calendarpit data: :memory:
Calendarpit v<version>
Data :memory:
Admin http://127.0.0.1:38425/
API http://127.0.0.1:38425/calendar/v3
Health http://127.0.0.1:38425/__calendarpit/health配布実行ファイルには、サーバー、管理画面のアセット(favicon.svg を含む)、Bun ランタイムが含まれています。Node.js も Bun も別途インストールする必要はありません。サーバーは Ctrl+C で停止します。
Docker と Compose
docker run --rm \
-p 127.0.0.1:4173:4173 \
-v calendarpit-data:/data \
ghcr.io/iktakahiro/calendarpit:latestコンテナのデフォルト設定は次のとおりです。
- 非 root ユーザーで動作します。
CALENDARPIT_HOST=0.0.0.0とCALENDARPIT_PORT=4173が設定されています。- SQLite は
/data/calendarpit.sqliteに保存されます。
ホスト側に公開するポートはループバックに限定しています。環境変数はイメージ名の前に -e で指定します。CLI フラグはイメージ名の後に渡します。
docker run --rm -p 127.0.0.1:4173:4173 \
ghcr.io/iktakahiro/calendarpit:latest serve --database :memory:関連ページ:
コマンドラインオプションと環境変数
CLI の構文は calendarpit [serve] [options] です。serve サブコマンドは省略できます。
次の場合、CLI は stderr にエラーを出力し、終了コード 1 で終了します。
- 未知のコマンド
- 未知のフラグ
- 無効なオプション値
コマンドラインフラグは環境変数より優先されます。
| CLI オプション | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
--host <host> | CALENDARPIT_HOST | 127.0.0.1 | バインドするアドレスです。ループバック以外(0.0.0.0、::)は明示的な指定が必要です。 |
-p, --port <n> | CALENDARPIT_PORT | 4173 | リッスンするポート番号(0〜65535)です。0 を指定すると OS が空きポートを割り当てます。 |
--database <path> | CALENDARPIT_DATABASE | .calendarpit/calendarpit.sqlite | SQLite データベースファイルのパス、または使い捨てのインメモリセッション用の :memory: です。ストレージと再起動を参照してください。 |
--config <path> | CALENDARPIT_CONFIG | 組み込み Fixture | 起動時 Fixture の JSON ファイルのパスです。Fixtureを参照してください。 |
-h, --help | — | — | ヘルプを表示して終了します。 |
-v, --version | — | — | バージョンを表示して終了します。 |
オプションの補足:
--port 0: 割り当てられたポート番号は起動時の出力に表示されます。- ポート
4175: リファレンスのサンプルアプリも併用する場合は避けてください。 --config: ファイルが存在し、有効な JSON である必要があります。新規データベースまたは:memory:セッションの初期データとして使われます。
既存の SQLite ファイルを開くとき、--config はエラーを出さずに無視されます。
その他の環境変数
| 環境変数 | デフォルト | 説明 |
|---|---|---|
CALENDARPIT_WATCH_HOSTS | ループバックのみ | events.watch と calendarList.watch の Webhook 送信先として追加で許可するホスト名(カンマ区切り)です。 |
CALENDARPIT_WATCH_HOSTS の補足:
- 例: Docker 内で実行する場合の
host.docker.internal - 環境変数でのみ設定できます。対応する CLI フラグはありません。
- 詳しくはwatch 通知を参照してください。
ループバックへのバインドと作業ディレクトリ
デフォルトはループバックです。 --host または CALENDARPIT_HOST を指定しない限り、Calendarpit は 127.0.0.1 にバインドします。
管理画面とテスト制御 API には認証がありません。0.0.0.0 にバインドすると、同じネットワーク上の他のマシンからアクセスできるようになります。
相対パス。 パスの解決方法は起動方法によって異なります。
- Homebrew・単体実行ファイル:
--databaseと--config(および対応する環境変数)の相対パスは、起動したディレクトリを基準に解決されます。プロジェクトのディレクトリから起動するか、絶対パスを指定してください。 - Docker: コンテナ内のパスを使います。参照する前に、ホスト上のファイルをマウントしてください。
起動時のよくあるエラーはトラブルシューティングを参照してください。
管理画面
管理画面は、API と同じオリジンのルートで提供されます。デフォルトの URL は http://127.0.0.1:4173/ です。
- 2 秒ごとに
GET /__calendarpit/stateとリクエスト履歴をポーリングします。アプリが行った変更は自動で画面に反映されます。 - 左側のナビゲーションで、表示するテストユーザーとカレンダー(
?user=<id>&calendar=<id>)を切り替えられます。 - 左側のナビゲーションでは、ストレージが
SQLiteかIn-memoryかも確認できます。
管理画面は Google Fonts(fonts.googleapis.com と fonts.gstatic.com)から Roboto Mono フォントを読み込みます。オフラインのときはシステムフォントを使います。Calendar API と OAuth の処理は Google に接続せず、インターネット接続も必要ありません。
| ルート | 画面 | 用途 |
|---|---|---|
/ | Schedule | イベントの確認・作成・編集・削除 |
/users | Users | テストユーザーの一覧表示・作成・編集・削除 |
/calendars | Calendars | 選択中のテストユーザーのカレンダー管理 |
/connections | Connections | OAuth 認可の確認と取り消し |
/watch | Watch | watch チャネルと Webhook 配信の読み取り専用ビュー |
/history | API history | 直近の Calendar API と OAuth のリクエスト履歴の確認と消去 |
/settings | Settings | テーマ、ストレージ、Fixture、リセット、状態、OAuth の設定 |
Schedule
- 保存されているイベントを日表示または週表示で確認します。デフォルトの日付は
2026-10-19です。 - イベントを作成、編集、削除できます。エディタで扱う項目は、件名、終日イベントの切り替え、開始日時と終了日時、busy/free 状態、場所、説明、拡張プロパティ JSON です。
- 繰り返しの系列は最初の 1 回分だけが表示され、展開されません。
エディタでイベントを保存すると、フォームに表示されている項目でイベントが置き換えられます。
- Calendar API で設定した参加者、色などの項目は削除されます。
- 繰り返しイベントは
recurrenceを失います。 - カスタムリマインダーはデフォルト(
reminders: { useDefault: true })に戻ります。
これらのイベントを編集するときは Calendar API を使ってください。
Users
- テストユーザーの一覧表示、作成、編集、削除を行います。
- ユーザーを削除すると、そのユーザーのカレンダーとイベントも削除されます。
- ユーザーを削除すると OAuth 認可も取り消され、関連する watch チャネルも停止します。
Calendars
- 選択中のテストユーザーについて、カレンダーの一覧表示、作成、編集、削除を行います。
- IANA タイムゾーンを設定します。デフォルトは
Asia/Tokyoです。 - プライマリカレンダーを選択します。
Connections
- テストユーザーと OAuth クライアントごとに、有効または取り消し済みの OAuth 認可を確認します。
- 有効な認可を取り消せます。取り消すと、関連する watch チャネルも停止します。
- 詳しくはローカル OAuthを参照してください。
Watch
- 有効な watch チャネルと Webhook の配信ログを読み取り専用で確認します。
- 詳しくはwatch 通知を参照してください。
API history
- 直近 200 件の Calendar API と OAuth のリクエスト履歴を確認します。認証情報はマスクされています。
- テキストで絞り込んだり、HTTP
>= 400のエラーのみを表示したりできます。 - 履歴を消去できます。
Settings
- テーマを切り替えます(Appearance)。
- ストレージパスを確認します。
- Fixture JSON ファイルを読み込みます。
- ワークスペースをリセット基準(起動時の状態)にリセットします。
- 現在の状態 JSON を確認します(Test data)。
- 登録済みの OAuth クライアントとリダイレクト URI を確認します(OAuth clients)。