Network address
The server detects its own IP address at startup by scanning your machine’s network interfaces (os.networkInterfaces()). It picks the first non-internal IPv4 address it finds. If no external interface is available, it falls back to 127.0.0.1.
src/constants/ip.ts
If your machine has multiple active network interfaces (for example, both Ethernet and Wi-Fi), the server uses whichever external IPv4 address
os.networkInterfaces() returns first. If you need to control which interface is used, you can edit src/constants/ip.ts to hardcode a specific address and rebuild with npm run build.Ports
The server uses two fixed ports:| Service | Protocol | Port | Purpose |
|---|---|---|---|
| SOAP/HTTP | TCP | 8080 | Device description, ContentDirectory Browse, event subscriptions |
| SSDP | UDP | 1900 | UPnP multicast discovery (239.255.255.250) |
src/upnp/soap.ts for HTTP, src/upnp/ssdp.ts for SSDP). When the server starts, it logs:
Port
1900 is the standard SSDP port defined by the UPnP specification. Changing it would prevent DLNA clients from discovering the server automatically, since they send M-SEARCH multicast messages to 239.255.255.250:1900 by default.Device UUID
The server generates a fresh UUID every time it starts usingcrypto.randomUUID():
src/constants/uuid.ts
Because the UUID changes on every restart, some DLNA clients that cache device identifiers may display duplicate entries or take a moment to re-recognize the server. If this is disruptive, you can replace the
crypto.randomUUID() call in src/constants/uuid.ts with a hardcoded UUID string and rebuild.Friendly name
The name DLNA clients display in their device lists is set insrc/router.ts:
src/router.ts
friendlyName value in this file.
Manufacturer info
Themanufacturer and manufacturerURL fields in src/router.ts are included in the UPnP device description XML. Some clients display this information alongside the friendly name.
| Field | Default value |
|---|---|
manufacturer | 'Mark Auger' |
manufacturerURL | 'https://swimauger.com' |
To customize the server’s identity — friendly name, manufacturer, or manufacturer URL — edit the corresponding values in Restart the server after rebuilding for changes to take effect.
src/router.ts and rebuild: