25ad97555f
Voice goes through a separate relay (moonwell-voice-relay, from the MoonWell client repo), never the world socket. mangosd only vouches: `.mwvoice` answers the player with an HMAC-signed ticket and the relay address as an addon line (prefix MWV), and every 250 ms the world thread sends the relay each character in the world: faction, map, instance, position, group and guild, so no client can claim a place, group or guild of its own. The feed is read after the map update, under the lock that keeps async packets out. Sends are counted and logged every 30 s. MoonWell.Voice.* in mangosd.conf (off by default); the production compose adds the voice-relay container (UDP 3725) and the voice_secret secret, deploy/local enables voice against a relay on the Windows host. Checked: the changed units build in vmangos-buildenv; a ticket and a feed datagram made by this code verify in the relay tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
50 lines
1.4 KiB
YAML
50 lines
1.4 KiB
YAML
# Paths are relative to deploy/production (the first Compose file).
|
|
x-local-server: &local-server
|
|
image: vmangos-local:dev
|
|
services:
|
|
db:
|
|
restart: "no"
|
|
ports: ["127.0.0.1:13306:3306/tcp"]
|
|
realmd:
|
|
<<: *local-server
|
|
# mangosd builds the shared image once; parallel exports to one tag race.
|
|
build: !reset null
|
|
restart: "no"
|
|
depends_on:
|
|
realm-config:
|
|
condition: service_completed_successfully
|
|
ports: !override ["127.0.0.1:3724:3724/tcp"]
|
|
mangosd:
|
|
<<: *local-server
|
|
build:
|
|
args:
|
|
REQUIRE_LAUNCHER_TICKETS: "OFF"
|
|
restart: "no"
|
|
depends_on:
|
|
realm-config:
|
|
condition: service_completed_successfully
|
|
ports: !override ["127.0.0.1:8085:8085/tcp"]
|
|
environment:
|
|
CONSOLE_ENABLE: "1"
|
|
MOONWELL_VOICE_ENABLE: "1"
|
|
MOONWELL_VOICE_ADDRESS: 127.0.0.1:3725
|
|
MOONWELL_VOICE_FEED: host.docker.internal:3726
|
|
extra_hosts: ["host.docker.internal:host-gateway"]
|
|
secrets: [db_password, voice_secret]
|
|
stdin_open: true
|
|
tty: true
|
|
volumes:
|
|
- ../local/data:/data:ro
|
|
realm-config:
|
|
profiles: !reset []
|
|
environment:
|
|
REALM_ADDRESS: 127.0.0.1
|
|
REALM_NAME: Local Vanilla
|
|
secrets:
|
|
db_password:
|
|
file: ../local/secrets/db_password
|
|
db_root_password:
|
|
file: ../local/secrets/db_root_password
|
|
voice_secret:
|
|
file: ../local/secrets/voice_secret
|