diff --git a/programmer/templates/password_reset_confirm.html b/programmer/templates/password_reset_confirm.html
new file mode 100644
index 0000000..cb02a7c
--- /dev/null
+++ b/programmer/templates/password_reset_confirm.html
@@ -0,0 +1,24 @@
+{% extends 'programmer/base.html' %}
+{% load django_bootstrap5 %}
+
+{% block content %}
+
+
+
+ {% if validlink %}
+
+ {% else %}
+
+
Ссылка для восстановления пароля недействительна. Возможно, она уже была использована.
+
Запросите восстановление пароля заново.
+
+ {% endif %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/programmer/templates/password_reset_subject.txt b/programmer/templates/password_reset_subject.txt
new file mode 100644
index 0000000..15282df
--- /dev/null
+++ b/programmer/templates/password_reset_subject.txt
@@ -0,0 +1 @@
+Восстановление пароля на сайте {{ site_name }}
\ No newline at end of file
diff --git a/programmer/templates/programmer/login.html b/programmer/templates/programmer/login.html
index 6d02de2..70e43b7 100644
--- a/programmer/templates/programmer/login.html
+++ b/programmer/templates/programmer/login.html
@@ -21,5 +21,8 @@
+{% endblock %}
\ No newline at end of file
diff --git a/programmer/templates/programmer/password_reset_complete.html b/programmer/templates/programmer/password_reset_complete.html
new file mode 100644
index 0000000..63c9228
--- /dev/null
+++ b/programmer/templates/programmer/password_reset_complete.html
@@ -0,0 +1,12 @@
+{% extends 'programmer/base.html' %}
+
+{% block content %}
+
+
+
+
Мы отправили вам инструкцию по восстановлению пароля на указанный email.
+
Если письмо не пришло, проверьте папку «Спам» или убедитесь, что вы ввели правильный адрес.
+
Вернуться к входу
+
+{% endblock %}
\ No newline at end of file
diff --git a/programmer/templates/programmer/password_reset_email.html b/programmer/templates/programmer/password_reset_email.html
new file mode 100644
index 0000000..3f32d88
--- /dev/null
+++ b/programmer/templates/programmer/password_reset_email.html
@@ -0,0 +1,15 @@
+{% load i18n %}
+{% autoescape off %}
+Здравствуйте!
+
+Вы получили это письмо, потому что запросили восстановление пароля на сайте {{ site_name }}.
+
+Для сброса пароля перейдите по ссылке ниже:
+
+{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}
+
+Если вы не запрашивали восстановление пароля, просто проигнорируйте это письмо.
+
+С уважением,
+Команда {{ site_name }}
+{% endautoescape %}
\ No newline at end of file
diff --git a/programmer/urls.py b/programmer/urls.py
index 960c02a..3ecf762 100644
--- a/programmer/urls.py
+++ b/programmer/urls.py
@@ -38,6 +38,28 @@ urlpatterns = [
path('profile/callbacks/', views.my_callbacks, name='my_callbacks'),
path('profile/comments/', views.my_comments, name='my_comments'),
path('profile/notifications/', views.notification_settings, name='notification_settings'),
+ path('password-reset/',
+ auth_views.PasswordResetView.as_view(
+ template_name='programmer/password_reset.html',
+ email_template_name='programmer/password_reset_email.html',
+ subject_template_name='programmer/password_reset_subject.txt'
+ ),
+ name='password_reset'),
+ path('password-reset/done/',
+ auth_views.PasswordResetDoneView.as_view(
+ template_name='programmer/password_reset_done.html'
+ ),
+ name='password_reset_done'),
+ path('password-reset/