Porta On Prem README
アーキテクチャ
Section titled “アーキテクチャ”Porta On Prem には、次の最小システム構成が必要です。
- データベースレプリケーションを実行する場合は、最低 3 台のマシン。
| コンポーネント | 仕様 |
|---|---|
| オペレーティングシステム | Windows 10 または 11、64 ビット、Win10 は最低でも更新プログラム 21H2 が必要 |
| 仮想化オペレーティングシステム | WSL 2、デフォルトディストロとして Ubuntu 22.04 |
| CPU | Intel i7 第 4 世代(必須: AVX2 をサポートする CPU) |
| メモリ | 8GB RAM |
| ストレージ | 30GB 以上 |
Docker
Section titled “Docker”porta コンテナ
Section titled “porta コンテナ”- 役割: Porta UI と API
- Published Ports:
- UI 用 8080
- API 用 8000
porta-db コンテナ
Section titled “porta-db コンテナ”- 役割: Porta MySQL データベース
- Published Ports:
- MySQL クライアントポート:
porta-db用 3306porta-db-2用 3307porta-db-3用 3308
- MySQL レプリケーションポート:
porta-db用 33061porta-db-2用 33062porta-db-3用 33063
- MySQL クライアントポート:
porta-socket コンテナ
Section titled “porta-socket コンテナ”- 役割: Porta WebSocket リレーサーバー
- Published Ports: 6001
porta-redis コンテナ
Section titled “porta-redis コンテナ”- 役割: Porta Redis サーバー
- Published Ports: 6379
データベース
Section titled “データベース”Porta On Prem は、MySQL 標準の Group Replication 機能を利用して 3 つの MySQL データベースを実行します。
データベースレプリケーション
Section titled “データベースレプリケーション”MySQL Group Replication は、グループ内のサーバー間で自動的に調整される分散レプリケーションを提供します。グループレプリケーションにより、データベースサービスが継続的に利用可能であることが保証されます。
レプリケーショングループは、自動プライマリ選出を伴うシングルプライマリモードで動作し、一度に 1 つのサーバーのみが書き込みを受け付けます。プライマリ障害の場合、Porta バックエンドは新しく選出されたプライマリへの再接続を自動的に試みます。
レプリケーションの状態
Section titled “レプリケーションの状態”performance_schema.replication_group_members の member_state がとりうる値
| メンバーの状態 | 説明 |
|---|---|
ONLINE | サーバーはグループのアクティブなメンバーであり、完全に機能している状態です。 |
RECOVERING | サーバーはグループに参加し、アクティブなメンバーになる 過程にあります。 |
OFFLINE | Group Replication プラグインは読み込まれていますが、メンバーは どのグループにも属していません。 この状態は、メンバーがグループに参加または再参加する間、一時的に発生することがあります。 |
UNREACHABLE | ローカルの障害検出器が、グループのメッセージがタイムアウトしているため、メンバーに連絡できないと疑っています。 これは、メンバーが意図せず切断された場合に発生することがあります。 |
ERROR | メンバーはエラー状態にあり、グループメンバーとして正しく機能していません。 メンバーがレプリケーショングループに参加または再参加する間、グループが互換性チェックを完了してメンバーとして受け入れる前に、そのステータスが ERROR と表示されることがあります。 |


WebSocket サーバーの障害とフェイルオーバー
Section titled “WebSocket サーバーの障害とフェイルオーバー”Porta On Prem は WebSocket サーバーへの接続を監視し、接続が失われた場合は自動的にバックアップサーバーへのフェイルオーバーを試みます。


障害が発生したサーバーがオンラインに復帰した場合、アクティブなサーバーを置き換えることは なく、アクティブなサーバーが障害を起こすか、その他の理由でシャットダウンするまで、新しい「バックアップ」サーバーとして動作します。

