FOSSBilling BlueOnyx モジュール

FOSSBilling 用 BlueOnyx Server Module は、BlueOnyx ホスティングパネルの管理機能を FOSSBilling の請求・注文システムに直接統合します。ホスティング事業者は BlueOnyx Vsite を商品として販売し、1 台または複数の BlueOnyx サーバーへ自動的にプロビジョニングできます。また顧客には、パスワード変更、ドメイン変更、SSL 状態確認、Let's Encrypt 証明書申請を FOSSBilling の画面から離れずに行えるセルフサービス機能を提供できます。

このモジュールは、BlueOnyx 専用のホスティングプラン編集画面、Vsite ライフサイクル全体の連携機能(作成、停止、停止解除、キャンセル、削除、パッケージ変更、パスワード変更)、顧客向けの SSL 状態表示と Let's Encrypt 操作、そして FOSSBilling 管理画面・クライアント画面向けの必要なテーマ上書きを提供します。FOSSBilling のコアファイルは変更しません。

ご注意: このモジュールを利用するには、APIv2 が有効な BlueOnyx サーバーと、モジュールをインストールできる FOSSBilling 環境が必要です。

BlueOnyx 5212R、5211R、5210R 用の FOSSBilling PKG は無償で提供されています。 BlueOnyx ShopFree Bundle に含まれています。

どのように動作しますか?

FOSSBilling は請求、注文、請求書発行、顧客管理を担当します。BlueOnyx モジュールはこれを拡張し、BlueOnyx APIv2 エンドポイントと通信するサーバーマネージャーを提供します。顧客がホスティング商品を注文すると、FOSSBilling は割り当てられた BlueOnyx サーバー上に API 経由で Vsite をプロビジョニングします。注文が停止、キャンセル、削除された場合は、対応する Vsite も BlueOnyx 側で停止、破棄、またはクリーンアップされます。

このモジュールは 2 種類の API モードに対応しています:

  • ローカルモード: FOSSBilling と BlueOnyx が同じサーバー上で動作します。API は管理者ユーザー名とパスワード認証を使い、127.0.0.1:9092 でアクセスされます。
  • リモートモード: FOSSBilling は別のサーバー上で動作し、HTTPS のポート 81 経由で BlueOnyx API に接続します。認証には client-secret を使用します。

顧客が送信した Let's Encrypt 証明書申請はキューに入れられ、通常の FOSSBilling 管理者 cron 実行時に非同期で処理されます。そのため、時間のかかる BlueOnyx 側の処理で顧客のブラウザーリクエストがブロックされることはありません。

前提条件

モジュールをインストールする前に、次の要件を満たしていることを確認してください:

  • APIv2 エンドポイントが有効な BlueOnyx サーバー(5210R、5211R、または 5212R)。
  • モジュールをインストールできる FOSSBilling 環境(0.8.2 以降)。
  • リモートモードの場合: FOSSBilling サーバーから BlueOnyx API に HTTPS で到達でき、FOSSBilling サーバーの IP アドレス用 client-secret が BlueOnyx 側で作成されていること。

ステップ 1: BlueOnyx API を有効化する

BlueOnyx サーバーで Server Management / Maintenance / API に移動します。API を有効化し、次の設定を行います:

BlueOnyx API 設定

重要な設定は次のとおりです:

  • Enable API: 必ず有効にします。
  • Force HTTPS: 推奨設定です。API 通信を暗号化します。
  • Listen Address: ローカルモードでは標準の 127.0.0.1:9092 を使用します。FOSSBilling が別サーバーで動作する場合は、Remote IP access にリモート IP または CIDR 範囲を追加します。
  • Security options: セキュリティ要件に応じて、トークン有効期限、認証失敗しきい値、BAN 時間を設定します。

FOSSBilling が別サーバーで動作する場合(リモートモード)は、Client-Secrets タブに切り替え、FOSSBilling サーバーの IP アドレス用 client-secret を作成します。FOSSBilling サーバーの IP は、Configuration タブの Remote IP access にも登録しておく必要があります。

BlueOnyx API Client-Secrets

生成された client-secret をコピーしてください。FOSSBilling にサーバーを追加するときに必要になります。

ステップ 2: モジュールをインストールして有効化する

FOSSBilling の管理画面にログインし、Extensions に移動します。インストール済み拡張機能の一覧に BlueOnyx Server Module が表示されます。

FOSSBilling 拡張機能一覧

BlueOnyx Server Module の横にある有効化ボタンをクリックし、有効化を確認します。

BlueOnyx モジュールの有効化

モジュールのインストールフックにより、BlueOnyx 専用のテンプレート上書きが、現在有効な FOSSBilling テーマの html_custom ディレクトリへ自動的に配置されます。手動でファイルをコピーする必要はありません。

有効化後、FOSSBilling 管理ナビゲーションの System メニューに新しい BlueOnyx 項目が表示されます。

System メニュー内の BlueOnyx

ステップ 3: BlueOnyx サーバーを追加する

System / Hosting Plans and Servers に移動し、Hosting Servers タブに切り替えます。+ New Server をクリックして BlueOnyx サーバーを追加します。

