update
This commit is contained in:
@@ -16,3 +16,6 @@ FAN_OUT_TIMEOUT_MS=5000
|
||||
|
||||
# Порт HTTP-сервера (по умолчанию: 3100)
|
||||
PORT=3100
|
||||
|
||||
# Опционально: прямой URL LiveKit webhook для кооператива voskhod (только при NODE_ENV=development)
|
||||
# VOSKHOD_LIVEKIT_WEBHOOK_URL=http://controller-host:2998/v1/extensions/chatcoop/livekit-webhook
|
||||
|
||||
@@ -25,6 +25,12 @@ export interface Config {
|
||||
|
||||
/** Префикс пути к API контроллера (без слеша) */
|
||||
apiPrefix: string;
|
||||
|
||||
/**
|
||||
* Полный URL webhook контроллера для кооператива voskhod (только при NODE_ENV=development).
|
||||
* Задаётся в .env на деплое, без хардкода хостов в коде.
|
||||
*/
|
||||
voskhodLivekitWebhookUrl?: string;
|
||||
}
|
||||
|
||||
function getEnvOrThrow(key: string): string {
|
||||
@@ -49,5 +55,15 @@ export function loadConfig(): Config {
|
||||
coopRefreshIntervalMs: parseInt(getEnvOrDefault('COOP_REFRESH_INTERVAL_MS', '300000'), 10),
|
||||
fanOutTimeoutMs: parseInt(getEnvOrDefault('FAN_OUT_TIMEOUT_MS', '5000'), 10),
|
||||
apiPrefix: getEnvOrDefault('API_PREFIX', 'backend'),
|
||||
voskhodLivekitWebhookUrl: optionalTrimmedUrl('VOSKHOD_LIVEKIT_WEBHOOK_URL'),
|
||||
};
|
||||
}
|
||||
|
||||
function optionalTrimmedUrl(key: string): string | undefined {
|
||||
const raw = process.env[key];
|
||||
if (!raw) {
|
||||
return undefined;
|
||||
}
|
||||
const trimmed = raw.trim();
|
||||
return trimmed.length > 0 ? trimmed : undefined;
|
||||
}
|
||||
|
||||
+8
-8
@@ -41,14 +41,14 @@ export class FanOutService {
|
||||
let success = false;
|
||||
let lastError: string = '';
|
||||
|
||||
// Временное исключение для кооператива voskhod (только в development)
|
||||
let url: string;
|
||||
if (coop.username === 'voskhod' && process.env.NODE_ENV === 'development') {
|
||||
url = 'http://176.222.53.50:2998/v1/extensions/chatcoop/livekit-webhook';
|
||||
} else {
|
||||
const prefix = this.config.apiPrefix ? `/${this.config.apiPrefix}` : '';
|
||||
url = `https://${coop.announce}${prefix}/v1/extensions/chatcoop/livekit-webhook`;
|
||||
}
|
||||
const prefix = this.config.apiPrefix ? `/${this.config.apiPrefix}` : '';
|
||||
const defaultUrl = `https://${coop.announce}${prefix}/v1/extensions/chatcoop/livekit-webhook`;
|
||||
const url =
|
||||
coop.username === 'voskhod' &&
|
||||
process.env.NODE_ENV === 'development' &&
|
||||
this.config.voskhodLivekitWebhookUrl
|
||||
? this.config.voskhodLivekitWebhookUrl
|
||||
: defaultUrl;
|
||||
|
||||
// Пытаемся отправить до 3 раз
|
||||
for (let attempt = 1; attempt <= 3; attempt++) {
|
||||
|
||||
Reference in New Issue
Block a user