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

Env vars

Все переменные конфигурации: passwords.yaml секреты и .env переменные.

passwords.yaml

Доступ в коде: Serverpod.instance.getPassword('key') или session.passwords['key']. Production-override: SERVERPOD_PASSWORD_<key>=value (высший приоритет).

Ключ Обязателен Описание
piiEncryptionKey да AES-256-GCM ключ для шифрования PII (телефон, национальный ID)
piiPhoneHashPepper да HMAC-SHA256 pepper для хэширования телефона
piiNatIdHashPepper да HMAC-SHA256 pepper для хэширования nationalId
database да Пароль PostgreSQL
redis да Пароль основного Redis
serviceSecret да Внутренний сервисный секрет Serverpod
jwtHmacSha512PrivateKey да Ключ для подписи JWT access-токенов (HMAC-SHA512)
jwtRefreshTokenHashPepper да Pepper для хэша refresh-токенов
emailSecretHashPepper да Pepper для хэша email-верификационных кодов
notificationsRedisUrl нет redis://:password@host:port/db — отдельная БД Redis для stream.notifications.jobs; без него push отключены
smtpHost да Хост SMTP (например, smtp.gmail.com)
smtpPort да Порт SMTP (например, 587)
smtpUser да Логин SMTP
smtpPassword да Пароль SMTP
smtpFromEmail да Адрес отправителя писем
smtpFromName да Имя отправителя писем
s3Endpoint да URL Garage S3 (например, https://s3.1-wallet.app/)
s3Region да Регион S3
s3Bucket да Бакет для KYC-документов
s3AccessKey да Access key S3
s3SecretKey да Secret key S3
pmBaseUrl да Базовый URL Payment Manager (например, http://localhost:3000)
pmServiceId да Идентификатор сервиса для PM HMAC (auth-center)
pmHmacSecret да HMAC-секрет для запросов Auth Center → PM; StateError при отсутствии
pmMerchantServiceId да Идентификатор для merchant HMAC (auth-center-merchant)
pmMerchantHmacSecret да HMAC-секрет для NFC pull-charge; StateError при отсутствии
nfcGlobalEnabled нет 'true'/'false' — глобальный kill-switch NFC; отсутствие = включено
nfcWritePasswordKey да AES-ключ для шифрования writePassword NFC-меток (Base64)
invoiceQrSecret да HMAC-секрет подписи QR-кодов инвойсов; StateError при отсутствии
kycServiceUrl да URL KYC OCR сервиса (например, http://10.10.10.19:3003)
kycServiceSecret да Секрет для авторизации запросов к KYC service
jwtLaunchKeyId да kid для RS256 launch-JWT (SSO мини-приложений)
jwtLaunchJwksJson да JWKS JSON с публичным ключом для /jwks.json endpoint
jwtLaunchRsaPrivateKeyPem да RSA private key PEM для подписи launch-JWT

Platform.environment (.env)

Загружаются в RegistrationService.initialize() и future calls при каждом запуске. Все имеют дефолтные значения — сервер запустится и без них.

Переменная Default Описание
REGISTRATION_OTP_TTL_MINUTES 10 Время жизни OTP кода регистрации (минуты)
REGISTRATION_OTP_MAX_ATTEMPTS 5 Максимум попыток ввода OTP
REGISTRATION_OTP_RATE_LIMIT_PER_10MIN 3 Максимум OTP-запросов за 10 минут
REGISTRATION_TEMP_USER_TTL_DAYS 7 Срок хранения незавершённых регистраций (дни)
REGISTRATION_HARD_DELETE_ARCHIVED_AFTER_DAYS 30 Через сколько дней после архивации удалять пользователя
REGISTRATION_REMINDER_DAYS_BEFORE_EXPIRY 2 За сколько дней до истечения слать напоминание
REGISTRATION_INCOMPLETE_TTL_HOURS 24 Через сколько часов удалять незавершённые регистрации (без user_profile)