Operators
Running a RIM server: installing it with Docker Compose, upgrading and backing it up, watching it, switching features off, and running a public relay.
Install and run
- Self-hosting a RIM serverdeploy/compose.yml runs one RIM server on one domain: rim-server with RIM_ROLE=both (it hosts workspaces and is its users' relay), PostgreSQL 17, the web client, and Caddy terminating TLS. Caddy sends /api (with …rim-server/docs/self-hosting.md
- Transactional EmailRIM sends transactional email for password resets, invites, and notification digests. This document covers the RIM_SMTP_* config matrix, TLS modes, the three wired flows, retry policy, and the "unconfigured → log-only" …rim-server/docs/email.md
Operations
- Audit retentionrim-server keeps two audit records, and retention treats them differently:rim-server/docs/operations/audit-retention.md
- Background jobsrim-server runs these jobs inside its own process on a timer; there is no cron to set up. Each starts with the server and stops when it shuts down. A run that fails logs an error and the next run tries again. More than …rim-server/docs/operations/background-jobs.md
- A closed company serverA company that runs a RIM server for its own people can close it to the rest of the network for direct messages, or open it to named partner servers only. Inside, everyone shares the company's workspace and talks …rim-server/docs/operations/closed-company-server.md
- Instance featuresAn operator can switch off optional modules of rim-server with RIM_FEATURES_DISABLED. Unset, nothing changes: every feature works as before, except that email reports unavailable when SMTP is not configured, which is …rim-server/docs/operations/features.md
- Metricsrim-server exposes Prometheus metrics in the text exposition format at GET /metrics on a listener of its own. The API port never serves them.rim-server/docs/operations/metrics.md
- Public relay runbookThe public relay is the server anyone's app can use as its relay: accounts, devices, profile cards, the queue of what other servers send, the request inbox, and the forward path to the servers that host people's …rim-server/docs/operations/relay-public.md
- Release checklistThe steps that cut a rim-server release v<version>, in order. Copy the list into the release pull request and tick it there. Steps marked FILL wait for decisions not taken yet; until then they are done by hand or …rim-server/docs/operations/release-checklist.md
- Upgrading a serverHow a running server moves to a new release, and back. docs/self-hosting.md, "Updates", is the short form for deploy/compose.yml; this page adds what to read first, the rollback and why it works. The commands use the dc …rim-server/docs/operations/upgrade.md
Identity and federation
- Server identity and server-to-server trafficEvery rim-server has its own server key, an Ed25519 key whose signed history (the key log) fixes the server's id, rims1_…. Other servers use the id and key to tell this server apart from any other, to check the requests …rim-server/docs/server-identity.md
- The relayA relay is the server a person's app talks to. It keeps their account, devices and profile card, queues what other servers send them, files the conversations their DM settings take as requests in a request inbox, and …rim-server/docs/relay.md