The server
One Linux machine, or a Raspberry Pi, holds the room. Friends never run the server.
Install
On x86_64, aarch64, or armv7:
curl -fsSL https://ryme.chat/install | bash
The script downloads the published ryme-server binary and checks its SHA-256 before it installs anything. Root installs to /usr/local/bin. Anyone else gets ~/.local/bin. It does not start a process.
Docker runs that same server when you would rather keep it in a container.
Start
Set the address friends can actually reach, then run it. If that line is still 0.0.0.0, the invite only works on the same machine.
export RYME_PUBLIC=voice.example
ryme-server
The invite is printed once, as ryme://host:port/# and a certificate pin. Copy that whole line into the client. Lobby is already open.
Rooms
Add names in the data directory, one per line. A line starting with # is a note. Names are at most 32 characters. Lobby cannot be removed. A name that is not on the list does not become a room.
# /var/lib/ryme/channels, or ./ryme-data/channels
Ranked
Night
Restart the server after editing the file. Everyone in the call sees the list. Only the host edits it.
Settings
RYME_BIND— listen address. Default0.0.0.0:1542. This is UDP.RYME_PUBLIC—host,host:port, or[ipv6]:port. This is what the invite prints.RYME_DATA— where the certificate lives. Default./ryme-data.--new-invite— replace the certificate. Old invites stop connecting.
The data directory is mode 0700. The key file is mode 0600. Keep that directory. Copying it to a new machine keeps the same invite. Losing it means a new invite.
What gets logged
Listening, a peer connecting or leaving, a join, a leave, and a rejected handshake. The invite is not written on those lines. Audio and chat text are not logged.