Remedia

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-server is a lightweight CLI that does not link FFmpeg.
  • remedia-server-runtime owns 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 update

The 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.json

Running 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.json

The 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-ffmpeg

upgrade 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.

On this page