Skip to content

安装私有节点#

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

在 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
    
    # 更新所有内容并安装所需依赖
    RUN apk add --update graphicsmagick tzdata git tini su-exec
    
    # 设置自定义用户以避免 n8n 以 root 身份运行
    USER root
    
    # 安装 n8n 及其构建所需的包
    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;
    
    
    # 安装字体
    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 会自动发现并加载该模块。