# 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 ":" or "" 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_bridge_enableSelfServiceBridging: 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: {{ matrix_appservice_discord_bridge_enableSelfServiceBridging|to_json }} # 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 }}"