fix: добавить .gitignore для backend, обновить README.md с полным гайдом по деплою и настройке env
This commit is contained in:
@@ -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
@@ -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
@@ -1,6 +1,7 @@
|
|||||||
__pycache__/
|
__pycache__/
|
||||||
*.pyc
|
*.pyc
|
||||||
.env
|
.env
|
||||||
venv/
|
|
||||||
.venv/
|
.venv/
|
||||||
*.egg-info/
|
*.egg-info/
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
|||||||
Reference in New Issue
Block a user