From aa0b32a14238c6561d973ce05f52aab47c0b4add Mon Sep 17 00:00:00 2001 From: LukeGus Date: Thu, 15 Oct 2026 21:02:54 -0500 Subject: [PATCH] fix: stop building ssh2 native crypto in the docker image (#1644) --- CHANGELOG.md | 1 + docker/Dockerfile | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) 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