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

# MongoDB

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

## Docker Compose の設定

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

```yml
  mongo:
    container_name: mongo
    user: root
    image: docker.io/bitnamilegacy/mongodb:8.0.3
    logging: *default-logging
    volumes:
      - type: bind
        source: ./mongodb
        target: /bitnami/mongodb
        bind:
          create_host_path: true
    environment:
      TZ: "${TZ}"
      MONGODB_ROOT_USER: "${MONGO_USER}"
      MONGODB_ROOT_PASSWORD: "${MONGO_PASSWORD}"
      MONGODB_PORT_NUMBER: "27017"
      MONGODB_INITIAL_PRIMARY_PORT_NUMBER: "27017"
      MONGODB_ADVERTISED_HOSTNAME: "${MONGO_HOSTNAME}"
      MONGODB_REPLICA_SET_NAME: "${MONGO_REPLICA_SET}"
      MONGODB_REPLICA_SET_MODE: "primary"
      MONGODB_REPLICA_SET_KEY: "my/replication/common/key123"
      MONGODB_SYSTEM_LOG_VERBOSITY: 0
    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                   |    任意   |  root | MongoDB の root ユーザー名                      |
| MONGODB_ROOT_PASSWORD               |    任意   |   --  | MongoDB の root ユーザーのパスワード                 |
| MONGODB_PORT_NUMBER                 |    任意   | 27017 | MongoDB に接続するポート番号                        |
| MONGODB_INITIAL_PRIMARY_PORT_NUMBER |    任意   | 27017 | レプリカセットのプライマリーノードのポート番号                   |
| MONGODB_ADVERTISED_HOSTNAME         |    任意   |   --  | レプリカセットが使うホスト名                            |
| MONGODB_REPLICA_SET_NAME            |    任意   |   --  | レプリカセットの名前                                |
| MONGODB_REPLICA_SET_MODE            | primary |   --  | レプリケーションモード (primary, secondary, arbiter) |
| MONGODB_REPLICA_SET_KEY             |    任意   |   --  | レプリカセットの認証のための共通鍵                         |
| MONGODB_SYSTEM_LOG_VERBOSITY        |    0    |   0   | ログレベル (0-5)                               |

詳細については [MongoDB® packaged by Bitnami](https://github.com/bitnami/containers/tree/main/bitnami/mongodb) を参照してください。
