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

Техническое описание сервисов

Техническое описание сервисов Core компонентов

DICTIONARIES

Описание функции сервиса: данный сервис обеспечивает работу со справочниками и отображение справочников внутри портала.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8484 Порт контейнера
2 API_BASE_URL dicts Префикс API сервиса Dictionary
3 CALENDAR_SERVICE_URI http://calendar:80 URL сервиса Calendar
4 CMS_SERVICE_URI http://cms-backend/ URL сервиса CMS
5 COMMENTS_SERVICE_URI http://comments:80 URL сервиса Comments
6 DICTIONARY_SERVICE_URI http://dictionaries:80 URL сервиса Dictionary
7 EVENTS_SERVICE_URI http://events:80 URL сервиса Events
8 FILESTORAGE_SERVICE_URI http://filestorage:80 URL сервиса Filestorage
9 GAMIFICATION_SERVICE_URI http://gamification:80 URL сервиса Gamification
10 NEWS_SERVICE_URI http://news:80 URL сервиса News
11 PROFILE_SERVICE_URI http://profile:80 URL сервиса Profile
12 TASKS_SERVICE_URI http://tasks:80 URL сервиса Tasks
13 KAFKA_TOPIC_WS websocket Топик Kafka, который слушает сервис notifications:websoket
14 REDIS_LOCATION redis://dictionaries-redis Адрес Redis для работы Celery
15 PG_HOST Обязательно Хост базы данных
16 PG_PORT Обязательно Порт базы данных
17 PG_DB Обязательно Имя базы данных
18 PG_USER Обязательно Пользователь для подключения к базе данных
19 PG_PASSWORD Обязательно Пароль для подключения к базе данных
20 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
21 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
22 GUNICORN_WORKERS 4 Количество рабочих процессов Gunicorn
23 COMMENTS_API_URL http://comments URL сервиса Comments
  1. Целевой образ: docker.people-hub.ru/ph/dictionaries:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8484. Для изменения скорректируйте переменную GUNICORN_BIND
    • Команда запуска: /app/docker/cmd.sh
    • Инициализация при развертывании: заполняется через сервис Discovery. Дополнительных команд вызывать не требуется.
  3. Сервисные контейнеры:
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Redis.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 150Mi

DISCOVERY

Описание функции сервиса: данный сервис обеспечивает работу сервиса наблюдения за состоянием сервисов и позволяет обновлять справочники внутри портала.

Переменные окружения:

Переменная Пример Необходимость Описание
1 BASE_API_URL /api/discovery Обязательно Префикс API сервиса Discovery
2 DICTIONARIES_SERVICE http://dictionaries
3 DICTIONARIES_API_URL /dicts/internal
4 KEYCLOAK_SUPER_ROLE superuser
5 HEALTH_CHECKERS_ENABLED_SERVERS blogs, groups, profile, calendar, dictionaries, notifications, filestorage, asyncblogs, news, events, meetings, polls, comments, tasks, gamification, settings, cms Обязательно
6 AWS_S3_ENDPOINT_URL https://hb.bizmrg.com Обязательно
7 AWS_ACCESS_KEY_ID **** Обязательно
8 AWS_STORAGE_BUCKET_NAME media
9 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
10 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
11 CELERY_BROKER_URL Обязательно Адрес Celery
12 CELERY_RESULT_BACKEND Обязательно Адрес, куда складывать результаты задач Celery
13 REDIS_HOST Арес Redis для сервиса
  1. Целевой образ: docker.people-hub.ru/ph/discovery:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректируйте аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента.
    • Команда запуска: uvicorn main:app --workers 4 --host 0.0.0.0 --port 8000
    • Инициализация при развертывании:
    • Нужно выполнить POST запрос: $API_BASE_URL/init_dictionaries/
    • Нужно выполнить POST запрос: $API_BASE_URL/internal/upload_files/
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery --app worker.celery worker --loglevel=info
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Redis.
    • Postgres: для хранения данных.
    • S3: для хранения медиафайлов из профилей пользователей.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
    • cpu: 50m
    • memory: 300Mi

FILESTORAGE

Описание функции сервиса: данный сервис отвечает за работу с различными файловыми хранилищами в портале.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:9090 Порт контейнера
2 BASE_API_URL /api/filestorage Префикс API сервиса Filestorage
3 ALLOWED_PARALLEL_UPLOADS 6 Количество параллельных разрешенных загрузок файлов для одного пользователя
4 API_BASE_URL api/filestorage/ Префикс API сервиса
5 COMMENTS_BASE_URL /api/comments/internal API сервиса Comments
6 COMMENTS_SERVICE_URI http://comments URL сервиса Comments
7 DICTIONARIES_BASE_URL /dicts/internal Префикс API сервиса Dictionary
8 DICTIONARY_SERVICE_URI http://dictionaries:80 URL сервиса Dictionary
9 FILESTORAGE_PERMISSIONS_CHECK 0 Проверка прав при совершении действий с файловым хранилищем
10 PROFILE_SERVICE_URI http://profile/profile URL сервиса Profile
11 NOTIFICATION_FILE di Имя файла для записи уведомлений
12 ENABLE_NOTIFICATION 1 Включены ли уведомления
13 AWS_STORAGE_BUCKET_NAME media
14 AWS_S 3 _ENDPOINT_URL
15 AWS_STORAGE_BUCKET_NAME
16 CELERY_BROKER_URL Обязательно Адрес Celery
17 CELERY_RESULT_BACKEND Обязательно Адрес, куда складывать результаты задач Celery
18 AWS_SECRET_ACCESS_KEY
19 AWS_ACCESS_KEY_ID
20 PG_HOST Обязательно Хост базы данных
21 PG_PORT Обязательно Порт базы данных
22 PG_DB Обязательно Имя базы данных
23 PG_USER Обязательно Пользователь для подключения к базе данных
24 PG_PASSWORD Обязательно Пароль для подключения к базе данных
25 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
26 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
27 GUNICORN_WORKERS 4 Количество рабочих процессов Gunicorn
28 SERVICE_AUTH_TOKEN
29 REDIS_HOST Обязательно Арес Redis для сервиса
30 REDIS_PORT Обязательно Порт Redis для сервиса
31 SITE_DOMAIN
32 PROMETHEUS_MONITORING_ENABLED Включение URL с Prometheus
33 LOGGING_LEVEL
34 KEYCLOAK_API_USERNAME username Обязательно Логин для администратора Keycloak. Администратор Keycloak может работать с API Keycloak и изменять/добавлять пользователей
35 KEYCLOAK_API_PASSWORD password Обязательно Пароль для администратора Keycloak. Администратор Keycloak может работать с API Keycloak и изменять/добавлять пользователей
36 KEYCLOAK_API_BASE_URL keycloak:80/auth Обязательно Адрес Keycloak
37 KEYCLOAK_API_GRANT_TYPE password Обязательно Тип подтверждения, например пароль (password)
38 KEYCLOAK_API_CLIENT_ID Обязательно ID клиента Keycloak
39 KEYCLOAK_API_REALM realm Обязательно Название Realm
40 KAFKA_BROKER kafka:9092 Адрес Kafka
41 FILESTORAGE_PERMISSIONS_CHECK Проверка прав при совершении действий с файловым хранилищем
42 HEALTH_EXTRA_ENABLE
43 LOG_SKIP_LOGGING_ENDPOINTS /api/filestorage/v3/file/upload/ Переменная появилась в релизе 3.61.4. Отключает логгирование запроса при загрузке файлов в файловое хранилище
  1. Целевой образ: docker.people-hub.ru/ph/filestorage:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 9090. Для изменения скорректируйте переменную GUNICORN_BIND
    • Команда запуска: /app/docker/cmd.sh
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
    • Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Kafka.
    • Redis.
    • Keycloak: для аутентификации, создания пользователей.
    • Postgres: для хранения данных.
    • S3: для хранения медиафайлов из профилей пользователей.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 600Mi

