113 lines
3.7 KiB
Markdown
113 lines
3.7 KiB
Markdown
# Dendrite Docker Bridges
|
|
|
|
A simple way to set up Dendrite with bridges for WhatsApp, Telegram, and Discord, including automated media management.
|
|
|
|
<p align="center">
|
|
<img src="https://gitlab.com/uploads/-/system/project/avatar/64900187/logo.png" alt="dendrite-docker-bridges"/>
|
|
</p>
|
|
|
|
## Before Starting
|
|
|
|
1. Make sure you set up your domain by following this documentation: [Dendrite Domain Name Setup](https://element-hq.github.io/dendrite/installation/domainname).
|
|
|
|
2. Ensure you have `docker` and `docker compose` installed on your server.
|
|
|
|
3. All commands will be executed in the project root, i.e., the directory where the repository was cloned.
|
|
|
|
## Features
|
|
|
|
- Integrated bridges for WhatsApp, Telegram, and Discord
|
|
- Automated media management with Cleanmedia
|
|
- Simple setup process with provided scripts
|
|
- Docker-based deployment for easy maintenance
|
|
|
|
## Installation
|
|
|
|
1. Clone this repository and enter the directory:
|
|
|
|
```sh
|
|
git clone https://gitlab.com/rogs/dendrite-docker-bridges.git
|
|
cd dendrite-docker-bridges
|
|
```
|
|
|
|
2. Run `setup.sh`:
|
|
|
|
```sh
|
|
./setup.sh
|
|
```
|
|
|
|
This script will:
|
|
- Prompt you for your domain (the one you configured in "Before Starting")
|
|
- Generate a secure database password
|
|
- Create your private key and config in the `./config/dendrite` directory
|
|
- Display two important pieces of information:
|
|
- The "Registration shared secret"
|
|
- The Database URI
|
|
|
|
**Important**: Make sure to save both the registration shared secret AND the Database URI in a secure location. The Database URI will be needed later when configuring the bridges for WhatsApp, Telegram, and Discord.
|
|
|
|
3. Open your configuration file located at `./config/dendrite/dendrite.yaml`. **You may need `sudo` to edit this file.** Search for `registration_shared_secret` and paste the registration secret you copied in the previous step. The section should look similar to this:
|
|
|
|
```yaml
|
|
client_api:
|
|
registration_disabled: true
|
|
registration_requires_token: false
|
|
registration_shared_secret: "YourBigCopiedKey123" # This is your key!
|
|
guests_disabled: false
|
|
enable_registration_captcha: false
|
|
recaptcha_api_js_url: ""
|
|
```
|
|
|
|
4. Start the core services:
|
|
|
|
```sh
|
|
docker compose up -d postgres monolith
|
|
```
|
|
|
|
5. Once PostgreSQL is up, create the bridge databases:
|
|
|
|
```sh
|
|
./setup-db.sh
|
|
```
|
|
|
|
This script will create three new databases: `whatsapp`, `telegram`, and `discord`. These will be used by the bridges.
|
|
|
|
6. Verify the Dendrite setup by navigating to `http://your-ip-address:8008` in your browser.
|
|

|
|
|
|
7. Create your first user using the provided script:
|
|
|
|
```sh
|
|
./create-user.sh
|
|
```
|
|
|
|
The script will:
|
|
- Prompt you for a username.
|
|
- Ask if the user should be an admin.
|
|
- Create the account in your Dendrite server.
|
|
|
|
You can run this script multiple times to create additional users as needed.
|
|
|
|
## Bridge Setup
|
|
|
|
Each bridge starts in a stopped state and will only run once properly configured. You can configure the bridges in any order:
|
|
|
|
1. Configure the bridge(s) you want to use:
|
|
- [WhatsApp Bridge Setup](./config/mautrix-whatsapp/README.md)
|
|
- [Telegram Bridge Setup](./config/mautrix-telegram/README.md)
|
|
- [Discord Bridge Setup](./config/mautrix-discord/README.md)
|
|
|
|
2. Start configured bridges:
|
|
```sh
|
|
docker compose up -d
|
|
```
|
|
|
|
Each bridge will only start if its configuration files exist. Bridges without configuration will remain stopped, which is normal.
|
|
|
|
## Media Management
|
|
|
|
For information about managing media storage and retention:
|
|
- [Media Management](./MEDIA_MANAGEMENT.md)
|
|
|
|
**Note**: When configuring each bridge, you'll need to use the Database URI that was displayed during the setup process. Make sure you have saved it somewhere secure!
|