173 lines
5.8 KiB
Markdown
173 lines
5.8 KiB
Markdown
|
|
# 🚀 Быстрый старт NakamaSpace
|
|||
|
|
|
|||
|
|
Быстрая инструкция для запуска за 5 минут.
|
|||
|
|
|
|||
|
|
## ⚡ Супер быстрый старт
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. Клонировать репозиторий
|
|||
|
|
git clone <repository-url>
|
|||
|
|
cd nakama
|
|||
|
|
|
|||
|
|
# 2. Запустить
|
|||
|
|
./start.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Скрипт автоматически:
|
|||
|
|
- Проверит и запустит MongoDB
|
|||
|
|
- Установит зависимости
|
|||
|
|
- Создаст .env файлы
|
|||
|
|
- Запустит приложение
|
|||
|
|
|
|||
|
|
## 📝 Минимальная настройка
|
|||
|
|
|
|||
|
|
Если используете скрипт `start.sh`, нужно только:
|
|||
|
|
|
|||
|
|
1. **Получить Telegram Bot Token**
|
|||
|
|
- Откройте [@BotFather](https://t.me/BotFather)
|
|||
|
|
- Отправьте `/newbot`
|
|||
|
|
- Скопируйте токен
|
|||
|
|
|
|||
|
|
2. **Добавить токен в .env**
|
|||
|
|
```bash
|
|||
|
|
nano .env
|
|||
|
|
# Замените: TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **Настроить Web App в боте**
|
|||
|
|
- В BotFather: `/mybots` → ваш бот → Bot Settings → Menu Button
|
|||
|
|
- Укажите URL: `http://localhost:5173` (для разработки)
|
|||
|
|
|
|||
|
|
## 🌐 Для локального тестирования в Telegram
|
|||
|
|
|
|||
|
|
Telegram требует HTTPS для Mini Apps. Используйте ngrok:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Установить ngrok
|
|||
|
|
brew install ngrok # macOS
|
|||
|
|
# или скачайте с https://ngrok.com
|
|||
|
|
|
|||
|
|
# Запустить туннель
|
|||
|
|
ngrok http 5173
|
|||
|
|
|
|||
|
|
# Скопируйте HTTPS URL и укажите в BotFather
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📱 Первый запуск
|
|||
|
|
|
|||
|
|
1. **Откройте бота в Telegram**
|
|||
|
|
2. **Нажмите кнопку меню** или отправьте команду
|
|||
|
|
3. **Приложение откроется** как Mini App
|
|||
|
|
4. **Готово!** Теперь можете:
|
|||
|
|
- Создавать посты с тегами
|
|||
|
|
- Искать в e621 и gelbooru
|
|||
|
|
- Подписываться на пользователей
|
|||
|
|
- Получать уведомления
|
|||
|
|
|
|||
|
|
## 🛠️ Структура проекта
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
nakama/
|
|||
|
|
├── backend/ # API сервер
|
|||
|
|
├── frontend/ # React приложение
|
|||
|
|
├── start.sh # Скрипт запуска
|
|||
|
|
├── SETUP.md # Подробная инструкция
|
|||
|
|
└── README.md # Основная документация
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🎨 Основные функции
|
|||
|
|
|
|||
|
|
### 🏠 Лента
|
|||
|
|
- Создание постов с текстом и изображениями
|
|||
|
|
- Обязательные теги: Furry 🦊, Anime 🎌, Other
|
|||
|
|
- Лайки, комментарии, репосты
|
|||
|
|
- Упоминания пользователей
|
|||
|
|
|
|||
|
|
### 🔍 Поиск
|
|||
|
|
- e621 API для Furry контента
|
|||
|
|
- gelbooru API для Anime
|
|||
|
|
- Автокомплит тегов
|
|||
|
|
- Просмотрщик изображений с swipe
|
|||
|
|
- Скачивание изображений
|
|||
|
|
|
|||
|
|
### 🔔 Уведомления
|
|||
|
|
- Telegram-стиль баблов
|
|||
|
|
- Уведомления о подписках, лайках, комментариях
|
|||
|
|
- Переходы к постам и профилям
|
|||
|
|
|
|||
|
|
### 👤 Профиль
|
|||
|
|
- Статистика подписчиков
|
|||
|
|
- Настройки фильтров (без Furry, только Anime, без NSFW)
|
|||
|
|
- Донаты через Telegram Stars (планируется)
|
|||
|
|
- Редактирование био
|
|||
|
|
|
|||
|
|
## 🛡️ Модерация
|
|||
|
|
|
|||
|
|
Для назначения модератора:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// Подключиться к MongoDB
|
|||
|
|
mongo nakama
|
|||
|
|
|
|||
|
|
// Назначить роль
|
|||
|
|
db.users.updateOne(
|
|||
|
|
{ telegramId: "YOUR_TELEGRAM_ID" },
|
|||
|
|
{ $set: { role: "moderator" } } // или "admin"
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Модераторы могут:
|
|||
|
|
- Удалять любые посты
|
|||
|
|
- Отмечать контент как NSFW
|
|||
|
|
- Блокировать пользователей
|
|||
|
|
- Просматривать и обрабатывать жалобы
|
|||
|
|
|
|||
|
|
## 🐛 Проблемы?
|
|||
|
|
|
|||
|
|
### Приложение не запускается
|
|||
|
|
```bash
|
|||
|
|
# Проверьте MongoDB
|
|||
|
|
brew services list # должен быть started
|
|||
|
|
|
|||
|
|
# Проверьте порты
|
|||
|
|
lsof -i :3000 # backend
|
|||
|
|
lsof -i :5173 # frontend
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### CORS ошибки
|
|||
|
|
Убедитесь что `frontend/.env` содержит правильный API URL:
|
|||
|
|
```
|
|||
|
|
VITE_API_URL=http://localhost:3000/api
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Telegram показывает ошибку
|
|||
|
|
- Проверьте что используете HTTPS (ngrok для разработки)
|
|||
|
|
- Убедитесь что токен бота правильный
|
|||
|
|
- Проверьте что Menu Button настроен в BotFather
|
|||
|
|
|
|||
|
|
## 📚 Дополнительная документация
|
|||
|
|
|
|||
|
|
- [SETUP.md](SETUP.md) - Подробная инструкция по установке
|
|||
|
|
- [README.md](README.md) - Полная документация проекта
|
|||
|
|
- [CONTRIBUTING.md](CONTRIBUTING.md) - Гайд по разработке
|
|||
|
|
|
|||
|
|
## 💡 Подсказки
|
|||
|
|
|
|||
|
|
1. **Dev режим**: Telegram Init Data проверка отключена для удобства разработки
|
|||
|
|
2. **Моки**: В dev режиме создается тестовый пользователь автоматически
|
|||
|
|
3. **Hot reload**: Frontend обновляется автоматически при изменениях
|
|||
|
|
4. **Логи**: Смотрите в терминале для отладки
|
|||
|
|
|
|||
|
|
## 🎉 Готово к использованию!
|
|||
|
|
|
|||
|
|
Приложение работает? Отлично! Теперь вы можете:
|
|||
|
|
- Создать первый пост
|
|||
|
|
- Попробовать поиск по тегам
|
|||
|
|
- Изучить настройки профиля
|
|||
|
|
- Пригласить друзей в свою мини-социальную сеть!
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Нужна помощь?** Создайте Issue на GitHub или проверьте полную документацию в SETUP.md
|
|||
|
|
|