From e547a7768342202372259de7c1048f8b36f70d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Wed, 4 Nov 2026 13:14:04 +0100 Subject: [PATCH] docs: describe the image as the official Node 22 Debian slim image The unreleased changelog entry said the image moved to Wolfi. It now names the official Node image, why (Raspberry Pi 4 rendering, Node security releases arriving with the image), that the image carries no package manager, and that psql is no longer in the app image. The README and the getting-started prerequisites say the same. --- CHANGELOG.md | 24 ++++++++++++++---------- README.md | 2 +- docs/self-hosting/getting-started.md | 3 ++- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5e7c15e4..95d0a94b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,16 +51,20 @@ ### Changed -- **The image runs on Wolfi instead of Alpine.** The runtime is glibc now, - so the native page renderer, password hashing and the Prisma engine run - their glibc builds. The published arm64 image renders PDF pages on a - Raspberry Pi 4 again, where the Alpine build of the renderer needs CPU - features an ARMv8.0 core lacks. The compressed image is a little smaller - than before. A health check that still calls `wget`, from a compose - file copied before this release or a platform template, keeps working: - the image carries a small `wget` that answers health checks and nothing - else. The current `docker-compose.yml` probes with Node directly, and - that is the one to switch to. (#1311) +- **The image runs on the official Node 22 image (Debian slim) instead of + Alpine.** The runtime is glibc now, so the native page renderer, + password hashing and the Prisma engine run their glibc builds. The + published arm64 image renders PDF pages on a Raspberry Pi 4 again, where + the Alpine build of the renderer needs CPU features an ARMv8.0 core + lacks. Node security releases now reach the image with the official + Node image, usually within days. The image carries no package manager: + npm, npx, corepack and yarn are removed. `pg_dump` and `pg_restore` are + PostgreSQL 18.6, the bundled database's version; `psql` is no longer in + the app image, so run it in the `db` container. A health check that + still calls `wget`, from a compose file copied before this release or a + platform template, keeps working: the image carries a small `wget` that + answers health checks and nothing else. The current `docker-compose.yml` + probes with Node directly, and that is the one to switch to. (#1311) - **The app connects to the database with less power.** On Postgres 17 or later, with a database user that may create roles (the bundled compose file's user may), the app and the worker now connect as a role of their diff --git a/README.md b/README.md index f605cbc78..4a1a137ee 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ The App Store listing carries a small price, which exists to cover Apple's yearl ## Tech stack -Next.js 16 (App Router, React Server Components), TypeScript strict, PostgreSQL 18 with Prisma, pg-boss for jobs, Tailwind CSS 4 + shadcn/ui, Recharts, WebAuthn passkeys, Vitest + Playwright, multi-stage glibc Docker image (Debian build, Wolfi runtime). The OpenAPI 3.1 contract for native clients is generated from the Zod schemas at [`docs/api/openapi.yaml`](docs/api/openapi.yaml). +Next.js 16 (App Router, React Server Components), TypeScript strict, PostgreSQL 18 with Prisma, pg-boss for jobs, Tailwind CSS 4 + shadcn/ui, Recharts, WebAuthn passkeys, Vitest + Playwright, multi-stage Docker image on the official Node 22 Debian slim base. The OpenAPI 3.1 contract for native clients is generated from the Zod schemas at [`docs/api/openapi.yaml`](docs/api/openapi.yaml). ## Documentation diff --git a/docs/self-hosting/getting-started.md b/docs/self-hosting/getting-started.md index c602b9c12..fd7570fd2 100644 --- a/docs/self-hosting/getting-started.md +++ b/docs/self-hosting/getting-started.md @@ -10,7 +10,8 @@ already installed, longer if a TLS-fronted public hostname is in scope - **Docker 24+ with Compose v2.** The bundled `docker-compose.yml` pulls a multi-arch image from GitHub Container Registry (linux/amd64 and linux/arm64), so a Raspberry Pi 4 or 5 or an x86 VPS all work - unchanged. The image runs on glibc (a Wolfi base). Document thumbnails and + unchanged. The image is built on the official Node 22 image (Debian + slim, glibc). Document thumbnails and scanned-PDF rendering use a native renderer that runs on every arm64 board, the Pi 4 included, and on x86-64 CPUs with AVX2; on an older x86 CPU (Celeron/Atom-class NAS chips) it switches itself off and those two