From 87aabaae34bcb10724f4d8508732b87e834ddfbd Mon Sep 17 00:00:00 2001 From: Gemini Bot Date: Sat, 6 Dec 2025 19:08:29 +0000 Subject: [PATCH] Use template file for config generation to ensure valid YAML --- config.template.yaml | 238 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 config.template.yaml diff --git a/config.template.yaml b/config.template.yaml new file mode 100644 index 0000000..0369798 --- /dev/null +++ b/config.template.yaml @@ -0,0 +1,238 @@ +homeserver: + address: https://matrix.beeper.com/_hungryserv/inswe + domain: beeper.local + verify_ssl: true + software: hungry + http_retry_count: 4 + async_media: true + websocket: true + ping_interval_seconds: -1 + +appservice: + address: http://localhost:29317 + hostname: 0.0.0.0 + port: 29317 + max_body_size: 1 + database: sqlite:////data/bridge.db + id: REPLACE_REG_ID + bot_username: REPLACE_BOT_USERNAME + as_token: REPLACE_AS_TOKEN + hs_token: REPLACE_HS_TOKEN + ephemeral_events: true + async_transactions: true + +metrics: + enabled: false + listen_port: 8000 + +manhole: + enabled: false + +bridge: + username_template: telegram_{userid} + alias_template: telegram_{groupname} + displayname_template: '{displayname}' + displayname_preference: + - full name + - username + - phone number + displayname_max_length: 100 + allow_avatar_remove: true + allow_contact_info: true + max_initial_member_sync: 20 + max_member_count: 10000 + sync_channel_members: false + skip_deleted_members: true + startup_sync: false + sync_update_limit: 0 + sync_create_limit: 10 + sync_deferred_create_all: true + sync_direct_chats: true + max_telegram_delete: 10 + sync_matrix_state: true + allow_matrix_login: true + public_portals: false + sync_with_custom_puppets: false + sync_direct_chat_list: false + double_puppet_server_map: + beeper.com: https://matrix.beeper.com/_hungryserv/inswe + double_puppet_allow_discovery: false + telegram_link_preview: true + invite_link_resolve: false + caption_in_message: true + image_as_file_size: 10 + image_as_file_pixels: 5000000 + parallel_file_transfer: false + federate_rooms: false + always_custom_emoji_reaction: false + animated_sticker: + target: webp + convert_from_webm: false + args: + width: 256 + height: 256 + fps: 25 + animated_emoji: + target: webp + args: + width: 64 + height: 64 + fps: 25 + encryption: + allow: true + default: true + appservice: true + msc4190: false + require: true + allow_key_sharing: true + delete_keys: + delete_outbound_on_ack: true + dont_store_outbound: false + ratchet_on_decrypt: true + delete_fully_used_on_decrypt: true + delete_prev_on_new_session: true + delete_on_device_delete: true + periodically_delete_expired: true + delete_outdated_inbound: true + verification_levels: + receive: cross-signed-tofu + send: cross-signed-tofu + share: cross-signed-tofu + rotation: + enable_custom: true + milliseconds: 2592000000 + messages: 10000 + disable_device_change_key_rotation: true + + private_chat_portal_meta: default + disable_reply_fallbacks: true + cross_room_replies: false + delivery_receipts: false + delivery_error_reports: false + incoming_bridge_error_reports: true + message_status_events: true + resend_bridge_info: false + mute_bridging: true + pinned_tag: m.favourite + archive_tag: m.lowpriority + tag_only_on_create: true + bridge_matrix_leave: false + kick_on_logout: false + always_read_joined_telegram_notice: true + create_group_on_invite: false + backfill: + enable: true + normal_groups: true + unread_hours_threshold: 720 + forward_limits: + initial: + user: 50 + normal_group: 100 + supergroup: 50 + channel: 50 + sync: + user: 0 + normal_group: 0 + supergroup: 0 + channel: 0 + forward_timeout: 900 + incremental: + messages_per_batch: 100 + post_batch_delay: 20 + max_batches: + user: -1 + normal_group: -1 + supergroup: 10 + channel: -1 + initial_power_level_overrides: + user: {} + group: {} + bot_messages_as_notices: true + bridge_notices: + default: false + exceptions: [] + relay_user_distinguishers: ["🟦", "🟣", "🟩", "⭕️", "🔶", "⬛️", "🔵", "🟢"] + message_formats: + m.text: '$distinguisher $sender_displayname: $message' + m.notice: '$distinguisher $sender_displayname: $message' + m.emote: '* $distinguisher $sender_displayname $message' + m.file: '$distinguisher $sender_displayname sent a file: $message' + m.image: '$distinguisher $sender_displayname sent an image: $message' + m.audio: '$distinguisher $sender_displayname sent an audio file: $message' + m.video: '$distinguisher $sender_displayname sent a video: $message' + m.location: '$distinguisher $sender_displayname sent a location: $message' + emote_format: '* $mention $formatted_body' + state_event_formats: + join: $distinguisher $displayname joined the room. + leave: $distinguisher $displayname left the room. + name_change: $distinguisher $prev_displayname changed their name to $distinguisher $displayname + filter: + mode: blacklist + list: [] + users: true + command_prefix: '!tg' + management_room_text: + welcome: Hello, I'm a Telegram bridge bot. + welcome_connected: Use `help` for help. + welcome_unconnected: Use `help` for help or `login` to log in. + additional_help: '' + management_room_multiple_messages: false + permissions: + "beeper.local": user + "beeper.com": user + "@inswe:beeper.com": admin + relaybot: + private_chat: + invite: [] + state_changes: true + message: This is a Matrix bridge relaybot and does not support direct chats + group_chat_invite: [] + ignore_unbridged_group_chat: true + authless_portals: true + whitelist_group_admins: true + ignore_own_incoming_events: true + whitelist: [] + +telegram: + api_id: REPLACE_API_ID + api_hash: REPLACE_API_HASH + bot_token: disabled + catch_up: true + sequential_updates: true + exit_on_update_error: true + force_refresh_interval_seconds: 0 + connection: + timeout: 120 + retries: 5 + retry_delay: 1 + flood_sleep_threshold: 60 + request_retries: 5 + use_ipv6: false + device_info: + device_model: Beeper (self-hosted) + system_version: auto + app_version: auto + lang_code: en + system_lang_code: en + server: + enabled: false + dc: 2 + ip: 149.154.167.40 + port: 80 + proxy: + type: disabled + +logging: + version: 1 + formatters: + colored: + format: "[%(asctime)s] [%(levelname)s@%(name)s] %(message)s" + datefmt: "%b %d %H:%M:%S" + handlers: + console: + class: logging.StreamHandler + formatter: colored + stream: ext://sys.stdout + root: + level: INFO + handlers: [console]