Перейти к содержанию

Установка Системы

Предварительные шаги

Для запуска необходим установленный Docker, наличие выхода в интернет.

Инструкция по установке

Для установки системы Допуск необходимо выполнить следующие шаги:

  1. В рабочей директории создать файл 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

  1. По умолчанию установлен московский часовой пояс - TZ=Europe/Moscow, при необходимости его можно заменить. Список доступных часовых зон.

  2. Далее все команды выполнять от имени администратора или суперпользователя, в директории с созданным docker-compose файлом.

  3. Запустить загрузку образов и запуск контейнеров с системой Допуск:

    docker compose --project-name dopusk up -d --pull always
    
  4. После запуска перейти в браузере по адресу 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-сервера:

  1. После установки и запуска Системы перейти на вкладку Сертификаты

  2. Нажать на кнопку Импорт, выбрать нужный сертификат, затем загрузить его в Систему, нажав на кнопку Выполнить

Примечание

Режим использования 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