/etc/apt/auth.conf.d/deb.griffo.io.conf に置けば、apt がダウンロードのたびに HTTPS で送ります。ログインするアカウントポータルも、ローテーションするトークンも、ライセンスファイルもありません。同じ認証情報を使えるマシンの台数にも制限はありません。
🧾 1. 支払うと何が起きるのか
- Stripe で決済を完了します。カード情報は Stripe に渡り、このサーバーには一切届きません。
- Stripe が支払いを確定し、リポジトリに通知します。アクセスが作られるのはこの瞬間であって、決済ページを閉じた瞬間ではありません。オーソリ中の支払いは少しだけ時間がかかります。
- アカウントが作成され、そのためのパスワードがサーバー側でランダムに生成されます。
- Stripe に伝えたアドレス宛にメールが送られます。ログイン名、パスワード、そしてセットアップ用のコマンドが入っています。そのパスワードが送信されるのは、このとき一度きりです。
数分待っても届かない場合は、まず迷惑メールフォルダを確認し、それから Discord で聞いてください。それがいちばん早く、支払いに使ったメールアドレスからアカウントを探せます。
🔐 2. 認証情報の中身
| 項目 | 内容 |
|---|---|
| ログイン名 | お支払いに使ったメールアドレス。選ぶものも覚えるものもありません |
| パスワード | サーバー側で生成されたランダムな 24 文字。こちらで決めることはありません |
| 保存のされ方 | bcrypt ハッシュ。平文は保持していません。あとから取り出すことは、私にも誰にもできません |
| 有効期限 | ありません。パスワードはローテーションも失効もせず、アクセスの可否は背後のサブスクリプションだけが決めます |
| マシン台数 | 無制限。シート数の計算も、アクティベーションも、デバイス登録もありません |
保存しているのはハッシュだけなので、なくしたパスワードを復元することはできません。ただし、新しいものはいつでも再発行できます。ウェルカムメールに返信するか Discord で聞いてもらえれば、新しい認証情報をお送りします。新しいものが発行された時点で、古いパスワードは使えなくなります。ウェルカムメールは残しておくか、できればパスワードマネージャーに入れておいてください。
🖥️ 3. apt はどう認証するのか
ただの HTTPS 上の HTTP Basic 認証です。apt が何年も前からネイティブに対応している仕組みで、プラグインも補助バイナリも追加パッケージも要りません。認証情報は /etc/apt/auth.conf.d/ に置きます。sources.list の行に書いてはいけません。そこに書くとマシンの誰もが読めてしまい、apt がエラーメッセージの中で漏らしてしまいます。
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo install -m 600 /dev/null /etc/apt/auth.conf.d/deb.griffo.io.conf
sudo tee /etc/apt/auth.conf.d/deb.griffo.io.conf > /dev/null <<'EOF'
machine deb.griffo.io
login your-email@example.com
password your-subscription-password
EOF
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
install -m 600 /dev/null /etc/apt/auth.conf.d/deb.griffo.io.conf
tee /etc/apt/auth.conf.d/deb.griffo.io.conf > /dev/null <<'EOF'
machine deb.griffo.io
login your-email@example.com
password your-subscription-password
EOF
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo install -m 600 /dev/null /etc/apt/auth.conf.d/deb.griffo.io.conf
sudo tee /etc/apt/auth.conf.d/deb.griffo.io.conf > /dev/null <<'EOF'
machine deb.griffo.io
login your-email@example.com
password your-subscription-password
EOF
sudo apt update🧩 extrepo オプションについて。 extrepo は外部リポジトリを扱う Debian 標準のツールです。署名済みメタデータと照合して鍵を検証したうえで、sources ファイルの作成と署名鍵のインストールを代わりに行います。このリポジトリは griffo、ずっと無料のミラーは griffo-free という名前で登録されているので、Debian(bookworm、trixie、forky、sid)では上のコマンドだけで設定は完了です。
extrepo が用意するのは sources ファイルと鍵だけなので、サブスクリプションの認証情報は引き続き /etc/apt/auth.conf.d/deb.griffo.io.conf に書きます。extrepo は Debian のスイート向けメタデータしか公開していないため Ubuntu は対象外です。Ubuntu では sudo または root のコマンドを使ってください。
組み込みはこれで全部です。大事な点は 3 つあり、つまずくのもちょうどこの 3 つです。machine の行にはホスト名だけを書きます。deb.griffo.io であって、https:// も末尾のスラッシュも /apt というパスも付けません。ファイル名は .conf で終わらせます。それ以外の拡張子を apt は黙って無視します。そしてファイルは root 所有のパーミッション 600 にします。ほかのユーザーが読める認証情報を apt は読み込もうとしないからです。上のコマンドがパスワードを書き込む前に 600 の空ファイルを作っているのは、そのためです。apt が 401 を返すときの確認リストはこちら →
リクエストは、そのつどデータベースに照会されます。ログイン名、パスワードのハッシュ、そしてそのアカウントの背後に有効なサブスクリプションがあるかどうかです。キャッシュされるものも、あなたのマシンに発行されるものもありません。だからこそ、更新も解約も新しいパスワードも、こちら側で何かをしなくても即座に反映されます。
🏗️ 4. サーバー、コンテナ、CI
1 組の認証情報で、あなたのすべてのマシンをまかなえます。デスクトップもノートも、サーバーもビルドエージェントもです。同じ auth.conf.d のファイルをそれぞれに置くか、CI ではシークレットとしてマウントしてください。やってはいけないのは、公開レジストリに push するコンテナイメージに焼き込むことです。ファイルの中のパスワードである以上、それをコピーするものすべてと一緒に運ばれてしまいます。イメージにはビルドシークレットを使うか、認証情報の要らない GitHub の公開リリースから .deb をインストールしてください。
🔄 5. 年額プラン — 一年のサイクル
| 起きること | アクセスへの影響 |
|---|---|
| 年に一度の更新 | 静かに行われます。Stripe がカードに請求し、期間が延長され、認証情報は変わりません。することも、やり直すコマンドもありません |
| 解約したとき | ウェルカムメールの解約リンクから行います。すでに支払った期間の終わりまでアクセスは続き、そこで止まります |
| 支払いが失敗したとき | アクセスが止まります。カードを直して支払えば元に戻ります。困ったら Discord で聞いてください |
| あとで再購読したとき | 同じアカウントと同じパスワードが再び有効になります。何も変わらないので、新しいメールも届きません |
| 返金を希望したとき | 返金が実行された時点で、アクセスは即座に取り消されます |
| アクセスが終わるとき | その旨のメールが届き、apt install は 401 を返します。すでにインストール済みのパッケージはそのままです |
♾️ 6. 買い切り — 何が変わるのか
買い切りは一度きりの支払いで、サブスクリプションではありません。更新するものも、解約するものも、期限切れになる登録済みカードもなく、価格改定の影響も受けません。認証情報の使い方はまったく同じです。同じログイン名、同じ auth.conf.d のファイル、すべて同じです。すでに年額プランを使っていて切り替えた場合は、認証情報はそのまま引き継がれます。新しいパスワードではなく、確認のメールが届きます。買い切りのアクセスを終わらせるのは、返金だけです。
🚦 7. サブスクリプションが要らないもの
| コマンド | 認証情報は必要? |
|---|---|
apt update | 不要 — インデックスは誰にでも開かれています |
apt policy / apt-cache | 不要 |
| /apt/dists/ を見る | 不要 |
apt install / apt upgrade | 必要 |
| インストール済みのパッケージ | 不要 — 失効することも、ライセンスを確認することもありません |
| deb-free.griffo.io | 不要 — ずっと無料、アカウントも不要 |
GitHub の .deb ファイル | 不要 — ずっと無料 |
つまり、リポジトリを追加して apt update を実行し、どのバージョンが提供されるのかを、何も支払わないうちに確かめられます。ずっと無料のミラーの説明はこちら →
🗃️ 8. 保存している情報
メールアドレス、Stripe の顧客参照、パスワードの bcrypt ハッシュ、そしてサブスクリプションの日付。記録はそれだけです。決済情報は Stripe が扱い、このサーバーには届きません。送るメールもサービスに必要なものだけです。認証情報、買い切りのアクセスが有効になったときの確認、そしてアクセスが終わるときのお知らせ。マーケティングもメールマガジンもありません。利用規約 →
❓ まだ気になることがありますか?
支払う前に聞いてください。Discord がいちばん早い連絡手段で、この仕組みについての質問はいつでも歓迎です。Buy Me a Coffee でこのプロジェクトを支援してくださっていた方は、あちらでそう伝えてください。買い切りのサブスクリプションを無償でご用意します。