Files
egorin/server/src/config.js
T
GermanandClaude Opus 4.8 b1c52ab748 Железный Егорин — форк Орбиты: тёплый стиль (amber), логин с odyssey WebGL-молнией справа, энергомониторинг+панель
Ребренд Мониторинг Орбита -> Железный Егорин; accent green->amber #F59E0B; LoginScreen правая половина = Lightning (WebGL, hue 35 тёплый) под стеклянной формой; левая панель — тёплый градиент.
Доступ агентам: репо публичный, push german-токеном.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 23:57:16 +03:00

39 lines
1.7 KiB
JavaScript

// Конфигурация шлюза из окружения. Адаптер активен только если задан его источник;
// иначе раздел работает на демо-данных (fallback). Так шлюз поднимается сразу,
// а реальные источники «зажигаются» по мере готовности их стеков.
const env = process.env;
export const config = {
port: Number(env.PORT || 4100),
jwtSecret: env.JWT_SECRET || 'dev-secret-change-me',
dataDir: env.DATA_DIR || '/data', // персист арендаторов/привязок устройств
traccar: env.TRACCAR_URL
? { url: env.TRACCAR_URL, token: env.TRACCAR_TOKEN || '', user: env.TRACCAR_USER || '', pass: env.TRACCAR_PASS || '' }
: null,
mqtt: env.MQTT_URL
? { url: env.MQTT_URL, username: env.MQTT_USER || undefined, password: env.MQTT_PASS || undefined, prefix: env.MQTT_PREFIX || '/devices' }
: null,
influx: env.INFLUX_URL
? { url: env.INFLUX_URL, token: env.INFLUX_TOKEN || '', org: env.INFLUX_ORG || '', bucket: env.INFLUX_BUCKET || 'energy' }
: null,
// Яндекс ID (OAuth). Активен при YANDEX_CLIENT_ID. Регистрация: oauth.yandex.ru.
yandex: env.YANDEX_CLIENT_ID
? {
clientId: env.YANDEX_CLIENT_ID,
secret: env.YANDEX_CLIENT_SECRET || '',
redirect: env.YANDEX_REDIRECT || 'https://monitor.servaki.online/api/auth/yandex/callback',
admins: (env.YANDEX_ADMINS || '').split(',').map((s) => s.trim().toLowerCase()).filter(Boolean),
}
: null,
};
export const sources = {
traccar: !!config.traccar,
wirenboard: !!config.mqtt,
influx: !!config.influx,
};