コンテンツにスキップ

複数のツリーをホスティングするためのセットアップ

デフォルトでは、Gramps Webは設定ファイルで指定された単一の家系図データベース(“ツリー”)へのアクセスのみを許可します。

しかし、Gramps Web APIバックエンドのバージョン0.7.0以降、単一のインストールから複数のツリーを提供することも可能になりました。ただし、各ユーザーは(現在)単一のツリーに結びついているため、このセットアップはユーザー間でツリーを共有するためには適しておらず、複数の孤立したGramps Webインスタンスをホスティングするためのものです。

マルチツリーサポートを有効にする

マルチツリーサポートを有効にするには、TREE設定オプションを単一のアスタリスク*に設定する必要があります。例えば、設定ファイルでは次のようになります。

TREE = "*"

これにより、サーバーのGrampsデータベースディレクトリ内のすべてのツリーにアクセスできるようになります(十分なユーザー権限がある場合)。ツリーのIDはサブディレクトリの名前です。既存のツリー(名前とID)をリストするには、次のコマンドを使用します。

python -m gramps_webapi --config /app/config/config.cfg tree list

さらに、MEDIA_PREFIX_TREE設定オプションをTrueに設定して、メディアファイルが別のサブフォルダに保存されるようにすることをお勧めします。そうしないと、ユーザーは自分に権限のないツリーに属するメディアファイルにアクセスできてしまいます!

特定のツリーにユーザーアカウントを追加する

特定のツリーにユーザーを追加するには、ユーザー追加コマンドに--tree TREEIDコマンドラインオプションを追加するだけです。また、JSONペイロードにtreeプロパティを設定して/users/エンドポイントにPOSTすることもできます。

ユーザー名はすべてのツリーで一意である必要があります。メールアドレスは一意である必要はありません(Gramps Web API 3.22以降)、したがって、同じ人が例えば、単一のメールアドレスを使用して複数のツリーにアカウントを持つことができます。

新しいツリーを作成する

新しいツリーを作成するには、Gramps CLIを使用するのではなく、/trees/エンドポイントにPOSTすることをお勧めします。これにより、ツリーIDとしてUUIDv4が使用され、名前が推測できないため、追加のセキュリティが提供されます。新しく作成されたツリーは、NEW_DB_BACKEND設定オプションで設定されたデータベースバックエンドを使用します:SQLite(デフォルト)またはSharedPostgreSQL。詳細については、PostgreSQLデータベースの使用を参照してください。

認証

認証(トークンを取得する)には、ユーザー名とパスワードのみが必要です。これは単一ツリーモードと同様で、各ユーザーに対してツリーIDが知られているため、提供する必要はありません。

既存のメディアファイルを移行する

既存のGramps Webインスタンスをマルチツリーサポートに移行し、ローカルメディアファイルを使用している場合は、それらをツリーIDを名前とした元の場所のサブフォルダに移動するだけです。

S3にホストされているメディアファイルを使用している場合は、gramps-web-apiリポジトリのscriptsディレクトリに提供されているスクリプトを使用できます。

python scripts/s3_rename.py BUCKET_NAME TREE_ID

これは、関連するアクセスキーがすでに環境変数として設定されていることを前提としています。

既存のユーザーデータベースを移行する

マルチツリーサポートを有効にし、既存のユーザーを再利用したい場合は、特定のツリーに割り当てる必要があります。この目的のために提供されている次のコマンドを使用できます。

python -m gramps_webapi --config /app/config/config.cfg user fill-tree TREE_ID

フロントエンドをカスタマイズする

ログインページからアクセス可能な登録ページは、マルチツリーセットアップでは機能しません。登録にはツリーを指定する必要があるためです。したがって、フロントエンド設定でhideRegisterLinkをtrueに設定することをお勧めします。