Данный пайплайн предназначен для **безопасного и гибкого развёртывания контейнеризованного PostgreSQL-сервиса** на удалённых хостах с использованием `docker compose` и mTLS-аутентификации. Поддерживает развёртывание на нескольких серверах в **`dev`-окружении** с предварительной настройкой контекста и параметризацией конфигурации.
---
#### Условия запуска
```yaml
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "push"
when: never
- when: always
```
- Пайплайн **не запускается автоматически при `push`** (например, при коммите в ветку)
- Может быть запущен **вручную** через интерфейс GitLab или API
- Это предотвращает случайные деплои и обеспечивает контроль над процессом
---
#### Основные переменные (с параметризацией)
Пайплайн использует **настраиваемые CI-переменные**, доступные при запуске:
| Переменная | Значение / Опции | Описание |
|-----------|------------------|--------|
| `ENV` | `"dev"` | Целевое окружение. Сейчас поддерживается только `dev`. |
| `HOST` | `$APN1_HOST`, `$APN2_HOST`, `$DBN1_HOST`, `$DBN2_HOST` | Выбор сервера для развёртывания. Определяет, на какой хост будет развернут контейнер. |
| `POSTGRESQL_HOSTNAME_NAME` | — | Имя контейнера/хоста PostgreSQL (например, `postgres-db`) |
| `POSTGRES_PORT` | — | Внешний порт, на котором будет доступен PostgreSQL (например, `5432`) |
| `PROXY_NETWORK` | `proxy` | Сеть Docker, к которой подключается контейнер (по умолчанию — `proxy`) |
| `POSTGRES_DB` | — | Имя основной базы данных |
| `POSTGRES_USER` | — | Имя пользователя по умолчанию |
4. Запустите — приложение будет развёрнуто на выбранном сервере
---
> **Важно!!!!!!!!**: Убедитесь, что все переменные с паролями и сертификатами корректно настроены в проекте GitLab как **CI/CD Variables**, желательно с типом **File** или **Masked**.