Skip to content

安装私有节点

您可以构建自己的节点并将其安装在 n8n 实例中,而无需将其发布到 npm。这对于您创建的仅供公司内部使用的节点非常有用。

在 Docker n8n 实例中安装你的节点

如果您使用 Docker 运行 n8n,则需要创建一个安装了 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. 编译你的自定义节点代码(如果你使用 Node.js 启动器)。将dist文件夹中的nodecredential文件夹复制到容器目录中。这样 Docker 就可以使用这些代码了。

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

  4. 构建你的 Docker 镜像:

    1
    2
    3
    # Replace <n8n-version-number> with the n8n release version number. 
    # For example, N8N_VERSION=0.177.0
    docker build --build-arg N8N_VERSION=<n8n-version-number> --tag=customizedn8n .
    

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

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

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