Hosting a server
moin-server hosts a Moin community. It holds the community's identity and its rooms, decides who may join, and keeps track of who is online and in which room. Calls are set up between the apps themselves; the server runs the control connection every member shares.
One server hosts one community. Everyone who joins it sees the same rooms and the same members.
Choose a setup
Every setup uses the same program and the same kind of configuration file. What changes is how much of the network your server provides itself.
| Coordinator only | Behind a reverse proxy | Self-contained | |
|---|---|---|---|
| People join with | the server ID | your hostname | your hostname |
| Ports to open | none | your proxy's HTTPS, plus one UDP port | TCP 443, UDP 443, UDP 7842 |
| Domain name | no | yes | yes |
| TLS certificate | no | your proxy's | the server's own |
| Uses public relay and discovery servers | yes | yes | no |
Coordinator only is where to start. It runs on a laptop, a home server or a small VPS, with no port forwarding and no domain name. Friends reach it through the public relay and discovery servers Moin uses by default. You share the server ID or an invite link.
Behind a reverse proxy gives the community a permanent address such as chat.example.com, served by a proxy you already run. TLS ends at the proxy and Moin serves one small HTTP endpoint behind it. One UDP port still has to reach the server directly.
Self-contained runs the relay, peer discovery and address probing on your own server and turns the public defaults off, so the community works without infrastructure run by anyone else. It needs a public IP address, a TLS certificate and three open ports.
You can switch setups later. The server's identity lives in its data directory, not in its network setup, so members keep their access and roles. Moving from coordinator only to a hostname does mean members add the server again using the hostname.
What every setup needs
- The server installed. See Installing.
- A configuration file in TOML, passed with
--config. See Configuration. - A data directory, created on first start. It holds the server's identity and everything it remembers. Keep it across restarts and back it up: without it you have a new server that nobody has joined. See Running the server.
- An administrator. Claim the community with a bootstrap secret and manage it from the app, or use the admin command line.
- Rooms. The guides use a managed room list, which administrators edit in the app while the server runs. A fixed list in the configuration file also works; see Rooms.
Passwords, invitations, moderators and member limits are optional and can be added at any time. See Members and access.
Licence
Running moin-server is free for communities of your own: yourself, your friends, your group, or the company or organisation you are part of. There is no limit on slots, rooms or servers.
Hosting Moin servers for other people as a service, paid or free, and redistributing the server need our permission. Write to contact@moin.chat if that is what you want to do.
The server licence has the full terms, and a copy comes with every download.