多くの復旧またはモニタリングタスクには、使いやすいショートカットスクリプトが用意されており、これらのドキュメント全体で参照されます。
データベースヘルパー
Section titled “データベースヘルパー”場所: porta-database
| スクリプト名 | 説明 |
|---|---|
| view-group-repl-status.bat | データベースレプリケーショングループのメンバーステータスを表示する(このマシンが報告したもの) |
| view-ALL-group-repl-status.bat | データベースレプリケーショングループのメンバーステータスを表示する(各マシンが報告したもの) |
| view-database-log.bat | このマシンのデータベースログを表示する |
| follow-database-log.bat | このマシンのデータベースログをリアルタイムで表示する |
| view-repl-vars.bat | このマシンのデータベースレプリケーション変数の値を表示する |
| view-binlog-events.bat | このマシンのデータベースバイナリログイベントを表示する |
| view-transactions.bat | このマシンのデータベーストランザクションを表示する |
| view-database-users.bat | データベースに登録されている Porta ユーザーを表示する |
レプリケーションアクション
Section titled “レプリケーションアクション”場所: porta-database/actions
| スクリプト名 | 説明 |
|---|---|
| bootstrap.bat | このデータベースのレプリケーションをブートストラップする |
| restart-repl.bat | このデータベースのレプリケーションを再起動する |
| START-repl.bat | このデータベースのレプリケーションを開始する |
| STOP-repl.bat | このデータベースのレプリケーションを停止する |
バックアップと復旧アクション
Section titled “バックアップと復旧アクション”場所: porta-database/actions
| スクリプト名 | 説明 |
|---|---|
| create-backup.bat | データベースのバックアップを作成する |
| restore-from-backup.bat | バックアップからデータベースを復元する |
caution/copy-DB-backup-from-container-to-host.ps1 | データベースコンテナからホストマシンへデータベースバックアップをコピーする |
caution/copy-DB-backup-into-container-and-restore.ps1 | ホストマシンからデータベースコンテナへデータベースバックアップをコピーし、オプションでそれを使用してデータベースを復元する |
その他のデータベースアクション
Section titled “その他のデータベースアクション”場所: porta-database/actions/caution
| スクリプト名 | 説明 |
|---|---|
reset.bat ⚠️ | このデータベースをリセットする ⚠️ これはマシン上のデータを消去します |
migrate-or-seed.bat | データベースをマイグレーションおよび/またはシードする |
set-bootstrap-OFF.bat | データベース起動時のブートストラップを無効にする(これがデフォルト設定です) |
破壊的なデータベースアクション
Section titled “破壊的なデータベースアクション”場所: porta-database/actions/caution
| スクリプト名 | 説明 |
|---|---|
⛔ set-bootstrap-ON.bat ⛔ | データベース起動時のブートストラップを有効にする 3 台構成で使用すると、データ損失につながります |
⛔ transfer/MAIN-TO-BACKUP-transfer-database.bat ⛔ | データベースをメインマシンからバックアップマシンに転送する。 これはバックアップマシンの データベース内のすべてのデータを上書き します。2 台構成での使用のみを意図しています。 |
⛔ transfer/BACKUP-TO-MAIN-transfer-database.bat ⛔ | データベースをバックアップマシンからメインマシンに転送する。 これはメインマシンの データベース内のすべてのデータを上書き します。2 台構成での使用のみを意図しています。 |
一般チェックヘルパー
Section titled “一般チェックヘルパー”場所: porta-checks
| スクリプト名 | 説明 |
|---|---|
| view-workers.bat | Porta のサーバーワーカーを表示する |
| view-failed-jobs.bat | Porta の失敗したジョブを表示する |
| check-default-connection.bat | Porta がキャッシュしているデフォルトのデータベース接続を確認する |
| check-env-connections.bat | Porta の環境構成で設定されているデータベース接続を確認する |
| check-primary-connection.bat | Porta が使用しているプライマリデータベース接続を確認する |
| check-version.bat | Porta のバージョンを確認する |
ログビューアヘルパー
Section titled “ログビューアヘルパー”場所: porta-log-viewers
| スクリプト名 | 説明 |
|---|---|
| view-laravel-log.bat | Porta API のログを表示する |
| view-horizon-log.bat | Porta のキューログを表示する |
| view-tasks-log.bat | Porta のバックグラウンドタスクログを表示する |
| view-php-errors-log.bat | Porta API の低レベルエラーログを表示する |
| view-server-log.bat | Porta の一般サーバーログを表示する |
| view-socket-log.bat | Porta のソケットサーバーログを表示する |
| view-redis-log.bat | Porta の Redis サーバーログを表示する |
構成ビューアヘルパー
Section titled “構成ビューアヘルパー”場所: porta-config-viewers
| スクリプト名 | 説明 |
|---|---|
| view-api-env.bat | Porta の API 環境構成ファイルの内容を表示する |
| view-app-env.bat | Porta の UI 環境構成ファイルの内容を表示する |
| view-cached-connection.bat | Porta が使用しているキャッシュされたデフォルトデータベース接続を表示する |
| view-cache-config.bat | Porta が使用しているすべてのキャッシュされた構成を表示する |
| view-supervisor-conf.bat | Porta の supervisord 構成を表示する |
| view-php-conf.bat | Porta の PHP 構成を表示する |
| view-nginx-conf.bat | Porta の nginx 構成を表示する |
システムヘルパー
Section titled “システムヘルパー”場所: porta-run
| スクリプト名 | 説明 |
|---|---|
| cache-api-config.bat | Porta API の構成ファイルをキャッシュする |
| clear-api-cache.bat | Porta API のキャッシュをクリアする |
| rotate-porta-logs.bat | Porta のシステムログを手動でローテーションする |
| copy-file-from-container.bat | 実行中のコンテナからホストマシンへファイルをコピーする |
| copy-file-from-stopped container.bat | 停止したコンテナからホストマシンへファイルをコピーする |
システム管理ヘルパー
Section titled “システム管理ヘルパー”場所: porta-run/sysadmin
| スクリプト名 | 説明 |
|---|---|
| fix-crlf.bat | 指定されたディレクトリ内の Windows 改行コード(CRLF)を Linux 改行コード(LF)に変換する |
| generate-secret.bat | Porta の環境構成ファイル用の新しいシークレットキーを生成する。これにより API 構成もキャッシュされます。 |
| ❌ migrate-volumes.bat | 廃止 — 古いバージョンの Porta On Prem で、マウントされたドライブを docker ボリュームに移行する |
| restart-workers.bat | Porta サーバーワーカーを再起動する |
| restart-container.bat | Docker コンテナを再起動する |
| stop-container.bat | Docker コンテナを停止する |
| stop-porta-socket-server.bat | porta-socket コンテナを停止する |
Porta On Prem のインストール
Section titled “Porta On Prem のインストール”インストーラーログ
Section titled “インストーラーログ”Porta インストーラーのログは、WSL ディレクトリ /home/$USER/porta/logs/installer にあります。
これらのログには、(インストールに応じて)次のいずれかのパスに移動することで、Windows エクスプローラーでアクセスできます。
\\wsl$\Ubuntu\home\<USERNAME>\porta\logs\installer\\wsl$\Ubuntu-22.04\home\<USERNAME>\porta\logs\installer\\wsl$\Ubuntu-20.04\home\<USERNAME>\porta\logs\installer
Porta UI ログ
Section titled “Porta UI ログ”フロントエンドのログは、Web ブラウザのコンソールで表示できます。ログにアクセスするには、ブラウザの開発者ツール(F12)を開き、Console タブを選択します。
Porta サーバーおよびサービスログ
Section titled “Porta サーバーおよびサービスログ”Porta 関連のログは、それぞれのコンテナ内にあります。これらのログの一部は、porta-onprem-bundle\porta-helpers\porta-log-viewers フォルダ内のヘルパーのいずれかを実行することで表示できます。
Porta API ログ
Section titled “Porta API ログ”アプリケーションログ
Section titled “アプリケーションログ”これらのログは、Porta API の一般的なデバッグとトラブルシューティングに最も役立ちます。
- ヘルパー:
view-laravel-log.bat-
注: ログのファイル名は
laravel-で始まり、日付でスコープされます(例:laravel-YYYY-MM-DD.log)。
-
スケジュール/バックグラウンドタスクログ
Section titled “スケジュール/バックグラウンドタスクログ”これらは、ソケットサーバーチェック、データベースバックアップとチェックなど、スケジュールされた、または長時間実行されるバックグラウンドタスクで構成されます。
- ヘルパー:
view-tasks-log.bat
キューに入れられたタスクログ
Section titled “キューに入れられたタスクログ”これらのログは、メディアの取り込みや変換などの、キューに入れられたバックグラウンドタスク用です。
- ヘルパー:
view-horizon-log.bat
PHP エラーログ
Section titled “PHP エラーログ”これらのログは、より低レベルの PHP エラーと例外用です。これらは、メモリエラーなど、サーバーレベルで何か問題が発生した場合に発生します。
- ヘルパー:
view-php-errors-log.bat
一般 API サーバーログ
Section titled “一般 API サーバーログ”サーバープロセスとサービスに関するログ。
- ヘルパー:
view-server-log.bat
Porta データベースログ
Section titled “Porta データベースログ”これらのログは、Porta データベースサーバー用です。レプリケーションに関する情報やその他の MySQL ログが含まれます。
- ヘルパー:
porta-onprem-bundle\porta-helpers\porta-database\view-database-log.bat
Porta ソケットサーバーログ
Section titled “Porta ソケットサーバーログ”これらのログには、WebSocket 接続とサーバーを通過するリクエストに関する多くの情報が含まれます。ほぼすべてのイベントとステータス変更がここに記録されます。
- ヘルパー:
view-socket-log.bat
Redis サーバーログ
Section titled “Redis サーバーログ”これらのログは、ソケットサーバーまたは API ログで Redis エラーが見られない限り、ほとんど必要になることはありません。
- ヘルパー:
view-redis-log.bat
診断とモニタリング
Section titled “診断とモニタリング”Porta 診断を実行して、さまざまなログと構成情報を 1 つのアーカイブにまとめます。
- porta-onprem-bundle の
porta-helpersフォルダで、porta-full-diag.batをダブルクリックして完全診断ヘルパーを実行します。 - 診断が実行され、ヘルパースクリプトと同じフォルダにディレクトリと
.tar.gzファイルが作成されます。
データベースのヘルスの表示
Section titled “データベースのヘルスの表示”データベースヘルスダッシュボードは http://<MACHINE-IP>:8000/health で利用できます。このダッシュボードには、進行中のデータベースレプリケーションヘルスチェックの結果が表示されます。
サーバーワーカーの表示
Section titled “サーバーワーカーの表示”プレイグループシーケンスを処理するもの(porta-horizon-worker)や、バックグラウンドでデータベースチェックを実行するもの(porta-task-worker)など。
- ヘルパー:
porta-onprem-bundle\porta-helpers\porta-checks\view-workers.bat - 結果の例:
Terminal window nginx RUNNING pid 7, uptime 0:16:57php-fpm RUNNING pid 8, uptime 0:16:57porta-task-worker:porta-task-worker_00 RUNNING pid 746, uptime 0:02:57porta-task-worker:porta-task-worker_01 RUNNING pid 747, uptime 0:02:57porta-horizon-worker:porta-horizon-worker_00 RUNNING pid 732, uptime 0:02:59porta-horizon-worker:porta-horizon-worker_01 RUNNING pid 733, uptime 0:02:59
キューに入れられたタスクの表示
Section titled “キューに入れられたタスクの表示”メディア変換などの一部の負荷の高いタスクは、キューに入れられてバックグラウンドで実行されます。これらのタスクを監視するための最小限の UI が http://<MACHINE-IP>:8000/horizon で利用できます。
失敗したタスクの表示
Section titled “失敗したタスクの表示”失敗したタスクは、ヘルパー porta-onprem-bundle\porta-helpers\porta-checks\view-failed-jobs.bat で直接表示できます。
Socket.IO Admin UI
Section titled “Socket.IO Admin UI”http://<PORTA-MACHINE-IP>:8000/socketio-adminui で Socket.IO Admin UI を表示して、Porta ソケットサーバーのステータスを監視します。ログイン認証情報については、support@disguise.one までお問い合わせください。
バックアップと復元
Section titled “バックアップと復元”Porta OnPrem データベースのバックアップと復元の方法の詳細については、Porta On Prem Backup and Restore Guide を参照してください。