Skip to content

Repository files navigation

PfauMC

Сайт 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/.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages