bridge:
  # Port to host the bridge on
  # Used for communication between the homeserver and the bridge
  port: 39997

  # The host connections to the bridge's webserver are allowed from
  bindAddress: 0.0.0.0

  # Public domain of the homeserver
  domain: synapse.home.blapointe.com

  # Reachable URL of the Matrix homeserver
  homeserverUrl: https://synapse.home.blapointe.com

  # Optionally specify a different media URL used for the media store
  #
  # This is where Discord will download user profile pictures and media
  # from
  # mediaUrl: https://external-url.org

  # Enables automatic double-puppeting when set. Automatic double-puppeting
  # allows Discord accounts to control Matrix accounts. So sending a
  # a message on Discord would send it on Matrix from your Matrix account
  #
  # loginSharedSecretMap is simply a map from homeserver URL
  # to shared secret. Example:
  #
  # loginSharedSecretMap:
  #   matrix.org: "YOUR SHARED SECRET GOES HERE"
  #
  # See https://github.com/devture/matrix-synapse-shared-secret-auth for
  # the necessary server module
  # loginSharedSecretMap:

  # Display name of the bridge bot
  displayname: Discord Puppet Bridge

  # Avatar URL of the bridge bot
  # avatarUrl: mxc://example.com/abcdef12345

  # Whether to create groups for each Discord Server
  #
  # Note that 'enable_group_creation' must be 'true' in Synapse's config
  # for this to work
  enableGroupSync: true

presence:
  # Bridge Discord online/offline status
  enabled: true

  # How often to send status to the homeserver in milliseconds
  interval: 30000

provisioning:
  # Regex of Matrix IDs allowed to use the puppet bridge
  whitelist:
    # Allow a specific user
    # - "@user:server\\.com"

    # Allow users on a specific homeserver
    - "@.*:synapse.home.blapointe.com"

    # Allow anyone
    # - ".*"

  # Regex of Matrix IDs forbidden from using the puppet bridge
  # blacklist:
    # Disallow a specific user
    # - "@user:server\\.com"

    # Disallow users on a specific homeserver
    # - "@.*:server\\.com"

relay:
  # Regex of Matrix IDs who are allowed to use the bridge in relay mode.
  # Relay mode is when a single Discord bot account relays messages of
  # multiple Matrix users
  #
  # Same format as in provisioning
  whitelist:
    - "@.*:synapse.home.blapointe.com"

  # blacklist:
    # - "@user:yourserver\\.com"

selfService:
  # Regex of Matrix IDs who are allowed to use bridge self-servicing (plumbed rooms)
  #
  # Same format as in provisioning
  whitelist:
    - "@.*:synapse.home.blapointe.com"

  # blacklist:
    # - "@user:server\\.com"

# Map of homeserver URLs to their C-S API endpoint
#
# Useful for double-puppeting if .well-known is unavailable for some reason
#  TODO?
# homeserverUrlMap:
  # yourserver.com: http://localhost:1234

# Override the default name patterns for users, rooms and groups
#
# Variable names must be prefixed with a ':'
namePatterns:
  # The default displayname for a bridged user
  #
  # Available variables:
  #
  # name: username of the user
  # discriminator: hashtag of the user (ex. #1234)
  user: :name:discriminator

  # A user's guild-specific displayname - if they've set a custom nick in
  # a guild
  #
  # Available variables:
  #
  # name: username of the user
  # discriminator: hashtag of the user (ex. #1234)
  # displayname: the user's custom group-specific nick
  # channel: the name of the channel
  # guild: the name of the guild
  userOverride: :displayname/:name:discriminator

  # Room names for bridged Discord channels
  #
  # Available variables:
  #
  # name: name of the channel
  # guild: name of the guild
  room: :name

  # Group names for bridged Discord servers
  #
  # Available variables:
  #
  # name: name of the guide
  group: d.:name

database:
  # Use Postgres as a database backend. If set, will be used instead of SQLite3
  #
  # Connection string to connect to the Postgres instance
  # with username "user", password "pass", host "localhost" and database name "dbname".
  #
  # Modify each value as necessary
  # connString: "postgres://user:pass@localhost/dbname?sslmode=disable"

  # Use SQLite3 as a database backend
  #
  # The name of the database file
  filename: database.db

limits:
  # Up to how many users should be auto-joined on room creation? -1 to disable
  # auto-join functionality
  #
  # Defaults to 200
  # maxAutojoinUsers: 200

  # How long the delay between two auto-join users should be in milliseconds
  #
  # Defaults to 5000
  # roomUserAutojoinDelay: 5000

logging:
  # Log level of console output
  #
  # Allowed values starting with most verbose:
  # silly, verbose, info, warn, error
  console: info

  # Date and time formatting
  lineDateFormat: MMM-D HH:mm:ss.SSS

  # Logging files
  #
  # Log files are rotated daily by default
  files:
    # Log file path
    - file: "bridge.log"
      # Log level for this file
      #
      # Allowed values starting with most verbose:
      # silly, debug, verbose, info, warn, error
      level: info

      # Date and time formatting
      datePattern: YYYY-MM-DD

      # Maximum number of logs to keep.
      #
      # This can be a number of files or number of days.
      # If using days, add 'd' as a suffix
      maxFiles: 14d

      # Maximum size of the file after which it will rotate.
      # This can be a number of bytes, or units of kb, mb, and gb.

      # If using units, add 'k', 'm', or 'g' as the suffix
      maxSize: 50m
