diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a7563ebd..5f24872d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ - Synced plugins signed only by a key the server sent are no longer turned on by themselves - Two connects to the same host at once could overwrite each other's connection - Indonesian uses the same technical terms everywhere +- The Docker server crashed and restarted every few hours in ssh2's native crypto on Node 24 ## 26.10.1 diff --git a/docker/Dockerfile b/docker/Dockerfile index 5047ad3ae..a9401446e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -74,12 +74,15 @@ COPY vendor ./vendor COPY scripts/patch-ssh2-agent.cjs ./scripts/ +# ssh2's native crypto crashes Node 24 when a cipher is freed, so ssh2 uses +# OpenSSL instead (chacha20-poly1305 is then left out). RUN npm ci --omit=dev --ignore-scripts && \ node scripts/patch-ssh2-agent.cjs && \ rm -rf node_modules/better-sqlite3/prebuilds && \ npm run build-release --prefix node_modules/better-sqlite3 && \ test -f node_modules/better-sqlite3/build/Release/better_sqlite3.node && \ - npm rebuild bcryptjs ssh2 && \ + npm rebuild bcryptjs && \ + rm -rf node_modules/ssh2/lib/protocol/crypto/build && \ npm cache clean --force # Stage 6: Final optimized image