Files
pg18-1C_for_deb13/README.md

137 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Установка PostgreSQL for 1C 18 на Debian 13 одним запуском
В комплекте:
- `install_pg1c.sh` — основной установочный скрипт
- `env.example` — пример файла `.env` со всеми настройками и пояснениями на русском
Скрипт автоматизирует официальный процесс установки Postgres Pro для 1С 18 по вашей инструкции:
- добавляет репозиторий через vendor-скрипт `pgpro-repo-add.sh`
- ставит пакет в режиме `standalone` или `parallel`
- включает и запускает systemd-сервис
- создает или обновляет пользователя PostgreSQL
- при необходимости создает базу данных
- при необходимости автоматически правит `pg_hba.conf`, чтобы логин работал по паролю, а не упирался в `peer`
## Что нужно
- Debian 13
- доступ `root`
- интернет-доступ до репозитория Postgres Pro
## Быстрый запуск
```bash
cp env.example .env
nano .env
chmod +x install_pg1c.sh
sudo ./install_pg1c.sh
```
## Что настроить в `.env`
Обязательно проверьте:
- `INSTALL_MODE`
- `PG_ADMIN_USER`
- `PG_ADMIN_PASSWORD`
- `PG_CREATE_DB`
- `PG_DB_NAME`
- `ENFORCE_PASSWORD_AUTH`
## Режимы установки
### 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`, но учетные данные доступа к репозиторию не дублируются вручную без явной необходимости.
## Рекомендуемый порядок файлов в проекте
```text
install_pg1c.sh
env.example
.env
README.md
```