MintOffice¶
MintOffice は mintbot.ai の Brand Partner ポータルです。あなた自身のブランド でmintbot を再販できます。あなたのドメイン、あなたのボット、あなたの顧客リスト を使い、デプロイ、課金基盤、エージェントごとのインフラはすべて mintbot が 裏側で処理します。
稼働中のパートナーポータルは mint.mintbot.ai にあります。
このガイドは、「MintOffice について初めて聞いた」という段階から、「最初の ホワイトラベルエージェントが自分のドメインで稼働している」という段階まで を案内します。技術的な部分(DNS レコード、GitHub リポジトリ、ボットトークン) については、mintbot エージェントにあなたの代わりに対応してもらうのが最適です。 始める前に エージェントにセットアップを任せる を ご覧ください。
ご自身で統合を構築しますか?
開発者向けの側面 — どのリポジトリをあなたが所有するのか、デプロイフロー がエンドツーエンドでどう動くのか、エージェントカスタマイズリポジトリと ストアフロントがどう組み合わさるのか — については、 MintOffice — 技術編 をご覧ください。
得られるもの¶
- すべての mintbot パッケージ(Trial、Starter、Pro、Max)をあなた自身の
ドメインで再販できます。顧客に見えるのは
agent1.yourbrand.comであって、*.mintbot.aiではありません。 - チャットトラフィックにはあなた自身の Telegram ボット
(
@yourbrand_bot)を使えます。テスト中はmintbot のボットを借りることも できます。 - 顧客に提示する価格を自由に決め、顧客への請求額とmintbot からの請求額 (MintOffice の卸下限価格)との差額を利益にできます。
- プログラムによる注文作成、ライフサイクルステータス、あなた自身のシステム へのウェブフックを提供する Brand Partner API。
- アクティブな顧客注文、ボットリンクの健全性、価格設定、支払い、ウェブフック 配信を表示するダッシュボード。
価格 — Brand Partner セットアップ料金¶
無料トライアルのポータルアカウントへのサインアップは、もちろん無料です。
ですが、Brand Partner サインアップは、それを本物のブランドパートナー
アカウントに変える唯一の支払いです。一度きりのセットアップ料金を
reception.mintbot.ai/mintoffice
(開発・テスト環境の場合は reception.mintbot.dev/mintoffice)で支払うと、
同じ支払いで両方のポータルがアンロックされます。
| プラン | 価格 | 含まれるもの |
|---|---|---|
| 無料トライアル(すべての新規パートナーのデフォルト) | €0 | ポータルとテンプレートをテストするための10回の使い捨て DEV デプロイ |
| Brand Partner — ローンチプロモ | €49 一度きり + €10/月 | 20回の DEV デプロイ(各 €1 のエージェントクレジット付き)、アカウント管理の初月分込み、mint.mintbot.ai と mint.mintbot.dev 両方での Brand Partner ステータス、充実したセットアップガイド(エージェントがウィザード全体をあなたの代わりに進められます) |
| Brand Partner — 標準 | €99 一度きり + €10/月 | ローンチプロモと同じ — プロモなし |
サインアップはベータ版です
Brand Partner のチェックアウトは現在、開発・テスト環境
(reception.mintbot.dev/mintoffice)
で利用可能です。本番の .ai チェックアウトはまもなく開始されます。
セットアップ料金がカバーするもの:
- 20回の DEV デプロイ。各デプロイは €1 のエージェントクレジットが シードされた24時間の使い捨てテスト VPS で、ポータルとカスタマイズ テンプレートをエンドツーエンドで動かすのに十分です。
- アカウント管理の初月分(下記の €10/月 の料金)。つまり初月分は すでに支払い済みです。
mint.mintbot.aiとmint.mintbot.devの両方での Brand Partner ステータス。
月額 €10 のアカウント管理料金:
2か月目以降、Brand Partner アカウントには €10/月のアカウント管理料金 がかかります。最もスムーズな支払い方法は Stripe または PayPal の サブスクリプションです(推奨 — 自動で更新されます)。一度きりの セットアップ料金は、カードまたは暗号資産(BTC、XMR、その他 CCPayment 経由 の多数のコイン)でも支払えます。
月額料金が失効すると、あなたの MintOffice アカウントは paused(一時停止) に移行します。新しいエージェントはデプロイできなくなりますが、既存の顧客 エージェントは稼働を続けます。何かが停止する前に当社からご連絡しますので、 再開できます。
支払い後に起こること:
- Reception が
reception.mintbot.ai/mintoffice(テスト環境の場合は.dev) でセットアップ支払いを処理します — カード / Apple Pay / Google Pay、または 暗号資産。 - Reception はただちに署名付きの権限付与を
mint.mintbot.aiとmint.mintbot.devの両方に送り、両方のポータルであなたのアカウントを Brand Partner ステータスに切り替えます。 pigeon@mintbot.ai(テスト環境で購入した場合はpigeon@mintbot.dev) からウェルカムメールが届きます。両方のサインインリンクとこのガイドへの 案内が含まれています。- 始めたい方のポータルでサインインします。何らかの理由でクロス環境の プッシュがいずれかのポータルに届かなかった場合、そのポータルでの初回 サインイン時に reception へ「このメールは支払いましたか?」と確認し、 その場で権限付与を適用します。
MintOffice を展開している間、ローンチプロモはデフォルトで有効です。これは
MINTOFFICE_SETUP_PROMO サーバーフラグで制御されているため、チェックアウト
で表示される価格があなたが支払う価格です。
返金
14日間の返金期間があり、理由は問いません。あなたのユースケースに対して
そのプランの価値がない場合は、support@mintbot.ai までメールを
いただければ料金を返金します。
エージェントごとの卸価格(あなたがミントする顧客注文ごとにmintbot が あなたに請求するレート)は、セットアップ料金とは独立しており、下記の ステップ5 — 価格設定 にあります。
エージェントにセットアップを任せる¶
技術作業のほとんど — ドメインの購入、DNS の設定、Telegram ボットの作成、 テンプレートリポジトリのフォーク — は機械的な作業です。手作業でもできますが、 最もスムーズな方法は mintbot エージェントに委任することです。
推奨される方法
mintbot エージェント を立ち上げて、こう頼んで
みてください。
「ドメイン yourbrand.com で私を MintOffice ブランドパートナーとして
セットアップして。オンボーディングウィザードを案内し、私の代わりに
できる限りすべてを入力して。」
エージェントはターミナル、ブラウザ、DNS API、GitHub 認証、そしてこの ガイドの知識にアクセスできます。どのステップであなたの介入が必要か (例: Telegram で BotFather の確認をクリックするなど)を正確に伝え、 残りは処理します。
あなた自身の Hermes、OpenCode / OpenClaw のインストール、Cursor のエージェントモード、その他どんな コーディングエージェントでも同様に機能します。このページをコンテキスト として渡し、目標を伝えてください。
ウィザードをご自身で進めたい場合、以下のステップがまさにエージェントが行う 内容です。
ステップ0 — アカウントを作成する¶
- mint.mintbot.ai を開きます。
- オペレーターログインに使用したいメールアドレスを入力します。
- サインインリンクを送信 をクリックします。
pigeon@mintbot.aiからのメールを開き、マジックリンクをクリックします (24時間有効、1回限り)。
パスワードはありません — その後のログインはすべて別のマジックリンクです。 これは意図的なものです。パスワードは漏洩しますが、マジックリンクは漏洩しません。 そして、後でメールアクセスを設定すれば、エージェントが簡単に自動化できます。
ステップ1 — ドメイン¶
ウィザードの最初の質問は、エージェントがどこに存在するか です。2つの選択肢 があります。
エージェントはあなたが所有するドメインのサブドメインに存在します。
例: agent1.yourbrand.com、agent2.yourbrand.com、… これが顧客に
見えるブランド化された体験です。
必要なもの:
- Apex ドメイン — 登録済みの裸のドメイン(
https://なし、サブ ドメインなし):yourbrand.com。 - DNS プロバイダー — 現在、動作するバックエンドは Zone.ee のみです。Cloudflare と手動モードは ロードマップ上にあります。
- Zone.ee API キー + ユーザー名 — my.zone.eu → Account settings → API keys → Create new key から発行します。エージェントは、エージェントを プロビジョニングする際に、これを使って A レコードを自動的に作成します。
サブドメインの番号付けスタイル
- テキストプレフィックス + 番号(デフォルト) —
agent1.yourbrand.com、agent2.yourbrand.com、… 最も人間に 読みやすい。 - 数字のみ —
1.yourbrand.com、2.yourbrand.com、… 短い。 - 数字、ゼロ埋め —
001.yourbrand.com、… 幅が安定。
この選択は純粋に見た目だけのものです。デプロイワーカーは3つすべて で問題なく動作します。
エージェントは *.mintbot.ai に存在します。セットアップも DNS も
不要ですが、URL にあなたのブランドは含まれません。試しに使ってみるのに
便利です。顧客向けのローンチ前には自分のドメインに切り替えてください。
ステップ2 — ボット¶
各エージェントにはチャットの接点があります。デフォルトでは Telegram を 想定しています。Discord と Slack は土台はありますが、まだ接続されていません。
顧客は @yourbrand_bot とチャットするので、ブランドが保たれます。
- Telegram で @BotFather を開きます。
/newbotを送信します。ボットに表示名とユーザー名(botで 終わる必要があります)を付けます。- BotFather が
123456789:AA…(40文字以上)の形のトークンを返します。 - そのトークンをウィザードに貼り付けます。
より詳しい説明が欲しい場合は、Telegram の ボットチュートリアル をご覧ください。
顧客は @mintbot_dev_bot とチャットします。デモには手早いですが、
ブランド化されていません。ローンチ前に自分のボットに切り替えて
ください。
Telegram を完全にスキップします。顧客はウェブパネルからのみエージェント にアクセスします。後で Settings からボットを追加できます。
ステップ3 — エージェントカスタマイズリポジトリ¶
各エージェントは、mintbot 自体によって標準のブランド化されていないベース上に デプロイされます。その上にあなたのブランド — ペルソナ、パネルテーマ、 文言、その他の追加ツール — を載せるには、ウィザードにエージェント カスタマイズリポジトリを指定します。これは、エージェント自身の VPS が 標準デプロイの後にクローンして実行する GitHub リポジトリです。見た目は あなたが決め、コードはあなたが所有します。
エージェントカスタマイズリポジトリの仕組み
リポジトリのルートには2つのスクリプトが含まれます。
install.sh— 標準デプロイが完了してエージェントが正常になった後、 エージェントの VPS 上で一度だけ実行されます。ここであなたの カスタマイズを適用します: テーマ、ペルソナの調整、追加ツール、 クライアント固有のセットアップなど。update.sh— 任意。ベースパッケージの更新のたびに実行される ので、新しく更新されたベースの上にあなたのレイヤーを再適用できます。
mintbot があなたのリポジトリを実行することは決してありません。実行する のはエージェント自身の VPS、つまり顧客自身のマシン上だけです。 リポジトリの GitHub HTTPS URL をウィザードに貼り付けてください。空のまま にすると、ブランド化されていない素のベースになります。
ルートに install.sh(および任意の update.sh)を持つリポジトリを
作成し、CSS / 文字列 / ペルソナを適用してから、そのリポジトリの GitHub
HTTPS URL を貼り付けます。エージェントの VPS はデプロイ後にこれを
クローンし、あなたのスクリプトを実行して、ベースの上にあなたのブランド
のレイヤーを重ねます。
壊れたスクリプトが顧客のエージェントを壊すことはありません
あなたのスクリプトは障害分離されています。install.sh や
update.sh が欠けていたり、エラーになったり、実行が遅かったり
しても、デプロイは成功し、ベースパッケージの更新がブロックされたり
ロールバックされたりすることはなく、エージェントは正常なままです。
障害は VPS 上にログとして記録され、あなたに通知されます — エンド
顧客には決して通知されません。壊れたスクリプトの唯一のデメリットは、
エージェントがあなたのブランド化レイヤーではなく素のベースのままに
なることです。そのため、まず DEV デプロイでリポジトリをテストして
ください。
ブランド化されていない素のベーススタイルとペルソナ — エージェント カスタマイズリポジトリなし。後で Settings からリポジトリ URL を追加 できます。
ステップ4 — API¶
Brand Partner API を使うと、ダッシュボードを使う代わりに、あなた自身の バックエンドからエージェント作成をオーケストレーションできます。ウィザード はデフォルトで API セットアップをスキップします。今すぐ統合する準備が できていない限り、後回しにしてください。
準備ができたら:
- ダッシュボードから Settings → API access を開きます。
- Generate key をクリックします。平文は一度だけ表示されます。 シークレットマネージャーに保存してください。
- (任意) ライフサイクルイベントを受信するためのウェブフック URL を設定します。
- (任意) レシーバーが署名を検証する準備ができたら、ウェブフック 署名シークレットを生成します。
完全なエンドポイント一覧とウェブフックペイロードの形については、 Brand Partner API リファレンス をご覧ください。
ウェブフック URL と署名シークレットは任意です
販売を始めるのにどちらも必須ではありません。ダッシュボードと API は
それらがなくても問題なく動作します。ウェブフック URL のフィールドは、
https://<your-host>/... を指すレシーバーを用意するまで空のままです。
署名シークレットは、その URL を設定して X-Mintbot-Signature ヘッダー
を検証したい場合にのみ役立ちます。どちらも Settings → API access
からいつでも追加(またはローテーション)できます。
統合エージェントにセットアップを検出させる
API キーがあれば、エージェントは
GET /api/v1/settings を呼び出して、
あなたの非シークレットの設定全体を一度に読み取れます — ドメイン、DNS
プロバイダー、ボット、エージェントカスタマイズリポジトリ、サブドメイン
パターン、価格設定、準備状況。シークレットが返されることは決してなく
(トークンとキーは *_set のブール値としてのみ現れます)、キーは新しい
サーバー上にあなたのホワイトラベルセットアップをインストールする
エージェントと安全に共有できます。
定型コードをスキップ — リファレンスポータルをフォーク
完全で実行可能なストアフロントの例が mintbot-ai/partner-portal-example にあります。完全なウォークスルーについては、下記の リファレンスポータル をご覧ください。
ステップ5 — 価格設定¶
ウィザードの最後のステップは、顧客がパッケージごとに支払う金額です。 MintOffice は価格設定を2つのモードに分けています。後で Settings → Pricing で切り替えられます。
顧客には、各プラン(Trial、Starter、Pro、Max)に対するmintbot の推奨 価格が表示されます。その推奨価格と卸下限価格の差がパートナーマージン になります — セットアップ不要。とにかく販売を始めたいなら、これを 選んでください。
各顧客が各プランで支払う価格をあなたが設定します。卸下限価格を超える 分はすべてあなたの利益になります。意図的な値上げ戦略があるときは、 これを選んでください。
卸下限価格は、注文ごとにmintbot があなたに請求する金額です — これが
あなたが請求できる絶対的な最低額です。あなたのパートナー取り分は、注文ごと
に customer_price − wholesale_floor です。ウィザードは送信前にプラン
ごとの計算済みマージンをプレビューします。
カスタム価格設定は部分的でもよい
カスタムモードでも、すべてのプランを上書きする必要はありません。 プランをデフォルトのままにしておくと、mintbot の推奨価格を継承します。 気になるものだけを編集してください。
本番稼働へ¶
ウィザードの後、ダッシュボードには、まだ不足している必須情報を一覧表示 するバナーが表示されます。3つの必須フィールドは次のとおりです。
- Telegram ボットトークン(または別のボットプロバイダー)
- DNS API キー(例: Zone.ee キー + ユーザー名)
- Apex ドメイン
エージェントカスタマイズリポジトリ URL は任意です。空のままにすると、 あなたのエージェントはブランド化されていない素のベース上にデプロイされます。
必須フィールドが入力され、DNS プロバイダーのチェックが通ると、
Go Live ボタンが有効になります。それをクリックすると、パートナー
ステータスが onboarding → live に切り替わり、Brand Partner API が
注文作成リクエストの受付を開始します。
アクティベーションは一方向のハンドシェイクです
Go Live をクリックするまで、あなたのアカウントは onboarding の
ままです。オンボーディング中、API は書き込みを 403 で拒否します
(状態を検査できるよう、読み取りは開いたままです)。ドメインの DNS が
Zone.ee で検証され、(カスタマイズリポジトリを使っている場合は)それを
DEV デプロイでテストするまで、アクティベートしないでください。
Go Live 後: ドメイン + Telegram ボット設定がロックされます
パートナーステータスが live になると、Settings のドメインと
Telegram ボットのセクションは読み取り専用になります。既存の顧客
エージェントはすでにあなたの apex ドメインを指し、あなたのボットを
通じてチャットしています — 静かに変更すると、稼働中のそれらが孤立して
しまいます。その他のセクションは編集可能なままです。
| セクション | live 中に編集可能? |
|---|---|
| ドメイン / DNS / サブドメインパターン | 不可 — 移行が必要な場合はサポートに連絡してください |
| Telegram ボット | 不可 — 移行が必要な場合はサポートに連絡してください |
| エージェントカスタマイズリポジトリ | 可 — 新しいエージェントは新しいリポジトリ URL をクローンし、既存のエージェントは次回のベース更新時に update.sh 経由で再実行します |
| API キー / ウェブフック | 可 — いつでもローテーションできます |
| 価格設定 | 可 — 今後の注文に適用されます |
ロックは UI 上(フィールドセットが無効化され、理由を説明するバナーが
表示される)とサーバー上(section=domain または section=bot での
/settings への POST は 403 を返す)の両方で適用されます。
ウェブフック + 支払い¶
- ウェブフック配信 — すべてのライフサイクルイベント(注文作成、 アクティベート、期限切れ)が、Settings で設定したウェブフック URL に POST されます。ダッシュボードのパートナーごとの Webhook health チップ は、過去24時間の配信成功率を表示します。
- 収益台帳 — すべての有料注文が、あなたの総額、あなたの取り分、mintbot の取り分を含む行を書き込みます。ダッシュボードは累計合計と未払い残高を 表示します。
- 支払い — 蓄積されます。mintbot チームがパートナー契約に従って手動で 支払います。ダッシュボードは支払い済み / 未払いのステータスを追跡します。
リファレンスポータル¶
ストアフロントをゼロから構築したくない場合は、公式の例をフォークして ください: mintbot-ai/partner-portal-example。 これは MIT ライセンスの FastAPI + SQLite + Docker で、差し替え可能な架空の 「AcmeAI」ブランディングが付属し、ループ全体をエンドツーエンドでカバー します。
- プランカードを備えたランディングページ、
/buyフォーム →POST /api/v1/orders→ Stripe チェックアウトへの リダイレクト、- サンキュー / キャンセルの戻りページ、
- HMAC 署名検証 を備えた
POST /webhooks/mintoffice、 - HTTP Basic 認証の
/adminイベントブラウザ、 /healthz死活監視プローブ。
セットアップウォークスルー¶
-
ブランディングの変更を git で管理できるよう、リポジトリをフォーク します。
git clone https://github.com/mintbot-ai/partner-portal-example.git cd partner-portal-example cp .env.example .env -
MintOffice ダッシュボードの値で
.envを入力します。変数 ここに入れる内容 PARTNER_BRAND顧客に見えるブランド名(Stripe の明細項目ラベルとしても使われます)。 MINTOFFICE_API_URL本番は https://mint.mintbot.ai、テストはhttps://mint.mintbot.dev。MINTOFFICE_API_KEYSettings → API access の API キー(形式 mo_live_…)。MINTOFFICE_WEBHOOK_SECRET同じダッシュボードで作成時に一度だけ表示されるウェブフック署名シークレット。 PUBLIC_BASE_URLあなたのポータルが存在する HTTPS URL(Stripe の success_url/cancel_urlの構築に使われます)。ADMIN_USERNAME/ADMIN_PASSWORD/adminの Basic 認証ゲート。長いランダムなパスワードを使ってください。 -
実行する — Docker が最も簡単な方法ですが、ベアメタルでも動作します。
docker compose up --buildpip install -e . uvicorn app.main:app --reload -
HTTPS で公開する — MintOffice は Stripe リダイレクト URL と ウェブフック URL の両方で
http://を拒否します(プライベート IP とlocalhostは SSRF ガードによってブロックされます)。ローカル開発には、 Cloudflare Tunnel、Tailscale Funnel、または ngrok を使ってください。 本番では、あなた自身のホストにデプロイしてください。 -
パートナー行をポータルに向ける — ダッシュボードに戻ります。
- Webhook URL を
https://<your-host>/webhooks/mintofficeに 設定します。 - 以上です。
/buyからテスト注文を出し、イベントが/adminに届く のを確認してください。
- Webhook URL を
リブランディング¶
デフォルトのテンプレートは AcmeAI のふりをしています。変更点は3つです。
.envのPARTNER_BRAND— Stripe、ヘッダー、フッターに流れ込みます。app/templates/base.html— 色 / アクセント用の CSS 変数。app/templates/*.html— 文言とページごとのレイアウト。翻訳 (エストニア語、スペイン語、…)は、これらのファイルのフォークとして 存在します。
エージェントと同じ VPS への手早いデプロイ
この例のポータルは、MintOffice デプロイエージェントと並べて実行できる
ほど小さいです。すでに mintbot エージェントの VPS があるなら、こう
頼んでみてください。
「partner-portal-example を https://portal.<my-domain>/ の下で
ウェブフックレシーバーとしてデプロイし、GET /api/v1/settings から
MINTOFFICE_API_KEY と MINTOFFICE_WEBHOOK_SECRET を入力し、私の
パートナー行にウェブフック URL を設定して。」 エージェントには、これを
エンドツーエンドで行うためのドキュメントと API キーのパスがあります。
Brand Partner API¶
プログラムによるエージェント作成、ステータスのポーリング、ウェブフック イベントについては、Brand Partner API リファレンス をご覧ください。より広いアーキテクチャ(あなたのストアフロント、API、 デプロイワーカー、各顧客のエージェント VPS がどう組み合わさるか)に ついては、MintOffice — 技術編 をご覧ください。