Сайт Minecraft-сервера pfaumc.io — React + Vite + Tailwind.
Это чистая статика: серверного кода здесь нет, всё динамическое приходит из игрового
бэкенда pfaumc-backend (auth.pfaumc.io).
- React 18 + React Router 7
- Vite 8
- Tailwind CSS
- GitHub Pages — сборка и деплой через GitHub Actions
src/
components/ переиспользуемые UI-компоненты
forum/ UI форума (редактор, сообщения, уведомления, меню игрока)
context/ React-контексты (тема, сессия форума)
data/ статические данные
hooks/ кастомные хуки
lib/ клиенты API (gameApi — публичное, forumApi — форум) и разметка
pages/ страницы; pages/wiki — вики, pages/forum — форум
utils/
docs/ документация API (в т.ч. для Minecraft-плагина)
public/ статика
npm install
npm run dev # дев-сервер; API берётся из VITE_GAME_API_URL, по умолчанию боевое
npm run build # прод-сборка в dist/Всё серверное живёт в бэкенде, публичное API — /api/v1/* на auth.pfaumc.io. Сайт
ходит туда прямо из браузера: у бэкенда есть CORS-разрешение для pfaumc.io, поэтому
своя прослойка не нужна и сайт остаётся статикой. Куки общие для pfaumc.io и
auth.pfaumc.io — для браузера это один сайт, а не третья сторона.
| Переменная | По умолчанию | Назначение |
|---|---|---|
VITE_GAME_API_URL |
https://auth.pfaumc.io |
адрес бэкенда, подставляется на сборке |
Оттуда приходят: онлайн и поиск игроков, профили (наигранное время, теплокарта
активности, скин, роли), граф связей аккаунтов, статистика сервера (/api/v1/monitor —
прокси мониторинга mcwatch.online, у которого нет CORS) и весь форум
(/api/v1/forum/*).
Мимо бэкенда сайт ходит только в два места: api.mcsrvstat.us за пингом сервера на
странице режима и shop-api.goyland.ru за оплатой донатов.
Здесь только интерфейс: разделы, категории, темы, ответы, реакции, подписки, уведомления, поиск, жалобы и модерация. База, сессии и вся серверная логика — в бэкенде.
Аккаунт форума — это аккаунт в игре: своей регистрации нет. Вход — по одноразовой
ссылке из команды /auth в игре либо через привязанный Telegram, Discord, Яндекс или
Google. Сессия в HttpOnly-cookie. Роли и блокировки общие с игрой и выдаются в
админ-панели бэкенда, а не здесь.
Разделы и категории не зашиты в код — модератор создаёт их прямо в интерфейсе форума: на главной кнопки «+ Раздел», «+ Категория» и «+ Тема».
Документация для разработчика Minecraft-плагина: docs/forum-auth-api.md.
Автоматический: пуш в main запускает workflow «Deploy to GitHub Pages» — npm ci,
npm run build, копия index.html в 404.html ради клиентского роутинга, публикация
dist/.