managarten/services/matrix-stats-bot/src/config/configuration.ts
Till-JS bd7f19718c feat(stats-bot): add infrastructure monitoring commands
Add 5 new commands powered by Prometheus/VictoriaMetrics:
- !system: Mac Mini status (CPU, RAM, Disk, Uptime, Load)
- !services: Backend service health (UP/DOWN)
- !traffic: HTTP traffic & latency per service
- !db: PostgreSQL & Redis status
- !growth: User growth statistics

New modules:
- PrometheusService: Query Prometheus/VictoriaMetrics API
- InfrastructureService: Generate infrastructure reports

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-14 11:24:31 +01:00

42 lines
1.5 KiB
TypeScript

export default () => ({
port: parseInt(process.env.PORT || '3312', 10),
timezone: process.env.TZ || 'Europe/Berlin',
matrix: {
homeserverUrl: process.env.MATRIX_HOMESERVER_URL || 'http://localhost:8008',
accessToken: process.env.MATRIX_ACCESS_TOKEN || '',
reportRoomId: process.env.MATRIX_REPORT_ROOM_ID || '',
storagePath: process.env.MATRIX_STORAGE_PATH || './data/bot-storage.json',
},
umami: {
apiUrl: process.env.UMAMI_API_URL || 'http://localhost:3000',
username: process.env.UMAMI_USERNAME || 'admin',
password: process.env.UMAMI_PASSWORD || '',
},
database: {
url: process.env.DATABASE_URL || '',
},
prometheus: {
url: process.env.PROMETHEUS_URL || 'http://localhost:9090',
},
});
// Website IDs from Umami - update these with actual UUIDs
export const WEBSITE_IDS: Record<string, string> = {
'manacore-webapp': process.env.UMAMI_WEBSITE_MANACORE || '',
'chat-webapp': process.env.UMAMI_WEBSITE_CHAT || '',
'todo-webapp': process.env.UMAMI_WEBSITE_TODO || '',
'calendar-webapp': process.env.UMAMI_WEBSITE_CALENDAR || '',
'clock-webapp': process.env.UMAMI_WEBSITE_CLOCK || '',
'contacts-webapp': process.env.UMAMI_WEBSITE_CONTACTS || '',
'storage-webapp': process.env.UMAMI_WEBSITE_STORAGE || '',
};
export const DISPLAY_NAMES: Record<string, string> = {
'manacore-webapp': 'Dashboard',
'chat-webapp': 'Chat',
'todo-webapp': 'Todo',
'calendar-webapp': 'Calendar',
'clock-webapp': 'Clock',
'contacts-webapp': 'Contacts',
'storage-webapp': 'Storage',
};