インストール
Docker Compose、Homebrew、単体実行ファイルで Calendarpit をインストールします。
Calendarpit は Docker、Homebrew、単体実行ファイルで公開しています。現在のバージョンは GitHub Releases で確認できます。
- Docker Compose: コンテナ環境で使う場合に適しています。
- Homebrew: ローカルの CLI として使う場合に適しています。
どちらも API、OAuth サーバー、管理画面、SQLite を含みます。Bun、Node.js、Google の認証情報、別のデータベースは不要です。npm では配布していません。
Docker
docker run --rm \
-p 127.0.0.1:4173:4173 \
-v calendarpit-data:/data \
ghcr.io/iktakahiro/calendarpit:latestイメージの特徴は次のとおりです。
- Linux amd64 と arm64 に対応しています(Apple Silicon 上の Docker を含む)。
- 非 root ユーザーで動作します。
- SQLite を
/data/calendarpit.sqliteに保存します。 latestと各リリースのバージョン番号でタグ付けされています。CI でバージョンを固定する場合は、バージョンのタグを指定してください。
コンテナを作り直してもデータを残すには、名前付きボリュームを保持してください。一時的なテストには -e CALENDARPIT_DATABASE=:memory: を使用します。
ホストのポートはループバックだけに公開します。コンテナ内部では明示的に 0.0.0.0 にバインドします。
Docker Compose
使用中の compose.yaml にサービスとボリュームを追加します。
services:
calendarpit:
image: ghcr.io/iktakahiro/calendarpit:latest
ports:
- '127.0.0.1:4173:4173'
volumes:
- calendarpit-data:/data
volumes:
calendarpit-data:docker compose up -d calendarpit
docker compose logs calendarpit
docker compose downdown はボリュームを保持します。down -v は保存データも削除します。
イメージにはヘルスチェックが含まれています。別のサービスで Calendarpit の起動を待つには、depends_on: { calendarpit: { condition: service_healthy } } を使用してください。
コンテナのポートを変更する場合は、ポートマッピングと CALENDARPIT_PORT の両方を設定してください。これでヘルスチェックも同じポートを使います。
リクエスト元によってアドレスが異なります
| リクエスト元 | Calendarpit のアドレス |
|---|---|
| ホスト上のブラウザやアプリ | http://127.0.0.1:4173 |
| 同じ Compose ネットワーク内のアプリ | http://calendarpit:4173 |
- ブラウザで開く OAuth 認可 URL は、ホストからアクセスできるアドレスにしてください。
- コンテナ内のバックエンドは、トークン交換と Calendar API に Compose のアドレスを使用します。
- OAuth の
redirect_uriは、Fixture に登録した URI と完全一致する必要があります。また、ブラウザからアクセスできる必要があります。
Webhook の受信先
Webhook のアドレスは Calendarpit 側から解決されます。
- Compose 内の受信サービス: サービス名が
appの場合は、CALENDARPIT_WATCH_HOSTS=appを設定してhttp://app:<port>/<path>を登録してください。 - ホスト上のプロセス: Docker Desktop では
host.docker.internalを使用できます。Linux の Docker Engine ではextra_hosts: ["host.docker.internal:host-gateway"]を追加してください。このホスト名もCALENDARPIT_WATCH_HOSTSで許可します。
受信プロセスは、コンテナから到達可能なアドレスで待ち受ける必要があります。watch 通知も参照してください。
Homebrew
brew install iktakahiro/tap/calendarpit
calendarpit serveTap は macOS または Linux 用の単体実行ファイルをインストールします。Bun と Node.js は不要です。
デフォルトの SQLite ファイルをプロジェクト内に作るため、プロジェクトのディレクトリで起動してください。
更新方法:
brew update
brew upgrade iktakahiro/tap/calendarpit単体実行ファイル
GitHub Releases から、OS と CPU に合ったアーカイブと SHA256SUMS をダウンロードします。展開する前にチェックサムを照合してください。Apple Silicon の例:
shasum -a 256 calendarpit-0.9.0-darwin-arm64.tar.gz
tar -xzf calendarpit-0.9.0-darwin-arm64.tar.gz
./bin/calendarpit serve表示されたハッシュを SHA256SUMS の該当行と照合します。
Windows のアーカイブには bin/calendarpit.exe が含まれます。Bun、Node.js、別のアセットディレクトリは不要です。
更新とデータ保存
更新するときは、次の方法を使います。
- Docker: イメージのタグを変更します。
- Homebrew:
brew upgradeを使用します。
更新前に Calendarpit を停止し、SQLite のディレクトリか Docker ボリュームをバックアップしてください。
同じデータベースファイルを複数のインスタンスで同時に使用しないでください。