Установка 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

Быстрый запуск

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 на сервере

INSTALL_MODE=standalone

Ставится пакет:

postgrespro-1c-18

2) Если на сервере уже есть другой Postgres

INSTALL_MODE=parallel

Ставится пакет:

postgrespro-1c-18-contrib

После этого скрипт сам вызывает initdb, включает сервис и запускает его.

Про аутентификацию

По умолчанию на Linux локальные подключения к PostgreSQL часто идут через peer, из-за чего пароль вроде бы задан, но вход под новым пользователем не работает через локальный сокет.

Во второй версии скрипта это закрыто параметром:

ENFORCE_PASSWORD_AUTH=true

Тогда скрипт:

  • определяет фактический путь к pg_hba.conf
  • делает резервную копию
  • заменяет peer / ident на нужный метод (scram-sha-256 по умолчанию)
  • перезапускает сервис

Рекомендуемые значения:

REPLACE_LOCAL_PEER_WITH=scram-sha-256
REPLACE_HOST_AUTH_WITH=scram-sha-256

Проверки после установки

Статус сервиса:

systemctl status postgrespro-1c-18

Список ролей:

sudo -u postgres /opt/pgpro/1c-18/bin/psql -h /var/run/postgresql -d postgres -c "\du"

Список баз:

sudo -u postgres /opt/pgpro/1c-18/bin/psql -h /var/run/postgresql -d postgres -c "\l"

Подключение под созданным пользователем:

/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, но учетные данные доступа к репозиторию не дублируются вручную без явной необходимости.

Рекомендуемый порядок файлов в проекте

install_pg1c.sh
env.example
.env
README.md
Description
No description provided
Readme 84 KiB
Languages
Shell 100%