Server CLI
Start, diagnose, configure, update, and discover standalone Remedia processes, and manage plugin hosts.
Commands available before native setup
The standalone release contains two executables in the same directory:
remedia-serveris a lightweight CLI that does not link FFmpeg.remedia-server-runtimeowns playback, WebSocket serving, and native FFmpeg 9 libraries.
These commands work without the FFmpeg shared libraries installed:
remedia-server --help
remedia-server --version
remedia-server --generate-config-file
remedia-server --list
remedia-server plugins list
remedia-server updateThe CLI starts the native runtime for serve (including bare remedia-server) and doctor. On Unix, serve replaces the CLI process with the runtime so systemd, signals, and exit codes refer to the real server. On Windows, the CLI launches and waits for the runtime process.
doctor can run when FFmpeg is missing: the CLI starts, forwards OS loader diagnostics and reports native checks as not checked. It exits nonzero if the native runtime cannot run. A configuration or environment error after loading the runtime is reported separately and does not imply that FFmpeg is missing.
Keep both executables from the release archive together. Set REMEDIA_SERVER_RUNTIME only when the native runtime is stored elsewhere. See native loading.
The standalone executable is called remedia-server. The one-command installers also provide a shorter remedia launcher. Both accept the same options.
Start a server
remedia-server
remedia-server serve --config ./remedia.config.json
remedia-server --config /etc/remedia/server.jsonRunning without a subcommand is equivalent to serve. The default configuration path is ./remedia.config.json, relative to the process working directory. A configuration file is required, and its contents are validated before the WebSocket listener opens.
When supervising a child server through a pipe, pass --shutdown-on-stdin-close to
serve and keep its standard input open. Closing the pipe requests graceful shutdown:
active transfers and playback stop, resources are released, and the CLI waits for the
runtime to exit. This works on Windows as well as Unix. Input bytes are discarded.
EOF triggers shutdown. Without the flag, stdin does not control server lifetime.
On Windows, terminating the CLI with SIGTERM from Node.js forcibly kills it and does
not request graceful shutdown of its child runtime.
Generate a configuration file
remedia-server --generate-config-file
remedia-server --generate-config-file ./server.jsonThe optional path defaults to ./remedia.config.json. Generation refuses to overwrite an existing file. On Unix, the new file is created with mode 0600.
The generated configuration uses loopback (127.0.0.1:8787) and contains a random password for username remedia. Credentials are stored only in the new configuration file. Media file and ordinary URL playback require explicit source allowlists.
Upgrade
remedia-server update
remedia-server upgrade
remedia-server update --no-ffmpegupgrade is an alias of update. It runs the verified platform installer embedded in the binary and defaults to the latest stable GitHub release, or the newest published prerelease if no stable release exists. Set REMEDIA_VERSION for an explicit release and REMEDIA_INSTALL_DIR for a custom install location.
The installer does not restart running server processes or manage services. Restart your service manually when ready. See installation for the supported targets, FFmpeg requirements, checksums, and path setup.
Detailed references
Initialize a configuration
Run remedia init (or remedia --config PATH init) to create a minimal configuration and random
local password. --generate-config-file [PATH] produces the same minimal JSON. Existing files are
never overwritten and passwords are never printed.