Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Включение модуля Р7 Проекты при обновлении версии Корпоративного сервера 2024 с 3680 на 4400

Обновлено: 25.12.25
Важно

Проверено на 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> либо через страницу администратора.