diff --git a/src/backend/src/routes.js b/src/backend/src/routes.js index 6c3b124..106638e 100644 --- a/src/backend/src/routes.js +++ b/src/backend/src/routes.js @@ -398,6 +398,25 @@ router.get('/gitea/repos/:owner/:repo/branches', authMiddleware, async (req, res } }); +// ============ PUBLIC STATUS ROUTE (sans authentification) ============ +// Utilisé par le portail applicatif pour griser les tuiles des apps arrêtées +router.get('/public/status', async (req, res) => { + try { + res.setHeader('Access-Control-Allow-Origin', '*'); + res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); + const statuses = getAllStatuses(); + const publicStatus = statuses.map((app) => ({ + id: app.id, + name: app.name, + status: app.status, // 'online' | 'offline' | 'error' | 'unknown' + containerRunning: app.container ? app.container.running : false, + })); + res.json(publicStatus); + } catch (err) { + res.status(500).json({ error: err.message }); + } +}); + // ============ DOCKER ROUTES ============ router.get('/docker/containers', authMiddleware, async (req, res) => {