CI: Game-API per Bind-Mount deployen + Selbst-Neustart der API
Build & Deploy / deploy (push) Successful in 18s

- deploy.yml kopiert server.js auf den VPS; API beobachtet mtime und
  startet bei Aenderung selbst neu (Restart-Policy)
This commit is contained in:
Kimi Work
2026-10-10 19:16:35 +02:00
parent b1fb42fe7c
commit c25293e03d
2 changed files with 20 additions and 0 deletions
+15
View File
@@ -398,4 +398,19 @@ setInterval(() => {
speichern();
}, 10 * 60 * 1000).unref();
/* Selbst-Deploy: Der CI-Job ersetzt server.js im Bind-Mount. Sobald sich die
* Datei aendert, beendet sich der Prozess sauber – die Restart-Policy des
* Containers (unless-stopped) startet ihn mit dem neuen Code neu. */
const eigeneMtime = fs.statSync(__filename).mtimeMs;
setInterval(() => {
try {
if (fs.statSync(__filename).mtimeMs !== eigeneMtime) {
console.log('server.js wurde aktualisiert – Neustart für neuen Code');
process.exit(0);
}
} catch {
/* Datei kurzzeitig nicht lesbar – beim naechsten Intervall pruefen */
}
}, 5000).unref();
server.listen(PORT, () => console.log(`1bis8-game-api lauscht auf :${PORT} (Räume: ${Object.keys(rooms).length})`));