Adds new "deploy" job in .gitea/workflows/ci.yml that runs on push
to main (after PR is merged). Builds production bundle and rsyncs
it to /var/www/rublox-player/build/ on both production servers
(S1 VM 124 via NAT 1998, S2 VM 124 directly via runner network).
Uses Gitea Secrets:
- DEPLOY_SSH_KEY: dedicated ed25519 key for CI, pubkey already
on ~min/.ssh/authorized_keys on both VM 124
- KNOWN_HOSTS: host-keys of both targets to prevent MITM
Also updates CONTRIBUTING.md:
- Maintainer workflow section explaining why even Lead works via PR
- Hotfix flow (always via PR, never direct push to main)
- DevPanel as fallback if CI deploy is broken
3 блокера перед запуском opensource-контрибьюторов:
1. CI Lint+Format убран format:check (отдельная формат-неделя).
Secret-scan переехал с docker run на нативный trufflehog install.
2. Ассеты (106 МБ kubikon-assets/) в Gitea Releases:
https://git.rublox.pro/rublox/player/releases/tag/assets-v1
npm run fetch-assets + postinstall.
3. PlayerAuth поддерживает ?standalone=1 URL-параметр
(раньше только через VITE_STANDALONE в .env).
Тест онбординга v2: микро-правка в плеере для проверки полного цикла
PR (clone → install → build → commit → push → merge).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Юзер указал что вся документация opensource-репо должна быть на русском.
Также:
- .env.example комменты на русском
- package.json description на русском
- Описания org и repo в Gitea обновлены через API
Open-source web player for Rublox games, dual-licensed under
AGPL-3.0 + Commercial.
Highlights:
- Babylon.js 7 + React 18 + Vite 5 stack
- Self-contained engine (~46k lines): BlockManager, ModelManager,
PlayerController, ScriptSandboxWorker, MultiplayerSync, 30+ GD
gamemodes
- Configurable backend via VITE_API_BASE and friends — works against
staging (dev-api.rublox.pro) out of the box
- Standalone mode (VITE_STANDALONE=true) loads a bundled sample game
for first-run without any backend
- Full docs: README, ARCHITECTURE, CONTRIBUTING, SECURITY, CHANGELOG
- Lint + format scaffolding (ESLint + Prettier + EditorConfig)
- Legal: LICENSE (AGPL-3.0), LICENSE-COMMERCIAL.md, CLA.md, COPYRIGHT.md
- Issue templates: bug_report, feature_request, security_disclosure
Removed before public release:
- frontend_deploy.py (contained production SSH credentials)
- ~27 admin endpoints (kept in private repo)
- Hard-coded internal URLs and IPs
- All previous git history (clean repo init)