ソースからデプロイ
OpenReplay はソースからデプロイできます。インストールを行う前に、主要コンポーネント(Backend、API、Frontend)をビルドし、ご自身のコンテナレジストリにプッシュしておく必要があります。
OpenReplay を実行するマシンの最小スペックは、x86 アーキテクチャで 2 vCPUs, 8 GB of RAM, 50 GB of storage です。これを下回ると OpenReplay のバックエンドサービスは起動しません。低~中程度のボリュームであれば十分です。高トラフィックが見込まれる場合は、ここからスケールアップしてください。
1. 前提条件
Section titled 1. 前提条件- docker をインストールします。
sudo apt update
sudo apt install docker.io -y
user=`whoami`
sudo chown $user /var/run/docker.sock
- OpenReplay リポジトリをクローンします。
git clone https://github.com/openreplay/openreplay
2. Backend サービスをビルドする
Section titled 2. Backend サービスをビルドする-
docker login <registry_url>を使用して、コンテナレジストリにログインします。Docker Hub アカウントをお持ちの場合は、単にdocker loginを実行してください。 -
バックエンドコンポーネントをビルドし、コンテナレジストリにプッシュします。
cd openreplay/backend
sudo IMAGE_TAG=<my_tag_number> PUSH_IMAGE=1 DOCKER_REPO=index.docker.io/<username> bash build.sh
注意: タグ名には任意の文字列を使用できます。タグは Docker Registry 上に作成され、コードのこの特定のバージョンを識別するために使用されます(コードも変更する場合に便利です)。
問題なく完了すると、Docker レジストリには、お手元のソースコードからビルドされた、インストール可能なイメージの一覧が作成されます。 イメージの一覧は次のとおりです。
- Storage
- Sink
- Integrations
- HTTP
- Heuristics
- Ender
- DB
- Assets
- Alerts
- Chalice
3. イメージを更新する
Section titled 3. イメージを更新する- コンテナレジストリのシークレットを作成します。
kubectl create secret -n app docker-registry my-registry-secret \
--docker-server=MY_CONTAINER_REGISTRY_URL \ # not required if docker hub
--docker-username=MY_CONTAINER_REGISTRY_USERNAME \
--docker-password=MY_CONTAINER_REGISTRY_PASSWORD \
--docker-email=no@email.local
- ビルドしてコンテナレジストリにプッシュしたコンポーネントを使用するには、
openreplay/scripts/helmchartsフォルダー内にあるvars.yamlファイルを更新します。 Docker レジストリにある各イメージについて、次の情報を含むセクションを追加してください。
repository: MY_CONTAINER_REGISTRY_URL/COMPONENT_NAME を指定します(Docker Hub を使用している場合は、代わりに<username>/<component name>形式を使用してください)pullPolicy: “Always” に設定しますtag: Backend と API のビルド時に使用した IMAGE_TAG の値imagePullSecrets: コンテナレジストリのシークレット
vars.yaml ファイル内で参照していないイメージは、OpenReplay の公式リポジトリからデプロイおよびインストールされます。つまり、ソースコードからビルドしたバージョンにはならないのでご注意ください。
以下は alerts サービスの例です。
alerts:
image:
repository: rg.fr-par.scw.cloud/foss/alerts
pullPolicy: Always
tag: "v1.4.2"
imagePullSecrets:
- name: my-registry-secret
OpenReplay をインストールする
Section titled OpenReplay をインストールするvars.yamlを開き、次の項目を編集します。
domainName: OpenReplay にアクセスする場所です(例: openreplay.mycompany.com)
- OpenReplay をインストールします。
cd openreplay/scripts/helmcharts
helm upgrade --install databases ./databases -n db --create-namespace --wait -f ./vars.yaml --atomic
helm upgrade --install openreplay ./openreplay -n app --create-namespace --wait -f ./vars.yaml --atomic
バックエンドサービスまたは DB サービスのソースコードを変更した場合は、ステップ 3 に戻り、上記のコマンドをもう一度実行する必要があります。
TLS/SSL を設定する
Section titled TLS/SSL を設定するOpenReplay は機密性の高いユーザーデータを扱うため、動作には HTTPS が必須です。HTTPS がないと、トラッカーは録画を開始できません。ダッシュボードも同様で、HTTPS がなければユーザーセッションをリプレイできません。
そのため、SSL 証明書を持ち込む(または生成する)必要があります。
-
まず DNS サービスプロバイダーに移動し、
A Recordを作成します。インストール手順で指定したドメインを使用し、マシンのパブリック IP を指すように設定します。 -
独自の証明書を持ち込む場合は、次のコマンドで Kubernetes の SSL シークレットを作成します:
kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt"。
注記:証明書をお持ちでない場合は、Let’s Encrypt を使用して、サブドメイン(インストール時に指定したもの)用に自動更新される証明書を生成できます。
cd openreplay/scripts/helmcharts && bash certmanager.shを実行して、手順に従ってください。
- http から https へのリダイレクトを有効にする場合(推奨)は、
vars.yamlのingress-nginxセクションにある以下のブロックのコメントを解除します。
ingress-nginx: &ingress-nginx
controller:
config:
ssl-redirect: true
force-ssl-redirect: true
なお、ingress-nginx はデフォルトでポート 80|443 で動作しますが、必要に応じて vars.yaml で簡単に変更できます。
ingress-nginx: &ingress-nginx
controller:
service:
ports:
http: 80
https: 443
- 最後に、OpenReplay の NGINX を再インストールします。
openreplay -R
4. Frontend をビルドしてデプロイする
Section titled 4. Frontend をビルドしてデプロイする最後に、フロントエンドもビルドする場合は、次のコマンドでイメージをビルドする必要があります。
cd openreplay/frontend
IMAGE_TAG=<your tag> PUSH_IMAGE=1 DOCKER_REPO=myDockerHubID bash build.sh
これが完了したら、vars.yaml ファイルに戻り、フロントエンド専用のセクションを追加します。先ほど alerts と chalice に追加したセクションと同様の内容になります。
frontend:
image:
repository: <YOUR DOCKER REGISTRY>/frontend
pullPolicy: Always
tag: <YOUR TAG>
imagePullSecrets:
- name: <YOUR SECRET>
ファイルに新しいセクションを追加したら、openreplay -R コマンド(scripts/helmcharts フォルダー内にあります)を実行すると、新しいフロントエンドが稼働します。
これで設定は完了です。OpenReplay にはサブドメインからアクセスできるようになります。/signup ページ(例: openreplay.mycompany.com/signup)にアクセスしてアカウントを作成できます。
ご質問はありますか?
Section titled ご質問はありますか?問題が発生した場合は、Slack に参加して、コミュニティからサポートを受けてください。