- в секции [telegram] заведён обязательный ключ enabled: умолчания у него нет, файл без него негоден; bot_token стал только ключом доступа и при enabled = false не читается вовсе, а пустой при enabled = true роняет старт - выключенный вход даёт подъём одним входом без единого обращения к Telegram и записью INFO вместо прежнего WARN: это выбор владельца, а не отклонение - отказ разбора файла настроек больше не пересказывает toml — её ParseError несёт в тексте разбираемое значение, и оборванная строка секретного ключа уносила его в журнал; теперь называются путь, строка, столбец и последний ключ
99 lines
5.8 KiB
TOML
99 lines
5.8 KiB
TOML
# 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. Ключ **обязателен**: умолчания у него нет, и
|
||
# файл без него негоден — сервис выходит с ошибкой настройки, назвав недостающий
|
||
# ключ. Умолчание было бы угаданным намерением, а признак заведён затем, чтобы
|
||
# намерение объявляли: любое умолчание делает одну из двух ошибок тихой — либо
|
||
# бот молча пропадает, либо файл без признака молча работает.
|
||
#
|
||
# false — сервис поднимается без Telegram и работает одним входом, по HTTP. Бот
|
||
# не заводится, к Telegram не уходит ни одного обращения, записи из Telegram не
|
||
# принимаются, а ответы на задачи, принятые оттуда прежде, не уходят —
|
||
# недоставка видна записью журнала, расшифровка достаётся из панели и по HTTP.
|
||
# О выключенном входе сервис говорит одной записью журнала «к сведению»: это
|
||
# выбор владельца, а не отклонение.
|
||
#
|
||
# true — сервис поднимает бота. Пустой bot_token при этом роняет старт: бота по
|
||
# пустому ключу не существует. Старт роняет и ответ Telegram «такого бота нет» —
|
||
# это опечатка в ключе, ждать тут нечего. А вот недоступность Telegram (сеть,
|
||
# DNS, авария Bot API) подъёму не мешает: сервис встаёт без бота и предупреждает
|
||
# записью журнала, потому что основной вход у него другой.
|
||
#
|
||
# Локальный прогон идёт с false — боевым токеном запускаться запрещено: второй
|
||
# процесс с тем же токеном перехватывает обновления у работающего. Выключенного
|
||
# входа для подъёма мало: секции [auth] и [yandex] проверяются на старте и
|
||
# роняют процесс на пустых ключах. Наружу при старте не ходит ни одна из них,
|
||
# поэтому для локального прогона годятся выдуманные непустые значения — адреса
|
||
# [auth] должны лишь разбираться как ссылки. Расшифровка при выдуманных ключах
|
||
# не работает: её подменяют в коде.
|
||
enabled = false
|
||
|
||
# Токен Telegram бота (получить у @BotFather в Telegram). Только ключ доступа:
|
||
# включением входа он больше не заведует, этим занят enabled выше. При
|
||
# enabled = false не читается вовсе.
|
||
bot_token = ""
|
||
|
||
# Таймаут обновлений Telegram бота (в секундах)
|
||
update_timeout = 10
|