diff --git a/ct/mediamtx.sh b/ct/mediamtx.sh index 1d60f358c..6987291b0 100644 --- a/ct/mediamtx.sh +++ b/ct/mediamtx.sh @@ -20,15 +20,34 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/mediamtx/ ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_error "Currently we don't provide an update function for this ${APP}." - exit + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/mediamtx/ ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + if ! command -v jq &>/dev/null; then + $STD apt-get install -y jq + fi + + RELEASE=$(curl -fsSL https://api.github.com/repos/bluenviron/mediamtx/releases/latest | jq -r '.tag_name' | sed 's/^v//') + if [[ "${RELEASE}" != "$(cat ~/.mediamtx)" ]] || [[ ! -f ~/.mediamtx ]]; then + msg_info "Stopping service" + systemctl stop mediamtx + msg_ok "Service stopped" + + fetch_and_deploy_gh_release "mediamtx" "bluenviron/mediamtx" "prebuild" "latest" "/opt/mediamtx" "mediamtx*linux_amd64.tar.gz" + + msg_info "Starting service" + systemctl start mediamtx + msg_ok "Service started" + + msg_ok "Updated successfully" + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + fi + exit } start @@ -36,4 +55,4 @@ build_container description msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" \ No newline at end of file +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" diff --git a/frontend/public/json/mediamtx.json b/frontend/public/json/mediamtx.json index afe9d7aff..89bb8c41a 100644 --- a/frontend/public/json/mediamtx.json +++ b/frontend/public/json/mediamtx.json @@ -6,7 +6,7 @@ ], "date_created": "2024-05-02", "type": "ct", - "updateable": false, + "updateable": true, "privileged": false, "interface_port": null, "documentation": "https://github.com/bluenviron/mediamtx/blob/main/README.md", diff --git a/install/mediamtx-install.sh b/install/mediamtx-install.sh index 9f55bc2d1..4261c65f1 100644 --- a/install/mediamtx-install.sh +++ b/install/mediamtx-install.sh @@ -17,14 +17,7 @@ msg_info "Installing Dependencies" $STD apt-get install -y ffmpeg msg_ok "Installed Dependencies" -msg_info "Installing MediaMTX" -RELEASE=$(curl -fsSL https://api.github.com/repos/bluenviron/mediamtx/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') -mkdir -p /opt/mediamtx -cd /opt/mediamtx -curl -fsSL "https://github.com/bluenviron/mediamtx/releases/download/${RELEASE}/mediamtx_${RELEASE}_linux_amd64.tar.gz" -o "mediamtx_${RELEASE}_linux_amd64.tar.gz" -tar xzf mediamtx_${RELEASE}_linux_amd64.tar.gz -rm -rf mediamtx_${RELEASE}_linux_amd64.tar.gz -msg_ok "Installed MediaMTX" +fetch_and_deploy_gh_release "mediamtx" "bluenviron/mediamtx" "prebuild" "latest" "/opt/mediamtx" "mediamtx*linux_amd64.tar.gz" msg_info "Creating Service" cat </etc/systemd/system/mediamtx.service