From 24ab23045b14845096efa78ec0f4546190dbd87e Mon Sep 17 00:00:00 2001 From: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com> Date: Tue, 14 Jul 2026 03:24:48 -0700 Subject: [PATCH] Chore: Build: Add build-time `LICENSE_REQUIRED` config flag to Joplin Server (#15913) --- .dockerignore | 2 ++ Dockerfile.server | 3 +++ packages/server/.gitignore | 1 + packages/tools/buildServerDocker.ts | 7 +++++++ 4 files changed, 13 insertions(+) diff --git a/.dockerignore b/.dockerignore index 7e3c5df80c..89c4c25edc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -17,4 +17,6 @@ packages/server/db-*.sqlite packages/server/dist/ packages/server/logs/ packages/server/temp/ +packages/server/assets/license/signingKey.private.*.pem +packages/server/readme/ packages/transcribe/.env diff --git a/Dockerfile.server b/Dockerfile.server index 041cac9c2a..f8901b9b98 100644 --- a/Dockerfile.server +++ b/Dockerfile.server @@ -89,6 +89,9 @@ RUN pm2 install https://registry.npmjs.org/pm2-logrotate/-/pm2-logrotate-3.0.0.t && pm2 set pm2-logrotate:retain 5 \ && pm2 set pm2-logrotate:compress true +ARG LICENSE_REQUIRED="0" +ENV LICENSE_REQUIRED=${LICENSE_REQUIRED} + ENV NODE_ENV=production ENV RUNNING_IN_DOCKER=1 EXPOSE ${APP_PORT} diff --git a/packages/server/.gitignore b/packages/server/.gitignore index fa0aefa3a6..8b4753176a 100644 --- a/packages/server/.gitignore +++ b/packages/server/.gitignore @@ -8,4 +8,5 @@ logs/ tests/temp/ temp/ resource/ +assets/license/signingKey.private.prod.pem .env \ No newline at end of file diff --git a/packages/tools/buildServerDocker.ts b/packages/tools/buildServerDocker.ts index 0c996b8f11..2a74b9ac15 100644 --- a/packages/tools/buildServerDocker.ts +++ b/packages/tools/buildServerDocker.ts @@ -8,6 +8,7 @@ interface Argv { repository?: string; imageName?: string; tagName?: string; + licenseRequired?: boolean; platform?: string; source?: string; addLatestTag?: boolean; @@ -42,6 +43,11 @@ function parseArgv(): Argv { type: 'boolean', default: false, }) + .option('licenseRequired', { + describe: 'Whether a license key is required to use the built image.', + type: 'boolean', + default: false, + }) .option('platform', { describe: 'Comma separated list of target image platforms. E.g. `linux/amd64` or `linux/amd64,linux/arm64`', type: 'string', @@ -111,6 +117,7 @@ async function main() { } const buildArgs = []; + buildArgs.push(`LICENSE_REQUIRED="${argv.licenseRequired ? 1 : 0}"`); buildArgs.push(`BUILD_DATE="${buildDate}"`); buildArgs.push(`REVISION="${revision}"`); buildArgs.push(`VERSION="${imageVersion}"`);