---
title: "Передумови"
description: "Передумови та налаштування, необхідні для розробки та розгортання платформи Ring"
locale: "uk"
---
# Передумови

Цей всебічний посібник охоплює всі вимоги для налаштування платформи Ring для розробки та виробничого розгортання. Платформа Ring побудована із сучасними веб-технологіями та вимагає специфічних конфігурацій системи для оптимальної продуктивності.

**15-30 хвилин** для повного налаштування залежно від вашого рівня досвіду та швидкості інтернет-з'єднання.

## 🖥️ Системні вимоги

### Мінімальні вимоги до обладнання

| Компонент | Розробка | Виробництво |
|-----------|----------|-------------|
| **CPU** | 4 ядра (Intel i5/AMD Ryzen 5) | 8+ ядер (Intel i7/AMD Ryzen 7) |
| **RAM** | 8GB | 16GB+ |
| **Сховище** | 10GB вільного місця | 50GB+ SSD |
| **Мережа** | 10 Mbps | 100 Mbps+ |

### Підтримувані операційні системи

- **macOS**: 12.0+ (Monterey або новіша)
- **Linux**: Ubuntu 20.04+, CentOS 8+, Debian 11+
- **Windows**: 10/11 з WSL2 (Windows Subsystem for Linux)
- **Docker**: Для контейнеризованої розробки та розгортання

Хоча платформа Ring працює на Windows з WSL2, ми рекомендуємо використовувати Linux або macOS для найкращого досвіду розробки. Деякі функції можуть мати обмежену підтримку Windows.

## 🟢 Node.js & управління пакетами

### Необхідні версії

Платформа Ring вимагає **Node.js 18.17+** та **npm 8.19+** (або еквівалентні менеджери пакетів).

Перевірка поточних версій

{`node --version    # Має показати v18.17.0 або вище
npm --version     # Має показати 8.19.0 або вище`}

### Рекомендоване налаштування

#### Варіант 1: Node Version Manager (Рекомендовано)

**macOS/Linux з nvm:**
Встановлення nvm Перезавантаження терміналу або виконання: Встановлення та використання Node.js 18

{`curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

source ~/.bashrc

nvm install 18
nvm use 18
nvm alias default 18`}

**Windows з nvm-windows:**
Завантаження та встановлення з https://github.com/coreybutler/nvm-windows/releases Потім встановлення Node.js 18

{`nvm install 18
nvm use 18`}

#### Варіант 2: Офіційні інсталятори

