Files
pg18-1C_for_deb13/README.md
2026-03-25 10:12:13 +00:00

187 lines
6.3 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` со всеми настройками и пояснениями на русском
- `.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. Быстрый запуск из локальных файлов
```bash
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
```
### Или скачать архивом
Можно скачать архив с той же страницы репозитория кнопкой `Download ZIP` или `Download TAR.GZ`, распаковать и запустить `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
```