# Смена паролей в ПринтМенеджере

## Описание

Смена паролей внутренних сервисов ПринтМенеджера.

## Общий порядок

Смена паролей происходит в файле /opt/printmanager/.env. Обязательно сделайте копию данного файла перед его редактированием. Далее внесите изменения указанные в конкретном разделе ниже. В конце, для вступления изменений в силу выполните перезапуск системы:

```
cd /opt/printmanager/
sudo docker-compose down
sudo docker-compose up -d
```

**При балансировке нагрузки:** повторите шаги на каждом сервере ПМ.

### PostgreSQL (базовая схема, без балансировки)

Измените значение переменных:

```
DATABASE_URL="postgres://postgres:NEW-PASSWORD@db:5432/printmanager"
DATABASE_PASSWORD="NEW-PASSWORD"
```

После чего выполните команды:

```
sudo docker-compose down
sudo docker-compose up -d db
sudo docker-compose exec -T db bash -c "psql -U postgres -c \"ALTER USER postgres PASSWORD '\$POSTGRES_PASSWORD';\""
sudo docker-compose up -d
```
Где `NEW-PASSWORD` - новый пароль

### PostgreSQL (схема с балансировкой нагрузки)

Измените значение переменных в файле конфигурации **.env** на всех нодах ПМ:

```
DATABASE_URL="postgres://postgres:NEW-PASSWORD@db:5432/printmanager"
```
Где `NEW-PASSWORD`- новый пароль.

Выполните команду остановки контейнеров на всех нодах ПМ:

```
sudo docker-compose down
```

Измените пароль штатными средствами во внешней базе данных.
Далее по очереди запустите контейнеры на всех нодах ПМ, с первой по последнюю.

```
sudo docker-compose up -d
```

**Важно:** При схеме с балансировкой все изменения паролей в ПринтМенеджере должны быть отражены в конфигурационных файлах балансировщика.

### Redis, Redis-sentinel

Пароль общий, поэтому меняется в обоих компонентах системы. Redis-sentinel работает только в схеме балансировки нагрузки.

Измените значение переменных:

```
REDIS_URL="redis://:NEW-PASSWORD@redis:6379/0"
REDIS_PASSWORD="NEW-PASSWORD"
```
Где `NEW-PASSWORD`- новый пароль.

После чего выполните команду остановки работы контейнеров:

```
sudo docker-compose down
```

Если используется схема с балансировкой нагрузки, то также выполните следующую команду:

```
sudo docker volume rm -f printmanager_sentinel-conf
```

Для применения изменений запустите контейнеры:
```
sudo docker-compose up -d
```

### CUPS

Измените значение переменных:
```
CUPS_PASSWORD="NEW-PASSWORD"
```
Где `NEW-PASSWORD`- новый пароль.

Для применения изменений перезапустите контейнеры:
```
sudo docker-compose down
sudo docker-compose up -d
```

### FTP

Измените значение переменных:

```
FTP_SCAN_PASSWORD="NEW-PASSWORD"
```
Где `NEW-PASSWORD`- новый пароль.

Для применения изменений перезапустите контейнеры:
```
sudo docker-compose down
sudo docker-compose up -d
```

## Связанные страницы

- [Шифрование конфигурационного файла .env](https://wiki.printum.io/books/6-obnovlenie-i-obsluzivanie/page/sifrovanie-konfiguracionnogo-faila-env)