Загрузить файлы в «/»

This commit is contained in:
2026-03-25 10:03:07 +00:00
commit 37f3a94994
4 changed files with 583 additions and 0 deletions

136
README.md Normal file
View File

@@ -0,0 +1,136 @@
# Установка 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
```