Files
moonwell-web/README.md
T
2026-03-11 22:04:36 +04:00

116 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Moonwell Web
Laravel 12-приложение с WoW-лендингом и публичной регистрацией игрового аккаунта напрямую в auth-базу AzerothCore.
## Что уже сделано
- Развёрнут Laravel `v12.12.1` со свежим `laravel/framework v12.x`.
- Главная страница оформлена в тёмной cinematic-стилистике с компоновкой, вдохновлённой официальным сайтом WoW.
- Форма регистрации создаёт аккаунт напрямую в `acore_auth` через отдельное соединение `azerothcore_auth`.
- При регистрации заполняются таблицы `account`, `realmcharacters` и `account_access`.
- Проект подготовлен под Laravel Sail: приложение работает в контейнере, а AzerothCore auth DB берётся с хоста через `host.docker.internal:3306`.
## Как запускать через Sail
```bash
cp .env.example .env
./vendor/bin/sail up -d
./vendor/bin/sail composer install
./vendor/bin/sail artisan key:generate
./vendor/bin/sail artisan migrate
```
Сайт будет доступен на `http://localhost:8080`.
## Деплой на Ubuntu
Скрипт деплоя лежит в `scripts/deploy-ubuntu.sh`. Он рассчитан на сервер, где уже установлены:
- `docker`
- `docker compose`
Перед первым запуском проверь `.env`:
- `APP_URL`
- `APP_PORT`
- `FORWARD_DB_PORT`
- `AZEROTHCORE_AUTH_DB_HOST`
- `AZEROTHCORE_AUTH_DB_PORT`
- `AZEROTHCORE_AUTH_DB_DATABASE`
- `AZEROTHCORE_AUTH_DB_USERNAME`
- `AZEROTHCORE_AUTH_DB_PASSWORD`
Запуск:
```bash
chmod +x scripts/deploy-ubuntu.sh
./scripts/deploy-ubuntu.sh
```
Что делает скрипт:
- создаёт `.env` из `.env.example`, если файла ещё нет;
- собирает контейнер приложения;
- ставит production-зависимости Composer;
- генерирует `APP_KEY`, если он пустой;
- поднимает контейнеры;
- ждёт готовности MySQL;
- выполняет `php artisan migrate --force`;
- прогревает `config`, `route` и `view` кэш.
Полезные флаги:
```bash
./scripts/deploy-ubuntu.sh --skip-build
./scripts/deploy-ubuntu.sh --skip-cache
```
## Как это связано с AzerothCore
По умолчанию Sail-контейнер подключается к auth-базе core-сервера так:
- хост: `host.docker.internal`
- порт: `3306`
- база: `acore_auth`
- пользователь: `root`
- пароль: `password`
Это рассчитано на вашу docker-сборку из `/home/sindo/moonwell-core`, где MySQL опубликован наружу на порт `3306`.
## Важные переменные
Основные настройки лежат в `.env.example`:
- `APP_PORT=8080`
- `FORWARD_DB_PORT=3307`
- `DB_HOST=mysql`
- `AZEROTHCORE_AUTH_DB_HOST=host.docker.internal`
- `AZEROTHCORE_AUTH_DB_PORT=3306`
- `AZEROTHCORE_AUTH_DB_DATABASE=acore_auth`
- `AZEROTHCORE_AUTH_DB_USERNAME=root`
- `AZEROTHCORE_AUTH_DB_PASSWORD=password`
## Архитектура
- `compose.yaml` — Sail-окружение с `laravel.test` и локальным MySQL для самого сайта.
- `config/database.php` — отдельное соединение `azerothcore_auth`.
- `config/moonwell.php` — настройки realm/landing и регистрации.
- `app/Services/AzerothCoreAccountRegistrar.php` — SRP6-совместимое создание учётной записи AzerothCore.
- `app/Http/Controllers/LandingController.php` — данные лендинга и обработка формы.
## Проверка
Вне Sail я уже проверил:
- рендер лендинга по HTTP;
- компиляцию Blade;
- маршруты;
- ручную валидацию `POST /register`;
- совпадение SRP6 verifier с формулой AzerothCore.
Для полноценного `php artisan test` внутри контейнера используйте:
```bash
./vendor/bin/sail artisan test
```