alatyr-taverna — фэнтезийная таверна¶
Автоматически составлено агентом 06.08.2026 из github-audit.md, nginx-vps-configs.md и данных GitHub API. Требует ревью: путь к статическим файлам на VPS, домен, актуальность содержимого.
Быстрая справка¶
| Параметр | Значение |
|---|---|
| Тип | Статический сайт (React 19 + TypeScript + Vite 8) |
| GitHub | https://github.com/oswold1979/alatyr-taverna (приватный) |
| Домен | alatyr-taverna.ru |
| Хост | VPS 46.17.99.183 |
| Путь на VPS | /opt/alatyr/dist/ (уточнить, может быть /var/www/alatyr-taverna/) |
| Веб-сервер | nginx на VPS |
| Автодеплой | ⛔ отсутствует (задача 30) |
Стек¶
Из package.json:
- React 19.2.7 + react-dom + react-router-dom 7
- TypeScript ~6.0.2
- Vite 8.1.1 (dev + build)
- ESLint 10 + typescript-eslint 8
Структура репо¶
alatyr-taverna/
├── src/
│ ├── App.tsx, App.css
│ ├── main.tsx, index.css
│ ├── assets/ # изображения, статика
│ ├── components/ # реиспользуемые React-компоненты
│ ├── content/ # тексты (диалоги NPC, описания)
│ └── pages/ # страницы (главный зал, диалоги)
├── public/ # статика для index.html
├── index.html
├── package.json
├── tsconfig.*.json
├── vite.config.ts
└── eslint.config.js
Скрипты¶
npm run dev # локальный dev-сервер Vite (HMR)
npm run build # tsc -b && vite build → dist/
npm run lint # eslint .
npm run preview # предпросмотр prod-сборки локально
Контент (по коммитам)¶
Последние 5 коммитов (июль 2026):
1. 1150e99 (16.07) — Initial commit: базовая заготовка Алатырь
2. cd47361 (16.07) — Этап 2: главный зал, трактир Алатырь, Бажен Бухало
3. 85a2a5b (16.07) — Этап 3: диалог с Баженом, дерево из 15 реплик, полировка
4. 6442523 (16.07) — Этап 3.5: добавлен NPC Сыч — вор в тёмном углу
5. cb624f1 (17.07) — Этап 3.6: добавлен NPC Сильвиэн — эльфийка у окна
Формат: SPA с диалогами NPC, вероятно текстовый квест / roleplay-сайт.
Деплой на VPS (текущий, ручной)¶
Пока делается вручную:
# Локально
git clone git@github.com:oswold1979/alatyr-taverna.git
cd alatyr-taverna
npm ci
npm run build
# dist/ — готовые статические файлы
# Копируем на VPS
scp -r dist/* oswold@46.17.99.183:/opt/alatyr/dist/
nginx на VPS (см. nginx-vps-configs.md):
server {
listen 443 ssl http2;
server_name alatyr-taverna.ru;
root /opt/alatyr/dist;
index index.html;
# SPA-паттерн: все URL идут в index.html
location / {
try_files $uri $uri/ /index.html;
}
gzip on;
gzip_types text/css application/javascript;
# TLS от Let's Encrypt
ssl_certificate /etc/letsencrypt/live/alatyr-taverna.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/alatyr-taverna.ru/privkey.pem;
}
GitHub Actions — история¶
Текущее состояние (06.08.2026): каталог .github/workflows/ в репозитории отсутствует. Workflow был удалён.
Прошлые runs (25.07.2026):
- 2 запуска "Deploy Alatyr" — оба закончились failure
Задача 30 в TODO — восстановить автодеплой:
- Взять за образец deploy.yml из alatyr-service
- Адаптировать под React/Vite (нужен npm run build вместо Node.js server)
- Задеплоить готовый dist/ на VPS по SSH через rsync или scp
- Прописать SSH_PRIVATE_KEY и KNOWN_HOSTS в GitHub Secrets репозитория
Предлагаемый workflow (draft)¶
# .github/workflows/deploy.yml
name: Deploy alatyr-taverna
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Setup SSH
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Add VPS to known_hosts
run: |
mkdir -p ~/.ssh
ssh-keyscan -H 46.17.99.183 >> ~/.ssh/known_hosts
- name: Deploy to VPS
run: |
rsync -avz --delete dist/ oswold@46.17.99.183:/opt/alatyr/dist/
- name: Reload nginx (если нужно)
run: |
ssh oswold@46.17.99.183 "sudo systemctl reload nginx"
Требуемые GitHub Secrets в репозитории:
- SSH_PRIVATE_KEY — приватный ключ, публичная часть в ~oswold/.ssh/authorized_keys на VPS
Проверка после деплоя¶
# Извне
curl -I https://alatyr-taverna.ru
# Должен вернуть 200 OK, Content-Type: text/html
# На VPS
ls -la /opt/alatyr/dist/
sudo tail -f /var/log/nginx/alatyr-taverna-access.log
Известные проблемы¶
- Workflow удалён — надо восстановить (задача 30)
- Дубликат репо
alatyr— старая копия, к архивации (задача 31a) - Путь
/opt/alatyr/dist/требует sudo для записи → workflow должен деплоить от юзераoswold, с sudo только для reload nginx (или через deploy-user с ограниченным sudoers)
Связанные файлы¶
- github-audit.md — аудит всех GitHub-репозиториев
- nginx-vps-configs.md — nginx-конфиг для alatyr-taverna.ru
- vps-hostkey-vm-mini.md — общее описание VPS