mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-08 06:33:09 -06:00
62 lines
1.5 KiB
Markdown
62 lines
1.5 KiB
Markdown
---
|
|
title: Monolith
|
|
parent: Installation
|
|
has_toc: true
|
|
---
|
|
|
|
# Monolith Installation
|
|
|
|
## Requirements
|
|
|
|
In order to build a polylith deployment, you will need to install:
|
|
|
|
* Go 1.16 or later
|
|
* PostgreSQL 12 or later
|
|
|
|
## Build Dendrite
|
|
|
|
On UNIX systems, the `build.sh` script will build all variants of Dendrite.
|
|
|
|
```bash
|
|
./build.sh
|
|
```
|
|
|
|
The `bin` directory will contain the built binaries.
|
|
|
|
## PostgreSQL setup
|
|
|
|
First of all, you will need to create a PostgreSQL user that Dendrite can use
|
|
to connect to the database.
|
|
|
|
```bash
|
|
sudo -u postgres createuser -P dendrite
|
|
```
|
|
|
|
At this point you have a choice on whether to run all of the Dendrite
|
|
components from a single database, or for each component to have its
|
|
own database. For most deployments, running from a single database will
|
|
be sufficient, although you may wish to separate them if you plan to
|
|
split out the databases across multiple machines in the future.
|
|
|
|
On macOS, omit `sudo -u postgres` from the below commands.
|
|
|
|
### Single database
|
|
|
|
```bash
|
|
sudo -u postgres createdb -O dendrite dendrite
|
|
```
|
|
|
|
... in which case your connection string will look like `postgres://user:pass@database/dendrite`.
|
|
|
|
### Separate databases
|
|
|
|
```bash
|
|
for i in mediaapi syncapi roomserver federationapi appservice keyserver userapi_accounts; do
|
|
sudo -u postgres createdb -O dendrite dendrite_$i
|
|
done
|
|
```
|
|
|
|
... in which case your connection string will look like `postgres://user:pass@database/dendrite_componentname`.
|
|
|
|
## Configuration file
|