Завантаження з [nodejs.org](https://nodejs.org/) та встановлення Node.js 18 LTS.

#### Варіант 3: Менеджери пакетів

**macOS з Homebrew:**

{`brew install node@18
brew link node@18`}

**Ubuntu/Debian:**

{`curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs`}

### Конфігурація менеджера пакетів

Конфігурація npm для кращої продуктивності Необов'язково: Використання yarn для швидших інсталяцій

{`npm config set fund false
npm config set audit false

npm install -g yarn`}

## 🗄️ Налаштування бази даних

Платформа Ring підтримує кілька бекендів баз даних із **PostgreSQL як основною рекомендацією**.

### Варіант 1: PostgreSQL (Рекомендовано для виробництва)

#### Налаштування для локальної розробки

**macOS з Homebrew:**
Створення бази даних

{`brew install postgresql@15
brew services start postgresql@15

createdb ring_platform`}

**Ubuntu/Debian:**
Запуск сервісу Створення бази даних

{`sudo apt update
sudo apt install postgresql postgresql-contrib

sudo systemctl start postgresql
sudo systemctl enable postgresql

sudo -u postgres createdb ring_platform`}

**Docker (кросплатформний):**
Запуск PostgreSQL у Docker Для постійних даних

{`docker run --name ring-postgres \
  -e POSTGRES_DB=ring_platform \
  -e POSTGRES_USER=ring_user \
  -e POSTGRES_PASSWORD=your_password \
  -p 5432:5432 \
  -d postgres:15

docker run --name ring-postgres \
  -e POSTGRES_DB=ring_platform \
  -e POSTGRES_USER=ring_user \
  -e POSTGRES_PASSWORD=your_password \
  -v ring_data:/var/lib/postgresql/data \
  -p 5432:5432 \
  -d postgres:15`}

#### Варіанти PostgreSQL у хмарі

- **Supabase**: Керований PostgreSQL з функціями реального часу
- **Neon**: Серверний PostgreSQL
- **AWS RDS**: Підприємницький хостинг PostgreSQL
- **Google Cloud SQL**: Керований сервіс PostgreSQL
- **Azure Database**: Пропозиція PostgreSQL від Microsoft

### Варіант 2: Firebase (Розробка/Легасі)

Хоча Firebase все ще підтримується для сумісності, **PostgreSQL настійно рекомендується** для нових розгортань.

{`# Налаштування Firebase буде розглянуто в конфігурації середовища`}

## 🔐 Провайдери аутентифікації

Платформа Ring використовує **Auth.js v5** з кількома провайдерами OAuth для безпечної аутентифікації.

### Налаштування Google OAuth

1. **Створення проекту Google Cloud**
   - Перейти до [Google Cloud Console](https://console.cloud.google.com/)
   - Створити новий проект або вибрати існуючий

2. **Увімкнення Google+ API**
   - Перейти до "APIs & Services" > "Library"
   - Знайти та увімкнути "Google+ API"

3. **Створення облікових даних OAuth**
   - Перейти до "APIs & Services" > "Credentials"
   - Натиснути "Create Credentials" > "OAuth 2.0 Client IDs"
   - Обрати "Web application"
   - Додати авторизовані джерела:
     - `http://localhost:3000` (розробка)
     - `https://yourdomain.com` (виробництво)
   - Додати авторизовані URI перенаправлення:
     - `http://localhost:3000/api/auth/callback/google`
     - `https://yourdomain.com/api/auth/callback/google`

4. **Отримання Client ID та Secret**
   - Скопіювати Client ID та Client Secret

### Налаштування Sign-in з Apple (Необов'язково)

Необхідно для iOS інтеграції додатку:

1. **Обліковий запис Apple Developer**
   - Платний обліковий запис розробника ($99/рік)
   - Доступ до [Apple Developer Portal](https://developer.apple.com/)

2. **Створення App ID**
   - Certificates, Identifiers & Profiles > Identifiers
   - Створити новий App ID із можливістю Sign in with Apple

3. **Створення Service ID**
   - Створити Services ID для веб-аутентифікації
   - Налаштувати повернення URL для вашого домену

4. **Створення приватного ключа**
   - Створити новий ключ із можливістю Sign in with Apple
   - Завантажити файл `.p8` (зберігати безпечно!)

### Додаткові провайдери OAuth (Необов'язкові)

- **GitHub**: Аутентифікація для розробників
- **Discord**: Інтеграція платформи спільноти
- **Twitter/X**: Аутентифікація соціальних мереж

## 🔑 Інтеграція гаманця Web3

Для блокчейн-функцій, включаючи ринок NFT та операції з токенами RING.

### Налаштування MetaMask

Встановлення розширення браузера MetaMask Відвідати: https://metamask.io/download/ Або встановити через менеджер пакетів macOS Linux Завантажити з офіційного веб-сайту

{`brew install --cask metamask`}

### Ключ шифрування гаманця

Створіть безпечний ключ шифрування для операцій гаманця:

Створення 256-бітного (32-байтового) шістнадцяткового ключа Приклад виводу: a1b2c3d4e5f678901234567890abcdef1234567890abcdef1234567890abcdef

{`openssl rand -hex 32`}

## 💰 Інтеграція оплати (WayForPay)

Необхідно для оформлення замовлень у магазині та преміум-функцій.

### Налаштування облікового запису WayForPay

1. **Створення облікового запису продавця**
   - Відвідати [WayForPay](https://wayforpay.com/)
   - Зареєструватися як продавець
   - Завершити верифікацію KYC

2. **Отримання API облікових даних**
   - Увійти до панелі продавця
   - Перейти до налаштувань API
   - Скопіювати Merchant Account та Secret Key

3. **Налаштування методів оплати**
   - Увімкнути оплату картками
   - Налаштувати Apple Pay / Google Pay
   - Налаштувати підтримку валют (UAH, USD, EUR)

## 🛠️ Інструменти розробки

### Основні інструменти

Встановлення Git (якщо не встановлено) Встановлення залежностей розробки Необов'язково: Встановлення розширень VS Code - TypeScript and JavaScript Language Features - Tailwind CSS IntelliSense - Prettier - Code formatter - ESLint

{`git --version

npm install -g typescript @types/node`}

### Рекомендоване налаштування IDE

**Visual Studio Code** із цими розширеннями:
- `ms-vscode.vscode-typescript-next`
- `bradlc.vscode-tailwindcss`
- `esbenp.prettier-vscode`
- `dbaeumer.vscode-eslint`
- `ms-vscode.vscode-json`

### Шаблон файлу середовища

Створіть `.env.local` із наданого шаблону:

{`# cp env.local.template .env.local`}

## 🌐 Мережеві вимоги

### Розробка
- **Інтернет-з'єднання**: Необхідне для встановлення пакетів та тестування OAuth
- **Локальні порти**: 3000 (Next.js), 5432 (PostgreSQL)
- **Файрвол**: Дозволити вихідні HTTPS-з'єднання

### Виробництво
- **SSL-сертифікат**: Необхідний для HTTPS (Let's Encrypt рекомендується)
- **Домен**: Користувацький домен рекомендується
- **CDN**: Необов'язковий, але рекомендується для статичних ресурсів
- **WebSocket підтримка**: Необхідна для функцій реального часу

## 🔒 Міри безпеки

### Змінні середовища

Ніколи не фіксувати конфіденційні дані в системі контролю версій:

.env.local (розробка - зберігати локально) .env.production (виробництво - встановити через платформу розгортання) Ті ж змінні, але з виробничими значеннями

{`AUTH_SECRET=your-auth-secret
AUTH_GOOGLE_ID=your-google-client-id
AUTH_GOOGLE_SECRET=your-google-client-secret
WALLET_ENCRYPTION_KEY=your-32-byte-hex-key`}

### Дозволи файлів

Захистити файли середовища Захистити приватні ключі

{`chmod 600 .env.local
chmod 600 .env.production

chmod 400 path/to/private-key.pem`}

## 🧪 Контрольний список валідації

Запустіть ці команди для перевірки налаштування:

### Валідація системи

Перевірка Node.js та npm Перевірка системних ресурсів Перевірка мережевого з'єднання

{`node --version        # v18.17.0+
npm --version         # 8.19.0+

df -h                 # Місце на диску
free -h              # Пам'ять (Linux)
vm_stat              # Пам'ять (macOS)

curl -I https://registry.npmjs.org/`}

### Валідація бази даних

**PostgreSQL:**
Перевірка з'єднання Або з Docker

{`psql -h localhost -U ring_user -d ring_platform -c "SELECT version();"

docker exec -it ring-postgres psql -U ring_user -d ring_platform -c "SELECT 1;"`}

**Firebase (якщо використовується):**
Перевірка CLI Firebase Вхід до Firebase

{`firebase --version

firebase login`}

### Валідація OAuth

Перевірка формату облікових даних Google OAuth Перевірка облікових даних Apple (якщо використовується) Перевірка доступності URL

{`echo $AUTH_GOOGLE_ID | grep -E "^[0-9]+\-[a-zA-Z0-9_]+\.apps\.googleusercontent\.com$"

echo $AUTH_APPLE_ID | grep -E "^com\."

curl -s -o /dev/null -w "%{http_code}" https://accounts.google.com`}

### Валідація Web3

Перевірка формату ключа шифрування гаманця Перевірка встановлення MetaMask (ручна) Відкрити браузер та перевірити розширення MetaMask

{`echo $WALLET_ENCRYPTION_KEY | grep -E "^[a-f0-9]{64}$"`}

## 🐛 Усунення поширених проблем

### Проблеми з версією Node.js

# Якщо ви бачите "Node.js version not supported"

{`nvm install 18
nvm use 18

# Очистити кеш npm
npm cache clean --force
rm -rf node_modules package-lock.json
npm install`}

### Проблеми з'єднання з базою даних

**PostgreSQL:**
Перевірка запуску PostgreSQL Скидання пароля PostgreSQL

{`sudo systemctl status postgresql  # Linux
brew services list | grep postgresql  # macOS

sudo -u postgres psql
ALTER USER ring_user PASSWORD 'new_password';`}

**Firebase:**
Повторна аутентифікація Firebase Перевірка доступу до проекту

{`firebase logout
firebase login

firebase projects:list`}

### Проблеми конфігурації OAuth

{`# Помилки Google OAuth
# 1. Перевірити авторизовані джерела включають ваш домен
# 2. Перевірити URI перенаправлення збігаються точно
# 3. Переконатися, що Google+ API увімкнено

# Помилки Sign-in з Apple
# 1. Перевірити App ID та Service ID збігаються
# 2. Перевірити формат приватного ключа та дозволи
# 3. Перевірити повернення URL у Apple Developer portal`}

### Мережеві та файрвол проблеми

Перевірка з'єднання з необхідними сервісами Перевірка дозволу DNS Перевірити на іншій мережі, якщо проблеми зберігаються

{`curl -I https://accounts.google.com
curl -I https://api.github.com
curl -I https://registry.npmjs.org/

nslookup accounts.google.com`}

## 📚 Наступні кроки

Після виконання всіх передумов:

1. **[Посібник встановлення](/uk/docs/getting-started/installation)** - Клонувати та налаштувати проект
2. **[Конфігурація середовища](/uk/docs/getting-started/installation#3-configure-environment)** - Завершити налаштування `.env.local`
3. **[Валідація першого успіху](/uk/docs/getting-started/first-success)** - Перевірити встановлення
4. **[Робочий процес розробки](/uk/docs/development/workflow)** - Почати робити внесок

Якщо всі валідації пройшли успішно, ви готові встановити платформу Ring! Перейдіть до [Посібника встановлення](/uk/docs/getting-started/installation) для початку роботи.

---

*Потрібна допомога з налаштуванням? Приєднуйтеся до нашого [Discord Community](https://discord.gg/ring-platform) для підтримки.*