NOTIFICATOR

Описание функции сервиса: данный сервис обеспечивает работу уведомлений внутри портала.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8282 Порт контейнера
2 API_BASE_URL api/notifications/ Префикс API сервиса Notificator
3 ASYNC_BLOGS_API_URL http://asyncblogs:80/api/async-blogs URL сервиса Async-blogs
4 CALENDAR_SERVICE_URI http://calendar:80 URL сервиса Calendar
5 CMS_SERVICE_URI http://cms-backend/ URL сервиса CMS
6 COMMENTS_SERVICE_URI http://comments:80 URL сервиса Comments
7 DICTIONARY_SERVICE_URI http://dictionaries:80 URL сервиса Dictionary
8 EVENTS_SERVICE_URI http://events:80 URL сервиса Events
9 FILESTORAGE_SERVICE_URI http://filestorage:80 URL сервиса Filestorage
10 GAMIFICATION_SERVICE_URI http://gamification:80 URL сервиса Gamification
11 NEWS_SERVICE_URI http://news:80 URL сервиса News
12 PROFILE_SERVICE_URI http://profile:80 URL сервиса Profile
13 TASKS_SERVICE_URI http://tasks:80 URL сервиса Tasks
14 KAFKA_TOPIC_WS websocket Топик Kafka, который слушает сервис notifications:websoket
15 PG_HOST Обязательно Хост базы данных
16 PG_PORT Обязательно Порт базы данных
17 PG_DB Обязательно Имя базы данных
18 PG_USER Обязательно Пользователь для подключения к базе данных
19 PG_PASSWORD Обязательно Пароль для подключения к базе данных
20 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
21 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
22 GUNICORN_WORKERS 4 Количество рабочих процессов Gunicorn
23 KAFKA_BROKER kafka:9092 Адрес Kafka
  1. Целевой образ: docker.people-hub.ru/ph/notifications:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8282. Для изменения скорректируйте переменную GUNICORN_BIND
    • Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры:
    • Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
  4. Инфраструктурные зависимости:
    • Kafka.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 100Mi

PAGES

Описание функции сервиса: данный сервис отвечает за работу и отображения главной страницы портала, за работу и отображение виджетов на главной странице портала.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8282 Порт контейнера
2 API_BASE_URL pages/ Префикс API сервиса Pages
3 PG_HOST Обязательно Хост базы данных
4 PG_PORT Обязательно Порт базы данных
5 PG_DB Обязательно Имя базы данных
6 PG_USER Обязательно Пользователь для подключения к базе данных
7 PG_PASSWORD Обязательно Пароль для подключения к базе данных
8 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
9 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
10 GUNICORN_WORKERS 4 Количество рабочих процессов Gunicorn
11 FILESTORAGE_API_URL URL сервиса Filestorage
12 FILESTORAGE_FOLDER
13 FILESTORAGE_IMAGE_URL
  1. Целевой образ: docker.people-hub.ru/ph/pages:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8585. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании: python manage.py create_default_data
  3. Сервисные контейнеры: отсутсвуют.
  4. Инфраструктурные зависимости:
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 200m
      • memory: 1024Mi

PROFILE

Описание функции сервиса: данный сервис обеспечивает работу с профилями пользователей на портале.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8080 Порт контейнера
2 API_BASE_URL profile/ Префикс API сервиса Profile
3 MAX_LIST_COUNT 1000 Максимальное число пользователей в списочных ручках по ids
4 DICTIONARIES_BASE_URL /dicts/internal Префикс API сервиса Dictionary
5 DICTIONARY_SERVICE_URI http://dictionaries:80 Обязательно URL сервиса Dictionary
6 DECLINE_NOT_PUBLIC_SKILLS 1 Отклонять неопубликованные навыки
7 ENABLE_NOTIFICATION 1 Включить уведомления
8 ENABLE_EVENTS 1 Включить события
9 ENABLE_EVENTS_BUFFER 1 Включить буфер для событий по типу
10 API_BASE_URL /profile Обязательно Префикс сервиса, где он будет размещаться. В некоторых сервисах из-за легаси может быть в виде {service}/ . Нужно быть к этому готовым.
11 GROUPS_SERVICE_URI http://groups:80 Обязательно URL сервиса Groups
12 PG_HOST Обязательно Хост базы данных
13 PG_PORT Обязательно Порт базы данных
14 PG_DB Обязательно Имя базы данных
15 PG_USER Обязательно Пользователь для подключения к базе данных
16 PG_PASSWORD Обязательно Пароль для подключения к базе данных
17 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
18 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
19 GUNICORN_WORKERS 4 Количество рабочих процессов Gunicorn
20 PROMETHEUS_MONITORING_ENABLED Включение URL с Prometheus
21 KAFKA_BROKER kafka:9092 Адрес Kafka
22 KEYCLOAK_API_USERNAME username Обязательно Логин для администратора Keycloak. Администратор Keycloak может работать с API Keycloak и изменять/добавлять пользователей
23 KEYCLOAK_API_PASSWORD password Обязательно Пароль для администратора Keycloak. Администратор Keycloak может работать с API Keycloak и изменять/добавлять пользователей
24 KEYCLOAK_API_BASE_URL keycloak:80/auth Обязательно Адрес Keycloak
25 KEYCLOAK_API_GRANT_TYPE password Обязательно Тип подтверждения, например пароль
26 KEYCLOAK_API_CLIENT_ID Обязательно ID клиента Keycloak
27 KEYCLOAK_API_REALM realm Обязательно Название Realm
  1. Целевой образ: docker.people-hub.ru/ph/profile:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8080. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
    • Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Kafka.
    • Redis.
    • Keycloak: для аутентификации, создания пользователей.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы
    • $API_BASE_URL/admin/ панель администратора Django
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 512Mi

