round55: DNS-Abfragen mit Timeout absichern, Thread-Pool-Groesse erhoehen (behebt Haenger nach masscan/httpx-Vorabscan), Live-Haekchen pro fertigem Geraet im Batch

This commit is contained in:
2026-07-26 12:27:24 +02:00
parent c7398ce2ba
commit ca8c8c1d3b
3 changed files with 75 additions and 6 deletions

View File

@@ -31,6 +31,21 @@ ENV NODE_ENV=production
ENV DATABASE_PATH=/data/launchpad.db
ENV PORT=3001
ENV HOST=0.0.0.0
# node:dns/promises (lookup/reverse, siehe scanner/dns.ts) läuft NICHT über
# normales nicht-blockierendes I/O, sondern über getaddrinfo() im
# Betriebssystem - Node schickt das über den libuv-Threadpool ab, der
# standardmäßig nur 4 Threads hat. Beim Sammel-Scan mit bis zu 10 parallel
# gescannten Geräten (siehe routes/scan.ts CONCURRENT_DEVICES) und je bis zu
# 4 DNS-Abfragen pro Gerät reichte das nicht annähernd und führte zu einem
# Rückstau, der wie ein hängender Sammel-Scan aussah (siehe Bugreport - Scan
# blieb nach erfolgreichem masscan-/httpx-Vorabscan minutenlang in der
# eigentlichen Geräte-Schleife stehen). MUSS hier als Umgebungsvariable
# gesetzt werden, nicht im JS-Code selbst: das Projekt läuft als natives ESM
# ("type": "module"), dort werden alle import-Anweisungen VOR jeglichem
# sonstigen Code im Modul ausgeführt (auch wenn dieser Code textuell davor
# steht) - ein Setzen von process.env.UV_THREADPOOL_SIZE am Dateianfang von
# index.ts käme damit zu spät.
ENV UV_THREADPOOL_SIZE=32
# iputils-ping stellt einen "echten" ping-Befehl mit ICMP-Unterstützung
# bereit (nicht nur die BusyBox-Variante) - für den optionalen Live-Status-