Skip to content

安装私有节点#

您可以构建自己的节点并将其安装在 n8n 实例中,而无需在 npm 上发布它们。这对于您为公司内部使用而创建的节点很有用。

在 Docker n8n 实例中安装您的节点#

如果您使用 Docker 运行 n8n,则需要创建一个安装了节点的 Docker 镜像。

  1. 创建一个 Dockerfile 并粘贴来自此 Dockerfile 的代码。

    您的 Dockerfile 应该如下所示:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    FROM node:16-alpine
    
    ARG N8N_VERSION
    
    RUN if [ -z "$N8N_VERSION" ] ; then echo "The N8N_VERSION argument is missing!" ; exit 1; fi
    
    # Update everything and install needed dependencies
    RUN apk add --update graphicsmagick tzdata git tini su-exec
    
    # Set a custom user to not have n8n run as root
    USER root
    
    # Install n8n and the packages it needs to build it correctly.
    RUN apk --update add --virtual build-dependencies python3 build-base ca-certificates && \
    	npm config set python "$(which python3)" && \
    	npm_config_user=root npm install -g full-icu n8n@${N8N_VERSION} && \
    	apk del build-dependencies \
    	&& rm -rf /root /tmp/* /var/cache/apk/* && mkdir /root;
    
    
    # Install fonts
    RUN apk --no-cache add --virtual fonts msttcorefonts-installer fontconfig && \
    	update-ms-fonts && \
    	fc-cache -f && \
    	apk del fonts && \
    	find  /usr/share/fonts/truetype/msttcorefonts/ -type l -exec unlink {} \; \
    	&& rm -rf /root /tmp/* /var/cache/apk/* && mkdir /root
    
    ENV NODE_ICU_DATA /usr/local/lib/node_modules/full-icu
    
    WORKDIR /data
    
    COPY docker-entrypoint.sh /docker-entrypoint.sh
    ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"]
    
    EXPOSE 5678/tcp
    
  2. 编译您的自定义节点代码(如果您使用节点启动器,则运行 npm run build)。将 dist 文件夹中的 nodecredential 文件夹复制到容器的 ~/.n8n/custom/ 目录中。这使它们对 Docker 可用。

  3. 下载 docker-entrypoint.sh 文件,并将其放置在与 Dockerfile 相同的目录中。

  4. 构建您的 Docker 镜像:

    1
    2
    3
    # 将 <n8n-version-number> 替换为 n8n 发布版本号。
    # 例如,N8N_VERSION=0.177.0
    docker build --build-arg N8N_VERSION=<n8n-version-number> --tag=customizedn8n .
    

现在您可以在 Docker 中使用您的节点。

在全局 n8n 实例中安装您的节点#

如果您已全局安装 n8n,请确保在 n8n 内部安装您的节点。n8n 将找到该模块并自动加载它。