Установка Системы
Предварительные шаги
Для запуска необходим установленный Docker, наличие выхода в интернет.
Инструкция по установке
Для установки системы Допуск необходимо выполнить следующие шаги:
-
В рабочей директории создать файл docker-compose.yml со следующим содержимым:
| docker-compose.yml |
|---|
| services:
web:
image: docker.iis-soft.ru/iisln/dopusk
environment:
- JAVA_OPTS=
-Dsso.url=http://localhost:8083/auth
-Dapp.base-url=http://localhost:8082/dopusk
-Duser.language=ru
-Duser.country=RU
ports:
- "8082:8080"
volumes:
- web_conf:/opt/server/conf
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "2"
depends_on:
- db
- uns
restart: unless-stopped
sso:
image: docker.iis-soft.ru/iisln/sso
environment:
- JAVA_OPTS=
-Duser.language=ru
-Duser.country=RU
-Dcas.tgc.secure=false
-Dcas.tgc.same-site-policy=Lax
ports:
- "8083:8080"
volumes:
- sso_conf:/opt/server/conf
depends_on:
- web
restart: unless-stopped
db:
image: postgres:17
environment:
POSTGRES_PASSWORD: postgres
volumes:
- postgres:/var/lib/postgresql/data/
restart: unless-stopped
uns:
image: docker.iis-soft.ru/iisln/uns
environment:
- JAVA_OPTS=
-Ddb.url=jdbc:postgresql://uns-db:5432/postgres
-Duser.language=ru
-Duser.country=RU
- TZ=Europe/Moscow
volumes:
- filestorage_uns:/opt/tomcat/data/filestorage
depends_on:
- uns-db
restart: unless-stopped
uns-db:
image: postgres:17
environment:
POSTGRES_PASSWORD: postgres
volumes:
- postgres_uns:/var/lib/postgresql/data/
restart: unless-stopped
volumes:
web_conf:
sso_conf:
postgres:
postgres_uns:
filestorage_uns:
|
Примечание
В параметре
| docker-compose.yml |
|---|
| -Dapp.base-url=http://localhost:8082/dopusk
|
есть возможность указать несколько адресов с которых будет разрешён вход в Систему.
Адреса указываются через разделитель |
| docker-compose.yml |
|---|
| -Dapp.base-url=http://localhost:8082/dopusk|http://dopusk.local:8082/dopusk
|
-
По умолчанию установлен московский часовой пояс - TZ=Europe/Moscow, при необходимости его можно заменить. Список доступных часовых зон.
-
Далее все команды выполнять от имени администратора или суперпользователя, в директории с созданным docker-compose файлом.
-
Запустить загрузку образов и запуск контейнеров с системой Допуск:
| docker compose --project-name dopusk up -d --pull always
|
-
После запуска перейти в браузере по адресу http://localhost:8082/dopusk
Логин/пароль для входа: admin/admin
Предупреждение
Если установка проводится не на локальной машине, необходимо изменить параметры в файле:
| docker-compose.yml |
|---|
| -Dapp.base-url=http://localhost:8082/dopusk
-Dsso.url=http://localhost:8083/auth
|
Где вместо
localhost, указать имя удаленной машины, например:
| docker-compose.yml |
|---|
| -Dapp.base-url=http://dopusk.local:8082/dopusk
-Dsso.url=http://sso.local:8083/auth
|
А в адресной строке браузера вместо localhost указать имя удаленной машины:
| http://dopusk.local:8082/dopusk
|
Добавление сертификатов
Если режим использования SSL предполагает startTLS, то необходимо добавить сертификат ldap-сервера:
-
После установки и запуска Системы перейти на вкладку Сертификаты
-
Нажать на кнопку Импорт, выбрать нужный сертификат, затем загрузить его в Систему, нажав на кнопку Выполнить
Примечание
Режим использования SSL необходим для настройки Директорий
Использование обратного прокси-сервера
Для корректной работы Системы за прокси-сервером, при проксировании необходимо передавать следующие заголовки:
Host - для передачи имени хоста сервиса, подключаемого к системе
X-Forwarded-For - для корректного определения IP-адреса клиента
Предупреждение
Убедитесь, что адрес клиента правильно устанавливается вашим обратным прокси-сервером через заголовок X-Forwarded-For.
Если этот заголовок настроен неправильно, мошенники могут подменить этот заголовок и обмануть Систему, подменив IP-адрес клиента.
Актуально, в случае настроек правил по IP-адресам клиентов, например блокировка по IP
Для примера приведён файл конфигурации nginx:
| nginx.conf |
|---|
| http {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Система управления пользователями "Допуск"
server {
listen 443 ssl;
server_name dopusk.local;
ssl_certificate /var/nginx/certs/dopusk.crt;
ssl_certificate_key /var/nginx/certs/dopusk.key;
location / {
proxy_pass http://127.0.0.1:8081/dopusk/;
}
location /dopusk/ {
proxy_pass http://127.0.0.1:8081/dopusk/;
}
}
# SSO сервер
server {
listen 443 ssl;
server_name sso.local;
ssl_certificate /var/nginx/certs/sso.crt;
ssl_certificate_key /var/nginx/certs/sso.key;
location / {
proxy_pass http://127.0.0.1:8082/auth/;
}
location /auth/ {
proxy_pass http://127.0.0.1:8082/auth/;
}
}
}
|
Примечание
При использовании обратного прокси-сервера внутри docker контейнера, стоит учитывать особенности сети docker.
Так контейнер с обратным прокси-сервером, запущенным в режиме сети bridge, при проксировании будет передавать
адрес шлюза этой сети, вместо реального IP-адреса клиента
Работа Единой точки доступа в режиме http/https
Подразумевается возможность запуска SSO сервера, он же Единая точка доступа, в нескольких режимах.
По умолчанию запуск происходит в http режиме. Для запуска в режиме https с использованием
обратного прокси-сервера необходимо в docker-compose.yml, в секции sso указать параметр запуска
| -Dserver.https-proxy.enabled=true
|
| docker-compose.yml |
|---|
| sso:
image: docker.iis-soft.ru/iisln/sso
environment:
- JAVA_OPTS=
-Duser.language=ru
-Duser.country=RU
-Dcas.tgc.secure=false
-Dcas.tgc.same-site-policy=Lax
-Dserver.https-proxy.enabled=true
ports:
- "8083:8080"
depends_on:
- web
restart: unless-stopped
|