Files
DndGamePlayer/docs/GITEA_AUTO_UPDATE.md
T
Ivan Fontosh 7c858ba633 feat(phase1): rebrand to TTRPG Player and drop Git updates feed
Rename product to TTRPG Player (TTRPGPlayer / com.ttrpgplayer.app), use .ttrpg.zip for new saves while keeping .dnd.zip import, accept TTRPG- and DND- license keys on client, and remove sync-update-feed plus CI push to DndGamePlayerUpdates.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-17 20:56:14 +08:00

53 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.
# Автообновления TTRPG Player
## Текущее состояние (фаза 1)
- Продукт переименован в **TTRPG Player** / **НРИ Плеер** (`productName`: `TTRPGPlayer`, `appId`: `com.ttrpgplayer.app`).
- CI по тегу `v*` **только собирает** установщики в каталог `release/` (Win NSIS, Linux AppImage x64/arm64). Пуш в Git-репозиторий **`DndGamePlayerUpdates`** **отключён**; скрипт `scripts/sync-update-feed.mjs` удалён.
- В `package.json``build.publish.url` стоит заглушка `https://updates.invalid.ttrpg/` до настройки реального хоста.
- Секреты **`DND_UPDATE_FEED_URL`**, **`DND_UPDATES_SERVER`**, **`UPDATES_REPO`**, **`DND_UPDATES_PUSH_TOKEN`** в workflow **больше не используются** — их можно удалить из настроек репозитория.
- Публичный репозиторий **`DndGamePlayerUpdates` на Gitea можно удалить** (история с бинарниками ~4 GiB больше не нужна).
Клиент по-прежнему использует **electron-updater** (generic provider). Пока URL заглушка, проверка обновлений в установленной сборке завершится ошибкой сети — это ожидаемо до фазы 2.
## Фаза 2 (план): статический VPS
Цель: один HTTPS- origin без Git LFS и без роста репозитория.
1. VPS с **nginx** (или аналог), TLS (Let's Encrypt).
2. Каталог, например `/var/www/ttrpg-updates/`, с **фиксированными именами** файлов (без версии в имени установщика) или с semver в `latest*.yml` и прямыми URL на те же имена.
3. CI или ручной шаг: **rsync/scp** артефактов из `release/` на сервер после тега `v*`.
4. В приватном репозитории кода — секрет **`TTRPG_UPDATE_FEED_URL`** (со слэшем в конце), подстановка в `electron-builder` при сборке релиза.
5. Mac: ручная выкладка `.dmg` / `latest-mac.yml` на тот же origin (см. `docs/MANUAL_MAC_UPDATE_UPLOAD.md`).
Детали CI для VPS будут добавлены отдельным PR после выбора хоста и схемы имён файлов.
## Локальная сборка релиза
```bash
npm run pack # Win (на Windows) или см. CI
npm run pack:linux # Linux AppImage
npm run pack:mac # macOS (на Mac)
npm run release:info # версия и пример тега vX.Y.Z
```
Артефакты: `TTRPGPlayer-Setup-<version>.exe`, `TTRPGPlayer-<version>-<arch>.AppImage`, и т.д. (см. `package.json``build`).
## Gitea Actions (act_runner)
- Workflow: `.gitea/workflows/release.yml`
- Триггер: push тега `v*`
- Runner label: `ubuntu-22.04` (как в настройках раннера)
Если job падает на Wine/NSIS — см. комментарии в workflow (сборка Win на Linux без i386).
## Лицензия и обновления
Проверка обновлений доступна только при **активной лицензии** (как и раньше). Продуктовые ключи на клиенте: **`TTRPG-…`** и устаревшие **`DND-…`**; новые ключи выдаёт сервер лицензий (отдельный репозиторий `DndGamePlayerLicenseServer` — смена префикса на сервере вне этого PR).
## Устаревшая схема (не использовать)
Раньше артефакты пушились в публичный Git **`DndGamePlayerUpdates`**, ветка `updates`, URL вида
`https://git.mailib.ru/.../DndGamePlayerUpdates/raw/branch/updates/`.
Эта схема приводила к раздуванию репозитория, конфликтам merge, ENOSPC на раннере и HTTP 500 при `git push`. Она **снята с поддержки**.