> For AI agents: the complete documentation index is available at /resource/ucidm/docs/on-premise/1.9.0/llms.txt, the full documentation bundle is available at /resource/ucidm/docs/on-premise/1.9.0/llms-full.txt.

# MongoDB

UCIDM はデータベースとして [MongoDB](https://www.mongodb.com/) を使ってユーザやグループの情報、外部連携のために必要な情報、ID 連携の履歴情報、アカウント管理の情報などを格納します。

## Docker Compose の設定

MongoDB はコンテナとして稼働させます。次のように `compose.yml` に設定します。任意で設定している項目の値はサンプルです。お客様の環境にあわせて値を変更してください。

```yml
  mongo:
    container_name: mongo
    image: docker.io/osstech/mongodb:8.2.4
    logging: *default-logging
    volumes:
      - type: bind
        source: ./mongodb/db
        target: /data/db
        bind:
          create_host_path: true
    environment:
      TZ: "${TZ}"
      MONGODB_ROOT_USER: "${MONGO_USER}"
      MONGODB_ROOT_PASSWORD: "${MONGO_PASSWORD}"
      MONGODB_PORT_NUMBER: "27017"
      MONGODB_ADVERTISED_HOSTNAME: "${MONGO_HOSTNAME}"
      MONGODB_REPLICA_SET_NAME: "${MONGO_REPLICA_SET}"
      MONGODB_REPLICA_SET_KEY: "my/replication/common/key123"
    hostname: "${MONGO_HOSTNAME}"
    restart: "always"
    healthcheck:
      test: mongosh "mongodb://localhost:27017/test?directConnection=false&replicaSet=${MONGO_REPLICA_SET}" --eval 'db.runCommand("ping").ok' --quiet
      interval: 60s
      timeout: 5s
      retries: 3
      start_period: 30s
      start_interval: 3s
```

ここで参照する環境変数は `.env` に設定します。

## 環境変数の設定

| 環境変数                        |  値  |  既定値  | 説明                        |
| :-------------------------- | :-: | :---: | :------------------------ |
| TZ                          |  任意 |   --  | タイムゾーン情報                  |
| MONGODB_ROOT_USER           |  任意 |   --  | MongoDB の root ユーザー名      |
| MONGODB_ROOT_PASSWORD       |  任意 |   --  | MongoDB の root ユーザーのパスワード |
| MONGODB_PORT_NUMBER         |  任意 | 27017 | MongoDB に接続するポート番号        |
| MONGODB_ADVERTISED_HOSTNAME |  任意 |   --  | レプリカセットが使うホスト名            |
| MONGODB_REPLICA_SET_NAME    |  任意 |   --  | レプリカセットの名前                |
| MONGODB_REPLICA_SET_KEY     |  任意 |   --  | レプリカセットの認証のための共通鍵         |

MongoDB の [レプリカセット](https://www.mongodb.com/ja-jp/docs/manual/replication/) 設定が必須となります。
