fix(install,e2e): установка на VPS владельца — четыре дефекта шаблонов и хелперов
Установка на VPS (Debian 13, 1 vCPU/2 ГБ) с внешним прокси на том же хосте
вскрыла дефекты, которые не проявлялись на стенде:
- compose: с --no-turn порты TURN всё равно публиковались, и стек не стартовал
(«failed to bind host port 0.0.0.0:3478/udp» — порт держит чужой coturn).
Теперь строки портов TURN подставляет установщик (GLCHAT_TURN_PORTS).
- LiveKit: добавлен отдельный адрес публикации медиапортов
(--livekit-media-bind-addr / GLCHAT_LIVEKIT_MEDIA_BIND): сигналинг остаётся
внутренним для прокси, а 7881/tcp и 7882/udp доступны клиентам из интернета.
- external-proxy.conf: адреса апстримов берутся из фактической привязки
(--app-bind-addr/--livekit-bind-addr), а не жёсткого 127.0.0.1.
- при --no-files-subdomain шаблоны внешнего прокси и встроенного Caddy писали
два блока с одним адресом сайта (Caddy отвергает такой конфиг и в embedded
режиме установка ломалась целиком): блок пользовательского контента теперь
появляется только при отдельном домене (GLCHAT_FILES_BLOCK).
- e2e: postWithRetry/repeat429 читают retry_after_ms из конверта ошибки
({"error":{...}}) — без этого хелперы сдавались раньше, чем сервер разрешал
повтор, и регистрация пробных аккаунтов на свежем инстансе падала.
- e2e: voice.spec.ts ищет комнату «Голос» точным именем: пока сайдбар
дорисовывает сервер, видны комнаты предыдущего («Голос A»/«Голос B»).
This commit is contained in:
@@ -177,7 +177,12 @@ test.describe('голос: два клиента в одной комнате',
|
||||
await session.page
|
||||
.getByRole('link', { name: `Открыть сервер ${fixture.guildName}`, exact: true })
|
||||
.click();
|
||||
await session.page.getByRole('link', { name: /Открыть комнату Голос/u }).click();
|
||||
// Имя комнаты — точно: пока сайдбар дорисовывает новый сервер, в нём
|
||||
// могут быть видны комнаты предыдущего (например, «Голос A»/«Голос B»
|
||||
// служебных проверок), и нечёткий локатор ловил бы две ссылки.
|
||||
await session.page
|
||||
.getByRole('link', { name: 'Открыть комнату Голос', exact: true })
|
||||
.click();
|
||||
await joinVoice(session.page);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user