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
| Task | Guide |
|---|---|
| Install a release or choose an installer mode | Installation |
| Pull the published container image | Docker |
| Allow media and configure accounts | Configuration |
| Load credentials from environment files | Environment and secrets |
| Check a server and inspect local processes | Diagnostics |
| Expose the listener through TLS | Deployment |
| Register a plugin service | Manage hosts |
Things to know
- Files and URLs are opened by the server. A
{ file }source is a path on the server, insidemedia.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/clientchooses 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.