Техническое описание сервисов¶
Техническое описание сервисов 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 |
- Целевой образ: docker.people-hub.ru/ph/dictionaries:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8484. Для изменения скорректируйте переменную GUNICORN_BIND
- Команда запуска: /app/docker/cmd.sh
- Инициализация при развертывании: заполняется через сервис Discovery. Дополнительных команд вызывать не требуется.
- Сервисные контейнеры:
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Redis.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 50m
- memory: 150Mi
- requests:
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 для сервиса |
- Целевой образ: docker.people-hub.ru/ph/discovery:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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/
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery --app worker.celery worker --loglevel=info
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Redis.
- Postgres: для хранения данных.
- S3: для хранения медиафайлов из профилей пользователей.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- 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. Отключает логгирование запроса при загрузке файлов в файловое хранилище |
- Целевой образ: docker.people-hub.ru/ph/filestorage:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 9090. Для изменения скорректируйте переменную GUNICORN_BIND
- Команда запуска: /app/docker/cmd.sh
- Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
- Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Kafka.
- Redis.
- Keycloak: для аутентификации, создания пользователей.
- Postgres: для хранения данных.
- S3: для хранения медиафайлов из профилей пользователей.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 100m
- memory: 600Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/notifications:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8282. Для изменения скорректируйте переменную GUNICORN_BIND
- Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
- Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры:
- Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
- Инфраструктурные зависимости:
- Kafka.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 50m
- memory: 100Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/pages:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Сервисные контейнеры: отсутсвуют.
- Инфраструктурные зависимости:
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 200m
- memory: 1024Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/profile:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8080. Для изменения скорректировать переменную GUNICORN_BIND
- Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
- Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
- Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Kafka.
- Redis.
- Keycloak: для аутентификации, создания пользователей.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы
- $API_BASE_URL/admin/ панель администратора Django
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 100m
- memory: 512Mi
- requests:
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 токена |
- Целевой образ: docker.people-hub.ru/ph/roles:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8000 Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента.
- Команда запуска: uvicorn main:app --workers 8 --host 0.0.0.0 --port 8000
- Инициализация контейнера: отсутствует.
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры: отсутствуют.
- Инфраструктурные зависимости:
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Проверка tcp порта 8000
- Ресурсы:
- requests:
- cpu: 50m
- memory: 650Mi
- requests:
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 | Обязательно | Публичный ключ для расшифровки токена |
- Целевой образ: docker.people-hub.ru/ph/settings:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента в файле /app/docker/cmd.sh
- Команда запуска: /app/docker/cmd.sh
- Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c alembic upgrade head
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры: отсутствуют.
- Инфраструктурные зависимости:
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Проверка tcp порта 8000
- Ресурсы:
- requests:
- cpu: 50m
- memory: 512Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/websockets-notifications:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8000. Для изменения скорректировать переменную SERVER_PORT
- Команда запуска: python server.py
- Инициализация контейнера: отсутствует.
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры: отсутствуют.
- Инфраструктурные зависимости:
- Kafka.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 50m
- memory: 150Mi
- requests:
Техническое описание сервисов 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 токена |
- Целевой образ: docker.people-hub.ru/ph/asyncblogs:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента
- Команда запуска: uvicorn main:app --host 0.0.0.0 --port 8000 --workers 8
- Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c alembic upgrade head
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры:
- Cоnsumer: запускается из целевого образа командой sh -c python -m kafka_consumer
- Инфраструктурные зависимости:
- Kafka.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL, по умолчанию /api/async-blogs
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Проверка tcp порта 8000
- Ресурсы:
- requests:
- cpu: 100m
- memory: 1024Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/blogs:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 9090. Для изменения скорректировать переменную GUNICORN_BIND
- Команда запуска: /app/docker/cmd.sh
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application.celery_app beat -l info
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Kafka.
- Redis.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL, по умолчанию "/blogs".
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 150m
- memory: 700Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/calendar:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Redis.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL, по умолчанию /api/calendar
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 50m
- memory: 300Mi
- requests:
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 токена |
- Целевой образ: docker.people-hub.ru/ph/cms:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application worker -l info
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Kafka.
- Redis.
- Postgres: для хранения данных.
- S3: для хранения медиафайлов из профилей пользователей.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 100m
- memory: 800Mi
- requests:
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 токена |
- Целевой образ: docker.people-hub.ru/ph/comments:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Сервисные контейнеры: отсутствуют.
- Инфраструктурные зависимости:
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 50m
- memory: 800Mi
- requests:
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. Включает синхронизацию мероприятия и события в календаре |
- Целевой образ: docker.people-hub.ru/ph/events:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application worker -l info
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Redis.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 100m
- memory: 400Mi
- requests:
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 | Обязательно | Включить создание пользователя при синхронизации |
- Целевой образ: docker.people-hub.ru/ph/gamification:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
- Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Kafka.
- Redis.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 100m
- memory: 512Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/groups:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
- Cоnsumer: запускается из целевого образа командой sh -c python manage.py kafka_consumer
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Kafka.
- Redis.
- Keycloak: для аутентификации, создания пользователей.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 100m
- memory: 512Mi
- requests:
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 | Обязательно | Включить синхронизацию профилей |
- Целевой образ: docker.people-hub.ru/ph/meetings:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8000. Для изменения скорректировать переменную GUNICORN_BIND
- Команда запуска: gunicorn --pid /tmp/gunicorn.pid application.wsgi:application --reload --reload-extra-file /tmp/touch.reload
- Инициализация при развертывании: python manage.py createsuperuser
- Сервисные контейнеры: отсутствуют.
- Инфраструктурные зависимости:
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 100m
- memory: 200Mi
- requests:
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 токена |
- Целевой образ: docker.people-hub.ru/ph/news:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента
- Команда запуска: uvicorn main:app --workers 8 --host 0.0.0.0 --port 8000
- Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c alembic upgrade head
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application worker -l info
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Redis.
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 100m
- memory: 600Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/polls:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Сервисные контейнеры:
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Redis.
- Postgres: для хранения данных.
- Переменные: используются общие переменные.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 50m
- memory: 150Mi
- requests:
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" |
- Целевой образ: docker.people-hub.ru/ph/reports:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Сервисные контейнеры:
- Redis: запускается из образа redis:5.0.7-alpine
- Cоnsumer: Запускается из целевого образа командой sh -c python manage.py kafka_consumer
- Инфраструктурные зависимости:
- Kafka.
- Redis.
- Postgres: для хранения данных.
- ClickHouse.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы
- $API_BASE_URL/admin/ панель администратора Django
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 150m
- memory: 300Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/tasks:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8000. Для изменения скорректировать переменную GUNICORN_BIND
- Команда запуска: /app/docker/cmd.sh
- Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
- Инициализация при развертывании: python manage.py createsuperuser
- Сервисные контейнеры:
- Celery: запускается из целевого образа командой sh -c celery -A application beat -l info
- Redis: запускается из образа redis:5.0.7-alpine
- Инфраструктурные зависимости:
- Redis.
- Postgres: для хранения данных.
- S3: для хранения медиафайлов из профилей пользователей.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы.
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 50m
- memory: 400Mi
- requests:
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 | Обязательно | Публичный ключ для расшифровки токена |
- Целевой образ: docker.people-hub.ru/ph/termsofuse:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 8000. Для изменения скорректировать аргумент команды запуска --port 8000 или переменную SERVER_PORT, если нет аргумента в файле /app/docker/cmd.sh
- Команда запуска: /app/docker/cmd.sh
- Инициализация контейнера: для инициализации необходимо запустить миграции из целевого образа командой sh -c python manage.py migrate
- Инициализация при развертывании: python manage.py createsuperuser
- Сервисные контейнеры: отсутствуют.
- Инфраструктурные зависимости:
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы
- $API_BASE_URL/admin/ панель администратора Django.
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 50m
- memory: 100Mi
- requests:
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 |
- Целевой образ: docker.people-hub.ru/ph/timelines:TAG
- Запуск контейнера:
- Порт контейнера: по умолчанию 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
- Инициализация при развертывании: отсутствует.
- Сервисные контейнеры:
- Cоnsumer: запускается из целевого образа командой sh -c /app/scripts/kafka_consumer.sh
- Инфраструктурные зависимости:
- Postgres: для хранения данных.
- Проксирование: для работы необходимо проксирование запросов с основного домена по префиксу пути из переменной API_BASE_URL.
- Блокировки: для безопасности необходимо закрыть внешний доступ к внутренним API через прокси сервер:
- $API_BASE_URL/internal/* внутренние ресурсы
- $API_BASE_URL/admin/ панель администратора Django
- Проверки: health-check: Get запросы по адресу $API_BASE_URL/internal/healthcheck
- Ресурсы:
- requests:
- cpu: 50m
- memory: 100Mi
- requests:
- Периодические задачи: настроить в сервисе периодическую задачу (запуск команды 1 раз в сутки в ночное время) sh -c /app/scripts/remove_outdated_records.sh
Техническое описание сервисов FRONTEND¶
Описание функции сервиса: данный сервис отвечает за внешний вид портала, отображение интерактивных элементов и контента.
Переменные окружения :
№ | Переменная | Пример | Необходимость | Описание |
---|---|---|---|---|
№ | ANALYTIC_LOGGING_ENABLED | 0 |
- Целевой образ: docker.people-hub.ru/ph/frontend:TAG Для работы необходимо проксирование запросов с основного домена по пути /
- Блокировки: отсутствуют.
- Проверки: health-check: Get запросы по адресу /internal/healthcheck
- Ресурсы:
- requests:
- cpu:
100m
- memory:
100Mi
- cpu:
- requests: