# Установка 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`, так что его можно использовать как точку входа для развертывания или передачи готового комплекта. citeturn437110view0 ## Рекомендуемый порядок файлов в проекте ```text install_pg1c.sh env.example .env README.md ```