nakama/PROXY_QUICKSTART.md

5.6 KiB
Raw Blame History

Быстрый старт: Проксирование для РФ

Что уже работает

Поздравляем! Проксирование уже полностью настроено и работает автоматически.

Что происходит автоматически:

  1. API запросы к e621 и gelbooru идут через ваш сервер
  2. URL изображений автоматически конвертируются в прокси-URL
  3. Изображения загружаются через ваш сервер
  4. Кэширование на 24 часа для оптимизации

Никаких дополнительных действий не требуется! 🎉


🚀 Проверка работы

1. Запустите проект

# Backend
cd backend
npm start

# Frontend (в другом терминале)
cd frontend
npm run dev

2. Откройте приложение

http://localhost:5173

3. Протестируйте поиск

  1. Перейдите в раздел "Поиск" (🔍)
  2. Выберите режим "Furry" или "Anime"
  3. Введите любой тег (например: cat, wolf, anime)
  4. Изображения загрузятся через прокси

4. Проверьте в DevTools

Откройте DevTools (F12) → Network:

  • URL изображений должны начинаться с /api/search/proxy/
  • Статус: 200 OK
  • Заголовок: Cache-Control: public, max-age=86400

🌍 Деплой для пользователей из РФ

Важно:

Разместите сервер ВНЕ РФ для надежного доступа к e621 и gelbooru.

Рекомендуемые платформы:

Railway (Европа/США)

# 1. Создайте проект на railway.app
# 2. Подключите GitHub репозиторий
# 3. Railway автоматически задеплоит

Heroku

heroku create nakama-space
git push heroku main

DigitalOcean

# App Platform → Create App → Connect GitHub
# Регион: NYC, Amsterdam, или Singapore

📊 Мониторинг

Проверка логов

# Backend логи
cd backend
npm start

# Ищите:
# ✅ "Ошибка проксирования изображения" - если есть проблемы

Метрики

Отслеживайте:

  • Скорость загрузки изображений
  • Процент успешных запросов
  • Объем трафика

🛠️ Настройка (опционально)

Изменить время кэширования

backend/routes/search.js:

// Строка 52
res.setHeader('Cache-Control', 'public, max-age=86400'); // 24 часа
// Измените 86400 на нужное значение в секундах

Изменить таймаут загрузки

backend/routes/search.js:

// Строка 47
timeout: 30000 // 30 секунд
// Измените на нужное значение в миллисекундах

Добавить домены

backend/routes/search.js:

// Строки 24-33
const allowedDomains = [
  'e621.net',
  'static1.e621.net',
  'gelbooru.com',
  // ... добавьте ваши домены
];

🧪 Тестирование из РФ

Попросите друга из РФ:

  1. Открыть ваше приложение (без VPN)
  2. Выполнить поиск
  3. Проверить, что изображения загружаются

Если не работает:

  • Проверьте, что сервер вне РФ
  • Проверьте логи на ошибки
  • Убедитесь, что сервер имеет доступ к e621/gelbooru
  • Проверьте firewall настройки

📚 Дополнительная документация


Частые вопросы

Q: Нужно ли что-то менять на фронтенде?
A: Нет, всё работает автоматически.

Q: Будут ли изображения медленнее грузиться?
A: Первая загрузка может быть чуть медленнее, но благодаря кэшированию последующие загрузки будут быстрыми.

Q: Безопасно ли это?
A: Да, используется whitelist доменов и все запросы проверяются.

Q: Сколько это будет стоить?
A: Зависит от трафика. Бесплатные тиры (Railway, Vercel) должны хватить для старта.

Q: Можно ли использовать CDN?
A: Да! Рекомендуется использовать Cloudflare перед вашим сервером для оптимизации.


🎉 Готово!

Ваш NakamaSpace теперь доступен пользователям из РФ без VPN!

Наслаждайтесь! 🚀


Нужна помощь? Создайте issue на GitHub или обратитесь к PROXY_INFO.md