ROLES

Описание функции сервиса: данный сервис отвечает за разделение пользователей по ролям в рамках ролевой модели, и за доступы и разрешения у данных ролей.

Переменные окружения:

Переменная Пример Необходимость Описание
1 SERVER_HOST 0.0.0.0 Хост контейнера
2 SERVER_PORT 80 Порт контейнера
3 MAX_PAGE_SIZE 100 Максимальный размер отдачи данных
4 API_BASE_URL /api/roles Префикс API сервиса Roles
5 PG_HOST Обязательно Хост базы данных
6 PG_PORT Обязательно Порт базы данных
7 PG_DB Обязательно Имя базы данных
8 PG_USER Обязательно Пользователь для подключения к базе данных
9 PG_PASSWORD Обязательно Пароль для подключения к базе данных
10 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
11 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
12 KEYCLOAK_AUTH_DB_UPDATE_ENABLED Автообновление данных пользователя из данных Keycloak токена
  1. Целевой образ: docker.people-hub.ru/ph/roles:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000 Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента.
    • Команда запуска: uvicorn main:app --workers 8 --host 0.0.0.0 --port 8000
    • Инициализация контейнера: отсутствует.
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры: отсутствуют.
  4. Инфраструктурные зависимости:
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Проверка tcp порта 8000
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 650Mi

SETTINGS

Описание функции сервиса: данный сервис позволяет пользователям настраивать различные разделы портала.

Переменные окружения:

Переменная Пример Необходимость Описание
1 API_BASE_URL /api/settings/ Префикс API сервиса Settings
2 AUTH_RESPONSE_CLIENT_ID ph-prod Обязательно
3 AUTH_RESPONSE_DOMAIN https://people-hub.ru Обязательно
4 AUTH_RESPONSE_REALM realm Обязательно
5 AUTH_RESPONSE_TYPE keycloak
6 AUTH_RESPONSE_URL /auth/
7 CELERY_ALWAYS_EAGER 1 Переменная для более ранних версий
8 PG_HOST Обязательно Хост базы данных
9 PG_PORT Обязательно Порт базы данных
10 PG_DB Обязательно Имя базы данных
11 PG_USER Обязательно Пользователь для подключения к базе данных
12 PG_PASSWORD Обязательно Пароль для подключения к базе данных
13 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
14 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
  1. Целевой образ: docker.people-hub.ru/ph/settings:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента в файле /app/docker/cmd.sh
    • Команда запуска: /app/docker/cmd.sh
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c alembic upgrade head
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры: отсутствуют.
  4. Инфраструктурные зависимости:
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Проверка tcp порта 8000
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 512Mi

WEBSOCKET

Описание функции сервиса: данный сервис отвечает за работу и отображение уведомлений пользователя в правом верхнем углу портала.

Переменные окружения:

Переменная Пример Необходимость Описание
1 API_BASE_URL /notify_ws Префикс API сервиса Websocket
2 SERVER_HOST 127.0.0.1 Хост контейнера
3 SERVER_PORT 8000 Порт контейнера
4 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
5 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
6 KAFKA_CONSUMER_SERVICE_GROUP_ID
7 KAFKA_CONSUMER_SERVICE_TOPIC
8 KAFKA_BROKER kafka:9092 Адрес Kafka
9 HEALTH_EXTRA_ENABLE
10 FILESTORAGE_SERVICE_AUTH_TOKEN
  1. Целевой образ: docker.people-hub.ru/ph/websockets-notifications:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать переменную SERVER_PORT
    • Команда запуска: python server.py
    • Инициализация контейнера: отсутствует.
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры: отсутствуют.
  4. Инфраструктурные зависимости:
    • Kafka.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 150Mi

Техническое описание сервисов PH Services

ASYNC-BLOGS

Описание функции сервиса: данный сервис представляет собой рабочий инструмент коммуникации сотрудников внутри компании, предназначенный для обмена экспертными знаниями, информацией и опытом.

Переменные окружения:

Переменная Пример Необходимость Описание
1 SERVER_HOST 0.0.0.0 Хост контейнера
2 SERVER_PORT 8000 Порт контейнера
3 API_BASE_URL /api/async-blogs Префикс API сервиса Async-blogs
4 BASE_HOST https://people-hub.ru Базовый адрес, используемый для запросов
5 COMMENTS_SERVICE_URL http://comments/api/comments/ URL сервиса Comments
6 DICTIONARY_SERVICE_URI http://dictionaries: URL сервиса Dictionary
7 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
8 MAX_OVERFLOW -1 Настройки для движка sqlalchemy: количество доступных соединений сверх допустимого пул
9 MAX_PAGE_SIZE 100 Настройки для движка sqlalchemy: максимальный размер страницы
10 POOL_TIMEOUT 40 Настройки для движка sqlalchemy: число секунд перед сбросом соединения из пул
11 PROFILE_API_URL http://profile/ URL сервиса Profile
12 ROLES_API_URL http://roles URL сервиса Roles
13 PG_HOST Обязательно Хост базы данных
14 PG_PORT Обязательно Порт базы данных
15 PG_DB Обязательно Имя базы данных
16 PG_USER Обязательно Пользователь для подключения к базе данных
17 PG_PASSWORD Обязательно Пароль для подключения к базе данных
18 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
19 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
20 KAFKA_TOPIC notice Топик Kafka
21 KAFKA_BROKER kafka:9092 Адрес Kafka
22 KEYCLOAK_AUTH_DB_UPDATE_ENABLED Автообновление данных пользователя из данных Keycloak токена
  1. Целевой образ: docker.people-hub.ru/ph/asyncblogs:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента
    • Команда запуска: uvicorn main:app --host 0.0.0.0 --port 8000 --workers 8
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c alembic upgrade head
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры:
    • Cоnsumer: запускается из целевого образа командой sh -c python -m kafka_consumer
  4. Инфраструктурные зависимости:
    • Kafka.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL, по умолчанию /api/async-blogs
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Проверка tcp порта 8000
  8. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 1024Mi

BLOGS

