init
This commit is contained in:
@@ -0,0 +1,371 @@
|
||||
---
|
||||
# Основные настройки приложения HRBox
|
||||
app:
|
||||
# Docker образ приложения HRBox
|
||||
# Получите доступ к реестру у сотрудников HRBox
|
||||
image: "cr.yandex/crphnph9c2s776j32sjd/hrbox:latest"
|
||||
|
||||
# Настройки домена
|
||||
# defaultTenantHostname - основной домен вашей HRBox инсталляции
|
||||
# Например: hrbox.company.com
|
||||
# Должен совпадать с ingress.host
|
||||
defaultTenantHostname: "hrbox.example.com"
|
||||
|
||||
# Уникальное имя инстанса для идентификации
|
||||
instanceName: "onprem"
|
||||
|
||||
# Домен для единой авторизации (SSO)
|
||||
# Оставьте пустым, если не используете единую точку входа
|
||||
authHost: ""
|
||||
|
||||
# Режим отладки
|
||||
# "0" - production режим (рекомендуется)
|
||||
# "1" - debug режим (только для разработки)
|
||||
debug: "0"
|
||||
|
||||
# Количество реплик для каждого сервиса
|
||||
# Рекомендации по масштабированию:
|
||||
# - web: 2-10 реплик в зависимости от количества пользователей
|
||||
# - worker: 2-5 реплик для обработки фоновых задач
|
||||
# - websocket: 2-6 реплик для real-time функционала
|
||||
# - geonames: 1-2 реплики (сервис не требователен к ресурсам)
|
||||
replicas:
|
||||
web: 2
|
||||
worker: 2
|
||||
websocket: 2
|
||||
geonames: 1
|
||||
|
||||
# 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"
|
||||
|
||||
# Настройки воркеров 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: ""
|
||||
|
||||
# OpenAI интеграция
|
||||
openai:
|
||||
# API ключ OpenAI
|
||||
apiKey: ""
|
||||
# Прокси ключ (если используете прокси)
|
||||
proxyKey: ""
|
||||
# Base URL для API (можно указать прокси)
|
||||
baseUri: ""
|
||||
|
||||
# Секретные ключи приложения
|
||||
secrets:
|
||||
# Ключ валидации cookie (32 символа)
|
||||
# Используется для защиты от XSS атак
|
||||
# Генерация: openssl rand -hex 16
|
||||
cookieValidationKey: ""
|
||||
|
||||
# Ключ шифрования данных (64 символа)
|
||||
# ВАЖНО: Не теряйте этот ключ! Без него невозможно расшифровать данные
|
||||
# Используется для шифрования паролей интеграций (S3, ADFS и др.)
|
||||
# Генерация: openssl rand -base64 48
|
||||
encryptionKey: ""
|
||||
|
||||
# Настройки 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"
|
||||
|
||||
# Настройки ресурсов для контейнеров
|
||||
# Указаны рекомендуемые значения для 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"
|
||||
|
||||
# WebSocket сервер
|
||||
# Обеспечивает real-time функционал, например, уведомления
|
||||
websocket:
|
||||
requests:
|
||||
cpu: "0.1"
|
||||
memory: "128Mi"
|
||||
ephemeralStorage: "64Mi"
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: "512Mi"
|
||||
ephemeralStorage: "64Mi"
|
||||
|
||||
# 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"
|
||||
|
||||
# Настройки NATS JetStream
|
||||
nats:
|
||||
# Включить NATS (обязательно для работы HRBox)
|
||||
enabled: true
|
||||
|
||||
# Docker образ NATS
|
||||
image: "nats:2.8"
|
||||
|
||||
# Количество реплик 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
|
||||
Reference in New Issue
Block a user