

Revolt
801 102What is Revolt ?
Revolt is one of the best ways to stay connected with your friends and community without sacrificing any usability. We focus only on the user, and you can be sure that your conversations are confidential and your data is secure.
Install Revolt
Please read the FAQ before running your own server and you may want to read about additional notes relating to third-party instances.
Install
git clone https://github.com/revoltchat/self-hosted revoltcd revoltcp .env.example .envdocker-compose up -d
Then simply go to http://local.revolt.chat
Setup
Prerequisites before continuing:
Clone this repository.
git clone https://github.com/revoltchat/self-hosted revoltcd revolt
Copy the .env
file and edit according to your needs.
Warning: The default configuration is intended for testing and only works on your local machine. If you want to deploy to a remote server, you need to edit the URLs in the
.env
file, please see the section below on configuring a custom domain.
If you get a network error when trying to log in, double check your configuration before opening an issue.
cp .env.example .env
Then bring up Revolt:
docker-compose up -d
Updating Revolt
Before updating Revolt, check the errata at the top for important information and check if there are any new required environment variables now present in the .env
file.
To update Revolt, first pull the latest copy of this repository to ensure you have the latest tags:
git pull
Then pull all the latest images:
docker-compose pull
Now you can restart your services:
docker-compose up -d
Additional Notes
Custom domain
To configure a custom domain, you should be able to do a search and replace on local.revolt.chat
in the .env
file, like so:
REVOLT_APP_URL=http://local.revolt.chat REVOLT_APP_URL=http://my.domain
You will also want to change the protocols to enable HTTPS:
REVOLT_APP_URL=http://my.domain REVOLT_APP_URL=https://my.domain
REVOLT_EXTERNAL_WS_URL=ws://my.domain/ws REVOLT_EXTERNAL_WS_URL=wss://my.domain/ws
In the case of HOSTNAME
, you must strip the protocol prefix:
HOSTNAME=https://my.domain HOSTNAME=my.domain
Putting Revolt behind another reverse proxy (or on a non-standard port)
Override the port definitions on caddy
:
services: caddy: ports: - "1234:80"
Warning This file is not Git ignored, it may be sufficient to use an override file but that will not remove port 80 / 443 allocations.
Update the hostname used by the web server:
HOSTNAME=http://local.revolt.chat HOSTNAME=:80
You can now reverse proxy to http://localhost:1234.
Expose database
You can insecurely expose the database by adding a port definition:
services: database: ports: - "27017:27017"
Mongo compatibility
Older processors may not support the latest MongoDB version, you may pin to MongoDB 4.4 as such:
services: database: image: mongo:4.4
Making your instance invite-only
Enable invite-only mode by setting REVOLT_INVITE_ONLY
in .env
to 1
Create an invite:
# drop into mongo shelldocker-compose exec database mongosh
# create the inviteuse revoltdb.invites.insertOne({ _id: "enter_an_invite_code_here" })