# Установка ПринтМенеджера — подключение к внешней PostgreSQL

## Цель

Установить ПринтМенеджер с подключением к внешней базе данных PostgreSQL вместо встроенной.

## Предусловия

- Сервер ПринтМенеджера соответствует требованиям из страницы «Требования к серверу для установки Принтум».
- Внешняя база данных PostgreSQL развёрнута и доступна.
- Создан пользователь БД с правами на запись, удаление, чтение и обновление.

## Что потребуется

- Логин пользователя БД.
- Пароль пользователя БД.
- Адрес базы данных или балансировщика кластера.
- Порт подключения к базе.
- Имя базы данных.
- Схема базы (опционально).
- Табличное пространство (опционально, только если используется значение не по умолчанию).

## Шаги установки

### Шаг 1. Сформировать строку DATABASE_URL

Чтобы установить систему с подключением к внешней базе, помимо прочих параметров, добавьте в команду установки параметр `DATABASE_URL`. Это строка настроек для подключения к базе ПринтМенеджера PostgreSQL в формате URL.

Указывается в следующем формате:

    DATABASE_URL=postgres://<POSTGRES_LOGIN>:<POSTGRES_PASSWORD>@<DB_HOST>:<PORT>/<BASE_NAME>?currentSchema=<POSTGRES_SCHEMA>

где:

- `<POSTGRES_LOGIN>` — логин пользователя, имеющий необходимые разрешения (запись, удаление, чтение, обновление).
- `<POSTGRES_PASSWORD>` — пароль пользователя.
- `<DB_HOST>` — реальный адрес базы или балансировщика кластера баз.
- `<PORT>` — порт для подключения к базе.
- `<BASE_NAME>` — имя базы.
- `<POSTGRES_SCHEMA>` — схема базы (опциональная переменная).
- `<DATABASE_TABLESPACE>` — табличное пространство (опциональная переменная. Заполнять только если используется значение не по умолчанию).

### Шаг 2. Добавить DATABASE_URL в команду установки

Добавьте параметр `DATABASE_URL` к выбранной команде установки (онлайн или офлайн, с автоматическими или собственными сертификатами). Пример для онлайн-установки с автоматическими сертификатами:

    sudo curl -L https://s3.printum.io/distrib/printum-printmanager/install.sh | sudo -E PM_HOSTNAME=<ip> DATABASE_URL=postgres://<POSTGRES_LOGIN>:<POSTGRES_PASSWORD>@<DB_HOST>:<PORT>/<BASE_NAME> bash

## Ожидаемый результат

- Установка завершается без ошибок.
- ПринтМенеджер работает с указанной внешней базой данных PostgreSQL.

## Как проверить установку

- Открыть в браузере URL панели администратора ПринтМенеджера.
- Авторизоваться с учётными данными по умолчанию: логин `printum`, пароль `printum`.

## Следующие шаги

- «Завершение установки ПринтМенеджера — первый вход и проверка»

## Типовые ошибки

- **Неверный формат DATABASE_URL** — строка должна строго соответствовать формату `postgres://<LOGIN>:<PASSWORD>@<HOST>:<PORT>/<BASE_NAME>?currentSchema=<SCHEMA>`.
- **Недостаточно прав у пользователя PostgreSQL** — пользователь должен иметь права на чтение, запись, удаление строк и столбцов, а также создание, удаление и редактирование таблиц.
- **База данных не существует** — указанная в `BASE_NAME` база должна быть создана до запуска установки.
- **sha512sum выдал ошибку (при офлайн-установке)** — архив повреждён; скачать заново или обратиться в поддержку.

## Связанные страницы

- [Требования к серверу для установки Принтум](http://wiki.printum.io/books/3-ustanovka/page/trebovaniia-k-serveru-dlia-ustanovki-printum)
- [Установка ПринтМенеджера — онлайн, автоматические сертификаты](http://wiki.printum.io/books/3-ustanovka/page/ustanovka-printmenedzera-onlain-avtomaticeskie-sertifikaty)
- [Установка ПринтМенеджера — офлайн, автоматические сертификаты](http://wiki.printum.io/books/3-ustanovka/page/ustanovka-printmenedzera-oflain-avtomaticeskie-sertifikaty)
- [Завершение установки ПринтМенеджера — первый вход и проверка](http://wiki.printum.io/books/3-ustanovka/page/zaversenie-ustanovki-printmenedzera-pervyi-vxod-i-proverka)