matrix-org / conference-bot

The conductor for your orchestra^Wconference
Apache License 2.0
43 stars 8 forks source link

conference-bot

The conductor for your orchestra^Wconference

Development

  1. yarn install
  2. Copy config/default.yaml to config/development.yaml and edit accordingly.
  3. yarn start:dev

The project is a TypeScript bot based off the concepts of Mjolnir, using matrix-bot-sdk as a base.

Production (Docker)

TODO:

This bot is best deployed with Docker. Note that the steps required to get the bot into production are complicated.

  1. First, register a user on your homeserver for the bot to use. In Synapse, this would be register_new_matrix_user.
  2. Set up any profile data for that user (displayname and avatar).
  3. On your homeserver, prepare and install an appservice registration like so:
    id: conference_bot # Can be any helpful identifier
    hs_token: CHANGE_ME # hs_token and as_token must be unique and secret
    as_token: CHANGE_ME
    namespaces:
      users:
        - exclusive: true
          regex: '@yourbot:example.org'  # Set this to your bot's user ID.
      aliases:
        - exclusive: false
          regex: '#.*:example.org'  # Change the domain to match your server.
      rooms: []
    url: null  # Important! The bot doesn't receive transactions, so set this explicitly to null.
    sender_localpart: not_confbot  # Use something other than your bot's localpart.
    rate_limited: false  # Important! The bot is noisy.
  4. Create /etc/conference-bot or wherever you are comfortable with mapping a volume for the bot.
  5. Copy config/default.yaml from this repo to /etc/conference-bot/config/production.yaml and edit accordingly.
  6. Run the container with Docker. For example: docker run -d --rm --name conference-bot -v /etc/conference-bot:/data -p 8080:8080 matrixdotorg/conference-bot
  7. Reverse proxy port 8080 as appropriate, using SSL if needed.

Usage

TODO:

Room kinds

The conference bot uses the following terminology for defining what purpose a Matrix room serves: