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) |