feat: add server logs functionality with role-based access and system channel management

- Introduced a new migration to add the IsSystem column to the Channels table.
- Updated the DbContext model snapshot to reflect the new IsSystem property.
- Enhanced the ChannelService to manage system channels, including creation, visibility control, and protection against deletion.
- Implemented ServerLogsService to handle live server logging, including reading from log files and managing access based on user roles.
- Created ServerLogsSink to queue log events for streaming to the live log room.
- Developed ServerLogsStreamService to stream log events to clients in real-time.
- Added configuration options for server logs in appsettings.
- Implemented comprehensive unit tests for channel service system channel behavior and server logs functionality.
This commit is contained in:
HueByte
2026-07-17 20:44:47 +02:00
parent df1bd0119c
commit 38eca99fb1
22 changed files with 1569 additions and 17 deletions
@@ -47,6 +47,15 @@
"Key": "",
"EncryptDatabase": false
},
"ServerLogs": {
"Enabled": true,
"RoomName": "server-logs",
"MinRole": "Mod",
"MinLevel": "Information",
"BacklogLines": 100,
"LogDirectory": "logs",
"LogFilePattern": "echohub-server-*.log"
},
"Irc": {
"Enabled": false,
"Port": 6667,