matrix-ops-bot/README.md

2.4 KiB

matrix-ops-bot

a bot for ops in matrix

Current features:

  • Catch PagerDuty webhooks and forward them to a matrix room

Usage

Note: Register your bot user manually. This program does not register a new user.

docker build -t registry.gitlab.com/guardianproject-ops/matrix-ops-bot .

docker run --rm  \
--name ops-bot \
--volume /path/to/store:/data \
--env MATRIX_HOMESERVER=https://matrix.org \
--env MATRIX_USER_ID=@YOURBOT:matrix.org \
--env MATRIX_PASSWORD="changeme" \
--env MATRIX_DEVICE_NAME=my-bot-server \
--env BOT_ROUTING_KEYS="{\"room1\": \"!XXXX:matrix.org\", \"room2\": \"!YYYYY:matrix.org\"}" \
--env BOT_BEARER_TOKEN="changeme" \
registry.gitlab.com/guardianproject-ops/matrix-ops-bot

or docker-compose:

version: "3.8"
services:
  bot:
    image: registry.gitlab.com/guardianproject-ops/matrix-ops-bot:main
    environment:
      MATRIX_HOMESERVER: "https://matrix.org"
      MATRIX_USER_ID: "@YOURBOT:matrix.org"
      MATRIX_PASSWORD: "changeme"
      MATRIX_DEVICE_NAME: "my-bot-server"
      BOT_BEARER_TOKEN: "changeme"
      BOT_ROUTING_KEYS: >
        {"room1": "!XXXX:matrix.org", "room2": "!YYYYY:matrix.org"}
    user: "1000"
    ports: 
      - "0.0.0.0:1111:1111"
    volumes:
      - /home/admin/bot/data:/data:rw
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "3"

Dev Setup

.env:

MATRIX_HOMESERVER=https://matrix.org
MATRIX_USER_ID=@YOURBOT:matrix.org
MATRIX_PASSWORD="changeme"
MATRIX_DEVICE_NAME=my-bot-server
MATRIX_VERIFY_SSL=True
MATRIX_STORE_PATH=/abs/path/to/persistent-store
BOT_ROUTING_KEYS="{\"room1\": \"!XXXX:matrix.org\", \"room2\": \"!YYYYY:matrix.org\"}"
BOT_BEARER_TOKEN="changeme"
source .env
poetry install
poetry run start

License

matrix-ops-bot
Copyright (C) 2022 Abel Luck <abel@guardianproject.info>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.