Skip to content

There Is No Config File

NoMercy MediaServer has no configuration file. There is no .conf, .ini, .yaml, or .json file to edit. Settings are controlled in two places:

  • Startup flags (or environment variables) — port, IP address, log level, and a few launch-time options
  • Web UI — everything else: libraries, users, encoder settings, and general preferences

Open http://<your-server-ip>:7626 after the server starts to reach the dashboard.


Startup Flags

Pass flags directly when launching the server binary. Flags are processed by NoMercyMediaServer (the service binary), not by the nomercy CLI wrapper.

FlagShortDefaultDescription
--internal-port-i7626Port the server listens on for all client traffic
--external-port-x7626Port reported to the NoMercy API for external access (set this if your router NATs to a different port)
--internal-ipauto-detectedLAN IP address override — overrides the address the server advertises on your local network
--external-ipauto-detectedPublic IP override — overrides the externally reported address
--loglevel-lInformationLog verbosity. Valid values: Verbose, Debug, Information, Warning, Error, Fatal
--serviceoffRun as a platform service (Windows SCM, Linux systemd, macOS launchd). Sets working directory to the executable’s location.
--pipe-nameplatform defaultNamed pipe (Windows) or Unix socket filename used for the nomercy CLI IPC channel
--dev-doffDevelopment mode — points the server at api-dev.nomercy.tv and auth-dev.nomercy.tv instead of production
--seedoffSeeds the database with sample data on first start

Example:

# Linux — run on a non-default port with verbose logging
./NoMercyMediaServer --internal-port 8080 --loglevel Debug

# Windows — run as a Windows service
NoMercyMediaServer.exe --service

Environment Variables

Every flag has a matching environment variable. Environment variables are applied when the corresponding flag is not passed. This is the primary way to configure Docker deployments.

VariableEquivalent FlagExample
NOMERCY_INTERNAL_PORT--internal-port7626
NOMERCY_EXTERNAL_PORT--external-port7626
NOMERCY_INTERNAL_IP--internal-ip192.168.1.100
NOMERCY_EXTERNAL_IP--external-ip1.2.3.4
NOMERCY_LOG_LEVEL--loglevelDebug
NOMERCY_DEV--devtrue
NOMERCY_SEED--seedtrue
NOMERCY_PIPE_NAME--pipe-namenomercy-ipc

Docker: The HOST_IP Requirement

When running in Docker, the container cannot auto-detect your host machine’s LAN IP. You must supply it via the NOMERCY_INTERNAL_IP environment variable, which the provided compose files map from a HOST_IP shell variable.

# Set HOST_IP to your machine's LAN IP before running compose
export HOST_IP=$(hostname -I | awk '{print $1}')

docker compose up -d

The compose file contains:

environment:
  - NOMERCY_INTERNAL_IP=${HOST_IP}

If you skip this step, the server starts but clients on other devices may not be able to discover or connect to it. You can also hard-code the value directly in the compose file instead of using the shell variable.

For GPU-accelerated transcoding, use the matching compose variant:

docker compose -f docker-compose.nvidia.yml up -d   # NVIDIA
docker compose -f docker-compose.intel.yml up -d    # Intel Quick Sync
docker compose -f docker-compose.amd.yml up -d      # AMD

Adding Libraries via the Web UI

After first login, add your media libraries through the web dashboard. Navigate to Settings > Libraries, then click Add Library. Choose the library type (Movies, TV Shows, or Music), give it a name, and select the folder path where your media files live. The server will begin scanning immediately.

Library paths must be accessible to the server process. For Docker, this means the folder must be mounted as a volume in your compose file. The provided compose template includes commented-out volume entries under /media/movies, /media/tv, and /media/music — uncomment and adjust those paths to match your actual media locations before starting the container.


Port Forwarding

To access your server from outside your home network, forward port 7626 (or whichever port you configured) on your router to your server’s LAN IP. Once a certificate is issued during first-run setup, the server uses HTTPS automatically.


Next Steps