Files
pg18-1C_for_deb13/README.md
2026-03-25 11:11:30 +00:00

270 lines
7.8 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` — основной установочный скрипт
- `uninstall_pg1c.sh` — скрипт удаления
- `env.example` — пример файла `.env` со всеми настройками и пояснениями на русском
- `.env` — минимальный рабочий вариант без комментариев
- `use.md` — пример подключения к Django
## Что делают скрипты
`install_pg1c.sh` автоматизирует установку Postgres Pro for 1C 18:
- добавляет репозиторий через vendor-скрипт `pgpro-repo-add.sh`
- ставит пакет в режиме `standalone` или `parallel`
- включает и запускает сервис
- создает или обновляет пользователя PostgreSQL
- при необходимости создает базу данных
- адресно добавляет managed-блок в `pg_hba.conf` для вашего прикладного пользователя
`uninstall_pg1c.sh` автоматизирует удаление:
- останавливает сервис
- отключает автозапуск
- удаляет пакеты через `apt-get purge`
- по желанию удаляет каталог данных
- по желанию удаляет файл репозитория, auth-файл и GPG-ключ
## Что нужно
- Debian 13
- доступ `root`
- интернет-доступ до репозитория Postgres Pro
- `git`, если хотите сначала стянуть готовые файлы из открытого репозитория
## Быстрый запуск из локальных файлов
### Установка
```bash
cp env.example .env
nano .env
chmod +x install_pg1c.sh
sudo ./install_pg1c.sh
```
### Удаление
```bash
chmod +x uninstall_pg1c.sh
sudo ./uninstall_pg1c.sh
```
## Вариант 1. ZIP архив
Скачиваем ZIP архив репозитория:
```bash
wget https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13/archive/main.zip -O pg18-1C_for_deb13.zip
unzip pg18-1C_for_deb13.zip
cd pg18-1c_for_deb13
```
## Вариант 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
```
## Подготовка `.env`
### Если нужен полный шаблон с пояснениями
```bash
cp env.example .env
nano .env
```
### Если нужен минимальный рабочий `.env` без комментариев
```bash
cp .env .env.local
nano .env.local
mv .env.local .env
```
## Что настраивается в `.env` для установки
Обязательно проверьте:
- `INSTALL_MODE`
- `PG_ADMIN_USER`
- `PG_ADMIN_PASSWORD`
- `PG_CREATE_DB`
- `PG_DB_NAME`
- `REPO_ADD_URL`
- `PGPRO_BIN_DIR`
- `SERVICE_NAME`
Для managed-правил в `pg_hba.conf`:
- `ENFORCE_PASSWORD_AUTH`
- `APP_LOCAL_AUTH_METHOD`
- `APP_HOST_AUTH_METHOD`
- `APP_HOST_IPV4_CIDR`
- `APP_HOST_IPV6_CIDR`
- `PRESERVE_POSTGRES_PEER_LOCAL`
## Режимы установки
### Если это единственный Postgres на сервере
```env
INSTALL_MODE=standalone
```
Ставится пакет:
```text
postgrespro-1c-18
```
### Если на сервере уже есть другой Postgres
```env
INSTALL_MODE=parallel
```
Ставится пакет:
```text
postgrespro-1c-18-contrib
```
После этого скрипт сам вызывает `initdb`, включает сервис и запускает его.
## Как работает правка `pg_hba.conf`
Скрипт не переписывает весь файл целиком. Он:
- определяет фактический путь к `pg_hba.conf`
- делает резервную копию, если `CREATE_HBA_BACKUP=true`
- удаляет только старый managed-блок скрипта, если он уже есть
- добавляет новый managed-блок в начало файла
- по умолчанию сохраняет `peer` для локального системного пользователя `postgres`
Это нужно, чтобы повторные запуски не ломали административный вход через:
```bash
sudo -u postgres /opt/pgpro/1c-18/bin/psql -h /var/run/postgresql -d postgres
```
## Использование скрипта удаления
Скрипт удаления читает тот же `.env`, что и установочный.
### Без удаления данных
Это безопасный режим по умолчанию:
```bash
sudo ./uninstall_pg1c.sh
```
Что будет сделано:
- сервис остановится
- автозапуск отключится
- пакеты будут удалены через `apt-get purge`
- репозиторий Postgres Pro будет убран из APT
- каталог данных останется на месте
### Полное удаление вместе с данными
Для полного удаления добавьте в `.env`:
```env
UNINSTALL_REMOVE_DATA_DIR=true
UNINSTALL_REMOVE_LOG_DIR=true
UNINSTALL_REMOVE_HOME_DIRS=true
```
И затем выполните:
```bash
sudo ./uninstall_pg1c.sh
```
Скрипт попросит явное подтверждение `DELETE`.
### Полное удаление без интерактивного подтверждения
```env
UNINSTALL_REMOVE_DATA_DIR=true
UNINSTALL_REMOVE_LOG_DIR=true
UNINSTALL_REMOVE_HOME_DIRS=true
UNINSTALL_FORCE=true
```
Используйте это только если уверены, что каталог данных больше не нужен.
## Параметры удаления
Скрипт `uninstall_pg1c.sh` поддерживает следующие переменные в `.env`:
```env
UNINSTALL_DISABLE_SERVICE=true
UNINSTALL_STOP_SERVICE=true
UNINSTALL_PURGE_PACKAGES=true
UNINSTALL_AUTOREMOVE=true
UNINSTALL_REMOVE_REPO=true
UNINSTALL_REMOVE_AUTH_FILE=true
UNINSTALL_REMOVE_GPG_KEY=true
UNINSTALL_REMOVE_DEFAULT_FILE=false
UNINSTALL_REMOVE_DATA_DIR=false
UNINSTALL_REMOVE_LOG_DIR=false
UNINSTALL_REMOVE_HOME_DIRS=false
UNINSTALL_FORCE=false
```
При необходимости можно явно задать каталог данных, если он у вас нестандартный:
```env
PGPRO_DATA_DIR=/путь/к/вашему/PGDATA
```
## Проверки после установки
Статус сервиса:
```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
```
## Что делает комплект безопасно
- установка повторно не дублирует managed-блок в `pg_hba.conf`
- удаление по умолчанию не стирает каталог данных
- для удаления данных есть отдельные флаги и подтверждение
- репозиторий и ключи удаляются отдельно от данных кластера