Проверено на HTTPS RedOS 7.3.4 и Debian 11.
После применения патча обновления необходимо добавить информацию в БД:
sudo -i -u postgres psql \c cddisk
INSERT INTO public."MessageSettings" ("Key", "Value", "Lang") VALUES ('projectsUrl', 'https://projects.<your_domain>', 'en');Необходимо заменить <your_domain> на домен, в котором работает Корпоративный сервер 2024.
Проверяем, что запись появилась:
SELECT "Id", "Value", "Key" from public."MessageSettings" where "Key" in ('projectsUrl');Пример:
cddisk=# SELECT "Id", "Value", "Key" from public."MessageSettings" where "Key" in ('projectsUrl');
Id | Value | Key
-----+---------------------------------+-------------
113 | https://projects.domain.ru | projectsUrl
(1 строка)Включение настройки в MessageSettings:
INSERT INTO public."MessageSettings" ("Key", "Value", "Lang") VALUES ('enableProjects' ,'1','')
ON CONFLICT ("Key") DO UPDATE SET "Value"= EXCLUDED."Value","Lang"= EXCLUDED."Lang";Добавить настройку в MessageSettings для плиток:
INSERT INTO public."MessageSettings"("Key", "Value", "Lang") VALUES ('Projects|ModuleUrlData','{"Icon":"/source/modules/icon-projects.svg", "Culture":{"ru":"Проекты","en":"Projects" }}','')
ON CONFLICT ("Key") DO UPDATE SET "Value"= EXCLUDED."Value","Lang"= EXCLUDED."Lang";Выполнить скрипт по добавлению приложения Projects:
INSERT INTO public."Applications"("Key", "Name")
SELECT 'projects', 'АРМ Проекты' WHERE NOT EXISTS(SELECT "Key" FROM public."Applications" WHERE "Key"='projects');Выполнить скрипт по добавлению прав на роль Все:
DO $$
declare
appId int := 0;
BEGIN
SELECT "Id" INTO appId FROM public."Applications" WHERE "Key" = 'projects';
INSERT INTO public."RoleAccessRights"("RoleId", "EntityId", "EntityType", "Type", "OwnerId")
SELECT r."Id", appId, 16, 512, 0 FROM public."Roles" r WHERE r."Type"=4 AND NOT EXISTS(SELECT "RoleId" FROM public."RoleAccessRights" WHERE "RoleId" = r."Id" AND "EntityId" = appId AND "EntityType"=16);
END $$;Добавить дефолтные статусы:
DO $$ BEGIN INSERT INTO public."ProjectStatuses"( "Name", "Color", "Type","EntityType") SELECT 'BeExecuted', '#4DABF7', 2,38 WHERE Not exists(SELECT * FROM public."ProjectStatuses" WHERE "Type"=2 AND "EntityType"=38 AND "PatternId" is null); INSERT INTO public."ProjectStatuses"( "Name", "Color", "Type","EntityType") SELECT 'Closed', '#A9E34B', 5,38 WHERE Not exists(SELECT * FROM public."ProjectStatuses" WHERE "Type"=5 AND "EntityType"=38 AND "PatternId" is null); UPDATE public."ProjectStatuses" SET "Color"='#4DABF7' WHERE "Type"=2; UPDATE public."ProjectStatuses" SET "Color"='#A9E34B' WHERE "Type"=5; END $$
Выходим из psql:
\q
Перезапускаем службы cddisk:processing и cddisk:api:
sudo supervisorctl restart cddisk:processing
sudo supervisorctl restart cddisk:api
Скачать архив по ссылке.
Распаковываем архив в /var/www/r7-office/.
Даем права на эту папку:
chmod 755 -R /var/www/r7-office/projects
Создаем файл конфигурации для Nginx projects в папке /etc/nginx/sites-available.
Заменить <your_domain> на домен, в котором работает Корпоративный сервер 2024.
Содержание файла:
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
client_max_body_size 26M;
if ($scheme != "https")
{
return 301 https://$host$request_uri;
}
root /var/www/r7-office/projects;
index index.html;
server_name projects.<your_domain>;
server_tokens off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/ssl/<your_domain>.crt;
ssl_certificate_key /etc/nginx/ssl/<your_domain>.key;
ssl_ciphers HIGH:!aNULL:!MD5;
location /api {
proxy_set_header host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-forward-for $proxy_add_x_forwarded_for;
proxy_set_header X-Module Contacts;
proxy_pass http://localhost:38033/api;
}
location / {
try_files $uri $uri/ /index.html;
}
}Создаем ссылку в папке /etc/nginx/conf.d:
ln -s /etc/nginx/sites-available/projects /etc/nginx/conf.d/projects-site.conf
Проверяем конфигурацию Nginx:
nginx -t
Если ошибок нет, перезапускаем службу Nginx:
systemctl restart nginx
Проверяем работоспособность по ссылке projects.<your_domain> либо через страницу администратора.
