Установка
Инструкция по установке Expasys QuestionnaireStudioPro и необходимых компонентов для её развёртывания на примере OS Debian11(bullseye), reverse-proxy Caddy и СУБД Postgres Pro.
1)Скачиваем актуальный дистрибутив Debian11 с официального сайта https://www.debian.org/CD/http-ftp/#stable
2)Устанавливаем ОС на любой из доступных гипервизоров (например, Microsoft Hyper-V, VMwareESXI, Proxmox) (Рекомендованные системные ресурсы: 2 ядра процессора, 2ГБ ОЗУ, 40 Гб свободного места на жёстком диске или SSD)
3)После установки операционной системы выполняем команды apt update и apt upgrade
4)Устанавливаем reverse-proxy Caddy (https://caddyserver.com/docs/install#debian-ubuntu-raspbian)
4.1) Выполняем команды (от имени пользователя root, если не root, то добавляем sudo вначале):
apt install curl
apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy
4.2) После установки reverse-proxy Caddy редактируем конфигурационный файл командой
nano /etc/caddy/CaddyFile
и приводим его к виду:
:80 {
# Set this path to your site's directory.
#root * /usr/share/caddy
# Enable the static file server.
#file_server
# Another common task is to set up a reverse proxy:
reverse_proxy localhost:5000
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
и перезапускаем сервис командой
service caddy restart
5) Устанавливаем dotnet-sdk-6
5.1) Выполняем команды:
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
apt update
apt install -y dotnet-sdk-6.0
6) Устанавливаем СУБД Postgres Pro (вместе с балансировщиком нагрузки pgbouncer)
6.1) Выполняем команды:
curl -o pgpro-repo-add.sh https://repo.postgrespro.ru/pgpro-14/keys/pgpro-repo-add.sh
sh pgpro-repo-add.sh
apt install postgrespro-std-14
systemctl enable postgrespro-std-14
systemctl start postgrespro-std-14
6.2) Выполняем конфигурацию Postgres Pro
6.2.1) Выполняем команду:
nano /var/lib/pgpro/std-14/data/pg_hba.conf
и приводим содержимое файла pg_hba.conf к следующему виду:
6.2.2) Выполняем команду:
nano /var/lib/pgpro/std-14/data/postgresql.conf
и редактируем следующие строки:
6.2.3) Выполняем команду:
psql -U postgres
после чего попадаем в консоль psql, внутри которой выполняем следующие команды:
CREATE DATABASE qspro; (создаём базу с именем qspro)
ALTER USER postgres WITH PASSWORD ‘test12345’;
Info | это ненадёжный пароль для демонстрации выполнения команды, Вам следует указать свой надёжный пароль в одинарных ковычках |
GRANT ALL PRIVILEGES ON DATABASE "qspro" to postgres;
и выходим из консоли psql командой \q
6.3) Устанавливаем балансировщик pgbouncer
6.3.1) Выполняем команду apt install pgbouncer
6.3.2) Выполняем команду nano /etc/pgbouncer/userlist.txt
и приводим содержимое текстового файла к виду:
6.3.3) Выполняем команду nano /etc/pgbouncer/pgbouncer.ini и редактируем/добавляем строки:
6.3.4) Выполняем команды:
systemctl enable pgbouncer
systemctl start pgbouncer
7) Редактируем файл /etc/sysctl.conf командой:
nano /etc/sysctl.conf
и в конец файла добавляем следующие строки:
fs.inotify.max_user_instances=524288
fs.inotify.max_user_watches=1048576
fs.inotify.max_queued_events=163840
8) Выполняем команду
touch /etc/systemd/system/qspro.service
8.1) Выполняем команду
nano /etc/systemd/system/qspro.service
и вставляем следующие строки в файл:
[Unit]
Description=Expasys Questionnaire Studio Pro
[Service]
WorkingDirectory=/opt/qspro/
ExecStart=/usr/bin/dotnet ./QuestionnaireStudioPro.dll
Restart=always
RestartSec=10
SyslogIdentifier=ExpasysQSPRO
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
8.3) выполняем команду systemctl daemon-reload
9) Выполняем команду mkdir /opt/qspro
9.1) Выполняем команду apt install unzip
9.2) Выполняем команду cd /opt/qspro/
9.3) Выполняем команду:
9.4) Выполняем команду unzip QuestionnaireStudioPro.zip
9.5) После разархивирования выполняем команду
rm QuestionnaireStudioPro.zip
9.6) Выполняем команду
nano /opt/qspro/appsettings.json
и приводим файл к виду:
9.6) Выполняем команды:
systemctl enable qspro.service
systemctl start qspro.service
reboot
10) После перезагрузки машины в адресной строке браузера переходите по ссылке http://IP_Адрес_Вашей_Машины_С_QuestionnaireStudioPro/install
и заполняете данные для Вашего аккаунта
10.1) Затем на главной странице нажимаете на кнопку [Вход] в правом верхнем углу и вводите данные только что созданного пользователя
10.2) После авторизации переходим в панель управления QuestionnaireStudioPro (значок шестерёнки)