190 lines
6.1 KiB
Markdown
190 lines
6.1 KiB
Markdown
# Установка PostgreSQL for 1C 18 на Debian 13 одним запуском
|
||
|
||
В комплекте:
|
||
|
||
- `install_pg1c.sh` — основной установочный скрипт
|
||
- `env.example` — пример файла `.env` со всеми настройками и пояснениями на русском
|
||
- `.env` — минимальный рабочий вариант без комментариев
|
||
|
||
Скрипт автоматизирует официальный процесс установки Postgres Pro for 1C 18 по вашей инструкции:
|
||
|
||
- добавляет репозиторий через vendor-скрипт `pgpro-repo-add.sh`
|
||
- ставит пакет в режиме `standalone` или `parallel`
|
||
- включает и запускает systemd-сервис
|
||
- создает или обновляет пользователя PostgreSQL
|
||
- при необходимости создает базу данных
|
||
- при необходимости автоматически правит `pg_hba.conf`, чтобы логин работал по паролю, а не упирался в `peer`
|
||
|
||
## Что нужно
|
||
|
||
- Debian 13
|
||
- доступ `root`
|
||
- интернет-доступ до репозитория Postgres Pro
|
||
- `git`, если хотите сначала стянуть готовые файлы из открытого репозитория
|
||
|
||
### Вариант 1. ZIP архив
|
||
|
||
Скачиваем ZIP архив репозитория:
|
||
```bash
|
||
wget https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13/archive/main.zip -O pg18-1C_for_deb13.zip
|
||
unzip pg18-1C_for_deb13.zip
|
||
cd pg18-1C_for_deb13-main
|
||
chmod +x install_pg1c.sh
|
||
sudo ./install_pg1c.sh
|
||
```
|
||
|
||
|
||
## Вариант 2. Стянуть готовый комплект из открытого репозитория
|
||
|
||
Открытый репозиторий с файлами проекта:
|
||
|
||
```text
|
||
https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13
|
||
```
|
||
|
||
### Стянуть через git
|
||
|
||
```bash
|
||
git clone https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13.git
|
||
cd pg18-1C_for_deb13
|
||
chmod +x install_pg1c.sh
|
||
sudo ./install_pg1c.sh
|
||
```
|
||
|
||
|
||
## Подготовка `.env`
|
||
|
||
|
||
### Если нужен полный шаблон с пояснениями
|
||
|
||
```bash
|
||
cp env.example .env
|
||
nano .env
|
||
```
|
||
|
||
### Если нужен минимальный рабочий `.env` без комментариев
|
||
|
||
```bash
|
||
cp .env .env.local
|
||
nano .env.local
|
||
mv .env.local .env
|
||
```
|
||
|
||
Либо просто используйте уже готовый `.env`, если значения вам подходят.
|
||
|
||
## Что настроить в `.env`
|
||
|
||
Обязательно проверьте:
|
||
|
||
- `INSTALL_MODE`
|
||
- `PG_ADMIN_USER`
|
||
- `PG_ADMIN_PASSWORD`
|
||
- `PG_CREATE_DB`
|
||
- `PG_DB_NAME`
|
||
- `ENFORCE_PASSWORD_AUTH`
|
||
- `PGPRO_REPO_ADD_URL`
|
||
- `PGPRO_REPO_SCRIPT_NAME`
|
||
|
||
## Режимы установки
|
||
|
||
### 1) Если это единственный Postgres на сервере
|
||
|
||
```env
|
||
INSTALL_MODE=standalone
|
||
```
|
||
|
||
Ставится пакет:
|
||
|
||
```text
|
||
postgrespro-1c-18
|
||
```
|
||
|
||
### 2) Если на сервере уже есть другой Postgres
|
||
|
||
```env
|
||
INSTALL_MODE=parallel
|
||
```
|
||
|
||
Ставится пакет:
|
||
|
||
```text
|
||
postgrespro-1c-18-contrib
|
||
```
|
||
|
||
После этого скрипт сам вызывает `initdb`, включает сервис и запускает его.
|
||
|
||
## Про аутентификацию
|
||
|
||
По умолчанию на Linux локальные подключения к PostgreSQL часто идут через `peer`, из-за чего пароль вроде бы задан, но вход под новым пользователем не работает через локальный сокет.
|
||
|
||
Во второй версии скрипта это закрыто параметром:
|
||
|
||
```env
|
||
ENFORCE_PASSWORD_AUTH=true
|
||
```
|
||
|
||
Тогда скрипт:
|
||
|
||
- определяет фактический путь к `pg_hba.conf`
|
||
- делает резервную копию
|
||
- заменяет `peer` / `ident` на нужный метод (`scram-sha-256` по умолчанию)
|
||
- перезапускает сервис
|
||
|
||
Рекомендуемые значения:
|
||
|
||
```env
|
||
REPLACE_LOCAL_PEER_WITH=scram-sha-256
|
||
REPLACE_HOST_AUTH_WITH=scram-sha-256
|
||
```
|
||
|
||
## Проверки после установки
|
||
|
||
Статус сервиса:
|
||
|
||
```bash
|
||
systemctl status postgrespro-1c-18
|
||
```
|
||
|
||
Список ролей:
|
||
|
||
```bash
|
||
sudo -u postgres /opt/pgpro/1c-18/bin/psql -h /var/run/postgresql -d postgres -c "\\du"
|
||
```
|
||
|
||
Список баз:
|
||
|
||
```bash
|
||
sudo -u postgres /opt/pgpro/1c-18/bin/psql -h /var/run/postgresql -d postgres -c "\\l"
|
||
```
|
||
|
||
Подключение под созданным пользователем:
|
||
|
||
```bash
|
||
/opt/pgpro/1c-18/bin/psql -h 127.0.0.1 -U admin_1c -d appdb -W
|
||
```
|
||
|
||
## Что делает скрипт безопасно
|
||
|
||
Скрипт старается быть идемпотентным:
|
||
|
||
- если репозиторий уже добавлен, повторно не ломает конфигурацию
|
||
- если роль уже существует, обновляет пароль и атрибуты
|
||
- если база уже существует, повторно не создает ее
|
||
- перед правкой `pg_hba.conf` делает бэкап, если `CREATE_HBA_BACKUP=true`
|
||
|
||
## Важно
|
||
|
||
- Скрипт рассчитан именно на Debian 13.
|
||
- Он использует официальный vendor-скрипт добавления репозитория, а не самодельную схему репозиториев.
|
||
- Если доступ к репозиторию требует логин/пароль, это обрабатывает сам vendor-скрипт Postgres Pro.
|
||
- В открытом репозитории сейчас лежат `env`, `env.example`, `install_pg1c.sh` и `README.md`, так что его можно использовать как точку входа для развертывания или передачи готового комплекта.
|
||
|
||
## Рекомендуемый порядок файлов в проекте
|
||
|
||
```text
|
||
install_pg1c.sh
|
||
env.example
|
||
.env
|
||
README.md
|
||
```
|