Install private nodes#

You can build your own nodes and install them in your SMS-iT Workflow instance without publishing them on npm. This is useful for nodes that you create for internal use only at your company.

Install your node in a Docker SMS-iT Workflow instance#

If you're running SMS-iT Workflow using Docker, you need to create a Docker image with the node installed in SMS-iT Workflow.

  1. Create a Dockerfile and paste the code from this Dockerfile.

    Your Dockerfile should look like this:

     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 SMS-iT Workflow_VERSION RUN if [ -z "$SMS-iT Workflow_VERSION" ] ; then echo "The SMS-iT Workflow_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 SMS-iT Workflow run as root
    USER root # Install SMS-iT Workflow 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 SMS-iT Workflow@${SMS-iT Workflow_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. Compile your custom node code (npm run build if you are using nodes starter). Copy the node and credential folders from within the dist folder into your container's ~/.SMS-iT Workflow/custom/ directory. This makes them available to Docker.

  3. Download the docker-entrypoint.sh file, and place it in the same directory as your Dockerfile.

  4. Build your Docker image:

    1
    2
    3
    # Replace <SMS-iT Workflow-version-number> with the SMS-iT Workflow release version number. 
    # For example, SMS-iT Workflow_VERSION=0.177.0
    docker build --build-arg SMS-iT Workflow_VERSION=<SMS-iT Workflow-version-number> --tag=customizedSMS-iT Workflow .
    

You can now use your node in Docker.

Install your node in a global SMS-iT Workflow instance#

If you've installed SMS-iT Workflow globally, make sure that you install your node inside SMS-iT Workflow. SMS-iT Workflow will find the module and load it automatically.