空の Hosting Servers 画面

サーバー情報を入力します:

  • Name and Hostname: BlueOnyx サーバーのホスト名。
  • IP: BlueOnyx サーバーのプライマリ IP アドレス。
  • Assigned IP Addresses: このサーバーで Vsite プロビジョニングに使用できる IP アドレス。
  • Nameservers: プロビジョニングされた Vsite が引き継ぐネームサーバー。
  • Server Manager: ドロップダウンから BlueOnyx APIv2 を選択します。
  • Administrator username: BlueOnyx 管理者アカウント名(通常は admin)。
  • Administrator password: ローカルモード認証で必要です。
  • Client-Secret: リモートモード認証で必要です。BlueOnyx の API Client-Secrets ページで生成されたシークレットです。

FOSSBilling と BlueOnyx が同じマシン上で動作するローカルサーバーの場合は、管理者パスワードを入力し、client-secret は空欄のままにします:

ローカルサーバーの作成

リモート BlueOnyx サーバーの場合は、BlueOnyx 側で生成した client-secret を入力し、パスワード欄は空欄のままにします:

リモートサーバーの作成

サーバーを追加したら、接続テストアイコン(信号アイコン)をクリックして、FOSSBilling から BlueOnyx API に到達できることを確認します。

サーバー接続成功

BlueOnyx サーバーは複数追加できます。各サーバーを別々のホスティング商品に割り当てられるため、複数の BlueOnyx インスタンスにプロビジョニングを分散できます。

Hosting Servers 一覧

ステップ 4: BlueOnyx ホスティングプランを作成する

System / BlueOnyx に移動して BlueOnyx ホスティングプラン画面を開きます。Create plan をクリックして新しいホスティングプランを定義します。

空の BlueOnyx プラン一覧

プラン編集画面には、BlueOnyx の Vsite およびパッケージ設定に直接対応する 3 つのセクションがあります:

基本制限

プラン容量と BlueOnyx ユーザー上限を定義します:

  • Plan name: ホスティングプランの管理用ラベル。
  • Disk quota: ディスク容量(MB)。BlueOnyx は 1000 MB を 1 GB と表示するため、1 GB プランでは 1000 を指定します。
  • Maximum users: BlueOnyx 側のプラン全体のユーザー上限。この編集画面は内部 FOSSBilling フィールドへ自動的にマッピングします。
  • Subdomains: サブドメインを有効または無効にし、最大数を設定します。

ランタイム設定

PHP とサイト機能を制御します:

  • PHP handler: FPM または suPHP。
  • PHP version: PHPOS(システム標準)または PHP85 などの特定の PHP バージョン。
  • Shell level access: なし、chroot 化された SFTP/SCP/RSYNC、chroot 化されたシェル、または完全なシェルアクセス。
  • CGI、SSI、非管理者ユーザー向け FTP、メール、Web Alias Redirects、DNS 自動作成、メール自動設定: 各機能のトグルスイッチ。

データベース設定

MariaDB プロビジョニングを制御します:

  • Enable MariaDB: 有効にすると、モジュールは BlueOnyx サーバー上に MySQL データベースとユーザーをプロビジョニングします。無効の場合、データベース上限は強制的に 0 になります。
  • Maximum databases: Vsite に許可されるデータベース数。

BlueOnyx プラン編集画面

保存後、プランは BlueOnyx ホスティングプラン一覧に緑色の BlueOnyx ステータスバッジ付きで表示されます。既存の汎用 FOSSBilling ホスティングプランも、Adopt ボタンを使って BlueOnyx プランとして取り込むことができます。

BlueOnyx プラン一覧

ステップ 5: ホスティング商品を作成する

Products に移動し、+ New Product をクリックします。種類を Hosting に設定し、カテゴリを選択して商品のタイトルを入力します。

ホスティング商品の作成

商品は商品一覧に表示されます。商品を編集して設定を行います。

商品一覧

General Settings タブでは、商品タイトル、スラッグ、カテゴリ、状態、有効化動作、価格、在庫管理を設定します。

商品の一般設定

Configuration タブでは、この商品のプロビジョニングに使用する BlueOnyx サーバーとホスティングプランを割り当てます。また、注文時に顧客が利用できるドメインオプション(新規登録、移管、既存ドメインの使用)も設定します。

商品の構成設定

商品を有効化し、設定が完了すると、FOSSBilling のクライアントエリアで購入できるようになります。

顧客側の利用体験

顧客は標準の FOSSBilling クライアントエリアから BlueOnyx 連携機能を利用します。モジュールのテンプレート上書きにより、BlueOnyx 固有の情報と操作が適切な場所に表示されます。

登録と注文

新規顧客は FOSSBilling クライアントポータルからアカウントを登録できます。

クライアントポータル ホーム

クライアント登録

ログイン後、顧客は利用可能な商品を閲覧し、注文できます。注文手続き中に、顧客はドメインを選択します。新規登録、既存ドメインの移管、または所有済みドメインの使用を選べます。

クライアントダッシュボード

