matrix-alertbot/docker/README.md

103 lines
2.7 KiB
Markdown
Raw Normal View History

2020-08-11 17:37:23 -07:00
# Docker
2022-06-13 20:55:01 +02:00
The docker image will run matrix-alertbot with a SQLite database and
2020-08-11 17:37:23 -07:00
end-to-end encryption dependencies included. For larger deployments, a
connection to a Postgres database backend is recommended.
## Setup
### The `/data` volume
The docker container expects the `config.yaml` file to exist at
`/data/config.yaml`. To easily configure this, it is recommended to create a
directory on your filesystem, and mount it as `/data` inside the container:
```
mkdir data
```
We'll later mount this directory into the container so that its contents
persist across container restarts.
### Creating a config file
2022-08-13 13:33:14 +02:00
Copy `config.sample.yaml` to a file named `config.yaml` inside of your newly
2020-08-11 17:37:23 -07:00
created `data` directory. Fill it out as you normally would, with a few minor
differences:
* The bot store directory should reside inside of the data directory so that it
2020-08-16 15:22:23 +01:00
is not wiped on container restart. Change it from the default to
`/data/store`. There is no need to create this directory yourself, it will be
created on startup if it does not exist.
2020-08-11 17:37:23 -07:00
2022-08-13 13:33:14 +02:00
* The bot cache directory should reside inside of the data directory as well,
so that alerts and silences related informations are not wiped on container
restart. Change it from the default to `/data/cache`.
There is no need to create this directory yourself, it will be created on
startup if it does not exist.
2020-08-11 17:37:23 -07:00
Change any other config values as necessary. For instance, you may also want to
store log files in the `/data` directory.
## Running
First, create a volume for the data directory created in the above section:
```
docker volume create \
--opt type=none \
--opt o=bind \
2022-06-13 20:55:01 +02:00
--opt device="/path/to/data/dir" matrix-alertbot
2020-08-11 17:37:23 -07:00
```
Start the bot with:
```
2022-08-13 13:33:14 +02:00
docker-compose up --build
2020-08-11 17:37:23 -07:00
```
This will run the bot and log the output to the terminal. You can instead run
the container detached with the `-d` flag:
```
2022-08-13 13:33:14 +02:00
docker-compose up -d --build
2020-08-11 17:37:23 -07:00
```
2022-08-13 13:33:14 +02:00
(Logs can later be accessed with the `docker-compose logs` command).
2020-08-11 17:37:23 -07:00
2022-08-13 13:33:14 +02:00
This will build an optimized, production-ready container.
2020-08-11 17:37:23 -07:00
## Systemd
A systemd service file is provided for your convenience at
2022-06-13 20:55:01 +02:00
[matrix-alertbot.service](matrix-alertbot.service). The service uses
2020-08-11 17:37:23 -07:00
`docker-compose` to start and stop the bot.
2022-06-13 20:55:01 +02:00
Copy the file to `/etc/systemd/system/matrix-alertbot.service` and edit to
2020-08-11 17:37:23 -07:00
match your setup. You can then start the bot with:
```
2022-06-13 20:55:01 +02:00
systemctl start matrix-alertbot
2020-08-11 17:37:23 -07:00
```
and stop it with:
```
2022-06-13 20:55:01 +02:00
systemctl stop matrix-alertbot
2020-08-11 17:37:23 -07:00
```
To run the bot on system startup:
```
2022-06-13 20:55:01 +02:00
systemctl enable matrix-alertbot
2020-08-11 17:37:23 -07:00
```
## Building the image
To build a production image from source, use the following `docker build` command
from the repo's root:
```
2022-06-13 20:55:01 +02:00
docker build -t neutrinet/matrix-alertbot:latest -f docker/Dockerfile .
2020-08-11 17:37:23 -07:00
```