Описание функции сервиса: данный сервис представляет собой рабочий инструмент коммуникации сотрудников внутри компании, предназначенный для обмена экспертными знаниями, информацией и опытом.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:9090 Порт контейнера
2 ADD_USER_PROFICIENCY_TO_TIMELINE 1 Взаимодействие с сервисом профилей через Kafka (handler)
3 API_BASE_URL blogs/ Префикс API сервиса Blogs
4 BASE_HOST https://people-hub.ru Базовый адрес, используемый для запросов (используется в Reports)
5 BLOGS_FRONT_URL /groups/ Базовый адрес front-end части сервиса (используется в payload для оповещений)
6 ENABLE_MARKDOWN_IN_TEXT True Использовать ли Markdown в тексте
7 ENTRY_TEXT_IS_NULL False Допускается отсутствие текста в entry
8 ENTRY_TEXT_IS_REQUIRED True Необходимость текста для entry
9 ENTRY_TITLE_REQUIRED 0 Необходимость заголовка для entry
10 EVENTS_BASE_URL http://events/api/events/ URL сервиса Events
11 GET_TAGS_DICTIONARY_ENABLED True Необходимость получения тегов из сервиса Dictionary
12 MAX_PAGE_SIZE 100 Максимальный размер страницы при пагинации
13 PROFILE_BASE_URL http://profile/ URL сервиса Profile
14 PROFILE_FRONT_URL /user Базовый адрес front-end части сервиса (используется в payload для оповещений)
15 REACTION_V2 True Переход на реакции v2
16 RECORD_SUBSCRIPTION_SET_DATE_BY_ENTRY 1 Установка в модели RecordSubscription поля created_at
17 TIMELINE_ENABLED True Надстройка для перестройки timeline в зависимости от подписки/отписки на пользователя
18 NOTIFICATION_FILE di Имя файла для записи уведомлений
19 PG_HOST Обязательно Хост базы данных
20 PG_PORT Обязательно Порт базы данных
21 PG_DB Обязательно Имя базы данных
22 PG_USER Обязательно Пользователь для подключения к базе данных
23 PG_PASSWORD Обязательно Пароль для подключения к базе данных
24 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
25 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
26 KAFKA_TOPIC notice Топик Kafka
27 KAFKA_BROKER kafka:9092 Адрес Kafka
28 REDIS_LOCATION redis://blogs-redis: 6379 / 0 Адрес Redis для работы Celery
29 GUNICORN_WORKERS 4 Количество рабочих процессов Gunicorn
  1. Целевой образ: docker.people-hub.ru/ph/blogs:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 9090. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: /app/docker/cmd.sh
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application.celery_app beat -l info
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Kafka.
    • Redis.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL, по умолчанию "/blogs".
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 150m
      • memory: 700Mi

CALENDAR

Описание функции сервиса: данный сервис замещает функции планирования времени в почтовом корпоративном программном обеспечении. Также в календаре сервиса можно планировать персональное рабочее время, отражая в нём задачи пользователя и привязывая их к времени в календаре.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8080 Порт контейнера
2 API_BASE_URL api/calendar/ Префикс API сервиса Calendar
3 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
4 NOTIFICATION_FILE di Файл с классами уведомлений
5 PROFILE_SERVICE_URI http://profile : URL сервиса Profile
6 REDIS_LOCATION redis://calendar-redis:6379/0 Обязательно Адрес Redis для работы Celery
7 PG_HOST Обязательно Хост базы данных
8 PG_PORT Обязательно Порт базы данных
9 PG_DB Обязательно Имя базы данных
10 PG_USER Обязательно Пользователь для подключения к базе данных
11 PG_PASSWORD Обязательно Пароль для подключения к базе данных
12 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
13 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
14 KAFKA_TOPIC notice Топик Kafka
15 KAFKA_BROKER kafka:9092 Адрес Kafka
16 SECRET_KEY
17 CELERY_BROKER_URL redis://calendar-redis: 6379 / 0 Адрес Celery
18 CELERY_RESULT_BACKEND redis://calendar-redis: 6379 / 0 Адрес, куда складывать результаты задач Celery
  1. Целевой образ: docker.people-hub.ru/ph/calendar:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8080. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate –noinput
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Redis.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL, по умолчанию /api/calendar
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 300Mi

CMS

Описание функции сервиса: данный сервис позволяет хранить данные в виде веб страниц с иерархией в виде групп страниц или без нее в виде страниц.

Переменные окружения:

Переменная Пример Необходимость Описание
1 SERVER_HOST localhost Хост контейнера
2 SERVER_PORT 8000 Порт контейнера
3 REDIS_LOCATION redis://cms-redis:6379/0 Переменная для более ранних версий
4 PROFILE_UPDATE_KAFKA_TOPIC profile Топик Kafka для отслеживания изменений в профилях
5 PROFILE_SYNC_QUERY_URL profile/internal/v2/list/ API для ручного обновления профиля
6 PROFILE_SERVICE_URI http://profile/profile Переменная для более ранних версий
7 PROFILE_API_URL http://profile/ Обязательно URL сервиса Profile
8 SERVICE_NAME cms Имя сервиса, из которого далее будет строиться URL. api/{SERVICE_NAME}/
9 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
10 NOTIFICATION_FILE di Имя файла для записи уведомлений
11 PROMETHEUS_MONITORING_ENABLED true Включение URL с Prometheus
12 ADMIN_PANEL_ACCESS_EXPIRE_MINUTES 500 Время жизни токена для доступа в fastApi административной панели
13 MAX_PAGE_SIZE 100 Максимальный размер страницы при пагинации
14 DEBUG 1 Вкл/выкл режим отладки
15 BASE_HOST https://peope-hub.ru URL фронтенда для формирования прямых ссылок на страницы/разделы
16 COMMENTS_SERVICE_URL http://comments:80/api/comments/ URL сервиса Comments
17 DJANGO_SETTINGS_CONFIGURATIONS 0
18 PG_HOST Обязательно Хост базы данных
19 PG_PORT Обязательно Порт базы данных
20 PG_DB Обязательно Имя базы данных
21 PG_USER Обязательно Пользователь для подключения к базе данных
22 PG_PASSWORD Обязательно Пароль для подключения к базе данных
23 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
24 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
25 KAFKA_CONSUMER_GROUP cms Топик Kafka
26 KAFKA_BROKER kafka:9092 Адрес Kafka
27 KEYCLOAK_AUTH_DB_UPDATE_ENABLED Автообновление данных пользователя из данных Keycloak токена
  1. Целевой образ: docker.people-hub.ru/ph/cms:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента
    • Команда запуска: uvicorn main:app --workers 8 --host 0.0.0.0 --port 8000
    • Инициализация контейнера: Для инициализации необходимо запустить миграции из целевого образа командой sh -c alembic upgrade head
    • Инициализация при развертывании: python create_admin_panel_user
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application worker -l info
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Kafka.
    • Redis.
    • Postgres: для хранения данных.
    • S3: для хранения медиафайлов из профилей пользователей.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 800Mi

COMMENTS

Описание функции сервиса: данный сервис позволяет пользователям писать, редактировать, удалять комментарии в разных разделах портала.

Переменные окружения:

