Логика запуска и Caddyfile переехали внутрь app
Файлы вне папки app обновление не доставляло: чтобы изменить порядок запуска или конфигурацию Caddy, требовалась переустановка. Теперь .bat - заглушка из трёх строк, вызывающая app/launcher.py, а Caddyfile создаётся из настроек [https] в config.toml. Отредактированный вручную Caddyfile не затирается: новая версия откладывается рядом как Caddyfile.new. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
cd3acafa8a
commit
febec7f124
@@ -107,7 +107,6 @@ def add_app(stage: Path) -> None:
|
||||
write_bat(stage / "start.bat", START_BAT)
|
||||
write_bat(stage / "download_models.bat", DOWNLOAD_BAT)
|
||||
write_bat(stage / "start-https.bat", HTTPS_BAT)
|
||||
(stage / "Caddyfile").write_text(CADDYFILE, encoding="utf-8", newline="\r\n")
|
||||
(stage / "download_models.py").write_text(
|
||||
(ROOT / "build" / "download_models.py").read_text(encoding="utf-8"), encoding="utf-8")
|
||||
|
||||
@@ -125,60 +124,28 @@ def write_bat(path: Path, text: str) -> None:
|
||||
|
||||
# chcp 65001 переводит консоль в UTF-8, и Python дальше пишет в той же кодировке.
|
||||
# Без этой пары русский текст в выводе превращается в мусор.
|
||||
# .bat - трёхстрочные заглушки: вся логика запуска живёт в app/launcher.py,
|
||||
# который обновление доставляет штатно. Раньше логика была здесь, и чтобы
|
||||
# изменить порядок запуска, требовалась переустановка.
|
||||
# chcp 65001 переводит консоль в UTF-8, иначе русский текст станет мусором.
|
||||
START_BAT = """@echo off
|
||||
chcp 65001 >nul
|
||||
cd /d "%~dp0"
|
||||
set "TALKSCORE_ASR_HOME=%~dp0"
|
||||
set "PYTHONPATH=%~dp0"
|
||||
"%~dp0python\\python.exe" -m app.updater
|
||||
"%~dp0python\\python.exe" -m app.main
|
||||
"%~dp0python\\python.exe" -m app.launcher
|
||||
pause
|
||||
"""
|
||||
|
||||
# Caddy слушает 443 и проксирует на сервис, который при этом сидит на localhost.
|
||||
HTTPS_BAT = """@echo off
|
||||
chcp 65001 >nul
|
||||
cd /d "%~dp0"
|
||||
set "TALKSCORE_ASR_HOME=%~dp0"
|
||||
set "PYTHONPATH=%~dp0"
|
||||
start "caddy" /min "%~dp0bin\\caddy.exe" run --config "%~dp0Caddyfile"
|
||||
"%~dp0python\\python.exe" -m app.updater
|
||||
"%~dp0python\\python.exe" -m app.main
|
||||
"%~dp0python\\python.exe" -m app.launcher https
|
||||
pause
|
||||
"""
|
||||
|
||||
CADDYFILE = """# Домены, на которых отвечает сервис. Caddy сам получит сертификаты
|
||||
# Let's Encrypt и будет продлевать их без напоминаний.
|
||||
# Требуется: порты 80 и 443 открыты снаружи, домены указывают на эту машину.
|
||||
|
||||
{
|
||||
# Caddy очень подробно рассказывает про сертификаты и забивает консоль, из-за
|
||||
# чего не видно сообщений самого сервиса. Уводим его вывод в файл: история
|
||||
# сохраняется целиком, а на экране остаётся только talkscore-asr.
|
||||
log {
|
||||
output file logs/caddy.log {
|
||||
roll_size 10MiB
|
||||
roll_keep 5
|
||||
}
|
||||
format console
|
||||
level INFO
|
||||
}
|
||||
}
|
||||
|
||||
asr.netranking.ru, asr.talkscore.ru {
|
||||
reverse_proxy 127.0.0.1:8756 {
|
||||
# Реальный адрес клиента - иначе список разрешённых адресов
|
||||
# увидит вместо него localhost и пустит кого угодно.
|
||||
header_up X-Forwarded-For {remote_host}
|
||||
}
|
||||
|
||||
# Записи бывают большими, стандартного предела мало.
|
||||
request_body {
|
||||
max_size 500MB
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
DOWNLOAD_BAT = """@echo off
|
||||
chcp 65001 >nul
|
||||
cd /d "%~dp0"
|
||||
|
||||
Reference in New Issue
Block a user