# Server configuration [server] port = 8080 shutdown_timeout = 5 force_shutdown_timeout = 20 # Storage configuration # Единственный каталог данных: под ним лежат и база, и файлы записей. [storage] data_dir = "data" # Yandex Cloud Configuration [yandex] # ID папки в Yandex Cloud (получить в консоли Yandex Cloud) folder_id = "your_folder_id_here" # API ключ для доступа к Yandex SpeechKit (получить в консоли Yandex Cloud) speech_kit_api_key = "your_speech_kit_api_key_here" # Object Storage (S3) configuration # Access Key ID для доступа к Object Storage (получить в консоли Yandex Cloud) object_storage_access_key_id = "your_access_key_id" # Secret Access Key для доступа к Object Storage (получить в консоли Yandex Cloud) object_storage_secret_access_key = "your_secret_access_key" # Имя бакета в Object Storage object_storage_bucket_name = "your_bucket_name" # Регион Object Storage object_storage_region = "ru-central1" # Endpoint Object Storage object_storage_endpoint = "https://storage.yandexcloud.net/" # Вход через внешнего провайдера OIDC (Authelia). # Без заполненной секции сервис не поднимается: молча выключенный вход оставил бы # API открытым наружу. [auth] # Адрес, куда сервис уводит человека на вход auth_url = "https://auth.example.com/api/oidc/authorization" # Адрес, где код обменивается на токен token_url = "https://auth.example.com/api/oidc/token" # Адрес, откуда берутся сведения о вошедшем user_info_url = "https://auth.example.com/api/oidc/userinfo" # Идентификатор клиента, заведённого у провайдера client_id = "transcriber" # Секрет клиента; приходит из выкладки, в git не коммитится client_secret = "" # Адрес возврата; тот же, что записан клиенту у провайдера redirect_url = "https://transcriber.example.com/auth/callback" # Признак `Secure` у куки сессии. Умолчание true; false только для локального # запуска по http://localhost, где браузер такую куку не сохранит secure_cookie = true # Telegram Bot Configuration [telegram] # Токен Telegram бота (получить у @BotFather в Telegram). # # Пустое значение — объявленный режим: сервис поднимается без Telegram и # работает одним входом, по HTTP. Бот при этом не заводится, записи из Telegram # не принимаются, а ответы на задачи, принятые оттуда прежде, не уходят — # недоставка видна записью журнала, расшифровка достаётся из панели и по HTTP. # Старт роняет только один случай — Telegram ответил, что бота по такому токену # нет: ждать тут нечего, это опечатка в настройке. Недоступность Telegram (сеть, # DNS, авария Bot API) подъёму не мешает: сервис встаёт без бота и говорит об # этом записью журнала, потому что основной вход у него другой. # # Локальный прогон идёт именно так — боевым токеном запускаться запрещено: # второй процесс с тем же токеном перехватывает обновления у работающего. # Пустого токена для подъёма мало: секции [auth] и [yandex] проверяются на # старте и роняют процесс на пустых ключах. Наружу при старте не ходит ни одна # из них, поэтому для локального прогона годятся выдуманные непустые значения — # адреса [auth] должны лишь разбираться как ссылки. Расшифровка при выдуманных # ключах не работает: её подменяют в коде. bot_token = "" # Таймаут обновлений Telegram бота (в секундах) update_timeout = 10