Docker
Ця демонструє, як встановити сервер HES за допомогою докер-контейнерів на Linux. Приклади команд наведені для CentOS 7 і Ubuntu (18.04, 20.04, 22.04), інші версії Linux не тестувалися.
Перш за все, вам потрібно вирішити, який адреса URL буде для вашого майбутнього сервера HES. Це може бути щось на зразок hideez.yurcompany.com. Надалі це ім’я вказується як <your_domain_name>. Ви можете скопіювати цю інструкцію в будь-який текстовий редактор і замінити всі екземпляри <your_domain_name> на своє ім'я. Після цього ви можете виконувати більшість команд, просто скопіювавши їх із редактора.
Вам потрібно додати доменне ім’я до налаштувань DNS вашого хостинг-провайдера.
1. Підготовка (якщо ще не виконано)
Встановіть Docker
Ви також завжди можете звернутися до офіційної документації щодо встановлення: https://docs.docker.com/engine/install
CentOS
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo systemctl start docker
$ sudo systemctl enable docker
у разі невдалої інсталяції на Centos може знадобитися видалити деякі пакети:
$ sudo yum remove podman buildah -y
і повторити встановлення
Ubuntu
$ sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ sudo echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
Щоб перевірити встановлену версію докера, виконайте наступну команду:
$ docker --version
Docker version 20.10.16, build aa7e414
а також docker compose
:
$ docker compose version
Docker Compose version v2.5.0
2. Встановлення HES в Docker
Завантажте шаблони
Ми підготували архів з шаблоном для побудови контейнерів
$ cd ~
$ curl -O https://update.hideez.com/hes/docker_latest.tar.gz
Розпакування файлів і переміщення в директорію /opt та створення директорій для HES
$ tar -xvf docker_latest.tar.gz
$ sudo mv HES /opt/
Створення образу Docker
$ cd /opt/HES/
$ sudo docker build . -t hes
Під час роботи HES використовує сертифікат шифрування, який буде згенеровано в директорію /opt/hes/hes-site/x509stores
. Оскільки сервер працюватиме під користувачем «root» всередині контейнера, вам потрібно змінити власника для директорії сертифіката.
$ sudo chown root.root /opt/HES/hes-site/x509stores
Конфігурація HES
Ви можете запустити сервер:
$ cd /opt/HES
$ sudo docker compose up -d
Після завантаження образів ви можете запустити HES.Wizard
sudo docker exec -it hes-site ./HES.Wizard
Дотримуйтесь порад та налаштуйте сервер
Увага! Ім'я сервера, бази даних, користувача повинні збігатися з іменем контейнера MySQL у /Opt/HES/docker-compose.yml
Після завершення роботи HES.Wizard перезавантажте контейнери:
sudo docker compose down
sudo docker compose up -d
Конфігурація Docker для MySQL (опціонально)
Відкрийте для редагування файл за наступною адресою /opt/HES/docker-compose.yml
.
У цьому файлі потрібно змінити кілька параметрів:
MYSQL_DATABASE - введіть тут таку саму назву, як database
у файлі appsettings.Production.json
(наприклад, "db").
MYSQL_USER - введіть тут таке саме ім'я як і uid
у appsettings.Production.json
(наприклад, "user").
MYSQL_PASSWORD - введіть тут той самий пароль що й password
у appsettings.Production.json
MYSQL_ROOT_PASSWORD - введіть тут пароль для облікового запису "root" у MySQL (за замовчуванням це "password"
)
Конфігурація Docker для MS SQL (опціонально)
На цей момент HES може працювати з двома базами даних: MySQL або MSSQL. За замовчуванням ми використовуємо My SQL, але якщо ви хочете перейти на MS SQL, вам потрібно буде виконати кілька додаткових кроків, які будуть описані нижче.
Пропустіть ці кроки, якщо ви використовуєте базу даних MySQL
Отже, спочатку вам потрібно налаштувати файл /opt/HES/docker-compose.yml
Ми підготували шаблон файлу yml для роботи з контейнером MS SQL. Просто запустіть команду:
$ sudo mv /opt/HES/docker-compose.mssql /opt/HES/docker-compose.yml
Вам потрібно знайти текст у цьому файлі:
SA_PASSWORD: C00ll_Passwrd_here
і встановити свій пароль користувача SA замість 'C00ll_Passwrd_here'. Пізніше цей пароль знадобиться для створення користувача та бази даних HES.
Запустіть тільки контейнер MS SQL:
$ sudo docker-compose up -d hes-mssql
Використовуйте команду docker exec -it
для запуску інтерактивної оболонки bash у вашому запущеному контейнері:
$ sudo docker exec -it hes-mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "C00ll_Passwrd_here"
Замініть "C00ll_Passwrd_here" на пароль, який ви вказали у файлі /opt/HES/docker-compose.yml
У наступних розділах описано використання sqlcmd і Transact-SQL для створення нової бази даних і користувача.
> CREATE LOGIN [user] WITH PASSWORD = 'user_password';
> GO
> CREATE DATABASE db;
> GO
> USE db;
> GO
> CREATE USER [user] from login [user];
> GO
> GRANT CONTROL ON DATABASE::db TO [user];
> GO
Змініть <user_password> на свій пароль.
Вам слід запам'ятати пароль користувача, він стане в пригоді пізніше.
Щоб вийти з консолі Transact-SQL, натисніть Ctrl+C.
Тепер вам потрібно налаштувати файл /opt/HEL/hes-site/appsettings.Production.json
за допомогою HES.Wizard:
sudo docker exec -it hes-site ./HES.Wizard
Конфігурація Nginx (опціонально)
Відкрийте для редагування файл /opt/HES/nginx/nginx.conf
. Розкоментуйте та замініть всі екземпляри <your_domain_name> на ваше ім'я.
Створення сертифікату SSL
Тут ми надаємо інструкції щодо отримання самопідписаного сертифіката для шифрування SSL. Його можна використовувати для тестування або демонстрації. Для робочого сервера вам потрібно отримати сертифікат від Центру Сертифікації. Для самопідписаного сертифіката браузер сповістить вас, якщо сайт має проблеми з безпекою.
Виконайте наступну команду та дайте відповідь на кілька простих запитань:
$ sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /opt/HES/nginx/certs/hes.key -out /opt/HES/nginx/certs/hes.crt
Сертифікат буде згенеровано та скопійовано до каталогу HES.
Запустіть сервер
Нарешті, коли конфігураційні файли оновлені та сертифікат готовий, ви можете запустити сервер:
$ cd /opt/HES
$ sudo docker compose up -d
Після завантаження образів ваш сервер готовий до роботи
Перевірте статус
Ви можете перевірити статус докер-контейнерів, виконавши команду:
$ sudo docker compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------------------------------------
hes-mysql docker-entrypoint.sh --def ... Up 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp
hes-nginx /docker-entrypoint.sh ngin ... Up 0.0.0.0:443->443/tcp,:::443->443/tcp, 0.0.0.0:80->80/tcp,:::80->80/tcp
hes-site ./HES.Web Up 5000/tcp
Щоб переконатися, що все налаштовано правильно, відкрийте URL-адресу свого сайту в браузері (https://<your_domain_name>
). Ви повинні побачити сторінку авторизації сервера. Увійдіть, використовуючи логін за замовчуванням "admin@server" і пароль за замовчуванням "admin".
Якщо ви не можете увійти в HES, перегляньте файли журналу, розташовані в директорії /opt/HES/hes-site/logs