Загрузить файлы в «/»
This commit is contained in:
136
README.md
Normal file
136
README.md
Normal 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
|
||||
```
|
||||
Reference in New Issue
Block a user