インストール
リリースを取ってくる
Section titled “リリースを取ってくる”Linux(x86_64、aarch64。静的にリンクしていて、ほかに要るものはありません)と macOS(x86_64、Apple Silicon)向けにビルドした実行ファイルが、リリースのページに tegata_<version>_<os>_<arch> という名前で置いてあります。各リリースには、リリースの署名の鍵で署名した SHA256SUMS と、ファイルが k-kawa/tegata のリリースのワークフローでビルドされたことを示す GitHub の artifact attestations が付いています。
v=0.3.1 p=linux_x86_64gh release download v$v -R k-kawa/tegata -p "tegata_${v}_${p}" -p SHA256SUMS -p SHA256SUMS.minisigminisign -V -P RWS+RgaPKYHijXCDQ/JCehzLyohjXERYxShqSb6lS71/MHaCS3agTxkB -m SHA256SUMSgrep " tegata_${v}_${p}$" SHA256SUMS | shasum -a 256 -cgh attestation verify "tegata_${v}_${p}" -R k-kawa/tegata # optionalinstall -m 0755 "tegata_${v}_${p}" /usr/local/bin/tegataそのあと、プロバイダーを tegata init で入れます(下)。
ソースからビルドすることもできます(Rust 1.87 以上)。k-kawa/tegata を clone した中で cargo install --path crates/tegata を流し、使うプロバイダーも同じように入れます。
プロバイダーを入れる
Section titled “プロバイダーを入れる”プロバイダーは、自分で入れた command か、tegata init が GitHub のリリースから入れる source のどちらかです。
providers: cloudflare: source: github.com/k-kawa/tegata # a GitHub repository version: "^0.3" # a version requirement (Cargo syntax: ^1.2, ~1.2, >=1, 1.2.3, *) example: source: github.com/someone/tegata-provider-example version: "1" public_key: "RWQ…" # the minisign public key its author publishes local: command: ./bin/my-provider # relative to this YAML if it has a `/`, otherwise from PATH公式のリリースは、セキュリティの方針にある鍵で署名しています。この鍵は tegata に組み込まれています。
tegata init は次のことをします。
versionに合う、いちばん新しいリリースを選ぶ(tegata.lockにあれば、その版のまま)SHA256SUMSを取ってきて、その minisign の署名をpublic_keyで確かめる(github.com/k-kawa/tegataなら、tegata に組み込まれた公式の鍵で)- この機械向けの実行ファイルを取ってきて、
SHA256SUMSと照らし合わせる - 版と、すべてのプラットフォームの SHA-256 を
tegata.lockに書く
tegata.lock はコミットしてください。ほかの機械で tegata init を流すと、同じファイルを取ってきて lock と照らし合わせます。lock したあとでファイルが変わったリリースは、tegata が受け付けません。tegata init --upgrade で、合う中でいちばん新しい版に上げます。ほかのコマンドは、lock と合う入れ済みのプロバイダーだけを使い、足りないものや変わったものがあれば tegata init を流すように言います。tegata render はプロバイダーを動かさないので、render だけをするサーバーには init は要りません。
| 環境変数 | 使い道 |
|---|---|
TEGATA_CACHE_DIR |
プロバイダーを入れる場所(既定は $XDG_CACHE_HOME/tegata、または ~/.cache/tegata) |
TEGATA_PROVIDER_MIRROR |
GitHub の代わりに手元のディレクトリから入れる。中は <dir>/<source>/<version>/<file> の形(インターネットにつながらない機械のため) |
GITHUB_TOKEN |
GitHub に送る(なくてもよい)。非公開のリポジトリには要る。なければ、tegata init が API を使うのはリリースの一覧を取るときだけで、ファイルは公開のダウンロードの URL から取るので、GitHub の認証なしの回数の上限に十分収まる |
TEGATA_GITHUB_API |
GitHub の API の URL(既定は https://api.github.com) |
TEGATA_GITHUB_DOWNLOAD |
公開のダウンロードの URL のもと(既定は https://github.com) |
自分のプロバイダーを公開するには、プロバイダーを公開するを見てください。