Files
quoter/docs/configuration.md

137 lines
3.5 KiB
Markdown
Raw Normal View History

2025-08-02 00:18:09 +03:00
# Конфигурация
## Переменные окружения
Quoter использует следующие переменные окружения для настройки:
### Обязательные переменные
| Переменная | Описание | Пример |
|------------|----------|--------|
| `REDIS_URL` | URL для подключения к Redis | `redis://localhost:6379` |
| `CORE_URL` | URL для подключения к API ядра | `https://api.example.com/graphql` |
| `STORJ_ACCESS_KEY` | Ключ доступа к Storj S3 | `your-storj-access-key` |
| `STORJ_SECRET_KEY` | Секретный ключ Storj S3 | `your-storj-secret-key` |
| `AWS_ACCESS_KEY` | Ключ доступа к AWS S3 | `your-aws-access-key` |
| `AWS_SECRET_KEY` | Секретный ключ AWS S3 | `your-aws-secret-key` |
### Опциональные переменные
| Переменная | Описание | По умолчанию |
|------------|----------|--------------|
| `PORT` | Порт для запуска сервера | `8080` |
| `STORJ_END_POINT` | Endpoint Storj S3 | `https://gateway.storjshare.io` |
| `STORJ_BUCKET_NAME` | Имя bucket в Storj | `discours-io` |
| `AWS_END_POINT` | Endpoint AWS S3 | `https://s3.amazonaws.com` |
| `RUST_LOG` | Уровень логирования | `info` |
## Пример .env файла
```bash
# Redis
REDIS_URL=redis://localhost:6379
# Core API
CORE_URL=https://api.example.com/graphql
# Storj S3
STORJ_ACCESS_KEY=your-storj-access-key
STORJ_SECRET_KEY=your-storj-secret-key
STORJ_END_POINT=https://gateway.storjshare.io
STORJ_BUCKET_NAME=discours-io
# AWS S3
AWS_ACCESS_KEY=your-aws-access-key
AWS_SECRET_KEY=your-aws-secret-key
AWS_END_POINT=https://s3.amazonaws.com
# Server
PORT=8080
RUST_LOG=info
```
## Настройка Redis
### Минимальная конфигурация Redis
```redis
# redis.conf
maxmemory 2gb
maxmemory-policy allkeys-lru
save 900 1
save 300 10
save 60 10000
```
### Проверка подключения
```bash
redis-cli ping
```
## Настройка S3
### Storj S3
1. Создайте аккаунт на [Storj](https://storj.io)
2. Создайте API ключи в консоли
3. Создайте bucket для файлов
4. Настройте CORS для bucket:
```json
{
"CORSRules": [
{
"AllowedOrigins": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "DELETE"],
"AllowedHeaders": ["*"],
"ExposeHeaders": ["ETag"]
}
]
}
```
### AWS S3
1. Создайте IAM пользователя с правами S3
2. Создайте bucket для файлов
3. Настройте CORS аналогично Storj
## Логирование
### Уровни логирования
- `error` - только ошибки
- `warn` - предупреждения и ошибки
- `info` - информационные сообщения, предупреждения и ошибки
- `debug` - отладочная информация
- `trace` - максимальная детализация
### Примеры
```bash
# Только ошибки
RUST_LOG=error cargo run
# Информационные сообщения
RUST_LOG=info cargo run
# Отладка
RUST_LOG=debug cargo run
```
## Проверка конфигурации
Запустите сервер и проверьте логи:
```bash
RUST_LOG=info cargo run
```
Успешный запуск должен показать:
```
[INFO] Started
[WARN] caching AWS filelist...
[WARN] cached 1234 files
```