> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.ruoomsoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Install and configure Email OTP Plugin 1.0.2

## Prerequisites

* A compatible Ruoom Core 1.x environment on Python 3.10 or newer and Django 5.2.
* The licensed `email_otp_plugin-1.0.2-py3-none-any.whl` artifact.
* A working Core email backend.

## Install

```powershell theme={null}
python -m pip install .\email_otp_plugin-1.0.2-py3-none-any.whl
```

Add the identifier to `.env`:

```text theme={null}
RUOOM_PLUGINS=email_otp
```

Preserve other plugins in the comma-separated list. Then initialize and verify the plugin:

```bash theme={null}
python manage.py migrate
python manage.py check
```

Restart the application. Core mounts the plugin at `/otp/` and adds its sign-in option automatically. When Email OTP is installed, Core defaults to its request page as `LOGIN_URL`; set `USE_EMAIL_OTP_LOGIN=false` to keep password login as the default while retaining the OTP option.

## Optional settings

```python theme={null}
EMAIL_OTP_EXPIRY_MINUTES = 10
EMAIL_OTP_MAX_VERIFY_ATTEMPTS = 5
EMAIL_OTP_REQUEST_COOLDOWN_SECONDS = 60
EMAIL_OTP_SIGNUP_REDIRECT_URL = SIGNUP_URL
USE_EMAIL_OTP_LOGIN = True
```

Test `/otp/signin/` with an address that can receive application email. Never log or expose submitted codes.
