From 16f213ef0c6b79f0811df4420b725e0032d9fc5f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=BE=E3=81=A3=E3=81=A1=E3=82=83=E3=81=A8=E3=83=BC?=
 =?UTF-8?q?=E3=81=AB=E3=82=85?=
 <17376330+u1-liquid@users.noreply.github.com>
Date: Mon, 30 Oct 2023 00:41:08 +0900
Subject: [PATCH] spec(deps): use node 20 (MisskeyIO#197)

---
 .devcontainer/devcontainer.json         | 2 +-
 .github/ISSUE_TEMPLATE/01_bug-report.md | 2 +-
 .github/workflows/test-backend.yml      | 2 +-
 .github/workflows/test-frontend.yml     | 4 ++--
 .github/workflows/test-misskey-js.yml   | 2 +-
 .github/workflows/test-production.yml   | 2 +-
 .node-version                           | 2 +-
 Dockerfile                              | 5 +++--
 8 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 89df1b5d04..d0689667ac 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -6,7 +6,7 @@
 	"features": {
 		"ghcr.io/devcontainers-contrib/features/pnpm:2": {},
 		"ghcr.io/devcontainers/features/node:1": {
-			"version": "18.17.0"
+			"version": "20"
 		}
 	},
 	"forwardPorts": [3000],
diff --git a/.github/ISSUE_TEMPLATE/01_bug-report.md b/.github/ISSUE_TEMPLATE/01_bug-report.md
index 25e7fc8b20..b889d96eb3 100644
--- a/.github/ISSUE_TEMPLATE/01_bug-report.md
+++ b/.github/ISSUE_TEMPLATE/01_bug-report.md
@@ -54,7 +54,7 @@ Please include errors from the developer console and/or server log files if you
 
 * Installation Method or Hosting Service: <!-- Example: docker compose, k8s/docker, systemd, "Misskey install shell script", development environment -->
 * Misskey: 13.x.x
-* Node: 18.x.x
+* Node: 20.x.x
 * PostgreSQL: 15.x.x
 * Redis: 7.x.x
 * OS and Architecture: <!-- Example: Ubuntu 22.04.2 LTS aarch64 -->
diff --git a/.github/workflows/test-backend.yml b/.github/workflows/test-backend.yml
index 06961ace19..d133cf4d99 100644
--- a/.github/workflows/test-backend.yml
+++ b/.github/workflows/test-backend.yml
@@ -13,7 +13,7 @@ jobs:
 
     strategy:
       matrix:
-        node-version: [18.x]
+        node-version: [20.x]
 
     services:
       postgres:
diff --git a/.github/workflows/test-frontend.yml b/.github/workflows/test-frontend.yml
index d7de19c659..87b9a26f9b 100644
--- a/.github/workflows/test-frontend.yml
+++ b/.github/workflows/test-frontend.yml
@@ -13,7 +13,7 @@ jobs:
 
     strategy:
       matrix:
-        node-version: [18.x]
+        node-version: [20.x]
 
     steps:
     - uses: actions/checkout@v3.3.0
@@ -51,7 +51,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        node-version: [18.x]
+        node-version: [20.x]
         browser: [chrome]
 
     services:
diff --git a/.github/workflows/test-misskey-js.yml b/.github/workflows/test-misskey-js.yml
index b15e704c7f..213657ce1f 100644
--- a/.github/workflows/test-misskey-js.yml
+++ b/.github/workflows/test-misskey-js.yml
@@ -16,7 +16,7 @@ jobs:
 
     strategy:
       matrix:
-        node-version: [18.x]
+        node-version: [20.x]
         # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
 
     steps:
diff --git a/.github/workflows/test-production.yml b/.github/workflows/test-production.yml
index 5243a83777..8429465b5b 100644
--- a/.github/workflows/test-production.yml
+++ b/.github/workflows/test-production.yml
@@ -16,7 +16,7 @@ jobs:
 
     strategy:
       matrix:
-        node-version: [18.x]
+        node-version: [20.x]
 
     steps:
     - uses: actions/checkout@v3.3.0
diff --git a/.node-version b/.node-version
index 603606bc91..209e3ef4b6 100644
--- a/.node-version
+++ b/.node-version
@@ -1 +1 @@
-18.17.0
+20
diff --git a/Dockerfile b/Dockerfile
index 787e248cb1..64ebf8654f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
 # syntax = docker/dockerfile:1.4
 
-ARG NODE_VERSION=18.17.0-bullseye
+ARG NODE_VERSION=20
 
 # build assets & compile TypeScript
 
@@ -63,6 +63,7 @@ ARG GID="991"
 RUN apt-get update \
 	&& apt-get install -y --no-install-recommends \
 	ffmpeg tini curl libjemalloc2 \
+	&& ln -s /usr/lib/$(uname -m)-linux-gnu/libjemalloc.so.2 /usr/local/lib/libjemalloc.so \
 	&& corepack enable \
 	&& groupadd -g "${GID}" misskey \
 	&& useradd -l -u "${UID}" -g "${GID}" -m -d /misskey misskey \
@@ -81,7 +82,7 @@ COPY --chown=misskey:misskey --from=native-builder /misskey/packages/backend/bui
 COPY --chown=misskey:misskey --from=native-builder /misskey/fluent-emojis /misskey/fluent-emojis
 COPY --chown=misskey:misskey . ./
 
-ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
+ENV LD_PRELOAD=/usr/local/lib/libjemalloc.so
 ENV MALLOC_CONF=background_thread:true,metadata_thp:auto,dirty_decay_ms:30000,muzzy_decay_ms:30000
 ENV NODE_ENV=production
 HEALTHCHECK --interval=5s --retries=20 CMD ["/bin/bash", "/misskey/healthcheck.sh"]