Skip to content

Commit f0baa6c

Browse files
authored
Merge pull request #45 from RustyRory/feat/38-logs-websocket
feat(websocket): logs en temps reel
2 parents 94665a7 + c50bcf1 commit f0baa6c

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# Changelog
22

3+
## [0.4.2] — 2026-05-19
4+
5+
### Phase 4 — Logs en temps réel via WebSocket
6+
7+
#### Added
8+
9+
- Dépendance `ws` (v8) : serveur WebSocket monté sur le serveur HTTP Express via `noServer: true`
10+
- `GET /api/ws-token` (authentifié) : génère un token à usage unique (TTL 30 s) pour l'upgrade WebSocket — évite d'exposer la session cookie sur la connexion WS
11+
- `streamContainerLogs(name, tail, onData, onEnd)` dans `docker.js` : stream Docker `follow: true` avec démultiplexage stdout/stderr via `modem.demuxStream` + `PassThrough`
12+
- Gestionnaire `server.on('upgrade', ...)` : valide et consomme le token one-shot avant d'accepter la connexion WebSocket (401 + `socket.destroy()` si invalide ou expiré)
13+
- Modal "Logs" dans le dashboard : bouton "Logs" sur chaque card container (running et exited), affichage en temps réel dans un `<pre>` avec auto-scroll, fermeture via bouton ✕ ou clic sur l'overlay
14+
- `showLogs(name)` / `closeLogs()` dans `app.js` : gestion du cycle de vie WebSocket (ouverture, réception, erreur, fermeture propre du stream Docker)
15+
16+
#### Changed
17+
18+
- `server.js` : migration de `app.listen()` vers `http.createServer(app)` + `server.listen()` pour supporter l'upgrade WebSocket
19+
- `sessionMiddleware` extrait en variable nommée (préparation au partage avec le handler d'upgrade)
20+
- Section "Applications web" : ajout du bouton "Ouvrir →" sur les cards dans `renderWebsites` (frontend manquant en 0.4.1)
21+
22+
---
23+
324
## [0.4.1] — 2026-04-28
425

526
### Phase 4 — Navigation vers les applications depuis le dashboard

0 commit comments

Comments
 (0)