Docker 搭建 webhook项目,实现远程执行shell命令

需求:经常需要不定时的让远程设备执行一些shell命令,最好能一键执行
实现效果:通过get请求触发webhook(浏览器直接访问对应url就行),后台执行对应sh脚本

方案:

现成的docker镜像:

docker cli 一把梭:

docker run -d -p 9000:9000 --name=webhook my-webhook-image -verbose -hooks=/etc/webhook/hooks.json -hotreload

只要浏览器访问对应的URL就可以直接让容器执行预先设置的脚本
另外,我自己在容器内又安装了ssh,这样通过预先设置的脚本可以让容器通过ssh再调用局域网内其他设备执行命令(我只让容器的这一个端口暴露到公网,其他设备只允许内网连接)

目前自己经常用的就是远程让PC睡眠


家庭版win11也是可以安装ssh服务端的,通过ssh连接administrator用户执行bat文件即可

才发现,这个有点意思啊。

配合 sshpass 项目 还有 win10 win11的计划任务 食用效果更佳

串流PC打游戏经常用到这个…
直接访问url 让nas远程唤醒PC 以及直接让PC执行shell 睡眠/关机
还弄了bat脚本配合上面这个 访问url触发webhook就能自动开关 手柄伴侣
这样可以直接手柄控制鼠标动作 串流神器了

@echo off
set process_name=ControllerCompanion.exe

tasklist /NH /FI "IMAGENAME eq %process_name%" | findstr "%process_name%" >nul
if %errorlevel%==0 (
    echo 关闭进程 %process_name% 。
    taskkill /f /im ControllerCompanion.exe
    TIMEOUT /T 1
    exit
) else (
    echo 即将开启 %process_name% 。
    start "" "D:\Program Files\Controller Companion\ControllerCompanion.exe"
    TIMEOUT /T 1
    exit
)
pause

看起来需要一个长url,免得有人手贱反复触发脚本。