起動と設定

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:

関連ページ:

  • インストール: Compose のサービス定義、ヘルスチェック、ホストとコンテナの接続先
  • Fixture: 起動時の設定ファイルをマウントする方法
  • 開発ガイド: ソースからの開発手順

コマンドラインオプションと環境変数

CLI の構文は calendarpit [serve] [options] です。serve サブコマンドは省略できます。

次の場合、CLI は stderr にエラーを出力し、終了コード 1 で終了します。

  • 未知のコマンド
  • 未知のフラグ
  • 無効なオプション値

コマンドラインフラグは環境変数より優先されます。

CLI オプション環境変数デフォルト説明
--host <host>CALENDARPIT_HOST127.0.0.1バインドするアドレスです。ループバック以外(0.0.0.0、::)は明示的な指定が必要です。
-p, --port <n>CALENDARPIT_PORT4173リッスンするポート番号(0〜65535)です。0 を指定すると OS が空きポートを割り当てます。
--database <path>CALENDARPIT_DATABASE.calendarpit/calendarpit.sqliteSQLite データベースファイルのパス、または使い捨てのインメモリセッション用の :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イベントの確認・作成・編集・削除
/usersUsersテストユーザーの一覧表示・作成・編集・削除
/calendarsCalendars選択中のテストユーザーのカレンダー管理
/connectionsConnectionsOAuth 認可の確認と取り消し
/watchWatchwatch チャネルと Webhook 配信の読み取り専用ビュー
/historyAPI history直近の Calendar API と OAuth のリクエスト履歴の確認と消去
/settingsSettingsテーマ、ストレージ、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)。

目次