Переменная Пример Необходимость Описание
1 API_BASE_URL /api/comments Префикс API сервиса Comments
2 SERVER_HOST 0.0.0.0 Хост контейнера
3 SERVER_PORT  8000 Порт контейнера
4 FILESTORAGE_API_URL http://filestorage/api/filestorage/ Обязательно URL сервиса Filestorage (права доступа, обогащение сущностей комментариев).
5 PROFILE_API_URL http://profile/ Обязательно URL сервиса Profile (права доступа, обогащение сущностей комментариев)
6 DICTIONARY_API_URL Обязательно URL сервиса Dictionary (права доступа, обогащение сущностей комментариев).
7 TASK_API_URL Обязательно URL сервиса Tasks (права доступа, обогащение сущностей комментариев)
8 CMS_API_URL  Обязательно URL сервиса CMS (права доступа, обогащение сущностей комментариев)
9 NEWS_API_URL Обязательно URL сервиса News (права доступа, обогащение сущностей комментариев)
10 BLOGS_API_URL Обязательно URL сервиса Blogs, должен уйти, когда асинхронные блоги поглотят функционал синхронных (права доступа, обогащение сущностей комментариев).
11 ASYNC_BLOGS_API_URL http://asyncblogs/api/async-blogs/ Обязательно URL сервиса Async-blogs (права доступа, обогащение сущностей комментариев).
12 NOTIFICATION_FILE di Переменная для более ранних версий
13 PATH_TO_CELERY_APP application.celery.app Переменная для более ранних версий
14 ENABLE_NOTIFICATION True Переменная для более ранних версий
15 ADMIN_PANEL_ACCESS_EXPIRE_MINUTES 1440
16 POOL_SIZE 600
17 POOL_RECYCLE 3600
18 POOL_TIMEOUT 100
19 MAX_OVERFLOW 100
20 DJANGO_SETTINGS_CONFIGURATIONS 0 Переменная для более ранних версий
21 PG_HOST Обязательно Хост базы данных
22 PG_PORT Обязательно Порт базы данных
23 PG_DB Обязательно Имя базы данных
24 PG_USER Обязательно Пользователь для подключения к базе данных
25 PG_PASSWORD Обязательно Пароль для подключения к базе данных
26 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
27 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
28 REDIS_LOCATION redis://comments-redis: 6379 / 0 Переменная для более ранних версий
29 HEALTH_EXTRA_ENABLE 1
30 PROMETHEUS_MONITORING_ENABLED 1 Включение URL с Prometheus
31 PROFILE_SERVICE_URI http://profile/profile Обязательно URL сервиса Profile
32 PROFILE_SYNC_WITH_USER Обязательно В данный момент нужно установить в 'false'
33 KAFKA_BROKER kafka:9092 Обязательно Адрес Kafka
34 KEYCLOAK_AUTH_DB_UPDATE_ENABLED Автообновление данных пользователя из данных Keycloak токена
  1. Целевой образ: docker.people-hub.ru/ph/comments:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента
    • Команда запуска: uvicorn main:app --workers 8 --host 0.0.0.0 --port 8000
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c alembic upgrade head
    • Инициализация при развертывании: python create_admin_panel_user
  3. Сервисные контейнеры: отсутствуют.
  4. Инфраструктурные зависимости:
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 800Mi

EVENTS

Описание функции сервиса: данный сервис позволяет информировать сотрудников организации о корпоративных мероприятиях. Корпоративные мероприятия, создаваемые в данном сервисе, могут носить уведомляющий, обучающий, развивающий, информационный, а также развлекающий характер.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8585 Порт контейнера
2 BASE_API_URL /api/events Префикс API сервиса Events
3 CALENDAR_SERVICE_URI http://calendar URL сервиса Calendar
4 DICTIONARY_SERVICE_URI http://dictionaries URL сервиса Dictionary
5 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
6 CELERY_LOG_LEVEL DEBUG Уровень логирования в Celery
7 ENABLE_NOTIFICATION True Вкл/выкл. уведомлений
8 REDIS_LOCATION redis://events-redis:6379/0 Обязательно Адрес Redis для работы Celery
9 ROLES_API_URL http://roles URL сервиса Roles
10 SENTRY_DSN https://*@sentry.digital-insider.ru/2 Обязательно
11 PROFILE_BASE_URL http://profile/ Обязательно URL сервиса Profile
12 PROFILE_SYNC_LOAD_ALL True Обязательно Синхронизация всех пользователей из сервиса Profile
13 PG_HOST Обязательно Хост базы данных
14 PG_PORT Обязательно Порт базы данных
15 PG_DB Обязательно Имя базы данных
16 PG_USER Обязательно Пользователь для подключения к базе данных
17 PG_PASSWORD Обязательно Пароль для подключения к базе данных
18 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
19 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
20 HEALTH_EXTRA_ENABLE 1
21 PROMETHEUS_MONITORING_ENABLED 1 Включение URL с Prometheus
22 GUNICORN_WORKERS 4 Обязательно Количество рабочих процессов Gunicorn
23 KAFKA_BROKER kafka:9092 Обязательно Адрес Kafka
24 CALENDAR_SYNC true Обязательно Переменная появилась в релизе 3.61.4. Включает синхронизацию мероприятия и события в календаре
  1. Целевой образ: docker.people-hub.ru/ph/events:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8585. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании: python manage.py sync_thanks
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application worker -l info
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Redis.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 400Mi

GAMIFICATIONS

Описание функции сервиса: данный сервис содержит в себе инструменты для вовлечения работников в жизнь компании и проявления корпоративно полезной инициативы.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8585 Порт контейнера
2 API_BASE_URL /api/gamification/ Обязательно Префикс API сервиса Gamifications
3 NOTIFICATIONS_VERSION 2
4 DEBUG_SERVICE_AUTH_TOKEN token Обязательно
5 PROFILE_SYNC_ENABLED 1 Включить синхронизацию профилей
6 ENABLE_NOTIFICATION 1
7 NOTIFICATION_FILE di
8 DICTIONARY_SERVICE_URI http://dictionaries:80 URL сервиса Dictionary
9 DICTIONARIES_BASE_URL /dicts/internal Префикс API сервиса Dictionary
10 PROFILE_BASE_URL http://profile :{{ .Values.profile.app.targetPort }}
11 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
12 FILESTORAGE_HOST http://hostname.ru Обязательно Нужно указывать именно имя хоста, не адрес сервиса
13 PG_HOST Обязательно Хост базы данных
14 PG_PORT Обязательно Порт базы данных
15 PG_DB Обязательно Имя базы данных
16 PG_USER Обязательно Пользователь для подключения к базе данных
17 PG_PASSWORD Обязательно Пароль для подключения к базе данных
18 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
19 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
20 REDIS_LOCATION redis://gamification-redis: 6379 / 0 Обязательно Адрес Redis для работы Celery
21 HEALTH_EXTRA_ENABLE 1
22 PROMETHEUS_MONITORING_ENABLED 1 Включение URL с Prometheus
23 GUNICORN_WORKERS 4 Обязательно Количество рабочих процессов Gunicorn
24 FILESTORAGE_SERVICE_AUTH_TOKEN
25 SERVICE_AUTH_TOKEN
26 PROFILE_SYNC_WITH_USER 1 Обязательно Включить создание пользователя при синхронизации
  1. Целевой образ: docker.people-hub.ru/ph/gamification:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8585. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании:
      • python manage.py createsuperuser
      • python manage.py sync_badges
      • python manage.py sync_thanks
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
    • Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Kafka.
    • Redis.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 512Mi

