LibreChatにMongo Expressを導入してデータベース管理を楽にする

公開日:
目次

ChatGPTクローンとしてLibreChatを利用しているのですが、普段ほとんどDBは触らないのでユーザの削除等データベース管理が大変でした。

LibreChatではデータベース管理を楽にするためにMongo Expressが導入できます。

ちなみにMongo Expressは下記画像のように、ブラウザからデータベースが簡単に管理できるインターフェースです。

Mongo Express Setup

今回実際にやってみたので備忘録を残します。

Mongo-Expressを追加する

早速Mongo Expressの設定をします。

設定とは言ってもLibreChatが元々用意してくれるのでdockerファイルをいじったりするだけOKです。

docker-compose.override.ymlの作成

LibreChat 用のメインの docker-compose.yml ファイルと同じディレクトリに、docker-compose.override.yml という名前の新しいファイルを作成します。

docker-compose.override.yml.exampleが用意されているので、そちらをコピーして名前を変えるか、完全に作り直します。

コピーする場合はADD MONGO-EXPRESSと書かれている箇所のコメントアウトを外すだけでOK

コピーする場合の手順

  1. LibreChatのディレクトリに移動して下記コマンドを実行
    cp docker-compose.override.yml.example docker-compose.override.yml
    
  2. vimを起動してdocker-compose.override.ymlを修正する
    vim docker-compose.override.yml
    
  3. vimで修正する
    • ADD MONGO-EXPRESSのコメントアウトを外す
      • ADD MONGO-EXPRESSの行で、ctrl+vで矩形ビジュアルモードにして、jで範囲選択してdで一括削除。
        • そんなに量が多いわけでもないのでxで削除を繰り返すだけでもOK
        • escして:wqで保存して閉じる
      • ちなみにME_CONFIG_BASICAUTH_USERNAME: adminME_CONFIG_BASICAUTH_PASSWORD: passwordはセキュリティ上好きなものに修正したほうが良いです。
      • その上にあるservice:というところのコメントアウトを外す
      • -----------と区切られている箇所の下にあるはず。

新しくファイルを作り直す場合の手順

新しくファイルを作成した場合は、以下の内容を docker-compose.override.yml ファイルにコピーします

version: '3.4'

services:
  mongo-express:
    image: mongo-express
    container_name: mongo-express
    environment:
      ME_CONFIG_MONGODB_SERVER: mongodb
      ME_CONFIG_BASICAUTH_USERNAME: admin
      ME_CONFIG_BASICAUTH_PASSWORD: password
    ports:
      - '8081:8081'
    depends_on:
      - mongodb
    restart: always

セキュリティ設定をする

Mongo Expressを利用する前にセキュリティの設定をしておきます。デフォルトだとログインするためのユーザー名とパスワードがadminpasswordになっているのでセキュリティのため設定しておく必要があります。

設定はdocker-compose.ymlのenvironmentの部分に記載されています。

environment:
  ME_CONFIG_MONGODB_SERVER: mongodb
  ME_CONFIG_BASICAUTH_USERNAME: admin ⇦ これを変える
  ME_CONFIG_BASICAUTH_PASSWORD: password ⇦ これを変える
  # database authentication variables, using example credentials from guide
  ME_CONFIG_MONGODB_URL: 'mongodb://adminUser:securePassword@mongodb:27017'
  ME_CONFIG_MONGODB_ADMINUSERNAME: adminUser
  ME_CONFIG_MONGODB_ADMINPASSWORD: securePassword

Mongo Express の起動とアクセス

docker-compose.override.ymlファイルを保存し、docker-compose.ymlファイルがあるディレクトリから以下のコマンドを実行して、他のDockerサービスとともにMongo-Expressを起動します。

docker compose up -d

このコマンドは、docker-compose.override.ymldocker-compose.ymlにマージし、設定を適用します。

Mongo-Express が起動したら、ウェブブラウザで http://localhost:8081 にアクセスしてください。ME_CONFIG_BASICAUTH_USERNAMEME_CONFIG_BASICAUTH_PASSWORD に指定したユーザー名とパスワードを入力する必要があります。

入力したらログインできるはずです。

Mongo Expressの削除

Docker環境からMongo-Expressを削除したい場合は、以下の簡単な手順に従ってください:

  1. docker-compose.ymldocker-compose.override.yml ファイルがあるディレクトリに移動します。
  2. docker-compose.ymldocker-compose.override.yml ファイルで定義されている実行中のコンテナをすべて停止して削除します。以下のコマンドを使用する:
    docker compose down
    

以上の手順で、Docker 環境から Mongo Express を削除できます。後で Mongo Express を復活させたい場合は、バックアップファイルの名前を docker-compose.override.yml に戻すか、元の docker-compose.override.yml ファイルを Mongo Express の設定で作り直しましょう。

参考