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

Run locally

Запуск Auth Center локально: БД, Redis, зависимости, сервер.

Предусловия

Инструмент Версия
Dart SDK 3.8+
Serverpod CLI dart pub global activate serverpod_cli 3.4.8
Docker любая актуальная

Шаг 1: PostgreSQL

docker run -d --name pg -p 5432:5432 \
  -e POSTGRES_USER=user-app-dev \
  -e POSTGRES_PASSWORD=Asd123321 \
  -e POSTGRES_DB=onewallet_dev \
  postgres:15

Параметры из config/development.yaml:

Параметр Значение
host localhost (замените 10.10.10.19 в development.yaml если нужно)
port 5432
name onewallet_dev
user user-app-dev
searchPaths public

Шаг 2: Redis

Redis используется опционально (redis.enabled: false по умолчанию в development.yaml). Если нужен для уведомлений или будущих фич:

docker run -d --name redis -p 6379:6379 redis:7

Пароль Redis из config/passwords.yaml: Asd123321.

Шаг 3: passwords.yaml

Скопируйте или создайте onewallet_base_server/config/passwords.yaml со следующими ключами (минимальный набор для локального запуска):

development:
  database: 'Asd123321'
  redis: 'Asd123321'
  pmBaseUrl: 'http://localhost:3000'
  pmHmacSecret: 'dev-secret-auth-center-change-in-prod'
  invoiceQrSecret: 'dev-invoice-qr-secret-change-in-prod'
  kycServiceSecret: 'dev-kyc-secret-change-in-prod'
  s3Endpoint: 'https://s3.1-wallet.app/'
  # SMTP — можно оставить пустым для локальной разработки
  smtpHost: 'localhost'
  smtpPort: '1025'

Полный список ключей смотрите в config/passwords.ci.yaml как reference.

Шаг 4: Запуск

cd onewallet_base_server

# Установить зависимости
dart pub get

# Регенерировать клиентский код (нужно после изменений моделей/эндпоинтов)
serverpod generate

# Применить миграции БД (первый раз и после каждой новой миграции)
dart bin/main.dart --apply-migrations

# Запустить сервер
dart bin/main.dart

Проверка

После успешного старта сервер слушает на трёх портах:

Порт Назначение
8080 API (Serverpod RPC)
8081 Insights (метрики, дашборд)
8082 Web server

Проверить:

# API отвечает
curl http://localhost:8080/

# Insights дашборд
open http://localhost:8081/

# Логи сервера — в консоли, формат text (development.yaml: consoleLogFormat: text)

Типичные ошибки при старте: - Connection refused на порту 5432 — PostgreSQL не запущен - password authentication failed — неверный пароль в passwords.yaml - relation "..." does not exist — не применены миграции (--apply-migrations) - pmBaseUrl ошибки — Payment Manager не запущен (не блокирует старт, только PM-вызовы)