January 13, 20251 yr 这是我第一次为 unRAID 打包插件。我在自己和朋友的机器上测试了几天,目前一切正常。如今正申请将其添加到 CA市场 中。 This is my first time packaging a plugin for unRAID.I've been testing it for a few days on my own and my friends' machines, and it's working fine so far.I'm now applying to get it added to CA / Appstore. 插件使用上有任何问题,可以于此贴讨论。 If you have any questions about the use of the plugin, you can discuss it in this post. --- github repo:ctop Plugingithub repo:fclones Plugingithub repo:webhookd Plugingithub repo:easytier Plugin--- 2026.05.09 新增 easytier 插件2025.01.15 已经正式上架CA商店 Edited May 20May 20 by fejich 正式上架
January 16, 20251 yr Hey @fejich, thanks for producing these. In the 'webhookd' plugin. I see this text in the 'Plugins' section in Unraid. Quote webhookd A very simple webhook server to launch shell scripts. This is a plugin for the webhookd binary executable Enable the service, run /etc/rc.d/rc.webhookd start Working directory: /mnt/user/appdata/webhookd/scripts Listening port 8080 Source: https://github.com/ncarlier/webhookd I notice the path " /mnt/user/appdata/webhookd" doesn't exist, is that to be manually created?
January 16, 20251 yr Please test this new 'rc.webhookd' file? The "start" function will: 1. Create the scripts directory at "/mnt/user/appdata/webhookd/scripts" if it doesn't exist 2. Create a .env file at "/mnt/user/appdata/webhookd/webhookd.env" with some simple default values if it doesn't exist 3. Read in the .env file for use in the current environment 4. Start webhookd using the current environment variables #!/bin/sh NAME="webhookd" CMD="/usr/bin/webhookd" ENV_FILE="/mnt/user/appdata/webhookd/webhookd.env" PROCESSNAME="/usr/bin/webhookd" USERNAME="root" func_stop() { if [ "$(ps aux | grep $PROCESSNAME | grep -v grep)" ]; then echo -n "Stopping $NAME ... " killall $PROCESSNAME sleep 1 fi if [ ! "$(ps aux | grep $PROCESSNAME | grep -v grep)" ]; then echo "Done!" else echo "Error!" fi } func_start() { echo -n "Starting $NAME ... " # Ensure the webhookd config directory exists CONFIG_DIR="/mnt/user/appdata/webhookd" if [ ! -d "$CONFIG_DIR" ]; then echo "Creating config directory at $CONFIG_DIR" mkdir -p "$CONFIG_DIR" fi # Ensure the webhookd.env file exists if [ ! -f "$ENV_FILE" ]; then echo "Creating webhookd environment file at $ENV_FILE" cat <<EOF > "$ENV_FILE" WHD_HOOK_SCRIPTS=/mnt/user/appdata/webhookd/scripts WHD_HOOK_DEFAULT_EXT=.sh WHD_LISTEN_ADDR=:8080 WHD_LOG_LEVEL=info EOF fi # Ensure the hook scripts directory exists HOOK_SCRIPTS_DIR="/mnt/user/appdata/webhookd/scripts" if [ ! -d "$HOOK_SCRIPTS_DIR" ]; then echo "Creating hook scripts directory at $HOOK_SCRIPTS_DIR" mkdir -p "$HOOK_SCRIPTS_DIR" fi # Export environment variables from the webhookd.env file set -a . "$ENV_FILE" set +a echo "Loaded environment variables from $ENV_FILE:" # Uncomment the next line to output the environment variables # cat "$ENV_FILE" # Start webhookd su - $USERNAME -c "$CMD" & sleep 1 if [ "$(ps aux | grep $PROCESSNAME | grep -v grep)" ]; then echo "Started!" else echo "Error!" fi } case "$1" in "start") func_start ;; "stop") func_stop ;; "restart") func_stop sleep 1 func_start ;; *) echo "Usage: $0 start|stop|restart" ;; esac Please see if that works, or not?
January 17, 20251 yr Author On 1/16/2025 at 11:06 AM, Eurotimmy said: Please test this new 'rc.webhookd' file? The "start" function will: 1. Create the scripts directory at "/mnt/user/appdata/webhookd/scripts" if it doesn't exist 2. Create a .env file at "/mnt/user/appdata/webhookd/webhookd.env" with some simple default values if it doesn't exist 3. Read in the .env file for use in the current environment 4. Start webhookd using the current environment variables #!/bin/sh NAME="webhookd" CMD="/usr/bin/webhookd" ENV_FILE="/mnt/user/appdata/webhookd/webhookd.env" PROCESSNAME="/usr/bin/webhookd" USERNAME="root" func_stop() { if [ "$(ps aux | grep $PROCESSNAME | grep -v grep)" ]; then echo -n "Stopping $NAME ... " killall $PROCESSNAME sleep 1 fi if [ ! "$(ps aux | grep $PROCESSNAME | grep -v grep)" ]; then echo "Done!" else echo "Error!" fi } func_start() { echo -n "Starting $NAME ... " # Ensure the webhookd config directory exists CONFIG_DIR="/mnt/user/appdata/webhookd" if [ ! -d "$CONFIG_DIR" ]; then echo "Creating config directory at $CONFIG_DIR" mkdir -p "$CONFIG_DIR" fi # Ensure the webhookd.env file exists if [ ! -f "$ENV_FILE" ]; then echo "Creating webhookd environment file at $ENV_FILE" cat <<EOF > "$ENV_FILE" WHD_HOOK_SCRIPTS=/mnt/user/appdata/webhookd/scripts WHD_HOOK_DEFAULT_EXT=.sh WHD_LISTEN_ADDR=:8080 WHD_LOG_LEVEL=info EOF fi # Ensure the hook scripts directory exists HOOK_SCRIPTS_DIR="/mnt/user/appdata/webhookd/scripts" if [ ! -d "$HOOK_SCRIPTS_DIR" ]; then echo "Creating hook scripts directory at $HOOK_SCRIPTS_DIR" mkdir -p "$HOOK_SCRIPTS_DIR" fi # Export environment variables from the webhookd.env file set -a . "$ENV_FILE" set +a echo "Loaded environment variables from $ENV_FILE:" # Uncomment the next line to output the environment variables # cat "$ENV_FILE" # Start webhookd su - $USERNAME -c "$CMD" & sleep 1 if [ "$(ps aux | grep $PROCESSNAME | grep -v grep)" ]; then echo "Started!" else echo "Error!" fi } case "$1" in "start") func_start ;; "stop") func_stop ;; "restart") func_stop sleep 1 func_start ;; *) echo "Usage: $0 start|stop|restart" ;; esac Please see if that works, or not? Thank you for your feedback.🤝 Your modified script has been integrated into the 2025.01.17 version The script works very well. # /etc/rc.d/rc.webhookdd start Starting webhookd ... Creating config directory at /mnt/user/appdata/webhookd Creating webhookd environment file at /mnt/user/appdata/webhookd/webhookd.env Creating hook scripts directory at /mnt/user/appdata/webhookd/scripts Loaded environment variables from /mnt/user/appdata/webhookd/webhookd.env: time=2025-01-17T16:12:31.219+08:00 level=INFO msg="server started" addr=:8080 Started!
January 22, 20251 yr Author On 1/20/2025 at 11:47 PM, Misyo said: 这个实时动态变化是用的什么命令? 只是ctop吗?没有cpu\ net\io的变化呢 输入 ctop 即可,打开后 按 h 是显示帮助 s 是选择排序方式 unRAID 的终端显示不出条状图,都是按文字显示
January 23, 20251 yr On 1/22/2025 at 11:37 AM, fejich said: 输入 ctop 即可,打开后 按 h 是显示帮助 s 是选择排序方式 unRAID 的终端显示不出条状图,都是按文字显示 3Q,好像IO R/W对于unraid不起作用?
January 23, 20251 yr I'm trying to change the port, currently my port 8080 is taken up by something I can't change. In "webhookd.env" I wrote: WHD_LISTEN_ADDR=:8077 I even manually changed rc.webhookd script in /etc/rc.d folder, changed the port there to 8077 and yet still when I do rc.webhookd start it still tries to access the 8080 port. Any solution for that? root@Tower:/etc/rc.d# ./rc.webhookd start Starting webhookd ... Loaded environment variables from /mnt/user/appdata/webhookd/webhookd.env: time=2025-01-23T15:30:31.280+02:00 level=INFO msg="server started" addr=:8080 time=2025-01-23T15:30:31.280+02:00 level=ERROR msg="unable to start the server" addr=:8080 err="listen tcp :8080: bind: address already in use" Error! and: root@Tower:/mnt/cache/appdata/webhookd# cat webhookd.env WHD_LISTEN_ADDR=:8077 Edited January 23, 20251 yr by DrMor
February 2, 20251 yr has anyone experienced the ctop plugin disappearing upon reboot? i had it happen on 6.12.15 and 7.0. Edited February 2, 20251 yr by JudasD typo
February 4, 20251 yr Author On 1/23/2025 at 9:34 PM, DrMor said: I'm trying to change the port, currently my port 8080 is taken up by something I can't change. In "webhookd.env" I wrote: WHD_LISTEN_ADDR=:8077 I even manually changed rc.webhookd script in /etc/rc.d folder, changed the port there to 8077 and yet still when I do rc.webhookd start it still tries to access the 8080 port. Any solution for that? root@Tower:/etc/rc.d# ./rc.webhookd start Starting webhookd ... Loaded environment variables from /mnt/user/appdata/webhookd/webhookd.env: time=2025-01-23T15:30:31.280+02:00 level=INFO msg="server started" addr=:8080 time=2025-01-23T15:30:31.280+02:00 level=ERROR msg="unable to start the server" addr=:8080 err="listen tcp :8080: bind: address already in use" Error! and: root@Tower:/mnt/cache/appdata/webhookd# cat webhookd.env WHD_LISTEN_ADDR=:8077 Please accept my apologies for the late reply. Due to the prolonged Chinese New Year break, I inadvertently missed your forum post. The problem you mentioned has now been fixed in version 2025.02.04. 🙂
February 4, 20251 yr Author On 1/23/2025 at 2:29 PM, Misyo said: 3Q,好像IO R/W对于unraid不起作用? 应该是的,这部分功能在 unRAID 上不正常
February 4, 20251 yr Author On 2/2/2025 at 3:13 PM, JudasD said: has anyone experienced the ctop plugin disappearing upon reboot? i had it happen on 6.12.15 and 7.0. Based on my tests, I couldn't reproduce the issue.
February 4, 20251 yr 42 minutes ago, fejich said: Based on my tests, I couldn't reproduce the issue. thank you for trying to reproduce. it happens only upon reboot and it is not every reboot. I do not reboot very often, so this is why i have not been able to gather any substantial data. I'll follow-up if i do determine any patterns. Thanks, JD
March 22, 20251 yr Author On 3/19/2025 at 3:56 AM, dopeytree said: Hi - how do I get CTOP to sort by CPU usage? 你好 - 我怎么能让 CTOP 按照 CPU 使用率排序? Thanks 谢谢 <enter> - open container menu │ │ │ │ [a] - toggle display of all containers │ │ [f] - filter displayed containers │ │ [h] - open this help dialog │ │ [H] - toggle ctop header │ │ [s] - select container sort field │ │ [r] - reverse container sort order │ │ [o] - open single view │ │ [l] - view container logs ([t] to toggle timestamp when open) │ │ [e] - exec shell │ │ [w] - open browser (first port is http) │ │ [c] - configure columns │ │ [S] - save current configuration to file │ │ [q] - exit ctop You can press 's' to select the sorting method.
May 22, 20251 yr I can't get webhookd working, can't change default port, can't stop service ...root@MNAS:~# webhookd stoptime=2025-05-22T16:16:33.702+02:00 level=INFO msg="server started" addr=:8080time=2025-05-22T16:16:33.702+02:00 level=ERROR msg="unable to start the server" addr=:8080 err="listen tcp :8080: bind: address already in use"root@MNAS:~# webhookd restarttime=2025-05-22T16:16:48.395+02:00 level=INFO msg="server started" addr=:8080time=2025-05-22T16:16:48.395+02:00 level=ERROR msg="unable to start the server" addr=:8080 err="listen tcp :8080: bind: address already in use"root@MNAS:~# more /mnt/user/appdata/webhookd/webhookd.envWHD_HOOK_SCRIPTS=/mnt/user/appdata/webhookd/scriptsWHD_HOOK_DEFAULT_EXT=.shWHD_LISTEN_ADDR=:8888WHD_LOG_LEVEL=info
May 30, 20251 yr Author On 5/22/2025 at 10:19 PM, Meldrak said:I can't get webhookd working, can't change default port, can't stop service ...root@MNAS:~# webhookd stoptime=2025-05-22T16:16:33.702+02:00 level=INFO msg="server started" addr=:8080time=2025-05-22T16:16:33.702+02:00 level=ERROR msg="unable to start the server" addr=:8080 err="listen tcp :8080: bind: address already in use"root@MNAS:~# webhookd restarttime=2025-05-22T16:16:48.395+02:00 level=INFO msg="server started" addr=:8080time=2025-05-22T16:16:48.395+02:00 level=ERROR msg="unable to start the server" addr=:8080 err="listen tcp :8080: bind: address already in use"root@MNAS:~# more /mnt/user/appdata/webhookd/webhookd.envWHD_HOOK_SCRIPTS=/mnt/user/appdata/webhookd/scriptsWHD_HOOK_DEFAULT_EXT=.shWHD_LISTEN_ADDR=:8888WHD_LOG_LEVEL=infoYou need to use the /etc/rc.d/rc.webhookd script to manage the service.# Start the webhookd service /etc/rc.d/rc.webhookd start # Stop the webhookd service /etc/rc.d/rc.webhookd stop # Restart the webhookd service /etc/rc.d/rc.webhookd restart
July 16, 2025Jul 16 Is there a mistake in the default config ?Default is:WHD_HOOK_DEFAULT_EXT=.shBut then my script.sh is not found because it is searching for script..sh ( 2x "." )When I change:WHD_HOOK_DEFAULT_EXT=sh (leaving out the "." )then script.sh is found.Mike
July 18, 2025Jul 18 Author On 7/17/2025 at 5:51 AM, mmm77 said:Is there a mistake in the default config ?默认配置是否有错误?Default is: 默认是:WHD_HOOK_DEFAULT_EXT=.shBut then my script.sh is not found because it is searching for script..sh ( 2x "." )但这样我的 script.sh 就找不到,因为它在搜索 script..sh(多了一个“.”)When I change: 当我更改:WHD_HOOK_DEFAULT_EXT=sh (leaving out the "." )WHD_HOOK_DEFAULT_EXT=sh(去掉 ".")then script.sh is found. 则会找到 script.sh。MikeOn 7/17/2025 at 5:51 AM, mmm77 said:Is there a mistake in the default config ?Default is:WHD_HOOK_DEFAULT_EXT=.shBut then my script.sh is not found because it is searching for script..sh ( 2x "." )When I change:WHD_HOOK_DEFAULT_EXT=sh (leaving out the "." )then script.sh is found.MikeI apologize for my oversight;I had a habit of typing the full "scriptName.sh" in the URL by default during testing, and I didn't notice this issue until now.Thank you for the feedback. I will correct this error right away.
July 29, 2025Jul 29 I have tried to implement a CI/CD pipeline to pull the latest build from GitHub and then build it. The communication with Git is fine, but then I run into permission issues. Is anyone here experience in setting up such a pipeline? I would be massively thankful for some help.
December 3, 2025Dec 3 Any chance for an update to fclones? I believe is still on 0.34 while 0.35 is available https://github.com/pkolaczk/fclones
May 9May 9 Author On 2025/12/3 at PM10点04分, btTeddy said:fclones 有更新的可能吗?我记得它还是 0.34 版本,而 0.35 版本已经发布了(https://github.com/pkolaczk/fclones)。Sorry I haven't browsed the forum for a while. I have updated the fclones plugin to the latest version v0.35.0. Thank you for your feedback.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.