> For the complete documentation index, see [llms.txt](https://vitrina-blogerov.gitbook.io/bloggers-showcase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vitrina-blogerov.gitbook.io/bloggers-showcase/smena-administratora.md).

# Смена администратора

## Утилиты. Смена администратора

Смена администратора выполняется через скрипт `reset_admin.py`, который входит в каждую языковую версию приложения.

Утилита нужна, если пароль администратора потерян, нужно создать нового администратора или заменить доступ владельца.

{% hint style="info" %}
Это утилита для веб-админки. Она не меняет Telegram-администраторов бота и не влияет на список Telegram ID.
{% endhint %}

### Команда

Команда выполняется внутри backend-контейнера нужной языковой версии.

{% tabs %}
{% tab title="RU" %}

```bash
cd /opt/bloggers_platform/apps/ru
sudo docker compose -p bloggers_ru -f docker-compose.yml -f docker-compose.edge.yml exec -T backend python reset_admin.py new_admin new_password
```

{% endtab %}

{% tab title="EN" %}

```bash
cd /opt/bloggers_platform/apps/en
sudo docker compose -p bloggers_en -f docker-compose.yml -f docker-compose.edge.yml exec -T backend python reset_admin.py new_admin new_password
```

{% endtab %}

{% tab title="ZH" %}

```bash
cd /opt/bloggers_platform/apps/zh
sudo docker compose -p bloggers_zh -f docker-compose.yml -f docker-compose.edge.yml exec -T backend python reset_admin.py new_admin new_password
```

{% endtab %}

{% tab title="AR" %}

```bash
cd /opt/bloggers_platform/apps/ar
sudo docker compose -p bloggers_ar -f docker-compose.yml -f docker-compose.edge.yml exec -T backend python reset_admin.py new_admin new_password
```

{% endtab %}
{% endtabs %}

В командах `new_admin` и `new_password` нужно заменить на новый логин и пароль.

{% hint style="warning" %}
Используйте сложный пароль. Доступ к веб-админке позволяет менять карточки, настройки витрины, Telegram token, AI-настройки и другие важные параметры.
{% endhint %}

### Что делает утилита

Утилита ищет администратора с указанным логином в базе выбранной языковой версии.

{% tabs %}
{% tab title="Админ найден" %}
Если такой администратор уже есть, утилита меняет ему пароль.
{% endtab %}

{% tab title="Админ не найден" %}
Если такого администратора нет, утилита создает нового администратора с указанным логином и паролем.
{% endtab %}
{% endtabs %}

Пароль сохраняется не в открытом виде, а в виде защищенного хеша.

### Что важно знать

Администраторы хранятся отдельно в каждой языковой версии. Если нужно сменить доступ сразу в нескольких версиях, команду нужно выполнить для каждой версии отдельно.

Старые сессии в браузере могут оставаться активными до истечения срока токена. После смены пароля лучше выйти из админ-панели и войти заново.

<details>

<summary>Почему команда выполняется внутри backend-контейнера</summary>

Скрипт использует окружение приложения и подключается к базе выбранной языковой версии так же, как backend. Поэтому команду запускают через `docker compose exec backend`.

</details>

### Какие данные затрагиваются

Утилита меняет только таблицу администраторов выбранной языковой версии.

Она не меняет:

* карточки блогеров;
* категории и теги;
* настройки витрины;
* Telegram bot token;
* пользователей Telegram-бота;
* загруженные файлы;
* другие языковые версии.

### Когда использовать

Утилиту используют, если пароль администратора потерян, нужно заменить владельца доступа или быстро создать нового администратора после установки.

После выполнения команды вход выполняется по адресу админ-панели нужной версии:

```
https://example.com/bloggers/ru/admin
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://vitrina-blogerov.gitbook.io/bloggers-showcase/smena-administratora.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