GROUPS

Описание функции сервиса: данный сервис отображает все уровни подчинения внутри организационной структуры компании, команды сотрудников и их руководителей.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8383 Порт контейнера
2 API_BASE_URL api/groups/ Префикс API сервиса Groups
3 CELERY_BROKER_URL redis://groups-redis Обязательно Адрес Celery
4 CELERY_RESULT_BACKEND redis://groups-redis Обязательно Адрес, куда складывать результаты задач Celery
5 DJANGO_SETTINGS_MODULE application.settings_dev Файл с настройками проекта
6 PROFILE_SERVICE_URI http://profile URL сервиса Profile
7 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
8 ROLES_API_URL http://roles /api/roles/ URL сервиса Roles
9 LOGGING_LEVEL INFO Уровень логирования
10 PROFILER 0 Включено ли профилирование
11 ADMIN_COMMANDS_ENABLED 1 Возможность смотреть запущенные задачи Celery
12 ADMIN_COMMANDS_ADMIN_PASSWORD password Пароль для действий связанных с просмотром задач Celery
13 GUNICORN_WORKERS 16 Количество рабочих процессов Gunicorn
14 GUNICORN_TIMEOUT 300 Время ожидания ответа рабочих процессов
15 PG_HOST Обязательно Хост базы данных
16 PG_PORT Обязательно Порт базы данных
17 PG_DB Обязательно Имя базы данных
18 PG_USER Обязательно Пользователь для подключения к базе данных
19 PG_PASSWORD Обязательно Пароль для подключения к базе данных
20 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
21 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
22 REDIS_LOCATION redis://gamification-redis: 6379 / 0 Обязательно Адрес Redis для работы Celery
23 HEALTH_EXTRA_ENABLE 1
24 PROMETHEUS_MONITORING_ENABLED 1 Включение URL с Prometheus
25 GUNICORN_WORKERS 4 Обязательно Количество рабочих процессов Gunicorn
26 CELERY_BROKER_URL redis://groups-redis: 6379 / 0 Обязательно Адрес Celery
27 CELERY_RESULT_BACKEND redis://groups-redis: 6379 / 0 Обязательно Адрес, куда складывать результаты задач Celery
28 KAFKA_EVENTS_ENABLED 1 Топик Kafka
29 KAFKA_BROKER kafka:9092 Адрес Kafka
30 ADMIN_COMMANDS_ADMIN_PASSWORD
31 KEYCLOAK_API_BASE_URL http://keycloak/auth
32 KEYCLOAK_API_GRANT_TYPE password
  1. Целевой образ: docker.people-hub.ru/ph/groups:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8383. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании: python manage.py createsuperuser
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
    • Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Kafka.
    • Redis.
    • Keycloak: для аутентификации, создания пользователей.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 512Mi

MEETINGS

Описание функции сервиса: данный сервис позволяет осуществить бронирования сотрудниками компании корпоративных помещений (переговорных комнат, конференц-залов, спортивных площадок) для организации встреч и мероприятий.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8000 Порт контейнера
2 API_BASE_URL api/meetings/ Префикс API сервиса Meetings
3 PROFILE_SERVICE_URI http://profile URL сервиса Profile
4 CALENDAR_SERVICE_URI http://calendar URL сервиса Calendar
5 ROLES_SERVICE_URI http://roles URL сервиса Roles
6 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
7 PG_HOST pgbouncer Обязательно Хост базы данных
8 PG_PORT 5432 Обязательно Порт базы данных
9 PG_DB meetings Обязательно Имя базы данных
10 PG_USER Обязательно Пользователь для подключения к базе данных
11 PG_PASSWORD Обязательно Пароль для подключения к базе данных
12 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
13 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
14 KAFKA_BROKER kafka:9092 Обязательно Адрес Kafka для синхронизации профилей
15 PROFILE_SYNC_QUERY_URL profile/internal/v2/list/ Обязательно Адрес сервиса Profile для синхронизации
16 PROFILE_SYNC_ENABLED 1 Обязательно Включить синхронизацию профилей
  1. Целевой образ: docker.people-hub.ru/ph/meetings:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
    • Инициализация при развертывании: python manage.py createsuperuser
  3. Сервисные контейнеры: отсутствуют.
  4. Инфраструктурные зависимости:
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 200Mi

NEWS

Описание функции сервиса: данный сервис представляет собой функциональный блок, предназначенный для информирования сотрудников о событиях компании. Сервис позволяет создавать и оформлять новостные сообщений с ранжированием и категоризацией новостей в информационном пространстве сотрудников компании.

Переменные окружения:

Переменная Пример Необходимость Описание
1 API_BASE_URL api/news/ Префикс API сервиса News
2 ROLES_API_URL http://roles URL сервиса Roles
3 REACTION_V2 True
4 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
5 FILESTORAGE_SERVICE_AUTH_TOKEN ***** Обязательно
6 PROFILE_SERVICE_URI http://profile URL сервиса Profile
7 DICTIONARY_SERVICE http://dictionaries :{{ .Values.dictionaries.app.targetPort }}
8 SERVICE_AUTH_TOKEN *** Обязательно
9 SERVER_HOST {{ .Values.ingress.host }} Хост контейнера
10 SERVER_PORT 80 Порт контейнера
11 API_BASE_URL /api/news Префикс API сервиса
12 MAX_PAGE_SIZE 100 Максимальный размер страницы при пагинации
13 DJANGO_SETTINGS_CONFIGURATIONS 0
14 NOTIFICATION_FILE di
15 ENABLE_NOTIFICATIONS 1
16 PG_HOST pgbouncer Обязательно Хост базы данных
17 PG_PORT 5432 Обязательно Порт базы данных
18 PG_DB Обязательно Имя базы данных
19 PG_USER Обязательно Пользователь для подключения к базе данных
20 PG_PASSWORD Обязательно Пароль для подключения к базе данных
21 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
22 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
23 KAFKA_BROKER kafka:9092 Адрес Kafka
24 REDIS_LOCATION redis://news-redis: 6379 / 0 Переменная для более ранних версий
25 KEYCLOAK_AUTH_DB_UPDATE_ENABLED Автообновление данных пользователя из данных Keycloak токена
  1. Целевой образ: docker.people-hub.ru/ph/news:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента
    • Команда запуска: uvicorn main:app --workers 8 --host 0.0.0.0 --port 8000
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c alembic upgrade head
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application worker -l info
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Redis.
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 600Mi

