You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
3.1 KiB
Bash

1 year ago
#!/bin/sh
ACTION=${1}
shift 1
get_image() {
IMAGE_NAME=$(uci get btcpayserver.@btcpayserver[0].image_name 2>/dev/null)
1 year ago
}
do_install_detail() {
config=$(uci get btcpayserver.@btcpayserver[0].config_path 2>/dev/null)
port=$(uci get btcpayserver.@btcpayserver[0].port 2>/dev/null)
IMAGE_NAME=$(uci get btcpayserver.@btcpayserver[0].image_name 2>/dev/null)
1 year ago
GEN_PASS=$(head -c14 /dev/urandom | tr -dc A-Za-z0-9)
GEN_PASS2=$(head -c14 /dev/urandom | tr -dc A-Za-z0-9)
1 year ago
LAN_IP=$(uci get network.lan.ipaddr)
LAN_IP="${LAN_IP%/*}"
1 year ago
[ -z "$config" ] && { echo "config path is empty!"; exit 1; }
[ -z "$port" ] && port=8888
[ -z "$IMAGE_NAME" ] && IMAGE_NAME=clightning
}
1 year ago
setup_btcpayserver() {
git clone https://github.com/btcpayserver/btcpayserver-docker /opt/docker2/compose/btcpayserver/btcpayserver-docker/
1 year ago
touch /opt/docker2/compose/btcpayserver/btcpayserver-docker/go.sh
chmod +x /opt/docker2/compose/btcpayserver/btcpayserver-docker/go.sh
cat > /opt/docker2/compose/btcpayserver/btcpayserver-docker/go.sh <<EOF
#!/bin/bash
export BTCPAY_HOST="${LAN_IP}"
export NBITCOIN_NETWORK="${config}"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-s"
export BTCPAYGEN_REVERSEPROXY="nginx"
export BTCPAYGEN_LIGHTNING="${IMAGE_NAME}"
export BTCPAY_ENABLE_SSH=true
export NOREVERSEPROXY_HTTP_PORT="${port}"
export BTCPAY_PROTOCOL="http"
export BTCPAYGEN_REVERSEPROXY="none"
1 year ago
bash /opt/docker2/compose/btcpayserver/btcpayserver-docker/btcpay-setup.sh -i
1 year ago
EOF
}
if [ "$(id -u)" -ne 0 ]; then
1 year ago
echo "This script must be run as root."
exit 1
fi
setup_btcpayserver
chmod +x /opt/docker2/compose/btcpayserver/btcpayserver-docker/go.sh
echo "Please open a terminal window and login via SSH to $LAN_IP"
echo "Copy paste the commands to finish the BTCpay server Install"
echo ".................Enter commands below......................"
echo "cd /opt/docker2/compose/btcpayserver/btcpayserver-docker"
echo ". ./go.sh -i"
echo "..........................................................."
uci add shortcutmenu lists
uci set shortcutmenu.@lists[-1].webname="$IMAGE_NAME"
uci set shortcutmenu.@lists[-1].weburl="$LAN_IP:$port"
uci set shortcutmenu.@lists[-1].webpath="/"
uci commit shortcutmenu
1 year ago
usage() {
echo "usage: $0 sub-command"
echo " where sub-command is one of:"
echo " install Install btcpayserver"
echo " upgrade Upgrade btcpayserver"
echo " rm/start/stop/restart Remove/Start/Stop/Restart btcpayserver"
echo " status btcpayserver status"
echo " port btcpayserver port"
}
case "${ACTION}" in
"install")
get_image
do_install_detail
;;
"upgrade")
get_image
do_install_detail
;;
"rm")
docker-compose -f /opt/docker2/compose/btcpayserver/btcpayserver-docker/$BTCPAY_DOCKER_COMPOSE down --volumes
;;
"start"|"stop"|"restart")
docker "${ACTION}" btcpayserver
;;
"status")
docker ps --all -f 'name=btcpayserver' --format '{{.State}}'
;;
"port")
docker ps --all -f 'name=btcpayserver' --format '{{.Ports}}' | grep -om1 '0.0.0.0:[0-9]*' | sed 's/0.0.0.0://'
;;
*)
usage
exit 1
;;
esac