fix: добавить .gitignore для backend, обновить README.md с полным гайдом по деплою и настройке env

This commit is contained in:
2026-07-03 13:53:48 +00:00
parent 0025e39e2d
commit fd52eeae3c
3 changed files with 50 additions and 25 deletions
+34 -11
View File
@@ -45,6 +45,40 @@ npm ci
npm run dev 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 └── .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 ```bash
+14 -13
View File
@@ -1,33 +1,34 @@
# Database # ============================================
# Freelancer Match — Environment Variables (Template)
# ============================================
# Скопируйте этот файл в .env и заполните значения!
# --- ОБЯЗАТЕЛЬНЫЕ (без них не запустится) ---
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/freelancer_match DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/freelancer_match
# Redis
REDIS_URL=redis://localhost:6379/0 REDIS_URL=redis://localhost:6379/0
# JWT
SECRET_KEY=your-secret-key-change-in-production SECRET_KEY=your-secret-key-change-in-production
ACCESS_TOKEN_EXPIRE_MINUTES=15
REFRESH_TOKEN_EXPIRE_DAYS=7
# OpenAI (для AI-матчинга) # --- ОПЦИОНАЛЬНЫЕ (но нужны для полноценной работы) ---
OPENAI_API_KEY=sk-... OPENAI_API_KEY=sk-...
EMBEDDING_MODEL=text-embedding-3-small EMBEDDING_MODEL=text-embedding-3-small
# OAuth
GOOGLE_CLIENT_ID=... GOOGLE_CLIENT_ID=...
GITHUB_CLIENT_ID=... GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=... GITHUB_CLIENT_SECRET=...
# Stripe (Escrow)
STRIPE_SECRET_KEY=sk_test_... STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_... STRIPE_WEBHOOK_SECRET=whsec_...
# Email # --- EMAIL (опционально) ---
SMTP_HOST=smtp.gmail.com SMTP_HOST=smtp.gmail.com
SMTP_PORT=587 SMTP_PORT=587
SMTP_USER=noreply@freelancermatch.com SMTP_USER=noreply@freelancermatch.com
SMTP_PASSWORD=... SMTP_PASSWORD=your-app-password
EMAIL_FROM=noreply@freelancermatch.com EMAIL_FROM=noreply@freelancermatch.com
# CORS # --- CORS ---
ALLOWED_ORIGINS=["http://localhost:3000","https://freelancermatch.com"] ALLOWED_ORIGINS=["http://localhost:3000","https://freelancermatch.com"]
+2 -1
View File
@@ -1,6 +1,7 @@
__pycache__/ __pycache__/
*.pyc *.pyc
.env .env
venv/
.venv/ .venv/
*.egg-info/ *.egg-info/
dist/
build/