feat: add 7 new features — exec shell, SSE events, compose import, docker resources, resource limits, email notifications, auto-updates
- Container exec/shell via WebSocket + xterm.js (subtle >_ button on cards) - Live dashboard updates via SSE (resource alerts, health changes, update notices) - Docker Compose import with YAML parsing, preview, and dependency-ordered deploy - Volume & network management modal with disk usage overview - CPU/memory resource limits on deploy and live update - Email SMTP notifications (nodemailer) alongside Discord/Telegram/ntfy - Scheduled auto-update scheduler with maintenance windows (daily/weekly/monthly) New deps: ws, js-yaml, nodemailer Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -66,6 +66,8 @@ const errorLogsRoutes = require('../routes/errorlogs');
|
||||
const licenseRoutes = require('../routes/license');
|
||||
const recipesRoutes = require('../routes/recipes');
|
||||
const themesRoutes = require('../routes/themes');
|
||||
const dockerResourcesRoutes = require('../routes/docker-resources');
|
||||
const eventsRoutes = require('../routes/events');
|
||||
|
||||
// Constants
|
||||
const { APP } = require('../constants');
|
||||
@@ -419,6 +421,16 @@ async function createApp() {
|
||||
}));
|
||||
apiRouter.use('/recipes', recipesRoutes(ctx));
|
||||
apiRouter.use(themesRoutes({ asyncHandler: ctx.asyncHandler }));
|
||||
apiRouter.use('/docker', dockerResourcesRoutes({
|
||||
docker: ctx.docker,
|
||||
asyncHandler: ctx.asyncHandler
|
||||
}));
|
||||
apiRouter.use('/events', eventsRoutes({
|
||||
resourceMonitor: ctx.resourceMonitor,
|
||||
healthChecker: ctx.healthChecker,
|
||||
updateManager: ctx.updateManager,
|
||||
logError: ctx.logError
|
||||
}));
|
||||
|
||||
// Inline API routes
|
||||
apiRouter.get('/health', (req, res) => {
|
||||
|
||||
Reference in New Issue
Block a user