120 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
| {#
 | |
| SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
 | |
| SPDX-FileCopyrightText: 2022 Julian-Samuel Gebühr
 | |
| SPDX-FileCopyrightText: 2022 Stuart Mumford
 | |
| SPDX-FileCopyrightText: 2025 Suguru Hirahara
 | |
| 
 | |
| SPDX-License-Identifier: AGPL-3.0-or-later
 | |
| #}
 | |
| 
 | |
| # The full URI to the database. SQLite and Postgres are fully supported.
 | |
| # Other DBMSes supported by SQLAlchemy may or may not work.
 | |
| # Format examples:
 | |
| #   SQLite:   sqlite:///filename.db
 | |
| #   Postgres: postgresql://username:password@hostname/dbname
 | |
| database: {{ matrix_bot_maubot_database_uri|to_json }}
 | |
| 
 | |
| # Separate database URL for the crypto database. "default" means use the same database as above.
 | |
| crypto_database:
 | |
|   type: default
 | |
| 
 | |
| # Additional arguments for asyncpg.create_pool() or sqlite3.connect()
 | |
| # https://magicstack.github.io/asyncpg/current/api/index.html#asyncpg.pool.create_pool
 | |
| # https://docs.python.org/3/library/sqlite3.html#sqlite3.connect
 | |
| # For sqlite, min_size is used as the connection thread pool size and max_size is ignored.
 | |
| database_opts:
 | |
|     min_size: 1
 | |
|     max_size: 10
 | |
| plugin_directories:
 | |
|     # The directory where uploaded new plugins should be stored.
 | |
|     upload: /data/plugins
 | |
|     # The directories from which plugins should be loaded.
 | |
|     # Duplicate plugin IDs will be moved to the trash.
 | |
|     load:
 | |
|     - /data/plugins
 | |
|     trash: /data/trash
 | |
| 
 | |
| # Configuration for storing plugin databases
 | |
| plugin_databases:
 | |
|   # Some plugins still require sqlite, so configure a path here.
 | |
|   # Postgres will be used if supported.
 | |
|   sqlite: /data/dbs
 | |
|   postgres: default
 | |
| 
 | |
| server:
 | |
|     # The IP and port to listen to.
 | |
|     hostname: 0.0.0.0
 | |
|     port: {{ matrix_bot_maubot_server_port | to_json }}
 | |
|     # Public base URL where the server is visible.
 | |
|     public_url: {{ matrix_bot_maubot_bot_server_public_url | to_json }}
 | |
|     # The base management API path.
 | |
|     base_path: {{ matrix_bot_maubot_bot_server_base_path | to_json }}
 | |
|     # The base path for the UI.
 | |
|     ui_base_path: {{ matrix_bot_maubot_bot_server_ui_base_path | to_json }}
 | |
|     # The base path for plugin endpoints. The instance ID will be appended directly.
 | |
|     plugin_base_path: {{ matrix_bot_maubot_bot_server_plugin_base_path | to_json }}
 | |
|     # Override path from where to load UI resources.
 | |
|     # Set to false to using pkg_resources to find the path.
 | |
|     override_resource_path: /opt/maubot/frontend
 | |
|     # The base appservice API path. Use / for legacy appservice API and /_matrix/app/v1 for v1.
 | |
|     appservice_base_path: {{ matrix_bot_maubot_bot_server_appservice_base_path | to_json }}
 | |
|     # The shared secret to sign API access tokens.
 | |
|     # Set to "generate" to generate and save a new token at startup.
 | |
|     unshared_secret: {{ matrix_bot_maubot_unshared_secret | to_json }}
 | |
| 
 | |
| # Known homeservers. This is required for the `mbc auth` command and also allows
 | |
| # more convenient access from the management UI. This is not required to create
 | |
| # clients in the management UI, since you can also just type the homeserver URL
 | |
| # into the box there.
 | |
| homeservers:
 | |
|   {{ matrix_bot_maubot_homeserver_name }}:
 | |
|     # Client-server API URL
 | |
|         url: {{ matrix_bot_maubot_homeserver_url | to_json }}
 | |
|     # registration_shared_secret from synapse config
 | |
|     # You can leave this empty if you don't have access to the homeserver.
 | |
|     # When this is empty, `mbc auth --register` won't work, but `mbc auth` (login) will.
 | |
|         secret: {{ matrix_bot_maubot_homeserver_secret | to_json }}
 | |
| 
 | |
| # List of administrator users. Plaintext passwords will be bcrypted on startup. Set empty password
 | |
| # to prevent normal login. Root is a special user that can't have a password and will always exist.
 | |
| admins: {{ matrix_bot_maubot_admins | combine( {"root": ""} )|to_json }}
 | |
| 
 | |
| api_features:
 | |
|     login: true
 | |
|     plugin: true
 | |
|     plugin_upload: true
 | |
|     instance: true
 | |
|     instance_database: true
 | |
|     client: true
 | |
|     client_proxy: true
 | |
|     client_auth: true
 | |
|     dev_open: true
 | |
|     log: true
 | |
| 
 | |
| # Python logging configuration.
 | |
| #
 | |
| # See section 16.7.2 of the Python documentation for more info:
 | |
| # https://docs.python.org/3.6/library/logging.config.html#configuration-dictionary-schema
 | |
| logging:
 | |
|     version: 1
 | |
|     formatters:
 | |
|         colored:
 | |
|             (): maubot.lib.color_log.ColorFormatter
 | |
|             format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
 | |
|         normal:
 | |
|             format: '[%(asctime)s] [%(levelname)s@%(name)s] %(message)s'
 | |
|     handlers:
 | |
|         console:
 | |
|             class: logging.StreamHandler
 | |
|             formatter: colored
 | |
|     loggers:
 | |
|         maubot:
 | |
|             level: {{ matrix_bot_maubot_logging_level|to_json }}
 | |
|         mau:
 | |
|             level: {{ matrix_bot_maubot_logging_level|to_json }}
 | |
|         aiohttp:
 | |
|             level: {{ matrix_bot_maubot_logging_level|to_json }}
 | |
|     root:
 | |
|         level: {{ matrix_bot_maubot_logging_level|to_json }}
 | |
|         handlers: [console]
 |