67 lines
2.4 KiB
Markdown
67 lines
2.4 KiB
Markdown
---
|
|
website: https://matrix.org/
|
|
obj: application
|
|
rev: 2024-01-19
|
|
---
|
|
|
|
# Matrix
|
|
Matrix is an open standard and communication protocol for real-time communication. It aims to make real-time communication work seamlessly between different service providers, in the way that standard [Simple Mail Transfer Protocol](../../internet/SMTP.md) [email](../../internet/eMail.md) currently does for store-and-forward [email](../../internet/eMail.md) service, by allowing users with accounts at one communications service provider to communicate with users of a different service provider via online chat, voice over IP, and videotelephony. It therefore serves a similar purpose to protocols like XMPP, but is not based on any existing communication protocol.
|
|
|
|
By default matrix is federated and every user is located at a home server (`@user:matrix.example.org`) and can communicate with other users or join rooms.
|
|
|
|
## Setup
|
|
To setup a matrix server using dendrite follow these steps. As prerequisites you need a valid [domain](../../internet/Domain.md) name.
|
|
|
|
### Generate a key
|
|
```shell
|
|
mkdir -p ./config
|
|
docker run --rm --entrypoint="/usr/bin/generate-keys" -v $(pwd)/config:/mnt matrixdotorg/dendrite-monolith:latest -private-key /mnt/matrix_key.pem
|
|
```
|
|
|
|
### Generate a config file
|
|
```shell
|
|
mkdir -p ./config
|
|
docker run --rm --entrypoint="/bin/sh" -v $(pwd)/config:/mnt matrixdotorg/dendrite-monolith:latest -c "/usr/bin/generate-config -dir /var/dendrite/ -db postgres://dendrite:itsasecret@postgres/dendrite?sslmode=disable -server YourDomainHere > /mnt/dendrite.yaml"
|
|
```
|
|
|
|
## Administration
|
|
**Create a new Account:**
|
|
To create a new account, use this command inside the dendrite container:
|
|
```sh
|
|
/bin/create-account -config /path/to/dendrite.yaml -username USERNAME [-admin]
|
|
```
|
|
|
|
### Docker-Compose
|
|
Start the docker compose service:
|
|
```yaml
|
|
version: "3.4"
|
|
|
|
services:
|
|
postgres:
|
|
hostname: postgres
|
|
image: postgres:15-alpine
|
|
restart: always
|
|
volumes:
|
|
- ./db:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_PASSWORD: password
|
|
POSTGRES_USER: dendrite
|
|
POSTGRES_DATABASE: dendrite
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U dendrite"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
dendrite:
|
|
image: matrixdotorg/dendrite-monolith:latest
|
|
ports:
|
|
- 8448:8008
|
|
volumes:
|
|
- ./config:/etc/dendrite
|
|
- ./data:/var/dendrite
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
```
|