# matrix-appservice-discord is a Matrix <-> Discord bridge
# See: https://github.com/Half-Shot/matrix-appservice-discord
matrix_appservice_discord_enabled : true
matrix_appservice_discord_docker_image : "halfshot/matrix-appservice-discord:latest"
matrix_appservice_discord_docker_image_force_pull : "{{ matrix_appservice_discord_docker_image.endswith(':latest') }}"
matrix_appservice_discord_base_path : "{{ matrix_base_data_path }}/appservice-discord"
matrix_appservice_discord_config_path : "{{ matrix_base_data_path }}/appservice-discord/config"
matrix_appservice_discord_data_path : "{{ matrix_base_data_path }}/appservice-discord/data"
# Get your own keys at https://discordapp.com/developers/applications/me/create
matrix_appservice_discord_client_id : ''
matrix_appservice_discord_bot_token : ''
matrix_appservice_discord_appservice_token : ''
matrix_appservice_discord_homeserver_token : ''
# Controls whether the matrix-appservice-discord container exposes its HTTP port (tcp/9005 in the container).
#
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:9005"), or empty string to not expose.
matrix_appservice_discord_container_http_host_bind_port : ''
# A list of extra arguments to pass to the container
matrix_appservice_discord_container_extra_arguments : [ ]
# List of systemd services that matrix-appservice-discord.service depends on.
matrix_appservice_discord_systemd_required_services_list : [ 'docker.service' ]
# List of systemd services that matrix-appservice-discord.service wants
matrix_appservice_discord_systemd_wanted_services_list : [ ]
matrix_appservice_discord_appservice_url : 'http://matrix-appservice-discord:9005'
matrix_appservice_discord_bridge_domain : "{{ matrix_domain }}"
# As of right now, the homeserver URL must be a public URL. See below.
matrix_appservice_discord_bridge_homeserverUrl : "{{ matrix_homeserver_url }}"
matrix_appservice_discord_bridge_disablePresence : false
matrix_appservice_discord_configuration_yaml : |
#jinja2: lstrip_blocks: "True"
bridge :
# Domain part of the bridge, e.g. matrix.org
domain : {{ matrix_appservice_discord_bridge_domain }}
# This should be your publically facing URL because Discord may use it to
# fetch media from the media store.
homeserverUrl : {{ matrix_appservice_discord_bridge_homeserverUrl }}
# Interval at which to process users in the 'presence queue'. If you have
# 5 users, one user will be processed every 500 milliseconds according to the
# value below. This has a minimum value of 250.
# WARNING: This has a high chance of spamming the homeserver with presence
# updates since it will send one each time somebody changes state or is online.
presenceInterval : 500
# Disable setting presence for 'ghost users' which means Discord users on Matrix
# will not be shown as away or online.
disablePresence : {{ matrix_appservice_discord_bridge_disablePresence|to_json }}
# Disable sending typing notifications when somebody on Discord types.
disableTypingNotifications : false
# Disable deleting messages on Discord if a message is redacted on Matrix.
disableDeletionForwarding : false
# Enable users to bridge rooms using !discord commands. See
# https://t2bot.io/discord for instructions.
enableSelfServiceBridging : false
# Disable sending of read receipts for Matrix events which have been
# successfully bridged to Discord.
disableReadReceipts : false
# Disable Join Leave echos from matrix
disableJoinLeaveNotifications : false
# Authentication configuration for the discord bot.
auth :
clientID : {{ matrix_appservice_discord_client_id|string|to_json }}
botToken : {{ matrix_appservice_discord_bot_token }}
logging :
# What level should the logger output to the console at.
console : "warn" #silly, verbose, info, http, warn, error, silent
lineDateFormat : "MMM-D HH:mm:ss.SSS" # This is in moment.js format
# files:
# - file: "debug.log"
# disable:
# - "PresenceHandler" # Will not capture presence logging
# - file: "warn.log" # Will capture warnings
# level: "warn"
# - file: "botlogs.log" # Will capture logs from DiscordBot
# level: "info"
# enable:
# - "DiscordBot"
database :
userStorePath : "/data/user-store.db"
roomStorePath : "/data/room-store.db"
# You may either use SQLite or Postgresql for the bridge database, which contains
# important mappings for events and user puppeting configurations.
# Use the filename option for SQLite, or connString for Postgresql.
# If you are migrating, see https://github.com/Half-Shot/matrix-appservice-discord/blob/master/docs/howto.md#migrate-to-postgres-from-sqlite
# WARNING: You will almost certainly be fine with sqlite unless your bridge
# is in heavy demand and you suffer from IO slowness.
filename : "/data/discord.db"
# connString: "postgresql://user:password@localhost/database_name"
room :
# Set the default visibility of alias rooms, defaults to "public".
# One of: "public", "private"
defaultVisibility : "public"
channel :
# Pattern of the name given to bridged rooms.
# Can use :guild for the guild name and :name for the channel name.
namePattern : "[Discord] :guild :name"
# Changes made to rooms when a channel is deleted.
deleteOptions :
# Prefix the room name with a string.
#namePrefix: "[Deleted]"
# Prefix the room topic with a string.
#topicPrefix: "This room has been deleted"
# Disable people from talking in the room by raising the event PL to 50
disableMessaging : false
# Remove the discord alias from the room.
unsetRoomAlias : true
# Remove the room from the directory.
unlistFromDirectory : true
# Set the room to be unavaliable for joining without an invite.
setInviteOnly : true
# Make all the discord users leave the room.
ghostsLeave : true
limits :
# Delay in milliseconds between discord users joining a room.
roomGhostJoinDelay : 6000
# Delay in milliseconds before sending messages to discord to avoid echos.
# (Copies of a sent message may arrive from discord before we've
# fininished handling it, causing us to echo it back to the room)
discordSendDelay : 750
ghosts :
# Pattern for the ghosts nick, available is :nick, :username, :tag and :id
nickPattern : ":nick"
# Pattern for the ghosts username, available is :username, :tag and :id
usernamePattern : ":username#:tag"
matrix_appservice_discord_configuration_extension_yaml : |
# Your custom YAML configuration goes here.
# This configuration extends the default starting configuration (`matrix_appservice_discord_configuration_yaml`).
#
# You can override individual variables from the default configuration, or introduce new ones.
#
# If you need something more special, you can take full control by
# completely redefining `matrix_appservice_discord_configuration_yaml`.
matrix_appservice_discord_configuration_extension : "{{ matrix_appservice_discord_configuration_extension_yaml|from_yaml if matrix_appservice_discord_configuration_extension_yaml|from_yaml is mapping else {} }}"
matrix_appservice_discord_configuration : "{{ matrix_appservice_discord_configuration_yaml|from_yaml|combine(matrix_appservice_discord_configuration_extension, recursive=True) }}"
matrix_appservice_discord_registration_yaml : |
#jinja2: lstrip_blocks: "True"
id : appservice-discord
as_token : "{{ matrix_appservice_discord_appservice_token }}"
hs_token : "{{ matrix_appservice_discord_homeserver_token }}"
namespaces :
users :
- exclusive : true
regex : '^@_discord_.*'
aliases :
- exclusive : true
regex : '^#_discord_.*'
url : {{ matrix_appservice_discord_appservice_url }}
sender_localpart : _discord_bot
rate_limited : false
protocols :
- discord
matrix_appservice_discord_registration : "{{ matrix_appservice_discord_registration_yaml|from_yaml }}"