464 lines
16 KiB
YAML
464 lines
16 KiB
YAML
---
|
||
# Основные настройки приложения HRBox
|
||
app:
|
||
# Docker образ приложения HRBox
|
||
# Получите доступ к реестру у сотрудников HRBox
|
||
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox:latest"
|
||
|
||
# Настройки домена
|
||
# defaultTenantHostname - основной домен вашей HRBox инсталляции
|
||
# Например: hrbox.company.com
|
||
# Должен совпадать с ingress.host
|
||
defaultTenantHostname: "hrbox.example.com"
|
||
|
||
# Уникальное имя инстанса для идентификации
|
||
instanceName: "onprem"
|
||
|
||
# Включение/отключение frontend2.
|
||
# "true" - включено
|
||
# "false" или пустое значение - отключено
|
||
front2: "true"
|
||
|
||
# Домен для авторизации
|
||
# Оставьте пустым
|
||
authHost: ""
|
||
|
||
# Режим отладки
|
||
# "0" - production режим (рекомендуется)
|
||
# "1" - debug режим (только для разработки)
|
||
debug: "0"
|
||
|
||
# Количество реплик для каждого сервиса
|
||
# Рекомендации по масштабированию:
|
||
# - web: 2-10 реплик в зависимости от количества пользователей
|
||
# - worker: 2-5 реплик для обработки фоновых задач
|
||
# - chatbox: 2-6 реплик для real-time функционала (WebSocket)
|
||
# - geonames: 1-2 реплики (сервис не требователен к ресурсам)
|
||
replicas:
|
||
web: 2
|
||
worker: 2
|
||
chatbox: 2
|
||
geonames: 1
|
||
|
||
# Показ собственной политики конфиденциальности и terms of use
|
||
# privacy-url и terms-url передаются в приложение только если enabled установлена в true
|
||
# если enabled = true, но privacy-url и terms-url закомментированы,
|
||
# то будут использоваться ссылки https://hrbox.io/policy и https://hrbox.io/terms
|
||
custom_policy:
|
||
enabled: false
|
||
# privacy-url: "https://example.com/privacy"
|
||
# terms-url: "https://example.com/terms"
|
||
|
||
# PostgreSQL база данных
|
||
# Требования: PostgreSQL 14+
|
||
# Рекомендуется настроить репликацию для отказоустойчивости
|
||
postgres:
|
||
host: "postgresql"
|
||
port: "5432"
|
||
database: "hrbox"
|
||
user: "hrbox"
|
||
# Пароль для подключения к БД
|
||
password: ""
|
||
# Использование Citus для шардирования
|
||
# "true" - если используете Citus расширение
|
||
# "false" - для обычного PostgreSQL
|
||
citus: "false"
|
||
|
||
# Redis для кеша и сессий
|
||
# Потеря данных не критична - хранятся только сессии и кеш
|
||
# При перезапуске Redis все пользователи будут разлогинены
|
||
redis:
|
||
host: "hrbox-dragonfly"
|
||
port: "6379"
|
||
|
||
# NATS JetStream - брокер сообщений
|
||
# Для отказоустойчивости используйте кластер из 3+ нод
|
||
# Формат для кластера: nats://node1:4222,nats://node2:4222,nats://node3:4222
|
||
nats:
|
||
url: "nats://hrbox-nats:4222"
|
||
|
||
# S3-совместимое хранилище для файлов
|
||
# Поддерживаются: AWS S3, MinIO, Yandex Object Storage, VK Cloud Storage
|
||
s3:
|
||
# URL endpoint вашего S3
|
||
# Примеры:
|
||
# - MinIO: http://minio:9000
|
||
# - Yandex: https://storage.yandexcloud.net
|
||
# - VK Cloud: https://hb.vkcloud-storage.ru
|
||
endpoint: "https://storage.example.com"
|
||
|
||
# Название bucket для хранения файлов
|
||
bucket: "hrbox"
|
||
|
||
# Access Key для доступа к S3
|
||
key: ""
|
||
|
||
# Secret Key для доступа к S3
|
||
secret: ""
|
||
|
||
# Регион S3 (обычно us-east-1 для MinIO)
|
||
region: "us-east-1"
|
||
|
||
# Версия API (оставьте "latest")
|
||
version: "latest"
|
||
|
||
# Использовать path-style URLs
|
||
# "true" для MinIO и self-hosted S3
|
||
# "false" для AWS S3
|
||
pathStyle: "true"
|
||
|
||
# Включить multipart загрузку для больших файлов
|
||
multipart: "true"
|
||
|
||
# Префикс для всех объектов (опционально)
|
||
prefix: ""
|
||
|
||
# SMTP настройки для отправки email
|
||
smtp:
|
||
# SMTP сервер
|
||
host: "smtp.example.com"
|
||
|
||
# Порт SMTP
|
||
# 25 - без шифрования
|
||
# 587 - STARTTLS
|
||
# 465 - SSL/TLS
|
||
port: "587"
|
||
|
||
# Логин для SMTP авторизации
|
||
user: "noreply@example.com"
|
||
|
||
# Пароль для SMTP
|
||
password: ""
|
||
|
||
# Email отправителя
|
||
from: "noreply@example.com"
|
||
|
||
# Домен отправителя для HELO/EHLO
|
||
fromHost: "example.com"
|
||
|
||
# Тип шифрования: "", "tls", "ssl"
|
||
securityType: "tls"
|
||
|
||
# Разрешить самоподписанные сертификаты
|
||
sslAllowSelfSigned: "true"
|
||
|
||
# Проверять SSL сертификат сервера
|
||
sslVerifyPeer: "false"
|
||
|
||
# Sentry для мониторинга ошибок
|
||
sentry:
|
||
# DSN для отправки ошибок
|
||
dsn: ""
|
||
|
||
# Окружение для группировки ошибок
|
||
environment: "production"
|
||
|
||
# Настройки сервиса геолокации
|
||
geonames:
|
||
# URL внутреннего сервиса geonames
|
||
# Не меняйте, если используете стандартный деплой
|
||
url: "http://hrbox-geonames:8181"
|
||
|
||
# Goworker
|
||
goworker:
|
||
# URL внутреннего сервиса goworker
|
||
url: "http://hrbox-goworker:8686"
|
||
# Docker образ goworker
|
||
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-goworker:2.7"
|
||
# Количество реплик
|
||
replicas: 2
|
||
# Минимальный интервал между push
|
||
pushMinInterval: "5m"
|
||
# Sentry DSN для мониторинга ошибок
|
||
sentryDsn: ""
|
||
|
||
# Kedoca - сервис электронной подписи (ГОСТ, OpenSSL)
|
||
kedoca:
|
||
# URL внутреннего сервиса kedoca
|
||
url: "http://hrbox-kedoca:8558"
|
||
# Docker образ kedoca
|
||
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-kedoca:0.8"
|
||
# Количество реплик
|
||
replicas: 1
|
||
# Пароль для корневого сертификата
|
||
rootCaPass: "hrbox"
|
||
# Криптографический движок: "gost" или "openssl"
|
||
engine: "gost"
|
||
# Алгоритм: "gost2012_256" для GОСТ или "rsa" для OpenSSL
|
||
algorithm: "gost2012_256"
|
||
# Параметры ключа: "paramset:A" для ГОСТ или "rsa_keygen_bits:2048" для RSA
|
||
pkeyopt: "paramset:A"
|
||
# Имя Kubernetes Secret с сертификатами
|
||
# Если указано, будет смонтирован в /ca-cert
|
||
secretName: ""
|
||
|
||
# File Processor - обработка файлов (конвертация, ресайз изображений)
|
||
file_processor:
|
||
# Docker образ file processor
|
||
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-file-processor:1.0"
|
||
# Количество реплик
|
||
replicas: 1
|
||
|
||
# Chatbox - WebSocket сервер для real-time функционала
|
||
chatbox:
|
||
# Docker образ chatbox
|
||
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox-chatbox:3.0"
|
||
# Wrapping key - часть ключа для ассиметричного шифрования чатов
|
||
# Сгенерируйте произвольную строку из 32 символов
|
||
# openssl rand -hex 16
|
||
wrappingKey: ""
|
||
# Sentry DSN для мониторинга ошибок
|
||
sentryDsn: ""
|
||
|
||
# Настройки воркеров Launchpad
|
||
# Формат: "название-топика:количество-воркеров"
|
||
launchpad:
|
||
topics: "launcher:1,file-processor:1,image-processor:1,send-mail:1,send-im:1,send-bell:1,send-push:1,backup:1,cleaning:1"
|
||
|
||
# Интеграция с Yandex (опционально)
|
||
yandex:
|
||
# Client ID для Yandex OAuth
|
||
clientId: ""
|
||
# Client Secret для Yandex OAuth
|
||
clientPassword: ""
|
||
|
||
# Интеграция со Slack (опционально)
|
||
slack:
|
||
# Slack App Client ID
|
||
clientId: ""
|
||
# Slack App Client Secret
|
||
clientSecret: ""
|
||
# Slack Verification Token
|
||
verificationToken: ""
|
||
|
||
# HRBox Hub
|
||
hub:
|
||
# URL Hub сервиса
|
||
url: "https://hub.hrbox.io"
|
||
# Токен для авторизации в Hub, получите от сотрудника HrBox
|
||
token: ""
|
||
|
||
# AI интеграции (опционально)
|
||
ai:
|
||
# Yandex Cloud AI
|
||
yandex:
|
||
# ID каталога в Yandex Cloud
|
||
folderId: ""
|
||
# API ключ для Yandex Cloud
|
||
apiKey: ""
|
||
|
||
# Настройки безопасности
|
||
security:
|
||
# Разрешить полный доступ к iframe
|
||
# "true" - разрешает iframe полный доступ к родительскому окну
|
||
# "false" - ограничивает доступ iframe (рекомендуется для production)
|
||
iframeFullAccess: "false"
|
||
|
||
# Секретные ключи приложения
|
||
secrets:
|
||
# Ключ валидации cookie (32 символа)
|
||
# Используется для защиты от XSS атак
|
||
# Генерация: openssl rand -hex 16
|
||
cookieValidationKey: ""
|
||
|
||
# Ключ шифрования данных (64 символа)
|
||
# ВАЖНО: Не теряйте этот ключ! Без него невозможно расшифровать данные
|
||
# Используется для шифрования паролей интеграций (S3, ADFS и др.)
|
||
# Генерация: openssl rand -base64 48
|
||
encryptionKey: ""
|
||
|
||
# Секрет для внутренней коммуникации микросервисов (64 символа)
|
||
# Используется для защиты внутренних API вызовов между сервисами
|
||
# Генерация: openssl rand -base64 48
|
||
servicesInternalSecret: ""
|
||
|
||
# Настройки Ingress
|
||
ingress:
|
||
# Включить Ingress
|
||
enabled: true
|
||
|
||
# Класс Ingress контроллера
|
||
# Обычно: "nginx" или "traefik"
|
||
className: "nginx"
|
||
|
||
# Хост для доступа к приложению
|
||
# Используйте wildcard для мультитенантности: *.hrbox.company.com
|
||
# Или конкретный домен: hrbox.company.com
|
||
host: "hrbox.example.com"
|
||
|
||
# Настройки TLS/HTTPS
|
||
tls:
|
||
# Включить HTTPS
|
||
# ВАЖНО: В production всегда используйте HTTPS
|
||
enabled: true
|
||
|
||
# Имя Kubernetes Secret с SSL сертификатом
|
||
# Создайте через: kubectl create secret tls hrbox-tls --cert=cert.pem --key=key.pem
|
||
# Или используйте cert-manager для автоматического получения сертификатов
|
||
secretName: "hrbox-tls"
|
||
|
||
cluster:
|
||
domain: "cluster.local" # Укажите домен текущего k8s-кластера, если используется нестандартный
|
||
|
||
# Настройки ресурсов для контейнеров
|
||
# Указаны рекомендуемые значения для production
|
||
resources:
|
||
# Web-сервер (PHP-FPM + Nginx)
|
||
# Обрабатывает HTTP запросы, API, веб-интерфейс
|
||
app:
|
||
requests:
|
||
cpu: "0.5" # Минимум 0.5 CPU
|
||
memory: "512Mi" # Минимум 512MB RAM
|
||
ephemeralStorage: "64Mi"
|
||
limits:
|
||
cpu: "2" # Максимум 2 CPU
|
||
memory: "2Gi" # Максимум 2GB RAM
|
||
ephemeralStorage: "256Mi"
|
||
|
||
# Nginx (в составе web pod)
|
||
# Проксирует запросы к PHP-FPM
|
||
nginx:
|
||
requests:
|
||
cpu: "0.1"
|
||
memory: "64Mi"
|
||
ephemeralStorage: "64Mi"
|
||
limits:
|
||
cpu: "0.5"
|
||
memory: "256Mi"
|
||
ephemeralStorage: "64Mi"
|
||
|
||
# Worker - обработчик фоновых задач
|
||
# Выполняет: конвертацию файлов, отправку email, генерацию отчетов
|
||
worker:
|
||
requests:
|
||
cpu: "0.5"
|
||
memory: "512Mi"
|
||
ephemeralStorage: "1Gi" # Больше места для обработки файлов
|
||
limits:
|
||
cpu: "2"
|
||
memory: "2Gi"
|
||
ephemeralStorage: "2Gi"
|
||
|
||
# Geonames - сервис геолокации
|
||
# Определяет города, страны, часовые пояса
|
||
geonames:
|
||
requests:
|
||
cpu: "0.1"
|
||
memory: "196Mi"
|
||
ephemeralStorage: "64Mi"
|
||
limits:
|
||
cpu: "0.5"
|
||
memory: "256Mi"
|
||
ephemeralStorage: "64Mi"
|
||
|
||
# Conductor - планировщик задач
|
||
# ВАЖНО: Всегда должен быть в единственном экземпляре!
|
||
# Запускает задачи по расписанию (cron)
|
||
conductor:
|
||
requests:
|
||
cpu: "0.1"
|
||
memory: "64Mi"
|
||
ephemeralStorage: "64Mi"
|
||
limits:
|
||
cpu: "0.5"
|
||
memory: "256Mi"
|
||
ephemeralStorage: "64Mi"
|
||
|
||
# Jobs - одноразовые задачи (миграции, инициализация)
|
||
jobs:
|
||
requests:
|
||
cpu: "0.5"
|
||
memory: "512Mi"
|
||
ephemeralStorage: "64Mi"
|
||
limits:
|
||
cpu: "2"
|
||
memory: "2Gi"
|
||
ephemeralStorage: "256Mi"
|
||
|
||
# Goworker - интеграции с мессенджерами
|
||
goworker:
|
||
requests:
|
||
cpu: "0.1"
|
||
memory: "196Mi"
|
||
ephemeralStorage: "64Mi"
|
||
limits:
|
||
cpu: "0.3"
|
||
memory: "256Mi"
|
||
ephemeralStorage: "64Mi"
|
||
|
||
# Kedoca - электронная подпись
|
||
kedoca:
|
||
requests:
|
||
cpu: "0.1"
|
||
memory: "196Mi"
|
||
ephemeralStorage: "64Mi"
|
||
limits:
|
||
cpu: "0.5"
|
||
memory: "256Mi"
|
||
ephemeralStorage: "64Mi"
|
||
|
||
# Chatbox - WebSocket сервер
|
||
chatbox:
|
||
requests:
|
||
cpu: "0.3"
|
||
memory: "96Mi"
|
||
ephemeralStorage: "128Mi"
|
||
limits:
|
||
cpu: "0.3"
|
||
memory: "192Mi"
|
||
ephemeralStorage: "256Mi"
|
||
|
||
# Настройки NATS JetStream
|
||
nats:
|
||
# Включить NATS (обязательно для работы HRBox)
|
||
enabled: true
|
||
|
||
# Docker образ NATS
|
||
image: "nats:2.10"
|
||
|
||
# Количество реплик NATS
|
||
# Для отказоустойчивости используйте 3 или 5
|
||
replicas: 3
|
||
|
||
# JetStream - персистентные очереди сообщений
|
||
jetstream:
|
||
enabled: true
|
||
|
||
# Хранилище в памяти (для небольших инсталляций)
|
||
memStorage:
|
||
enabled: true
|
||
size: "2Gi"
|
||
|
||
# Хранилище на диске (для production)
|
||
fileStorage:
|
||
enabled: false
|
||
size: "4Gi"
|
||
storageDirectory: "/data"
|
||
# StorageClass для PVC
|
||
# Используйте SSD для лучшей производительности
|
||
storageClassName: "fast-ssd"
|
||
|
||
# Настройки кластера NATS
|
||
cluster:
|
||
# Включить кластеризацию для отказоустойчивости
|
||
enabled: true
|
||
# Должно совпадать с replicas
|
||
replicas: 3
|
||
|
||
# Prometheus exporter (для мониторинга)
|
||
exporter:
|
||
enabled: false
|
||
|
||
# Config reloader - автоматическая перезагрузка конфигурации
|
||
reloader:
|
||
enabled: true
|
||
|
||
# Время ожидания graceful shutdown в секундах
|
||
terminationGracePeriodSeconds: 120
|
||
|
||
dragonfly:
|
||
# Включает или отключает развёртывание Dragonfly (Redis).
|
||
# Установите в true, чтобы активировать, или в false, чтобы отключить.
|
||
enabled: true
|
||
# По умолчанию параметр не используется. По необходимости, раскомментируйте и установите требуемое значение maxmemory
|
||
# maxmemory: "256M" |