Remedia

Server overview

Install remedia-server, configure it, start it, and connect to it with @remedia/client.

Run remedia-server on the machine that should decode and send audio. Bots connect with @remedia/client and keep their own Discord Gateway connections. Multiple bots can share server credentials while owning separate sessions.

Follow the remote quickstart to install and connect a bot. Use the pages below to configure and operate that deployment.

Deployment tasks

TaskGuide
Install a release or choose an installer modeInstallation
Pull the published container imageDocker
Allow media and configure accountsConfiguration
Load credentials from environment filesEnvironment and secrets
Check a server and inspect local processesDiagnostics
Expose the listener through TLSDeployment
Register a plugin serviceManage hosts

Things to know

  • Files and URLs are opened by the server. A { file } source is a path on the server, inside media.allowedFileRoots. Buffers and Readables cannot be sent to a server.
  • Sessions are in memory. If the connection drops, the client can resume within sessionResumptionTimeoutSeconds. Restarting the server ends all sessions and playback.
  • Each server is independent. @remedia/client chooses a node for new guilds. Servers do not coordinate or migrate players. See Nodes and routing.
  • Security. The server binds to loopback by default and has no TLS of its own. For remote access, put it behind a TLS reverse proxy and restrict outbound network access. See Deployment.
  • Plugins. Register plugin hosts with remedia-server plugins install. See Plugins overview.

Raw protocol

You normally never need the WebSocket protocol directly. If you are writing your own client, see the WebSocket RPC protocol, which includes a hand-written connection example.

On this page