chore(conf): revert seed defaults to stock so fresh installs auto-connect

The previous seed pinned auth/realmlist to production values
(`hsrwow.net` + RealmServerPort 47497), which silently bricked every
fresh local install: after auth login the realm hand-off pointed
clients at our public host, where their local credentials don't
exist, and they were dropped within a frame.

Seed now matches stock AzerothCore for solo dev:
- realmlist.address  = 127.0.0.1   (was hsrwow.net)
- RealmServerPort    = 3724        (was 47497)

Production owners apply both overrides post-dbimport via a one-shot
SQL UPDATE + an authserver.conf edit. Documented end-to-end in
contrib/fractured-dev-extras/BUILD-NATIVE.md (new "Production
deployment overrides" section) and the disconnect-after-login
symptom is called out in CLIENT-PATCHES.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Docker Build
2026-05-09 12:44:35 -04:00
parent 1811c0ec35
commit ecd8eacb1f
4 changed files with 84 additions and 16 deletions
+42 -6
View File
@@ -17,17 +17,53 @@ prerequisites; everything here is just the deltas you need on top of it.
## Fractured client + network defaults ## Fractured client + network defaults
Production Fractured uses a non-default **auth** port so the client realmlist can be: Stock-friendly defaults for fresh local installs. A `git clone` ->
`docker compose up` (or native install) lets a single developer log in
from the same machine without any post-install config tweaks.
- **`authserver.conf` -> `RealmServerPort`** = **3724** (stock WoW). A
patched `Wow.exe` with `set realmlist 127.0.0.1` (no port) reaches
the auth handshake.
- **`realmlist` table -> `port`** is the **world** port (default
**8085**, matches `WorldServerPort` in `worldserver.conf.dist`).
Auth tells the client to handshake to this port for the world hand-off.
- **`realmlist` table -> `address`** defaults to **`127.0.0.1`** in the
base SQL. The auth server hands this address to clients after login,
so 127.0.0.1 means "talk to the world server on the same machine
auth is running on" -- correct for solo dev. **Override on production
deploys**, see *Production deployment overrides* below.
### Production deployment overrides
Production Fractured runs on a remote VPS at `hsrwow.net` with auth
bound to a non-stock port (47497 -- 3724 was unavailable on that host).
Apply the overrides **once per fresh dbimport** on the production box.
```sql
-- Run against acore_auth on the production database after first dbimport:
UPDATE realmlist
SET address = 'hsrwow.net',
port = 8085 -- world port; leave at 8085 unless changed
WHERE id = 1;
```
Edit the production `authserver.conf` (NOT `authserver.conf.dist`)
to bind the auth listener to the production port:
```ini
RealmServerPort = 47497
```
Restart the auth server. Production clients connect with:
```text ```text
set realmlist hsrwow.net:47497 set realmlist hsrwow.net:47497
``` ```
(Patched 3.3.5 clients that support `host:port`; otherwise use port forwarding to **3724**.) The Fractured-patched 3.3.5 client supports the `host:port` syntax;
stock 3.3.5 clients do not, so any contributor distributing the
- **`authserver.conf``RealmServerPort`** must be **`47497`** (matches `authserver.conf.dist` in this repo). client bundle for production must include the patched `Wow.exe` from
- **`realmlist` table → `port`** is the **world** port (default **8085**, same as `WorldServerPort` in `worldserver.conf.dist`), **not** 47497. the GitHub release.
- **`realmlist``address`** defaults to **`hsrwow.net`** in base SQL; change if your public hostname differs.
--- ---
@@ -61,6 +61,25 @@ Fractured server builds ship the Paragon DBC overlay as a SQL
migration (see **Server-side Paragon DBC overlay** below); fresh migration (see **Server-side Paragon DBC overlay** below); fresh
checkouts do **not** need the patched DBCs copied into `data/dbc/`. checkouts do **not** need the patched DBCs copied into `data/dbc/`.
If the client **logs in** successfully but **disconnects immediately**
when entering the realm: the auth server is handing your client the
wrong world-server address. On a fresh local install the seed defaults
to `127.0.0.1` (commit landing this paragraph). If your DB was
imported from an older Fractured checkout, the seed may still point at
`hsrwow.net`, which sends the client to our production world server
instead of yours. Fix:
```bash
# Docker:
docker exec ac-database mysql -uroot -ppassword \
-e "UPDATE acore_auth.realmlist SET address='127.0.0.1' WHERE id=1;"
docker compose restart ac-authserver
```
Substitute your public hostname/IP for `127.0.0.1` if remote players
will be connecting. See `BUILD-NATIVE.md` -> *Production deployment
overrides* for the full list of values to set on a production box.
--- ---
## Server-side Paragon DBC overlay (automatic) ## Server-side Paragon DBC overlay (automatic)
+16 -5
View File
@@ -42,15 +42,26 @@ CREATE TABLE `realmlist` (
-- --
-- Dumping data for table `realmlist` -- Dumping data for table `realmlist`
-- --
-- Fractured defaults: `address` / `port` are the WORLD server (must match -- Defaults are tuned for fresh local installs: `address` is what the auth
-- WorldServerPort in worldserver.conf). Client auth uses RealmServerPort from -- server hands clients after login as the WORLD server endpoint. Stock
-- authserver.conf (Fractured dist: 47497), e.g. set realmlist hsrwow.net:47497 -- 127.0.0.1 means "the same box auth is running on", so a fresh
-- Adjust `localAddress` if your LAN/internal routing differs. -- `git clone` -> `docker compose up` works without any post-install
-- tweaks for a developer hosting on their own machine.
--
-- Production deployments must override `address` after first dbimport,
-- e.g.:
-- UPDATE realmlist SET address = 'your.public.host', port = 8085 WHERE id = 1;
-- See contrib/fractured-dev-extras/BUILD-NATIVE.md for the full deploy
-- checklist (auth/world ports, firewall, public hostnames).
--
-- `port` is the WORLD server port (must match WorldServerPort in
-- worldserver.conf). The auth-server LISTEN port is separately configured
-- via RealmServerPort in authserver.conf (stock default 3724).
LOCK TABLES `realmlist` WRITE; LOCK TABLES `realmlist` WRITE;
/*!40000 ALTER TABLE `realmlist` DISABLE KEYS */; /*!40000 ALTER TABLE `realmlist` DISABLE KEYS */;
INSERT INTO `realmlist` VALUES INSERT INTO `realmlist` VALUES
(1,'Fractured WoW','hsrwow.net','127.0.0.1','255.255.255.0',8085,0,0,1,0,0,12340); (1,'Fractured WoW','127.0.0.1','127.0.0.1','255.255.255.0',8085,0,0,1,0,0,12340);
/*!40000 ALTER TABLE `realmlist` ENABLE KEYS */; /*!40000 ALTER TABLE `realmlist` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@@ -53,12 +53,14 @@ MaxPingTime = 30
# #
# RealmServerPort # RealmServerPort
# Description: TCP port the auth server listens on (login handshake). # Description: TCP port the auth server listens on (login handshake).
# Fractured production: match your client realmlist host:port, e.g. # 3724 is the stock WoW default; clients with `set realmlist <host>`
# set realmlist hsrwow.net:47497 # (no port) connect here. Production deployments that cannot bind
# requires RealmServerPort = 47497 and firewall/NAT to this process. # 3724 (NAT, conflicting service, etc.) can set this to e.g. 47497
# Default: 3724 (stock WoW); Fractured dist default: 47497 # and have clients use `set realmlist <host>:47497` -- the
# Fractured-patched Wow.exe supports the host:port syntax.
# Default: 3724
RealmServerPort = 47497 RealmServerPort = 3724
# #
# #