From fd52eeae3c97a7f823675a2047ef47e3ac35f993 Mon Sep 17 00:00:00 2001 From: DevSecOps Date: Fri, 3 Jul 2026 13:53:48 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20.gitignore=20=D0=B4=D0=BB=D1=8F=20backend,=20?= =?UTF-8?q?=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D1=8C=20README.md=20?= =?UTF-8?q?=D1=81=20=D0=BF=D0=BE=D0=BB=D0=BD=D1=8B=D0=BC=20=D0=B3=D0=B0?= =?UTF-8?q?=D0=B9=D0=B4=D0=BE=D0=BC=20=D0=BF=D0=BE=20=D0=B4=D0=B5=D0=BF?= =?UTF-8?q?=D0=BB=D0=BE=D1=8E=20=D0=B8=20=D0=BD=D0=B0=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B9=D0=BA=D0=B5=20env?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 45 +++++++++++++++++++++++++++++++++----------- backend/.env.example | 27 +++++++++++++------------- backend/.gitignore | 3 ++- 3 files changed, 50 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index c4c5b8c..51422ab 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,40 @@ npm ci npm run dev ``` +## 🔑 Настройка переменных окружения + +Скопируйте `backend/.env.example` в `backend/.env` и заполните значения. + +### Обязательные (без них не запустится) + +| Переменная | Описание | Где взять | +|------------|----------|-----------| +| `DATABASE_URL` | Подключение к PostgreSQL | Создайте БД: `createdb freelancer_match` | +| `REDIS_URL` | Подключение к Redis | По умолчанию: `redis://localhost:6379/0` | +| `SECRET_KEY` | Ключ для JWT токенов | Сгенерируйте: `openssl rand -hex 32` | + +### Опциональные (но нужны для полноценной работы) + +| Переменная | Описание | Где взять | +|------------|----------|-----------| +| `OPENAI_API_KEY` | API ключ OpenAI для AI-матчинга | [platform.openai.com/api-keys](https://platform.openai.com/api-keys) | +| `STRIPE_SECRET_KEY` | Ключ Stripe для escrow | [dashboard.stripe.com/test/keys](https://dashboard.stripe.com/test/keys) (Test mode) | +| `STRIPE_WEBHOOK_SECRET` | Секрет для webhook Stripe | Настройте в Stripe Dashboard → Webhooks | + +### Email (опционально) + +| Переменная | Описание | Где взять | +|------------|----------|-----------| +| `SMTP_USER` | Email для отправки писем | Ваш email (Gmail, Mail.ru и т.д.) | +| `SMTP_PASSWORD` | Пароль SMTP | Для Gmail — используйте App Passwords (не обычный пароль) | + +### OAuth (опционально, если хотите вход через Google/GitHub) + +| Переменная | Описание | Где взять | +|------------|----------|-----------| +| `GOOGLE_CLIENT_ID` | OAuth client ID для входа через Google | [Google Cloud Console](https://console.cloud.google.com/apis/credentials) | +| `GITHUB_CLIENT_ID` + `GITHUB_CLIENT_SECRET` | OAuth для GitHub | [GitHub Developer Settings → OAuth Apps](https://github.com/settings/developers) | + ## 📁 Структура проекта ``` @@ -70,17 +104,6 @@ freelancer-match/ └── .drone.yml # CI/CD для Drone CI ``` -## 🔑 Переменные окружения - -| Переменная | Описание | Пример | -|------------|----------|--------| -| `DATABASE_URL` | Подключение к PostgreSQL | `postgresql+asyncpg://user:pass@host/db` | -| `REDIS_URL` | Подключение к Redis | `redis://localhost:6379/0` | -| `SECRET_KEY` | Ключ для JWT токенов | Сгенерируйте через `openssl rand -hex 32` | -| `OPENAI_API_KEY` | API ключ OpenAI для AI-матчинга | `sk-...` | -| `STRIPE_SECRET_KEY` | Ключ Stripe для escrow | `sk_test_...` | -| `SMTP_*` | Настройки email | smtp.gmail.com:587 | - ## 🧪 Тесты ```bash diff --git a/backend/.env.example b/backend/.env.example index bc0ff99..f0d02d4 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -1,33 +1,34 @@ -# Database +# ============================================ +# Freelancer Match — Environment Variables (Template) +# ============================================ +# Скопируйте этот файл в .env и заполните значения! + +# --- ОБЯЗАТЕЛЬНЫЕ (без них не запустится) --- + DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/freelancer_match - -# Redis REDIS_URL=redis://localhost:6379/0 - -# JWT SECRET_KEY=your-secret-key-change-in-production -ACCESS_TOKEN_EXPIRE_MINUTES=15 -REFRESH_TOKEN_EXPIRE_DAYS=7 -# OpenAI (для AI-матчинга) +# --- ОПЦИОНАЛЬНЫЕ (но нужны для полноценной работы) --- + OPENAI_API_KEY=sk-... EMBEDDING_MODEL=text-embedding-3-small -# OAuth GOOGLE_CLIENT_ID=... GITHUB_CLIENT_ID=... GITHUB_CLIENT_SECRET=... -# Stripe (Escrow) STRIPE_SECRET_KEY=sk_test_... STRIPE_WEBHOOK_SECRET=whsec_... -# Email +# --- EMAIL (опционально) --- + SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=noreply@freelancermatch.com -SMTP_PASSWORD=... +SMTP_PASSWORD=your-app-password EMAIL_FROM=noreply@freelancermatch.com -# CORS +# --- CORS --- + ALLOWED_ORIGINS=["http://localhost:3000","https://freelancermatch.com"] diff --git a/backend/.gitignore b/backend/.gitignore index 43108c6..fc9d37b 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -1,6 +1,7 @@ __pycache__/ *.pyc .env -venv/ .venv/ *.egg-info/ +dist/ +build/