diff --git a/Makefile b/Makefile index ce4f5a2..32b3d82 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for btcpayserver LUCI_PKGARCH:=all LUCI_DEPENDS:=+lsblk +docker +luci-lib-taskd +PKG_VERSION=1.0.1 +PKG_RELEASE:=1 define Package/luci-app-btcpayserver/conffiles /etc/config/btcpayserver diff --git a/luasrc/model/cbi/btcpayserver.lua b/luasrc/model/cbi/btcpayserver.lua index 54a8725..41c62d9 100644 --- a/luasrc/model/cbi/btcpayserver.lua +++ b/luasrc/model/cbi/btcpayserver.lua @@ -8,7 +8,7 @@ local m, s, o m = taskd.docker_map("btcpayserver", "btcpayserver", "/usr/libexec/apps/btcpayserver/btcpayserver.sh", translate("btcpayserver"), - translate("Get Virtual Desktops of all flavors, Alpine, Ubuntu, Fedora, and Arch based containers containing full desktop environments in officially supported versions accessible via any modern web browser.") + translate("BTCPay Server is a self-hosted, open-source cryptocurrency payment processor. It's secure, private, censorship-resistant and free.") .. translate("Official website:") .. ' hhttps://docs.linuxserver.io/images/docker-btcpayserver/') s = m:section(SimpleSection, translate("Service Status"), translate("btcpayserver status:")) diff --git a/luasrc/view/btcpayserver/status.htm b/luasrc/view/btcpayserver/status.htm index bf99d86..393c36b 100644 --- a/luasrc/view/btcpayserver/status.htm +++ b/luasrc/view/btcpayserver/status.htm @@ -1,31 +1,31 @@ <% local util = require "luci.util" local container_status = util.trim(util.exec("/usr/libexec/apps/btcpayserver/btcpayserver.sh status")) -local container_install = (string.len(container_status) > 0) -local container_running = container_status == "running" +local container_running = string.match(string.lower(container_status), "^up%W") -%> +
- +
<% if container_running then %> - + <% else %> - + <% end %>
+ <% if container_running then - local port=util.trim(util.exec("/usr/libexec/apps/btcpayserver/btcpayserver.sh port")) + local port = util.trim(util.exec("/usr/libexec/apps/btcpayserver/btcpayserver.sh port")) if port == "" then - port="3000" + port = "3000" end -%>
- - +
<% end %> diff --git a/root/usr/libexec/apps/btcpayserver/btcpayserver.sh b/root/usr/libexec/apps/btcpayserver/btcpayserver.sh old mode 100644 new mode 100755 index 198ac7b..8c7ebbb --- a/root/usr/libexec/apps/btcpayserver/btcpayserver.sh +++ b/root/usr/libexec/apps/btcpayserver/btcpayserver.sh @@ -5,6 +5,8 @@ APP_NAME="btcpayserver" ACTION="${1}" shift 1 +mkdir -p /usr/local/bin + get_image() { do_install_detail } @@ -76,29 +78,36 @@ case "${ACTION}" in do_install_detail ;; "rm") - IMAGE_NAME=$(uci get btcpayserver.@btcpayserver[0].image_name 2>/dev/null) - [ -z "$IMAGE_NAME" ] && IMAGE_NAME="btcpayserver" - CONTAINER_IDS=$(docker ps -a --filter "ancestor=${IMAGE_NAME}" --format '{{.ID}}') echo "Stopping and removing containers..." + CONTAINER_IDS=$(docker ps -a | grep 'btcpayserver\|generated_' | awk '{print $1}') for ID in $CONTAINER_IDS; do docker stop "$ID" docker rm "$ID" done - docker rmi -f "$IMAGE_NAME" + IMAGE_IDS=$(docker images | grep 'btcpayserver' | awk '{print $3}') + if [ -n "$IMAGE_IDS" ]; then + docker rmi -f $IMAGE_IDS + fi rm -r /opt/docker2/compose/btcpayserver 2>/dev/null + rm -rf /opt/docker2/compose/btcpayserver/btcpayserver-docker 2>/dev/null # Removing the btcpayserver-docker directory ;; "start" | "stop" | "restart") APP_NAME="btcpayserver" - CONTAINER_IDS=$(docker ps -a --filter "ancestor=${APP_NAME}" --format '{{.ID}}') + CONTAINER_IDS=$(docker ps -a | grep 'btcpayserver\|generated_' | awk '{print $1}') for ID in $CONTAINER_IDS; do docker "${ACTION}" "${ID}" done ;; "status") - APP_NAME="btcpayserver" - CONTAINER_NAMES=$(docker ps -a --filter "name=${APP_NAME}" --format '{{.Names}}') - docker ps --all -f "name=${CONTAINER_NAMES}" --format '{{.Status}}' + CONTAINER_NAME="generated_btcpayserver_1" + CONTAINER_STATUS=$(docker ps --all --filter "name=${CONTAINER_NAME}" --format '{{.Status}}' | awk '/^Up/ { print "up " substr($0, 4) } !/^Up/ && /.+/ { print "down" }') + if [ -z "$CONTAINER_STATUS" ]; then + echo "${APP_NAME} is not installed" + else + echo "${CONTAINER_STATUS}" + fi ;; + "port") APP_NAME="btcpayserver" CONTAINER_NAMES=$(docker ps -a --filter "ancestor=${APP_NAME}" --format '{{.Names}}')