mjolnir/README.md

3.1 KiB

Mjolnir Bot Container

This container provides a deployment for the Mjolnir moderation bot, configured to interact with Matrix homeservers. It is built on a matrixdotorg/mjolnir:latest base and includes a custom startup script to ensure flexible configuration at runtime.

Container Image

The image is available at git.nixc.us/colin/mjolnir:production.

Features

  • Automatic configuration file setup if not present.
  • Customizable through environment variables.
  • Integrated Sentry support for error tracking.
  • Configured to listen on IP 0.0.0.0 for web interfaces.

Configuration

The container can be customized using the following environment variables:

  • HOME_SERVER_URL (default: https://matrix.org): The homeserver URL Mjolnir will interact with.
  • RAW_HOME_SERVER_URL (default: https://matrix.org): The URL Mjolnir uses to fetch events.
  • ACCESS_TOKEN (default: YOUR_TOKEN_HERE): The Matrix access token for authentication.
  • PANTALAIMON_USE (default: false): Whether to use Pantalaimon.
  • PANTALAIMON_USERNAME (default: mjolnir): The username for Pantalaimon login.
  • PANTALAIMON_PASSWORD (default: your_password): The password for Pantalaimon.
  • SENTRY_DSN: The Sentry DSN for error tracking (if not set, Sentry integration is disabled).
  • SENTRY_TRACES_SAMPLE_RATE (default: 0.5): The sample rate for Sentry traces.
  • WEB_LISTEN_ADDRESS (default: 0.0.0.0): The IP address the web server listens on.

Running the Container

To run the container with the default settings:

docker run -d --name mjolnir \
  -e ACCESS_TOKEN='your_access_token_here' \
  git.nixc.us/colin/mjolnir:production

To customize the configuration, adjust the environment variables accordingly:

docker run -d --name mjolnir \
  -e HOME_SERVER_URL='https://your.homeserver.url' \
  -e RAW_HOME_SERVER_URL='https://your.raw.homeserver.url' \
  -e ACCESS_TOKEN='your_access_token_here' \
  -e PANTALAIMON_USE='true' \
  -e PANTALAIMON_USERNAME='your_username' \
  -e PANTALAIMON_PASSWORD='your_password' \
  -e SENTRY_DSN='your_sentry_dsn' \
  -e SENTRY_TRACES_SAMPLE_RATE='0.5' \
  -e WEB_LISTEN_ADDRESS='0.0.0.0' \
  git.nixc.us/colin/mjolnir:production

docker-compose.yml

version: '3.8'

services:
  mjolnir:
    image: git.nixc.us/colin/mjolnir:production
    volumes:
      - ./data:/data
      - ./config/config.yml:/etc/mjolnir/config.yml
    environment:
      - HOME_SERVER_URL=https://matrix.org
      - RAW_HOME_SERVER_URL=http://chat_chat # this is intended for internal routing to your homeserver inside of docker networking.
      - ACCESS_TOKEN=YOUR_TOKEN_HERE
      - PANTALAIMON_USE=false
      - PANTALAIMON_USERNAME=mjolnir
      - PANTALAIMON_PASSWORD=your_password
      - SENTRY_DSN=
      - SENTRY_TRACES_SAMPLE_RATE=0.5
      - WEB_LISTEN_ADDRESS=0.0.0.0
    ports:
      - "8080:8080" # this is for the webserver portion.

Documentation

For more detailed documentation on configuring and running Mjolnir, visit the official Mjolnir GitHub repository. https://github.com/matrix-org/mjolnir/blob/main/config/default.yaml https://github.com/matrix-org/mjolnir/blob/main/docs/setup_docker.md