Общие сведения
Установка Avanpost FAM Server через Docker Compose позволяет быстро развернуть продукт в контейнеризированном окружении с минимальными затратами на настройку инфраструктуры. Данный метод рекомендуется для тестовых сред, демонстрационных стендов и сценариев, где требуется изоляция компонентов системы. В инструкции описан вариант минимальной инсталляции с использованием Nginx в качестве обратного прокси-сервера, что обеспечивает базовую безопасность и возможность дальнейшей интеграции с внешними приложениями посредством стандартных протоколов (OpenID Connect, SAML, RADIUS).
Требования к окружению:
- Git (версия 2.20 и выше)
- Docker:
- Windows:
- Linux:
- About Docker Engine - Community - вкладка LInux → Выбрать нужный дистрибутив
- Docker Compose:
Настройка FAM Server
Первый запуск FAM Server необходимо осуществлять следующим образом:
- Клонировать репозиторий с
docker compose,используя команду:git clone https://devenv.avanpost.ru/docker/idp-compose.git
- В файле
.envуказать путь кvolumes(по умолчанию используется путь "текущая директория/volumes"). - Запустить контейнер c базой данных:
docker compose up -d postgres
- Для смены адреса и/или настройки TLS (по умолчанию используется
http://idp.avanpost.local) требуется:- Отредактировать конфигурационный файл
volumes/conf/config.toml, поменяв URL в основной секции и секции [adminconsole] на актуальный для администратора по аналогии с примером:baseUrl = 'http://idp.avanpost.local' ... [adminconsole] baseUrl = 'http://idp.avanpost.local
- Отредактировать конфигурационный файл
volumes/conf.d/idp.conf, yказав в секции "server" необходимый адрес. - При необходимости использования TLS следует разместить в папке
volumes/conf.dключ и сертификат, и внести настройки в файлvolumes/conf.d/idp.conf.
- Отредактировать конфигурационный файл
- Добавить файл лицензии в
volumes/conf/license.jwt. - Запустить контейнер c Angie/Nginx:
docker compose up -d web
- Добавить файлы сертификата и ключа в
volumes/conf/или сгенерировать командой:docker compose run --rm --entrypoint "openssl req -newkey rsa:2048 -new -nodes -x509 -days 365 -keyout /conf/idp.key -out /conf/idp.crt" idp
- Для генерации ключа шифрования
key.datвыполнить команду:docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -generatekey" idp
- Убедиться, что миграция прошла успешно:
- Для версий продукта 1.16 и выше миграция осуществляется автоматически и не требует дополнительных действий.
- Для версий продукта ниже 1.16 для развертывания БД и осуществления миграции требуется выполнить следующую команду:
docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -generatekey" idp
- Убедиться, что инициализация прошла успешно:
- Для версий продукта 1.16 и выше инициализация осуществляется автоматически и не требует дополнительных действий.
- Для версий продукта ниже выполнит команду:
docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -init" idp
- Создать пользователя администратора
- Для версий продукта 17.2 и выше использовать утилиту famctl:
docker run --rm \ --network idp-compose_vpcbr \ -e MCP=true \ -e FAM_ADMIN_NAME=admin \ -e FAM_ADMIN_PWD="Avanp0st!" \ -e FAM_CONNECTION_STRING="postgres://username:password@postgres:5432/dbname" \ registry.avanpost.ru/access/famctl:latest
Параметр Значение networkИмя сети Docker Compose (по умолчанию: idp-compose_vpcbr)MCPФлаг обязательной смены пароля после первой успешной аутентификации администратора (также вместо данного параметра допускается использовать флаг MUST_CHANGE_PASSWORD).
FAM_ADMIN_NAMEЛогин администратора FAM_ADMIN_PWDПароль администратора FAM_CONNECTION_STRINGСтрока подключения к базе данных PostgreSQL - Для более ранних версий продукта использовать команды:
- Создать пользователя:
docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -createuser admin:Avanp0st" idp
- Назначить созданному пользователю системную роль администратора:
docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -assignrole admin -user admin" idp
- Создать пользователя:
- Для версий продукта 17.2 и выше использовать утилиту famctl:
- Запустить контейнер IDP:
docker compose up -d idp
- Добавить доменное имя (параметр
baseURL, введенный в п.4 настоящей инструкции) в DSN-сервер или прописать в hosts на узлах, с которых будут обращения к FAM.
При запуске FAM Server в консоль будет выведена версия продукта.