config: образец переименован в config.example.toml
- имя приведено к конвенции, которая сама называла его расхождением; ссылки поправлены в README, CLAUDE.md, конвенциях, docs/review.md и двух записях задач - в шапке docs/conventions/config.md заодно поправлен второй пункт перечня: проверки на старте у `[auth]` и `[telegram]` уже есть - архив openspec/changes/archive/ не тронут: это запись о прошлом
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user