From e63eee28e00ae01fe4db92ac1235d7be7f25b76d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Thu, 6 Oct 2022 11:14:04 +0200 Subject: [PATCH] fix(cli): Cache generated assets in user writable directory instead (#4275) --- docker/images/n8n/docker-entrypoint.sh | 4 +--- packages/cli/src/Server.ts | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/docker/images/n8n/docker-entrypoint.sh b/docker/images/n8n/docker-entrypoint.sh index c2a42b620..fa81b3713 100755 --- a/docker/images/n8n/docker-entrypoint.sh +++ b/docker/images/n8n/docker-entrypoint.sh @@ -6,9 +6,7 @@ if [ -d /root/.n8n ] ; then ln -s /root/.n8n /home/node/ fi -# node user needs to be able to write in this folder to be able to customize static assets -mkdir -p /usr/local/lib/node_modules/n8n/dist/public -chown -R node /home/node /usr/local/lib/node_modules/n8n/dist/public +chown -R node /home/node if [ "$#" -gt 0 ]; then # Got started with arguments diff --git a/packages/cli/src/Server.ts b/packages/cli/src/Server.ts index 180c04d9b..12ec80f31 100644 --- a/packages/cli/src/Server.ts +++ b/packages/cli/src/Server.ts @@ -38,12 +38,10 @@ import { createHmac } from 'crypto'; import { promisify } from 'util'; import cookieParser from 'cookie-parser'; import express from 'express'; -import send from 'send'; import { FindManyOptions, getConnectionManager, In } from 'typeorm'; // eslint-disable-next-line import/no-extraneous-dependencies import axios, { AxiosRequestConfig } from 'axios'; import clientOAuth1, { RequestOptions } from 'oauth-1.0a'; -import curlconverter from 'curlconverter'; // IMPORTANT! Do not switch to anther bcrypt library unless really necessary and // tested with all possible systems like Windows, Alpine on ARM, FreeBSD, ... import { compare } from 'bcryptjs'; @@ -1787,7 +1785,7 @@ class App { } const editorUiDistDir = pathJoin(pathDirname(require.resolve('n8n-editor-ui')), 'dist'); - const generatedStaticDir = pathJoin(__dirname, '../public'); + const generatedStaticDir = pathJoin(UserSettings.getUserHome(), '.cache/n8n/public'); const closingTitleTag = ''; const compileFile = async (fileName: string) => {