POLLS

Описание функции сервиса: данный сервис позволяет прикрепить мини-опрос к посту пользователя.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:9090 Порт контейнера
2 API_BASE_URL api/polls/ Префикс API сервиса Polls
3 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
4 FILESTORAGE_SERVICE_AUTH_TOKEN *** Обязательно
5 ALLOWED_HOSTS *
6 SESSION_COOKIE_NAME
7 SENTRY_DSN
8 PROFILE_SERVICE_URI http://profile:80 URL сервиса Profile
9 MAX_PAGE_SIZE 10 Максимальный размер страницы при пагинации
10 NOTIFICATION_FILE di
11 PG_HOST pgbouncer Обязательно Хост базы данных
12 PG_PORT 5432 Обязательно Порт базы данных
13 PG_DB Обязательно Имя базы данных
14 PG_USER Обязательно Пользователь для подключения к базе данных
15 PG_PASSWORD Обязательно Пароль для подключения к базе данных
16 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
17 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
18 GUNICORN_WORKERS 4 Количество рабочих процессов Gunicorn
19 HEALTH_EXTRA_ENABLE
  1. Целевой образ: docker.people-hub.ru/ph/polls:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 9090. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании: python manage.py createsuperuser
  3. Сервисные контейнеры:
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Redis.
    • Postgres: для хранения данных.
  5. Переменные: используются общие переменные.
  6. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  7. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  8. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  9. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 150Mi

REPORTS

Описание функции сервиса: данный сервис позволяет администраторам системы получать данные по 3 метрикам посещения пользователями портала: DAU, MAU, Sticky factor, с возможностью их выгрузки в Excel. Также в сервисе реализован вывод рейтингов по социальной активности пользователей: топ 10 сообществ, топ 5 постов и лучший автор постов.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8000 Порт контейнера
2 API_BASE_URL api/reports/ Префикс API сервиса Reports
3 IDEAS_SERVICE_URI
4 POLLS_SERVICE_URI
5 EVENTS_SERVICE_URI URL сервиса Events
6 PROFILE_SERVICE_URI URL сервиса Profile
7 ASYNC_BLOGS_API_URL http://asyncblogs/api/async-blogs/ URL сервиса Async-blogs
8 TASKS_SERVICE_URI URL сервиса Tasks
9 CMS_SERVICE_URI http://cms-backend/api/cms/ Обязательно URL сервиса CMS
10 ANALYTIC_TOPIC analytic
11 ANALYTIC_GROUP clickhouse_analytic_group
12 PG_HOST pgbouncer Обязательно Хост базы данных
13 PG_PORT 5432 Обязательно Порт базы данных
14 PG_DB Обязательно Имя базы данных
15 PG_USER Обязательно Пользователь для подключения к базе данных
16 PG_PASSWORD Обязательно Пароль для подключения к базе данных
17 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
18 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
19 GUNICORN_WORKERS 4 Количество рабочих процессов Gunicorn
20 CLICKHOUSE_AUTO_SYNC_SCHEDULE_TIMEOUT 2
21 CLICKHOUSE_CELERY_QUEUE clickhouse
22 CLICKHOUSE_DB intranet
23 CLICKHOUSE_HOST clickhouse
24 CLICKHOUSE_PORT "8123"
25 CLICKHOUSE_USER intranet
26 CLICKHOUSE_PASSWORD
27 REDIS_DB 8
28 REDIS_HOST reports-redis Арес Redis для сервиса
29 REDIS_PORT "6379" Порт Redis для сервиса
30 REDIS_SOCKET_TIMEOUT 10
31 HEALTH_EXTRA_ENABLE 1
32 KAFKA_BROKER kafka9092 Адрес Kafka
33 KAFKA_SERVICE_TOPICS ["events"]
34 DEFAULT_CLICKHOUSE_DB_MIGRATE "0"
35 DEFAULT_CLICKHOUSE_DB_READONLY "0"
  1. Целевой образ: docker.people-hub.ru/ph/reports:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: /app/docker/cmd.sh
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • **Инициализация при развертывании: **
      • python -m async_profile_sync.management.load_profile_user_data \
      • && python -m commands.sync_user_followings \
      • && python -m commands.sync_blog_entries \
      • && python -m commands.sync_microposts \
      • && python -m commands.sync_competence_approves \
      • && python -m commands.sync_skills_approves \
      • && python -m commands.sync_comments \
      • && python -m commands.sync_thanks \
      • && python -m commands.sync_userbadges
  3. Сервисные контейнеры:
    • Redis: запускается из образа redis:5.0.7-alpine
    • Cоnsumer: Запускается из целевого образа командой sh -c python manage.py kafka_consumer
  4. Инфраструктурные зависимости:
    • Kafka.
    • Redis.
    • Postgres: для хранения данных.
    • ClickHouse.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы
    • $API_BASE_URL/admin/ панель администратора Django
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 150m
      • memory: 300Mi

TASKS

