---
title: "Базовая настройка"
description: "Быстрый запуск экземпляра Ring Platform с PostgreSQL, Auth.js v5 и минимальной конфигурацией — для основателей и разработчиков"
locale: "ru"
---
# Базовая настройка

Это руководство описывает минимальную локальную настройку Ring Platform. Это самый быстрый способ увидеть работающий экземпляр после клонирования репозитория.

  Node.js 20+, PostgreSQL 16 и Git. Полный перечень требований описан в [Руководстве по установке](/docs/en/getting-started/installation.md).

### For founders

## Что вы получаете

Работающий экземпляр Ring Platform с:

- **PostgreSQL** как база данных приложения (режим `k8s-postgres-fcm`)
- **Auth.js v5** аутентификация с Google OAuth входом
- **Управление сущностями** — создание и управление организациями
- **Маркетплейс возможностей** — публикация и поиск объявлений
- **Уведомления в реальном времени** через WebSocket туннель

Платформа работает на `http://localhost:3000`. Для базовой локальной работы не требуются облачные сервисы.

## Дальнейшие шаги после настройки

После проверки локального экземпляра см. [Локальная настройка](/docs/en/development/local-setup.md) для white-label кастомизации, флагов функций и расширенной конфигурации. Для продакшн-развертывания см. [Конфигурация среды](/docs/en/deployment/environment.md).

### For developers

## Пошаговая настройка

### Клонирование и установка

```bash
git clone https://github.com/connectplatform/ring.git
cd ring
npm install
```

### Настройка среды

Скопируйте шаблон и отредактируйте необходимые переменные:

```bash
cp env.local.template .env.local
```

Как минимум, установите в `.env.local`:

```bash
# Database backend (required)
DB_BACKEND_MODE=k8s-postgres-fcm

# Auth.js secret (required)
AUTH_SECRET=your-secret

# Database connection (required for k8s-postgres-fcm)
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ring_platform
DB_USER=ring_user
DB_PASSWORD=ring_password_2024

# Google OAuth (required for sign-in)
AUTH_GOOGLE_ID=your-client-id
AUTH_GOOGLE_SECRET=your-client-secret
```

  Auth.js v5 может сгенерировать секрет автоматически при первом запуске. Или используйте `npx auth secret` для явной генерации. Подход `openssl rand -hex 32` не требуется.

Полная справка переменных — в [Конфигурация среды](/docs/en/deployment/environment.md). Для локальной разработки рекомендуется `AUTH_TRUST_HOST=true`.

### Настройка базы данных

Запустите PostgreSQL и создайте базу данных:

```bash
docker run -d --name ring-postgres-dev \
  -e POSTGRES_USER=ring_user \
  -e POSTGRES_PASSWORD=ring_password_2024 \
  -e POSTGRES_DB=ring_platform \
  -p 5432:5432 \
  postgres:16-alpine
```

Примените схему и миграции:

```bash
export DATABASE_URL="postgresql://ring_user:ring_password_2024@localhost:5432/ring_platform"
psql "$DATABASE_URL" -f data/schema.sql
psql "$DATABASE_URL" -f data/migrations/002_news_content_schema.sql
psql "$DATABASE_URL" -f data/migrations/003_news_kingdom_upgrade.sql
psql "$DATABASE_URL" -f data/migrations/004_payment_transactions.sql
```

Или используйте скрипт установки, который выполняет настройку базы данных:

```bash
./install.sh --quick
```

См. [Установка > Настройка PostgreSQL](/docs/en/getting-started/installation.md#postgresql-setup) для дополнительных вариантов.

### Запуск сервера разработки

```bash
npm run dev
```

Пользовательский `server.ts` запускает Next.js 16 с WebSocket туннелем на порту 3000.

### Проверка

```bash
curl http://localhost:3000/api/health
```

Ожидаемый ответ: `{"status":"ok","timestamp":"..."}`

Откройте `http://localhost:3000/login` для тестирования входа через Google OAuth.

## Ключевые файлы

| Файл | Назначение |
|------|---------|
| `auth.ts` | Конфигурация Auth.js v5 — провайдеры, колбэки, стратегия JWT сессии |
| `lib/database/DatabaseService.ts` | Унифицированная абстракция базы данных (PostgreSQL или Firestore) |
| `lib/firebase-admin.server.ts` | Firebase Admin SDK для FCM push (только серверная часть) |
| `public/firebase-messaging-sw.js` | Сервис-воркер с Firebase клиентским SDK для push-уведомлений |
| `lib/tunnel/` | Транспорт реального времени через WebSocket |
| `data/schema.sql` | Схема PostgreSQL v4 |

  Ring Platform **не** имеет клиентского файла инициализации `lib/firebase.ts`. Клиентский Firebase SDK загружается исключительно внутри сервис-воркера (`public/firebase-messaging-sw.js`) через CDN `importScripts()`. Клиентского объекта `firebaseConfig` не существует. Серверный Firebase Admin использует `lib/firebase-admin.server.ts` с явными учетными данными сервисного аккаунта.

## Технологический стек

| Компонент | Версия / Провайдер |
|-----------|--------------------|
| Framework | Next.js 16 App Router |
| UI | React 19 |
| Auth | Auth.js v5 (`auth()` / `useSession()`) |
| Database | PostgreSQL 16 + PostGIS (или Firestore через `DB_BACKEND_MODE=firebase-full`) |
| Push | Firebase Cloud Messaging (серверный Admin SDK, клиентский сервис-воркер) |
| Payments | WayForPay (серверная HMAC верификация) |
| Locales | `next-intl`, поддерживаемые языки: en, uk, ru |

## Устранение неполадок

### "FETCH_FAILED" или ошибки подключения к базе данных

Убедитесь, что PostgreSQL запущен и учетные данные в `.env.local` совпадают:

```bash
psql "postgresql://ring_user:ring_password_2024@localhost:5432/ring_platform" -c "SELECT 1"
```

### Google OAuth не работает

1. Проверьте Google Cloud Console — добавьте `http://localhost:3000` в Authorized JavaScript origins
2. Добавьте `http://localhost:3000/api/auth/callback/google` в Authorized redirect URIs
3. Убедитесь, что `AUTH_GOOGLE_ID` и `AUTH_GOOGLE_SECRET` указаны в `.env.local`

### Ошибки секрета аутентификации

Убедитесь, что `AUTH_SECRET` установлен в `.env.local`. Сгенерируйте с помощью:

```bash
npx auth secret
```

Затем скопируйте результат в `AUTH_SECRET`.

## Дальнейшие шаги

- [Руководство по установке](/docs/en/getting-started/installation.md) — полная настройка со скриптом установки и расширенной конфигурацией базы данных
- [Локальная настройка](/docs/en/development/local-setup.md) — white-label конфигурация, флаги функций и рабочий процесс разработки
- [Конфигурация среды](/docs/en/deployment/environment.md) — справка всех переменных среды
- [Расширенные возможности](/docs/en/examples/advanced-features.md) — AI-матчер, верификация, PaymentConductor и другое
