For self-hosters
Run it yourself.
Running the server yourself is the normal way to use Gryt. This page is the shortest way from wherever you are now to the guide that fits.
Getting one up
Five ways in, sorted by how much you have to know, not by which is best. Pick the first one you can already do.
- Nothing you have not already got
- A terminal, on Linux or macOS
The gryt CLI
Eight questions with sensible defaults, and it writes the Compose files for you. Needs Docker.
Guidebashcurl -fsSL https://get.gryt.chat | sh - Windows, and Node.js 22.13
Windows
A zip, one config file and start.bat. Node has to be 22.13 or newer for its built-in SQLite.
Guide - Docker, and somewhere to put it
Docker Compose
A compose file and an .env, both grabbed with curl. What most community servers end up on.
Guidebashdocker compose up -d - A Kubernetes cluster
Helm chart
ops/helm/grytin the monorepo, with a README and example values. There’s no published chart repo yet, so this links to the chart itself.The chartbashhelm install my-gryt ./ops/helm/gryt
What you are running
A Node server for accounts and messages, a Go voice server, S3-compatible storage, and an image worker. Voice is WebRTC over UDP, and it's the one part a reverse proxy or a tunnel can't carry for you.
Letting people reach it
The part that decides whether voice works for anybody who isn't sitting on your own network.
- Reaching it from outsideThe addresses to set, the UDP port to open, and why a reverse proxy does not cover voice.
- No domain, just an IPWhat works and what does not when there is no name pointing at the box.
- TLS with CaddyThe server speaks plain HTTP, so a domain means something in front of it.
- Cloudflare TunnelHTTPS and WebSockets without opening those ports. Voice still needs its own UDP port reachable.
- TailscaleA server nobody outside your tailnet can see, which is a reasonable answer for a group of friends.
Running it properly
The settings that start to matter once it is up and someone other than you is using it.
- ConfigurationEvery setting each service takes, and the handful that span more than one of them.
- Roles and permissionsWhat people are allowed to do on your server, and how to decide it.
- Who can joinWhether your server takes guests, accounts, or both, and what each choice costs you.
- Custom emojiUploading them, and importing a pack from emoji.gg or BetterTTV with a link.
- Rate limitingHow the server decides somebody is going too fast, and what it does about it.
- MonitoringMetrics and health endpoints, for when you want to know before somebody tells you.
- BackupsWhat to copy, and why copying gryt.db on its own can hand you an empty database.
Tools and when it breaks
- grytA terminal manager: create a server profile, edit its settings with validation, start and stop the deployment it writes.
- Voice debuggingThe page to open when voice will not connect. Start here rather than in the server logs.
- TroubleshootingEverything else that goes wrong, and what it usually turns out to be.
Why Gryt covers who you’re trusting, and with what. The hosting section of the docs has the full set of guides.