Описание функции сервиса: данный сервис предназначен для организации взаимодействия сотрудников компании в рамках выполнения проектной деятельности.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GUNICORN_BIND 0.0.0.0:8000 Порт контейнера
2 REDIS_LOCATION Адрес Redis для работы Celery
3 DEBUG 1 Вкл/выкл режим отладки
4 API_BASE_URL api/tasks/ Префикс API сервиса Tasks
5 FILESTORAGE_API_URL http://filestorage/api/filestorage/ URL сервиса Filestorage
6 PROFILE_BASE_URL http://profile:80 TODO: убрать какую-то из переменных. Пока не ясно какая используется, что-то из импортированных сервисов.
7 PROFILE_SERVICE_URI http://profile:80 URL сервиса Profile
8 PROFILE_SERVICE_API_PREFIX /profile Префикс URL сервиса профилей
9 NOTIFICATION_FILE di Файл с классами уведомлений
10 ENABLE_NOTIFICATION 1 Вкл/выкл уведомления
11 PROFILE_SYNC_ENABLED 1 Если выставлена в False, тогда метод profile_sync.models.ProfileUserData.get_by_ids ходит напрямую по API профилей со списком keycloal_id, при этом не сохраняя/кэшируя данные в текущем модуле, возвращаются всегда актуальные данные профилей, но нивелируются преимущества данного модуля по части кеширования данных профилей. Так же Kafka handler и Celery задача будут пропускать запись и обновление данных в БД.
12 PROFILE_SYNC_LOAD_ALL false Если выставлена в True, тогда консольная команда и Celery-команда загружает ВСЕХ пользователей что есть в профилях, а не только тех, которые есть в приложении.
13 PROFILE_UPDATE_KAFKA_TOPIC profile Топик Kafka для отслеживания изменений в профилях
14 PROFILE_SYNC_WITH_USER true Необходимость создать пользователя в таблице User при первом запросе
15 BASE_HOST Адрес для формирования ссылок на frontend
16 PG_HOST pgbouncer Обязательно Хост базы данных
17 PG_PORT 5432 Обязательно Порт базы данных
18 PG_DB Обязательно Имя базы данных
19 PG_USER Обязательно Пользователь для подключения к базе данных
20 PG_PASSWORD Обязательно Пароль для подключения к базе данных
21 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
22 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
23 HEALTH_EXTRA_ENABLE 1
24 PROMETHEUS_MONITORING_ENABLED 1 Включение URL с Prometheus
25 KAFKA_BROKER kafka: 9092 Адрес Kafka
26 GUNICORN_WORKERS 3 Количество рабочих процессов Gunicorn
  1. Целевой образ: docker.people-hub.ru/ph/tasks:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать переменную GUNICORN_BIND
    • Команда запуска: /app/docker/cmd.sh
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании: python manage.py createsuperuser
  3. Сервисные контейнеры:
    • Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
    • Redis: запускается из образа redis:5.0.7-alpine
  4. Инфраструктурные зависимости:
    • Redis.
    • Postgres: для хранения данных.
    • S3: для хранения медиафайлов из профилей пользователей.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы.
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 400Mi

TERMSOFUSE

Описание функции сервиса: данный сервис запрашивает у пользователей подтверждение их согласия с условиями пользовательского соглашения о предоставлении и обработке персональных данных.

Переменные окружения:

Переменная Пример Необходимость Описание
1 SESSION_COOKIE_NAME session
2 API_BASE_URL api/terms-of-use/ Префикс API сервиса Termsofuse
3 PG_HOST pgbouncer Обязательно Хост базы данных
4 PG_PORT 5432 Обязательно Порт базы данных
5 PG_DB Обязательно Имя базы данных
6 PG_USER Обязательно Пользователь для подключения к базе данных
7 PG_PASSWORD Обязательно Пароль для подключения к базе данных
8 KEYCLOAK_AUDIENCE Обязательно Название аудиенции (keycloak token audience), где находятся пользователи
9 JWT_PUB_KEY Обязательно Публичный ключ для расшифровки токена
  1. Целевой образ: docker.people-hub.ru/ph/termsofuse:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента в файле /app/docker/cmd.sh
    • Команда запуска: /app/docker/cmd.sh
    • Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
    • Инициализация при развертывании: python manage.py createsuperuser
  3. Сервисные контейнеры: отсутствуют.
  4. Инфраструктурные зависимости:
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы
    • $API_BASE_URL/admin/ панель администратора Django.
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 100Mi

TIMELINES

Описание функции сервиса: данный сервис представляет собой естественную среду отображения контента для пользователей в формате информационной ленты на Главной странице и в Профиле пользователей.

Переменные окружения:

Переменная Пример Необходимость Описание
1 GAMIFICATION_API_UR http://gamification-backend/ URL сервиса Gamification
2 NEWS_API_URL http://news-backend/ URL сервиса News
3 CMS_API_URL http://cms-backend/ URL сервиса CMS
4 PROFILE_API_URL http://profile-backend/ URL сервиса Profile
5 FILESTORAGE_API_URL http://filestorage-backend/ URL сервиса Filestorage
6 COMMENTS_API_URL http://comments-backend/ URL сервиса Comments
7 GROUPS_API_URL http://groups-backend/ URL сервиса Groups
8 PG_HOST pgbouncer Обязательно Хост базы данных
9 PG_DB timelines Обязательно Имя базы данных
10 PG_PORT 5432 Обязательно Порт базы данных
11 PG_USER Обязательно Пользователь для подключения к базе данных
12 PG_PASSWORD Обязательно Пароль для подключения к базе данных
13 DEBUG 0 Вкл/выкл режим отладки
14 HEALTH_EXTRA_ENABLE 1
15 JWT_PUB_KEY Обязательно
16 KAFKA_BROKER kafka:9092 Адрес Kafka
17 KAFKA_CONSUMER_GROUP timelines
18 KEYCLOAK_AUDIENCE di-develop-test-stand
19 LOGGING_LEVEL WARNING
20 MAX_OVERFLOW 100
21 MAX_PAGE_SIZE 100 Максимальный размер страницы при пагинации
22 POOL_RECYCLE 3600
23 POOL_SIZE 600
24 POOL_TIMEOUT 100
25 PROFILE_SYNC_ENABLED 1 Включить синхронизацию профилей
26 PROFILE_UPDATE_KAFKA_TOPIC profile Топик Kafka для отслеживания изменений в профилях
27 PROMETHEUS_MONITORING_ENABLED TRUE Включение URL с Prometheus
28 SERVICE_NAME timelines
  1. Целевой образ: docker.people-hub.ru/ph/timelines:TAG
  2. Запуск контейнера:
    • Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента в файле /app/docker/cmd.sh
    • Команда запуска: uvicorn main:app --workers 8 --host 0.0.0.0 --port 8000
    • Инициализация контейнера: для инициализации контейнера запустить миграции из целевого образа командой sh -c /app/scripts/migrate.sh
    • Инициализация при развертывании: отсутствует.
  3. Сервисные контейнеры:
    • Cоnsumer: запускается из целевого образа командой sh -c /app/scripts/kafka_consumer.sh
  4. Инфраструктурные зависимости:
    • Postgres: для хранения данных.
  5. Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
  6. Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
    • $API_BASE_URL/internal/* внутренние ресурсы
    • $API_BASE_URL/admin/ панель администратора Django
  7. Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
  8. Ресурсы:
    • requests:
      • cpu: 50m
      • memory: 100Mi
  9. Периодические задачи: настроить в сервисе периодическую задачу (запуск команды 1 раз в сутки в ночное время) sh -c /app/scripts/remove_outdated_records.sh

Техническое описание сервисов FRONTEND

Описание функции сервиса: данный сервис отвечает за внешний вид портала, отображение интерактивных элементов и контента.

Переменные окружения :

Переменная Пример Необходимость Описание
ANALYTIC_LOGGING_ENABLED 0
  1. Целевой образ: docker.people-hub.ru/ph/frontend:TAG Для работы необходимо проксирование запросов с основного домена по пути /
  2. Блокировки: отсутствуют.
  3. Проверки: health-check: Get запросы по адресу /internal/healthcheck
  4. Ресурсы:
    • requests:
      • cpu: 100m
      • memory: 100Mi