クライアント注文構成

チェックアウトが完了すると注文が有効化され、割り当てられたサーバー上に BlueOnyx Vsite が自動的にプロビジョニングされます。

クライアントカート

サービス管理

注文が有効になると、顧客は Services からホスティングサービスを表示・管理できます。サービス詳細ページには、プロビジョニングされたドメイン、サーバー IP、サーバーホスト名、ユーザー名、ホスティングプラン、帯域、ディスク容量が表示されます。

クライアントサービス詳細

BlueOnyx Vsite が作成されたことを示す成功通知が表示されます。顧客は Login to Control Panel をクリックして BlueOnyx GUI を直接開くことができます。

SSL と Let's Encrypt

サービスページには SSL 状態セクションがあり、現在の証明書状態を表示し、Request Let's Encrypt certificate ボタンを提供します。顧客がクリックすると申請はキューに入れられ、次回の FOSSBilling 管理者 cron 実行時に処理されます。これにより、時間のかかる証明書処理でブラウザーがブロックされることを防ぎます。

クライアントサービス SSL

パスワードとドメインの変更

顧客はサービスページから、コントロールパネル、FTP、SSH のパスワードを直接変更できます。パスワード変更は API 経由で BlueOnyx サーバー上のサイト管理者アカウントに適用されます。

クライアントサービス パスワード

ドメインタブでは、顧客がホスティングサービスに関連付けられたドメインを変更できます。この変更は API 経由で BlueOnyx Vsite に反映されます。

クライアントサービス ドメイン

管理者の注文管理

管理画面では、すべての BlueOnyx 注文が標準の FOSSBilling Orders 一覧に表示されます。モジュールは注文詳細ページを拡張し、BlueOnyx 固有のライフサイクル操作を追加します。

管理者 注文一覧

注文詳細ページには、更新、停止、キャンセル、削除の各ボタンがあります。各操作は BlueOnyx サーバーへ反映されます。注文を停止すると Vsite が停止され、キャンセルすると Vsite とそのユーザーが破棄され、削除すると Vsite のクリーンアップ後に FOSSBilling から注文が完全に削除されます。

管理者 注文詳細

機能概要

  • ホスティングプラン編集: PHP ハンドラーとバージョン選択、シェルアクセスレベル、サブドメイン上限、MariaDB プロビジョニング、メール自動設定、DNS 自動作成を含む BlueOnyx 専用ホスティングプランを、FOSSBilling 管理画面内から作成できます。
  • プラン取り込み: 既存の汎用 FOSSBilling ホスティングプランを BlueOnyx プランとして取り込めます。他のサーバーマネージャーが管理するプランは、誤編集を防ぐため保護されます。
  • 自動プロビジョニング: 注文が有効化されると、モジュールは BlueOnyx サーバー上に Vsite、サイト管理者ユーザー、ディスククォータ、シェル設定、メールエイリアス、PHP 設定、MariaDB データベース、メール自動設定エイリアスを作成します。途中でプロビジョニングに失敗した場合、部分的に作成された Vsite は自動的にロールバックされます。
  • 完全なライフサイクル対応: 停止、停止解除、キャンセル、削除、パッケージ変更、パスワード変更の各操作は、すべて API 経由で BlueOnyx サーバーへ反映されます。
  • 複数サーバー対応: 必要な数だけ BlueOnyx サーバーを追加できます。各商品を特定のサーバーに割り当てられるため、複数の BlueOnyx インスタンスにまたがってプロビジョニングできます。
  • ローカルおよびリモート API モード: 同一マシン上の BlueOnyx サーバーへ接続するローカルモード(パスワード認証)と、ネットワーク越しに接続するリモートモード(client-secret 認証)に対応しています。
  • 顧客セルフサービス: 顧客は FOSSBilling クライアントエリアから Vsite 詳細の確認、パスワード変更、ドメイン変更、SSL 状態確認、Let's Encrypt 証明書申請を行えます。
  • 非同期 Let's Encrypt: 証明書申請はキューに入れられ、FOSSBilling 管理者 cron 実行時に処理されるため、ブラウザーのタイムアウトを防ぎます。
  • テンプレート上書き: モジュールはインストール時に専用テンプレート上書きを html_custom へ配置し、アンインストール時に削除します。FOSSBilling のコアファイルは変更しません。
  • セキュリティ: API 認証情報はデバッグ出力とエラーメッセージ内でマスクされます。TLS 検証はサーバーごとに切り替え可能です。BlueOnyx API は、リモート接続向けに IP ベースのアクセス制限と client-secret 認証に対応しています。

アンインストール

モジュールを削除するには、FOSSBilling の Extensions ページで無効化します。モジュールのアンインストールフックにより、BlueOnyx 専用の html_custom テンプレート上書きが削除されます。既存のホスティングプラン、サービス、注文には影響しません。それらは FOSSBilling と BlueOnyx サーバー上に残ります。

リポジトリとサポート

このモジュールに関する issue や pull request は、モジュールリポジトリに送ってください。BlueOnyx 本体の変更は BlueOnyx リポジトリで扱います。