docker:node-red

Node-Red

node-red for teslamate

给node-red安装模块

高级版脚本

bash <(curl -sSL http://flush.119he.com/teslamate/v6.0.0/add-nr-modules.sh)
###########################################
#        Node-Red模块安装脚本
# 2025.2.3 v1.1.0
# netfun2000@foxmail.com
###########################################

#!/bin/sh

# 定义颜色常量,用于输出提示
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 定义需要安装的Node-RED模块列表
MODULES="node-red-contrib-calc
node-red-contrib-simpletime
node-red-dashboard
node-red-node-email
node-red-contrib-gotify-notification
node-red-node-ui-table"

# 开启命令执行调试输出(可删除,用于查看执行过程)
# set -x

# 核心修改:查找包含"node-red"关键字的运行中容器,仅输出容器名
# --filter "name=node-red":过滤容器名包含node-red的容器
# --format "{{.Names}}":仅格式化输出容器名称,不输出其他冗余信息

NODE_RED_CONTAINERS=$(docker ps --filter "name=node-red" --format "{{.Names}}")

# 健壮性判断:如果未找到符合条件的容器,报错并退出脚本
if [ -z "$NODE_RED_CONTAINERS" ]; then
    echo "错误:未找到包含 'node-red' 关键字的运行中容器!"
    exit 1
fi

# 循环处理每个找到的Node-RED容器(支持多个符合条件的容器)
for CONTAINER in $NODE_RED_CONTAINERS
do
    echo -e "${GREEN}正在为容器 $CONTAINER 安装Node-RED模块...${NC}"

    # 执行模块安装(替换原硬编码容器名为动态获取的容器名)
    docker exec -i "$CONTAINER" npm install --no-audit --no-update-notifier --no-fund --save --prefix=/data --omit=dev $MODULES

    echo -e "${YELLOW}模块:\n$MODULES\n安装完毕!${NC}"

    # 安装完成后重启当前容器
    echo -e "${GREEN}正在重启容器 $CONTAINER...${NC}"
    docker restart "$CONTAINER"
done

echo "所有符合条件的Node-RED容器处理完成!"
#!/bin/sh

MODULES="node-red-contrib-calc
node-red-contrib-simpletime
node-red-dashboard
node-red-node-email
node-red-contrib-gotify-notification
node-red-node-ui-table"
set -x
for MODULE in $MODULES
do
docker  exec -i teslamatecn-node-red-1 npm install --no-audit --no-update-notifier --no-fund --save --prefix=/data --omit=dev $MODULE
done
docker restart teslamatecn-node-red-1
  • docker/node-red.txt
  • 最后更改: 2026/02/19 21:09
  • admin