Quick Start Guide Community
Querycop を最速で起動するためのガイドです。3つの方法を紹介します。
Querycop は Community(無料)でローカル評価・1 インスタンス運用ができます。 Pro 機能 (JIT / masking / Slack approval / persistent audit など) を試す 場合は 30 日 Pro trial を開始してください:
Terminal window token は OS の user-config dir に保存され、
querycop起動時に自動 pickup されます。詳細は configuration.md §11 と entitlements.md を参照。
システム要件
Section titled “システム要件”| 項目 | 最小要件 | 推奨 |
|---|---|---|
| OS | Linux (x86_64/arm64), macOS, Windows | Ubuntu 22.04+ / Alpine 3.19+ |
| Go | 1.25+ | 1.25+ |
| CPU | 1 vCPU | 2+ vCPU |
| メモリ | 128MB(AI無効時) | 512MB〜1GB(AI有効時) |
| ディスク | 50MB(バイナリのみ) | 1GB+(ログ永続化時) |
| 同時接続数目安 | 〜50 | 〜500 |
| Docker | 24.0+ | 24.0+ |
注意: AI リスク評価を有効にする場合、AI プロバイダーの API 呼び出しにより追加のメモリとネットワーク帯域が必要です。ローカル Ollama を使用する場合は、モデルサイズに応じて追加の VRAM/RAM が必要です。
Option 1: Docker Compose(推奨)
Section titled “Option 1: Docker Compose(推奨)”最も簡単な方法です。Docker と Docker Compose がインストールされていれば、1コマンドで起動できます。
docker compose up -dこれにより以下が起動します:
- PostgreSQL (ポート 5433) - テスト用バックエンドDB
- Querycop プロキシ (ポート 15432) - クライアント接続用
- 管理ダッシュボード (http://localhost:8080) - 承認/却下操作用
ビルドと起動
Section titled “ビルドと起動”go build -o querycop ./cmd/querycop/./querycoppsql -h 127.0.0.1 -p 15432 -U testuser -d testdbパスワード: testpassword
SELECT 1;を実行 → 正常に通過DELETE FROM users WHERE id=1;を実行 → ブロックされ、ダッシュボードに承認待ちとして表示- ブラウザで http://localhost:8080 を開き、Approve/Reject をクリック
本番環境の注意: Querycop プロキシは TLS 終端を行いません。本番環境ではクライアント-プロキシ間に TLS 終端ロードバランサ(HAProxy, pgbouncer with TLS 等)を配置してください。
ADMIN_API_KEYの設定も必須です。
Option 2: バイナリ直接実行
Section titled “Option 2: バイナリ直接実行”ダウンロード
Section titled “ダウンロード”GitHub Releases からお使いのOS用のバイナリをダウンロードしてください。
バックエンドDB準備
Section titled “バックエンドDB準備”テスト用のPostgreSQLをDockerで起動します:
docker run -d --name test-db \ -e POSTGRES_USER=testuser \ -e POSTGRES_PASSWORD=testpassword \ -e POSTGRES_DB=testdb \ -p 5433:5432 \ postgres:15-alpineGATEKEEPER_LISTEN_PORT=5432 ./querycopデフォルトではバックエンドに localhost:5433 を、管理APIに 8080 ポートを使用します。
環境変数での設定
Section titled “環境変数での設定”export GATEKEEPER_BACKEND_HOST=localhostexport GATEKEEPER_BACKEND_PORT=5433export AI_PROVIDER=ollama./querycopOllamaを使用する場合、APIキーは不要です。他のプロバイダー(OpenAI, Anthropic, Gemini)を使用する場合は AI_API_KEY の設定が必要です。
Option 3: ソースからビルド
Section titled “Option 3: ソースからビルド”- Go 1.25以上
# プロキシサーバーgo build -o querycop ./cmd/querycop
# CLIツール(CI/CDレビュー用)go build -o querycop-cli ./cmd/querycop-cliテストの実行
Section titled “テストの実行”go test ./cmd/... ./pkg/...# または Makefile / Docker 経由make test # ホストの go ツールチェインmake test-docker # CI と同じ Linux コンテナ (Windows AppControl 回避)注意:
./...ではなく./cmd/... ./pkg/...を使ってください。 ローカルにlanding-page/を vendoring していると、そのnode_modules/配下に紛れ込んだflattedパッケージの Go ファイルをgo listが拾います。 Querycop の本体コードはcmd/とpkg/のみなので、明示するのが安全です。 Makefile /scripts/test-docker.{sh,ps1}のデフォルトは既にこの形に揃えています。
Windows + Git Bash / MSYS 利用時の注意
Section titled “Windows + Git Bash / MSYS 利用時の注意”Windows の Git Bash (MSYS2 / MINGW) を使って docker run や kubectl に Unix 風のパス
(/var/log/audit.jsonl, /tmp/foo など) を渡すと、MSYS が自動的に Windows パス
(例: C:/Program Files/Git/var/log/audit.jsonl) に変換します。Querycop 自身は変換後の
パスを受け取るためファイルが見つからず、以下のような起動エラーになります:
ERROR audit file logger init: open C:/Program Files/Git/var/log/audit.jsonl: no such file or directory回避策は 3 つ:
- 環境変数で抑止 (最も簡単):
Terminal window MSYS_NO_PATHCONV=1 docker run -e GATEKEEPER_AUDIT_FILE=/var/log/audit.jsonl ... - 二重スラッシュ: パスの先頭を
//にすると変換されません。Terminal window docker run -e "GATEKEEPER_AUDIT_FILE=//tmp/audit.jsonl" ... - PowerShell or WSL2 で実行: いずれもパス変換は発生しません。
-v (volume mount) も同じ罠があります。コンテナ内パスを //data のように二重スラッシュ
で書くか、MSYS_NO_PATHCONV=1 を付けてください。
影響範囲: Querycop の Docker / Kubernetes 設定例 (
GATEKEEPER_AUDIT_FILE,GATEKEEPER_POLICY_FILE,GATEKEEPER_MASKING_FILE,GATEKEEPER_WEBHOOK_FILE,GATEKEEPER_PROXY_TLS_CERT/KEY,GATEKEEPER_TLS_CERT/KEYなど、ファイルパスを 受け取る全ての env / フラグ) に該当します。
Windows + Defender Application Control / Smart App Control でテスト exe がブロックされる場合
Section titled “Windows + Defender Application Control / Smart App Control でテスト exe がブロックされる場合”go test 実行時に以下のエラーで一部パッケージのテストが失敗することがあります:
fork/exec C:\Users\<user>\AppData\Local\Temp\go-build*\b00*\api.test.exe:An Application Control policy has blocked this file.これは Windows Defender Application Control (WDAC) や Smart App Control が、
go test が動的に生成する一時 exe を未署名コードとしてブロックするためです。
Defender 設定を変更しなくても、Linux コンテナ内でテストを走らせれば
完全に回避できます (CI が走らせている環境と同等):
# Bash / Git Bash./scripts/test-docker.sh./scripts/test-docker.sh ./pkg/api/...
# PowerShell.\scripts\test-docker.ps1.\scripts\test-docker.ps1 ./pkg/api/...
# make 経由 (Makefile 同梱)make test-dockerこれらは golang:1.25.10 イメージに pwd をマウントして go test を実行する
ラッパーで、ホストの Defender / Smart App Control の設定を一切変更しません。
macOS / Linux ユーザー: 通常は
go test ./...(ormake test) で十分です。 Docker 経由は CI と同じ環境で再現確認したい時の補助として使います。
次のステップ
Section titled “次のステップ”- configuration.md - 全環境変数の詳細設定
- rbac-policy-guide.md - RBACポリシーの設定ガイド
- api.md - API リファレンス