deploy: extend login healthcheck to entergame

This commit is contained in:
server
2026-04-14 10:33:04 +02:00
parent d81b6fda8e
commit 2353e0fc8d
3 changed files with 48 additions and 5 deletions

View File

@@ -30,6 +30,9 @@ The check performs the real two-step Metin login flow without a GUI client:
7. Send `LOGIN2` with `login` + `login_key`.
8. Verify `EMPIRE`.
9. Verify `LOGIN_SUCCESS4`.
10. Select a character slot.
11. Send `ENTERGAME`.
12. Verify `MAIN_CHARACTER`, `PHASE_GAME`, `TIME`, and `CHANNEL`.
This is an end-to-end login verification, not just a TCP port check.
@@ -38,9 +41,11 @@ This is an end-to-end login verification, not just a TCP port check.
`metin-login-healthcheck.sh` does the following:
- creates a temporary account in MariaDB
- lets `metin_login_smoke` create a temporary character when the account is empty
- runs `metin_login_smoke`
- verifies a successful auth + channel login
- deletes the temporary account on exit
- verifies a successful auth + channel + `ENTERGAME` flow
- deletes the temporary account and temporary character rows on exit
- passes the configured client version expected by the server
It is intended for manual admin use on the VPS.
@@ -69,6 +74,16 @@ sudo -iu mt2.jakubkadlec.dev env METIN_LOGIN_SMOKE_PASSWORD='<password>' \
173.249.9.66 11000 11011 <login> --password-env=METIN_LOGIN_SMOKE_PASSWORD
```
If you want the smoke client to create a temporary character when the account is empty:
```bash
sudo -iu mt2.jakubkadlec.dev env METIN_LOGIN_SMOKE_PASSWORD='<password>' \
/home/mt2.jakubkadlec.dev/metin/build/server-src/bin/metin_login_smoke \
173.249.9.66 11000 11011 <login> --password-env=METIN_LOGIN_SMOKE_PASSWORD \
--create-character-name=smoketestchar \
--client-version=1215955205
```
## Security Notes
This does not open a new public network surface. It is a local operational tool.