Compare commits

..

9 Commits

Author SHA1 Message Date
38582d7f8d fixed ebesucher memory allocation 2023-02-05 00:31:42 +01:00
e04d7335bc fixed ebesucher memory allocation 2023-02-05 00:30:21 +01:00
df5f5c8921 fix for lxc in Unraid & watchtower 2023-02-04 22:06:48 +01:00
04f5c25f0e revert -u switch 2023-02-04 20:18:20 +01:00
a7b44d2009 revert -u switch for ebesucher 2023-02-04 20:17:50 +01:00
6a0ebfdf2a added user to ebesucher container 2023-02-04 20:12:34 +01:00
53cb4f58f4 added user for easy deleting folder 2023-02-04 20:10:11 +01:00
a386971342 Rework for better root/user management 2023-02-04 13:54:13 +01:00
2481b00a26 Added CPU Limitation 2023-02-04 13:22:07 +01:00
4 changed files with 409 additions and 601 deletions

View File

@@ -1,74 +0,0 @@
#############################################################################################
# _ _ _ _ __ _ _ _ _ _ _ _ #
# | \ | | ___ | |_(_)/ _(_) ___ __ _| |_(_) ___ _ __ | | | | __ _ _ __ __| | | ___ _ __ #
# | \| |/ _ \| __| | |_| |/ __/ _ | __| |/ _ \| _ \| |_| |/ _ | _ \ / _ | |/ _ \ __| #
# | |\ | (_) | |_| | _| | (_| (_| | |_| | (_) | | | | _ | (_| | | | | (_| | | __/ | #
# |_| \_|\___/ \__|_|_| |_|\___\__,_|\__|_|\___/|_| |_|_| |_|\__,_|_| |_|\__,_|_|\___|_| #
# #
# _ __ __ _ _ _ #
# | |/ /___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __ #
# | // _ \| _ \| |_| |/ _ | | | | __/ _ | __| |/ _ \| _ \ #
# | \ (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | | #
# |_|\_\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_| #
# |___/ #
#############################################################################################
SurfbarName="" # https://ebesucher.de/surfbar/SURFBARNAME Das in Großbuchstaben muss dann hier eingegeben werden
NotificationHandler="" # Schreibe hier Discord, Telegram, Apprise, Nextcloud, Pushbullet, Mail oder RocketChat ein.
####################
# Discord Settings #
####################
Discord_WebHookLink=""
#####################
# Telegram Settings #
#####################
Telegram_UID=""
Telegram_BT=""
####################
# Apprise Settings #
####################
AppRiseURL=""
AppRiseTAG="" # Optional
######################
# Nextcloud Settings #
######################
NextcloudDomain=""
NextcloudTalkToken=""
NextcloudUser=""
NextcloudPassword=""
#######################
# PushBullet Settings #
#######################
# Achtung! Pushbullet hat ein Limit von maximal 500 Nachrichten pro Monat! Falls ihr viel damit hantiert, kann es sein, dass ich diese Überschreitet!
PushBulletToken=""
#################
# Mail Settings #
#################
smtpURL=""
smtpPORT=""
mailfrom=""
mailrcpt=""
mailuser="" # Ist meistens gleichzeitig auch mailfrom
mailpass="" # Mail Password. Falls Gmail genutzt wird, muss in der Google Konto Verwaltung, Sicherheit, ein App Passwort erstellt werden!
########################
# Rocket.Chat Settings #
########################
RocketChatHook=""
########################
# End of Configuration #
########################

View File

@@ -7,36 +7,40 @@ white='\033[0;37m' # ${white}
erfolgreich=0 erfolgreich=0
fehler=0 fehler=0
skip=0 skip=0
# Disable prompts, like which service should be restartet
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
if [ "$(whoami)" != "root" ]; then # Visually seperate different tasks
echo "Es ist leider erforderlich, dass das script als root ausgeführt wird!"
exit
fi
new_task() { new_task() {
echo -e "\n\n$(printf %"$(tput cols)"s | tr " " "=")\n$1\n$(printf %"$(tput cols)"s | tr " " "=")" echo -e "\n\n$(printf %"$(tput cols)"s | tr " " "=")\n$1\n$(printf %"$(tput cols)"s | tr " " "=")"
} }
# Message and count +1 for success
erfolg() { erfolg() {
whiptail --title "Erfolgreich!" --msgbox "$1" 20 70 whiptail --title "Erfolgreich!" --msgbox "$1" 20 70
erfolgreich=$((erfolgreich + 1)) erfolgreich=$((erfolgreich + 1))
} }
# Message and count +1 for failed
fehler() { fehler() {
whiptail --title "Fehler!" --msgbox "$1" 20 70 whiptail --title "Fehler!" --msgbox "$1" 20 70
fehler=$((fehler + 1)) fehler=$((fehler + 1))
} }
# Message and count +1 for skipped
skip() { skip() {
echo -e "${cyan}$1${white}" echo -e "${cyan}$1${white}"
skip=$((skip + 1)) skip=$((skip + 1))
} }
# Function to install dependencies
install_dep() { install_dep() {
if sudo apt-get install -y "$@" >/dev/null; then if sudo apt-get install -y "$@" >/dev/null; then
# shellcheck disable=SC2145
erfolg "$@ Pakete wurden installiert" erfolg "$@ Pakete wurden installiert"
else else
# shellcheck disable=SC2145
fehler "$@ Pakete konnten nicht installiert werden" fehler "$@ Pakete konnten nicht installiert werden"
fi fi
} }
@@ -49,12 +53,28 @@ inputbox() {
whiptail --title "$1" --inputbox "$2" 30 100 3>&1 1>&2 2>&3 whiptail --title "$1" --inputbox "$2" 30 100 3>&1 1>&2 2>&3
} }
# get the last logged in User
linux_user=$(w | awk '{print $1}' | tail -n1)
# get OS
distrib=$(awk 'NR==1 {print $1}' /etc/issue)
# Check how many Cores are available (For later use in Limits for ebesucher)
availablecores=$(grep -c "processor" /proc/cpuinfo)
# Check if it is possible to deactivate all prompts (for future automated Updates)
[ -d /etc/needrestart/ ] && sudo sed -i 's/#$nrconf{restart} = '"'"'i'"'"';/$nrconf{restart} = '"'"'a'"'"';/g' /etc/needrestart/needrestart.conf 2>/dev/null [ -d /etc/needrestart/ ] && sudo sed -i 's/#$nrconf{restart} = '"'"'i'"'"';/$nrconf{restart} = '"'"'a'"'"';/g' /etc/needrestart/needrestart.conf 2>/dev/null
# Just for sudo access.
sudo echo sudo echo
# Check if whiptail is already installed (not standard on minimal installation)
if ! which whiptail >/dev/null; then if ! which whiptail >/dev/null; then
sudo apt-get update
sudo apt-get install whiptail -y sudo apt-get install whiptail -y
fi fi
# Whiptail Progressbar
{ {
echo 0 echo 0
sudo apt-get update >/dev/null sudo apt-get update >/dev/null
@@ -63,22 +83,41 @@ fi
echo 30 echo 30
sudo apt-get install ca-certificates curl gnupg lsb-release zip unzip bc apt-utils cron -y >/dev/null sudo apt-get install ca-certificates curl gnupg lsb-release zip unzip bc apt-utils cron -y >/dev/null
echo 44 echo 44
# Check if keyrings is present, if not, create folder for keyrings
[ -d /etc/apt/keyrings ] || sudo mkdir -p /etc/apt/keyrings [ -d /etc/apt/keyrings ] || sudo mkdir -p /etc/apt/keyrings
echo 61 echo 61
# check if docker.gpg is in keyrings, if not get docker.gpg and save it in keyrings.
# Also check if debian or ubuntu is used.
case "$distrib" in
Debian)
[ -f /etc/apt/keyrings/docker.gpg ] || curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo 75
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
;;
Ubuntu)
[ -f /etc/apt/keyrings/docker.gpg ] || curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg [ -f /etc/apt/keyrings/docker.gpg ] || curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo 75 echo 75
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
;;
esac
echo 90 echo 90
if ! sudo apt-get update >/dev/null; then if ! sudo apt-get update >/dev/null; then
sudo chmod a+r /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo apt-get update sudo apt-get update
fi fi
echo 100 echo 100
# end whiptail progressbar
} | whiptail --gauge "Aktualisiere System installiere Docker" 6 50 0 } | whiptail --gauge "Aktualisiere System installiere Docker" 6 50 0
# Check if Docker is not installed
if ! which docker >/dev/null; then if ! which docker >/dev/null; then
# it's not installed, so do:
messagebox "Kleinen Moment Geduld, Docker wird Installiert." "Das Fenster wird sich automatisch schließen, sobald Docker installiert wurde." & messagebox "Kleinen Moment Geduld, Docker wird Installiert." "Das Fenster wird sich automatisch schließen, sobald Docker installiert wurde." &
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null
# Info to user, we need a restart. It's needed, because we add the linux_user to the docker group
messagebox "Docker wurde installiert" "Leider ist es notwendig, dass wir nun den PC Neustarten.\nNach dem Neustart, starte einfach von vorne. Das Skript wird dann aber durchlaufen"
sudo usermod -aG docker "$linux_user"
sudo reboot
fi fi
whiptail --title "Passive Income Helperskript" --msgbox "Dieses Skript richtet mehrere Einkommenshelfer für dich ein. whiptail --title "Passive Income Helperskript" --msgbox "Dieses Skript richtet mehrere Einkommenshelfer für dich ein.
@@ -110,12 +149,17 @@ https://pawns.app?r=905162
Traffmonetizer. Vermiete deine IP-Adresse als Proxy Traffmonetizer. Vermiete deine IP-Adresse als Proxy
https://traffmonetizer.com/?aff=607897" 32 80 https://traffmonetizer.com/?aff=607897" 32 80
# Selection menu.
einzurichten=$(whiptail --title "Was möchtest du Einrichten?" --separate-output --checklist "Wähle was du einrichten möchtest:\n\nMit Leertaste haken entfernen/hinzufügen.\nMit Enter bestätigen" 18 100 7 "Ebesucher" "Ruft werbepartner links auf und Zahlt dich in Punkten aus " ON "Honeygain" "Vermiete deine IP-Adresse als Proxy" ON "Peer2Profit" "Vermiete deine IP-Adresse als Proxy" ON "EarnAPP" "Vermiete deine IP-Adresse als Proxy" ON "Packetstream" "Vermiete deine IP-Adresse als Proxy" ON "Pawns.app" "Vermiete deine IP-Adresse als Proxy" ON "Traffmonetizer" "Vermiete deine IP-Adresse als Proxy" ON 3>&1 1>&2 2>&3) einzurichten=$(whiptail --title "Was möchtest du Einrichten?" --separate-output --checklist "Wähle was du einrichten möchtest:\n\nMit Leertaste haken entfernen/hinzufügen.\nMit Enter bestätigen" 18 100 7 "Ebesucher" "Ruft werbepartner links auf und Zahlt dich in Punkten aus " ON "Honeygain" "Vermiete deine IP-Adresse als Proxy" ON "Peer2Profit" "Vermiete deine IP-Adresse als Proxy" ON "EarnAPP" "Vermiete deine IP-Adresse als Proxy" ON "Packetstream" "Vermiete deine IP-Adresse als Proxy" ON "Pawns.app" "Vermiete deine IP-Adresse als Proxy" ON "Traffmonetizer" "Vermiete deine IP-Adresse als Proxy" ON 3>&1 1>&2 2>&3)
if [ -z "$einzurichten" ]; then if [ -z "$einzurichten" ]; then
echo "Nichts wurde ausgewählt" echo "Nichts wurde ausgewählt"
exit
else else
for einrichtung in $einzurichten; do for einrichtung in $einzurichten; do
case $einrichtung in case $einrichtung in
#########################
# Honeygain Einrichtung #
#########################
Honeygain) Honeygain)
honeymail=$(whiptail --title "Honeygain E-Mail" --inputbox "Gebe deine Honeygain E-Mail adresse an: " 20 70 3>&1 1>&2 2>&3) honeymail=$(whiptail --title "Honeygain E-Mail" --inputbox "Gebe deine Honeygain E-Mail adresse an: " 20 70 3>&1 1>&2 2>&3)
honeypass=$(whiptail --title "Honeygain Password" --passwordbox "Gebe dein Honeygain Passwort ein: " 20 70 3>&1 1>&2 2>&3) honeypass=$(whiptail --title "Honeygain Password" --passwordbox "Gebe dein Honeygain Passwort ein: " 20 70 3>&1 1>&2 2>&3)
@@ -125,8 +169,10 @@ else
else else
fehler "Honeygain konnte nicht eingerichtet werden" fehler "Honeygain konnte nicht eingerichtet werden"
fi fi
;; ;;
###########################
# Peer2Profit Einrichtung #
###########################
Peer2Profit) Peer2Profit)
P2P_E_MAIL=$(whiptail --title "P2PMail" --inputbox "Gebe deine Peer2Profit Emailadresse ein" 30 80 3>&1 1>&2 2>&3) P2P_E_MAIL=$(whiptail --title "P2PMail" --inputbox "Gebe deine Peer2Profit Emailadresse ein" 30 80 3>&1 1>&2 2>&3)
echo "docker rm -f peer2profit || true && docker run -d --restart=always -e P2P_EMAIL=$P2P_E_MAIL --name peer2profit peer2profit/peer2profit_linux:latest" >>~/peer2profit.sh echo "docker rm -f peer2profit || true && docker run -d --restart=always -e P2P_EMAIL=$P2P_E_MAIL --name peer2profit peer2profit/peer2profit_linux:latest" >>~/peer2profit.sh
@@ -137,11 +183,16 @@ else
fehler "Peer2Profit konnte nicht eingerichtet werden" fehler "Peer2Profit konnte nicht eingerichtet werden"
fi fi
;; ;;
#######################
# EarnApp Einrichtung #
#######################
EarnAPP) EarnAPP)
wget -qO- https://brightdata.com/static/earnapp/install.sh >/tmp/earnapp.sh && echo "yes" | sudo bash /tmp/earnapp.sh wget -qO- https://brightdata.com/static/earnapp/install.sh >/tmp/earnapp.sh && echo "yes" | sudo bash /tmp/earnapp.sh
read -n1 -r -p "Drücke eine Taste, wenn du den Link im Browser geöffnet hast und das Gerät mit deinem Account verlinkt wurde..." read -n1 -r -p "Drücke eine Taste, wenn du den Link im Browser geöffnet hast und das Gerät mit deinem Account verlinkt wurde..." key
;; ;;
############################
# PacketStream Einrichtung #
############################
Packetstream) Packetstream)
pscidh=$(whiptail --title "Packetstream CIDH E-Mail" --inputbox "Packetstream vergibt automatisch jedem User eine ID. pscidh=$(whiptail --title "Packetstream CIDH E-Mail" --inputbox "Packetstream vergibt automatisch jedem User eine ID.
Daher müsstest du nun zur webseite von Packetstream wechseln und deine ID einsehen Daher müsstest du nun zur webseite von Packetstream wechseln und deine ID einsehen
@@ -156,7 +207,9 @@ else
fehler "Packetstream konnte nicht eingerichtet werden" fehler "Packetstream konnte nicht eingerichtet werden"
fi fi
;; ;;
#########################
# Pawns.App Einrichtung #
#########################
"Pawns.app") "Pawns.app")
pawnsmail=$(whiptail --title "IPRoyal Pawns.app E-Mail" --inputbox "Gebe deine IPRoyal Pawns.app E-Mail adresse an: " 20 70 3>&1 1>&2 2>&3) pawnsmail=$(whiptail --title "IPRoyal Pawns.app E-Mail" --inputbox "Gebe deine IPRoyal Pawns.app E-Mail adresse an: " 20 70 3>&1 1>&2 2>&3)
pawnspass=$(whiptail --title "IPRoyal Pawns.app Password" --passwordbox "Gebe dein IPRoyal Pawns.app Passwort ein: " 20 70 3>&1 1>&2 2>&3) pawnspass=$(whiptail --title "IPRoyal Pawns.app Password" --passwordbox "Gebe dein IPRoyal Pawns.app Passwort ein: " 20 70 3>&1 1>&2 2>&3)
@@ -166,6 +219,9 @@ else
fehler "IPRoyal (Pawns.app) konnte nicht eingerichtet werden" fehler "IPRoyal (Pawns.app) konnte nicht eingerichtet werden"
fi fi
;; ;;
##############################
# TraffMonetizer Einrichtung #
##############################
Traffmonetizer) Traffmonetizer)
trafftoken=$(whiptail --title "TraffMonetizer Token" --inputbox "Gebe deinen TraffMonetizer Token an: " 20 70 3>&1 1>&2 2>&3) trafftoken=$(whiptail --title "TraffMonetizer Token" --inputbox "Gebe deinen TraffMonetizer Token an: " 20 70 3>&1 1>&2 2>&3)
if docker rm -f traffmonetizer || true && docker run -d --name traffmonetizer --restart unless-stopped traffmonetizer/cli start accept --token "$trafftoken"; then if docker rm -f traffmonetizer || true && docker run -d --name traffmonetizer --restart unless-stopped traffmonetizer/cli start accept --token "$trafftoken"; then
@@ -174,6 +230,9 @@ else
fehler "TraffMonetizer konnte nicht eingerichtet werden" fehler "TraffMonetizer konnte nicht eingerichtet werden"
fi fi
;; ;;
#########################
# Ebesucher Einrichtung #
#########################
Ebesucher) Ebesucher)
messagebox "Hinweis:" "WARNUNG: Ebesucher benötigt einen Firefox und ca. 3GB Arbeitsspeicher! messagebox "Hinweis:" "WARNUNG: Ebesucher benötigt einen Firefox und ca. 3GB Arbeitsspeicher!
@@ -183,42 +242,59 @@ Ebesucher braucht leider etwas mehr Einrichtung. Aber keine Sorge, ich mach es d
Zunächst erstellen wir einen Firefox Container. Zunächst erstellen wir einen Firefox Container.
Dieser soll im Hintergrund die Werbeseiten aufrufen." Dieser soll im Hintergrund die Werbeseiten aufrufen."
# Ebesucher Configuration if user = root
if [ "$linux_user" == "root" ] || [ "$linux_user" == "USER" ]; then
# Check if ebesucher folder already exists
if [ -d /root/ebesucher ]; then if [ -d /root/ebesucher ]; then
skip "Ordner ebesucher exestiert bereits" skip "Ordner ebesucher exestiert bereits"
if ! [ -f /root/ebesucher/config.zip ]; then # check if config exists, if yes, ask to overwrite
if [ -f ~/ebesucher/config.zip ]; then
if whiptail --title "Alte config gefunden" --yesno "Es wurde bereits ein Firefox Profil angelegt, soll dieses gelöscht und überschrieben werden?" 20 100; then if whiptail --title "Alte config gefunden" --yesno "Es wurde bereits ein Firefox Profil angelegt, soll dieses gelöscht und überschrieben werden?" 20 100; then
# remove old config
rm -f /root/ebesucher/config.zip rm -f /root/ebesucher/config.zip
# download blank config
wget -O /root/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip wget -O /root/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip
unzip /root/ebesucher/config.zip -d /root/ebesucher/ # unpack config
unzip -o /root/ebesucher/config.zip -d /root/ebesucher/
else else
unzip /root/ebesucher/config.zip -d /root/ebesucher/ # unpack config
unzip -o /root/ebesucher/config.zip -d /root/ebesucher/
fi fi
fi fi
else else
# Create ebesucher folder
if mkdir /root/ebesucher; then if mkdir /root/ebesucher; then
# download config
wget -O /root/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip wget -O /root/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip
unzip /root/ebesucher/config.zip -d /root/ebesucher/ # unpack config
erfolg "Ordner für ebesucher konnte erstellt werden" unzip -o /root/ebesucher/config.zip -d /root/ebesucher/
erfolg "Ordner für ebesucher wurde erstellt"
else else
fehler "Der Ordner für ebesucher konnte nicht angelegt werden" fehler "Der Ordner für ebesucher konnte nicht angelegt werden"
fi fi
fi fi
while true; do
CPUSet=$(inputbox "CPU Begrenzung" "Das System hat $availablecores Kerne. Wieviele davon darf Ebesucher ausnutzen? 4 sind empfohlen")
if [[ "$availablecores" -ge "CPUSet" ]]; then
break
fi
done
# Ebesucher docker creation function. Will be used in the next step
ebesucher_docker() { ebesucher_docker() {
if docker rm -f ebesucher || true && docker run -d --name=ebesucher -p 3000:5800 -m "$1" -v ~/ebesucher/config:/config:rw --shm-size 2g jlesage/firefox; then if docker rm -f ebesucher || true && docker run -d --name=ebesucher -p 3000:5800 -m "$1" --cpus "$CPUSet" -v ~/ebesucher/config:/config:rw --shm-size 2g jlesage/firefox; then
erfolg "Firefox-Ebesucher wurde eingerichtet" erfolg "Firefox-Ebesucher wurde eingerichtet"
messagebox "Jetzt bist du gefragt!" "Öffne im browser deiner Wahl von einem anderen Gerät aus $(hostname -I | awk '{print $1}'):3000" messagebox "Jetzt bist du gefragt!" "Öffne im browser deiner Wahl von einem anderen Gerät aus $(hostname -I | awk '{print $1}'):3000"
else else
fehler "Firefox-Ebesucher konnte nicht eingerichtet werden" fehler "Firefox-Ebesucher konnte nicht eingerichtet werden"
fi fi
} }
# Check how much ram is available.
ram_avail=$(bc <<<"scale=2;$(($(free | awk 'NR==2 {print $2}') / 1000000))") ram_avail=$(bc <<<"scale=2;$(($(free | awk 'NR==2 {print $2}') / 1000000))")
if [[ $ram_avail -ge "2" ]]; then # create ebesucher docker container with specific RAM available (around 1 GB less then available)
ebesucher_docker "1g" if ((ram_avail >= 3 && ram_avail <= 4)); then
elif [[ $ram_avail -eq "4" ]]; then ebesucher_docker "3g" "$CPUSet"
ebesucher_docker "3g"
elif [[ $ram_avail -ge "5" ]]; then elif [[ $ram_avail -ge "5" ]]; then
ebesucher_docker "4g" ebesucher_docker "4g" "$CPUSet"
fi fi
messagebox "" "Oben Rechts im Firefox Browser, öffne das Ebesucher addon. messagebox "" "Oben Rechts im Firefox Browser, öffne das Ebesucher addon.
Gebe in das Feld deinen Ebesucher Nutzernamen ein und mache einen Haken bei Privacy" Gebe in das Feld deinen Ebesucher Nutzernamen ein und mache einen Haken bei Privacy"
@@ -229,57 +305,192 @@ erstelle ich eine Sicherung der Firefox-Konfiguration"
{ {
echo 10 echo 10
if [ -f /root/ebesucher/config.zip ]; then if [ -f /root/ebesucher/config.zip ]; then
# delete blank config.zip
rm -f /root/ebesucher/config.zip rm -f /root/ebesucher/config.zip
fi fi
echo 15 echo 15
docker stop ebesucher docker stop ebesucher
echo 25 echo 20
cd /root/ebesucher/ || exit cd /root/ebesucher/ || exit
echo 30 echo 30
zip -r config.zip config/ # pack config folder into new config.zip
echo 60 sudo zip -r config.zip config/
echo 40
# download restart script
wget -O /root/ebesucher/restart.sh https://raw.githubusercontent.com/Pakobbix/passive-income/master/restart.sh wget -O /root/ebesucher/restart.sh https://raw.githubusercontent.com/Pakobbix/passive-income/master/restart.sh
echo 80 echo 60
# make restart skript executable
chmod +x /root/ebesucher/restart.sh chmod +x /root/ebesucher/restart.sh
bash /root/ebesucher/restart.sh echo 70
echo 90 # add username to restart skript
sed -i "s/username=/&$nutzername/g" /root/ebesucher/restart.sh sed -i "s/username=/&$nutzername/g" /root/ebesucher/restart.sh
echo 80
sed -i "s/CPUcores=/CPUcores=$CPUSet/g" /root/ebesucher/restart.sh
echo 90
bash /root/ebesucher/restart.sh
echo 100 echo 100
} | whiptail --gauge "Erstelle Sicherung und Lade Restarter Skript herunter" 6 50 0 } | whiptail --gauge "Erstelle Sicherung und Lade Restarter Skript herunter" 6 50 0
# Export current crontab
messagebox "Erstelle Timer" "Nun muss noch ein Cronjob eingerichtet werden. crontab -l >/tmp/ebesucher
Das ist Quasi ein Timer. Wir stellen ihn so ein, # check if restart script is already configured
das jede Stunde der Container, und die Firefox Daten gelöscht werden,
die Sicherung wiedergeherstellt wird und den container ebenso.
Dies wird gemacht, damit sich nicht zuviel Müll ansammelt und um zu gewährleisten,
dass es für immer läuft.
Selbst wenn der Container mal abstürzen sollte, wird er nächste Stunde wieder neugestartet."
crontab -l >/tmp/ebesucher 2>/dev/null
if ! grep -q "ebesucher/restart.sh" "/tmp/ebesucher"; then if ! grep -q "ebesucher/restart.sh" "/tmp/ebesucher"; then
# add restart script, reboot and update to crontab
echo "0 * * * * /bin/bash /root/ebesucher/restart.sh echo "0 * * * * /bin/bash /root/ebesucher/restart.sh
@reboot /bin/bash /root/ebesucher/restart.sh @reboot /bin/bash /root/ebesucher/restart.sh
0 0 * * 0 reboot" >>/tmp/ebesucher 0 0 * * 0 reboot
0 4 * * * /bin/bash /root/update_system.sh" >>/tmp/ebesucher
# Let cron reload the new configured crontab
crontab /tmp/ebesucher
# delete the export
rm /tmp/ebesucher
fi fi
else
# Ebesucher Configuration if user != root
# Check if ebesucher folder already exists
if [ -d /home/"$linux_user"/ebesucher ]; then
skip "Ordner ebesucher exestiert bereits"
# check if config exists, if yes, ask to overwrite
if [ -f /home/"$linux_user"/ebesucher/config.zip ]; then
if whiptail --title "Alte config gefunden" --yesno "Es wurde bereits ein Firefox Profil angelegt, soll dieses gelöscht und überschrieben werden?" 20 100; then
# remove old config
rm -f /home/"$linux_user"/ebesucher/config.zip
# download blank config
wget -O /home/"$linux_user"/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip
# unpack config
unzip -o /home/"$linux_user"/ebesucher/config.zip -d /home/"$linux_user"/ebesucher/
else
# unpack config
unzip -o /home/"$linux_user"/ebesucher/config.zip -d /home/"$linux_user"/ebesucher/
fi
fi
else
# Create ebesucher folder
if [ -d /home/"$linux_user"/ebesucher ]; then
# download config
wget -O /home/"$linux_user"/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip
# unpack config
unzip -o /home/"$linux_user"/ebesucher/config.zip -d /home/"$linux_user"/ebesucher/
fi
if mkdir /home/"$linux_user"/ebesucher; then
# download config
wget -O /home/"$linux_user"/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip
# unpack config
unzip -o /home/"$linux_user"/ebesucher/config.zip -d /home/"$linux_user"/ebesucher/
erfolg "Ordner für ebesucher konnte erstellt werden"
else
fehler "Der Ordner für ebesucher konnte nicht angelegt werden"
fi
fi
while true; do
CPUSet=$(inputbox "CPU Begrenzung" "Das System hat $availablecores Kerne. Wieviele davon darf Ebesucher ausnutzen? 4 sind empfohlen")
if [[ "$availablecores" -ge "CPUSet" ]]; then
break
fi
done
# Ebesucher docker creation function. Will be used in the next step
ebesucher_docker() {
if docker rm -f ebesucher || true && docker run -d --name=ebesucher -p 3000:5800 -m "$1" --cpus "$2" -v ~/ebesucher/config:/config:rw --shm-size 2g jlesage/firefox; then
erfolg "Firefox-Ebesucher wurde eingerichtet"
messagebox "Jetzt bist du gefragt!" "Öffne im browser deiner Wahl von einem anderen Gerät aus $(hostname -I | awk '{print $1}'):3000"
else
fehler "Firefox-Ebesucher konnte nicht eingerichtet werden"
fi
}
# Check how much ram is available.
ram_avail=$(bc <<<"scale=2;$(($(free | awk 'NR==2 {print $2}') / 1000000))")
# create ebesucher docker container with specific RAM available (around 1 GB less then available)
if ((ram_avail >= 3 && ram_avail <= 4)); then
ebesucher_docker "3g" "$CPUSet"
elif [[ $ram_avail -ge "5" ]]; then
ebesucher_docker "4g" "$CPUSet"
fi
messagebox "" "Oben Rechts im Firefox Browser, öffne das Ebesucher addon.
Gebe in das Feld deinen Ebesucher Nutzernamen ein und mache einen Haken bei Privacy"
nutzername=$(inputbox "Ebesucher Nutzername" "Gebe hier deinen Ebesucher Nutzernamen ein: ")
messagebox 'Schließt nun alle Tabs im Browser und fahrt fort.'
messagebox "Erstelle Sicherungen" "Damit die Einstellungen auch für immer gespeichert werden,
erstelle ich eine Sicherung der Firefox-Konfiguration"
{
echo 10
if [ -f /home/"$linux_user"/ebesucher/config.zip ]; then
# delete blank config.zip
sudo rm -f /home/"$linux_user"/ebesucher/config.zip 2>/dev/null
fi
echo 15
docker stop ebesucher
echo 20
cd /home/"$linux_user"/ebesucher/ || exit
echo 30
# pack config folder into new config.zip
zip -r config.zip config/ 2>/dev/null
echo 40
# Give rights back to user
sudo chown "$linux_user":"$linux_user" config.zip
# download restart script
wget -O /home/"$linux_user"/ebesucher/restart.sh https://raw.githubusercontent.com/Pakobbix/passive-income/master/restart.sh
echo 50
# add username to restart skript
sed -i "s/username=/&$nutzername/g" /home/"$linux_user"/ebesucher/restart.sh
echo 60
# Add RAM and CPU Settings to restart script
sed -i "s/CPUcores=/CPUcores=$CPUSet/g" /home/"$linux_user"/ebesucher/restart.sh
# make restart skript executable
chmod +x /home/"$linux_user"/ebesucher/restart.sh
echo 80
bash /home/"$linux_user"/ebesucher/restart.sh
echo 100
} | whiptail --gauge "Erstelle Sicherung und Lade Restarter Skript herunter" 6 50 0
# Export current crontab
crontab -l >/tmp/ebesucher
# check if restart script is already configured
if ! grep -q "ebesucher/restart.sh" "/tmp/ebesucher"; then
# add restart script
echo "0 * * * * /bin/bash /home/$linux_user/ebesucher/restart.sh
@reboot /bin/bash /home/$linux_user/ebesucher/restart.sh" >>/tmp/ebesucher
# Let cron reload the new configured crontab
crontab /tmp/ebesucher
# delete the export
rm /tmp/ebesucher
fi
fi
;; ;;
esac esac
done done
fi fi
echo -e "#!/bin/bash\n\nexport DEBIAN_FRONTEND=noninteractive\n\nsudo apt-get update\n\nsudo apt-get upgrade -y\n\nsudo apt-get autoremove -y" >/root/update_system.sh if [ "$linux_user" == "root" ]; then
chmod +x /root/update_system.sh # configure update script
if ! grep -q "update_system.sh" "/tmp/updatecron"; then echo -e "#!/bin/bash\n\nexport DEBIAN_FRONTEND=noninteractive\n\nsudo apt-get update\n\nsudo apt-get upgrade -y\n\nsudo apt-get autoremove -y" >/root/update_system.sh
crontab -l /tmp/updatecron # make update script executable
echo "0 4 * * * /bin/bash /root/update_system.sh" >>/tmp/updatecron chmod +x /root/update_system.sh
crontab /tmp/updatecron else
rm /tmp/crontab # configure update script
echo -e "#!/bin/bash\n\nexport DEBIAN_FRONTEND=noninteractive\n\nsudo apt-get update\n\nsudo apt-get upgrade -y\n\nsudo apt-get autoremove -y" | sudo tee /root/update_system.sh
# make update script executable
sudo chmod +x /root/update_system.sh
# export root crontab
sudo crontab -l | sudo tee /tmp/rootcron
# add update and reboot to root crontab
if ! grep -q "update_system" "/tmp/rootcron"; then
echo "0 0 * * 0 reboot
0 4 * * * /bin/bash /root/update_system.sh" | sudo tee -a /tmp/rootcron
fi
# import root crontab
sudo crontab /tmp/rootcron
fi fi
if docker ps | grep "ebesucher\|traffmonetizer\|peer2profit\|IPRoyal\|packetstream\|honeygain" >/dev/null; then
if docker ps | grep -q "ebesucher\|traffmonetizer\|peer2profit\|IPRoyal\|packetstream\|honeygain"; then
if ! docker ps -a | grep -i "containerr/watchtower"; then
if docker run -d --name watchtower --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime:ro containrrr/watchtower --cleanup --interval 86400; then if docker run -d --name watchtower --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime:ro containrrr/watchtower --cleanup --interval 86400; then
erfolg "Watchtower erfolgreich eingerichtet" erfolg "Watchtower erfolgreich eingerichtet"
else else
fehler "Watchtower konnte nicht eingerichtet werden" fehler "Watchtower konnte nicht eingerichtet werden"
fi fi
else
skip "Watchtower ist bereits vorhanden."
fi
fi fi
messagebox "FERTIG!" "Wir sind nun Fertig! Ich hoffe das alles geklappt hat, wenn nicht, erstelle ein Issue auf https://github.com/Pakobbix/passive-income/issues" messagebox "FERTIG!" "Wir sind nun Fertig! Ich hoffe das alles geklappt hat, wenn nicht, erstelle ein Issue auf https://github.com/Pakobbix/passive-income/issues"
new_task "${green}$erfolgreich Erfolgreiche Operationen\n${red}$fehler Fehlerhafte Operationen\n${cyan}$skip Übersprungene Operationen${white}" new_task "${green}$erfolgreich Erfolgreiche Operationen\n${red}$fehler Fehlerhafte Operationen\n${cyan}$skip Übersprungene Operationen${white}"

View File

@@ -1,332 +0,0 @@
#!/bin/bash
red='\033[0;31m' # ${red}
white='\033[0;37m' # ${white}
yellow='\033[0;33m' # ${yellow}
lblue='\033[1;34m' # ${lblue}
cyan='\033[0;36m' # ${cyan}
purple='\033[0;35m' # ${purple}
Help() {
# Display Help
echo
echo -e "${purple}Benachrichtigungs Skript für Passive-Income (pain).${white}"
echo
echo "Ausführung: ./notifier.sh"
echo
echo "Für erneute Configuration: ./notifier.sh -c"
echo
echo "Argumente:"
echo -e "${yellow} -c${white} ${lblue}Starte die Konfiguration erneut"
echo -e "${yellow} -h${white} ${lblue}Zeige diese Hilfe"
echo
}
fehler() {
echo -e "${red}$1${white}"
}
Hinweis() {
echo -e "${yellow}$1${white}"
}
URLlink() {
echo -e "${cyan}$1${white}"
}
config="/opt/Passive-Income/NotificationHandler/config"
setup_config() {
while true; do
messagehandler=$(
whiptail --title "Wähle den Notifier" --menu "Nehme hier die Art der Benachrichtung die du haben willst." 20 100 9 \
"SurfbarName" "" \
"Discord" "" \
"Telegram" "" \
"Apprise" "" \
"NextcloudTalk" "" \
"PushBullet" "" \
"Email" "" \
"Rocket.Chat" "" \
"CronErstellen" "" \
"Beenden" "" 3>&2 2>&1 1>&3
)
case "$messagehandler" in
SurfbarName)
surflink=$(whiptail --title "Surfbar Link" --inputbox "Gebe hier den Namen deiner Surfbar ein\nBeispiel:\nHttps://www.ebesucher.de/surfbar/MeinSurfLink\nName ist hierbei: MeinSurfLink\nEs können auch mehrere eingegeben werden." 16 100 3>&2 2>&1 1>&3)
if [ -n "$surflink" ]; then
sed -i "s/SurfbarName=.*/SurfbarName=\"$surflink\"/g" $config
fi
;;
Discord)
dishook=$(whiptail --title "Discord Webhook URL" --inputbox "Gebe hier deine Discord Webhook URL ein" 16 100 3>&2 2>&1 1>&3)
if [ -n "$dishook" ]; then
sed -i "s|Discord_WebHookLink=.*|Discord_WebHookLink=\"$dishook\"|g" $config
sed -i "s/NotificationHandler=.*/NotificationHandler=\"Discord\"/g" $config
fi
;;
Telegram)
T_UI=$(whiptail --title "Telegram USER ID" --inputbox "Gebe hier deine Telegram USERID ein" 16 100 3>&2 2>&1 1>&3)
T_BotToken=$(whiptail --title "Telegram Bot Token" --inputbox "Gebe hier deinen Telegram Bot Token ein" 16 100 3>&2 2>&1 1>&3)
if [ -n "$T_UI" ]; then
sed -i "s/Telegram_UID=.*/Telegram_UID=\"$T_UI\"/g" $config
sed -i "s/NotificationHandler=.*/NotificationHandler=\"Telegram\"/g" $config
fi
if [ -n "$T_BotToken" ]; then
sed -i "s/Telegram_BT=.*/Telegram_BT=\"$T_BotToken\"/g" $config
fi
;;
Apprise)
AppRise_URL=$(whiptail --title "AppRise URL" --inputbox "Gebe hier die AppRise URL ein\nNötig ist hier die IP:Port. Beispiel:\n192.168.5.21:8000" 16 100 3>&2 2>&1 1>&3)
AppRise_URL_TAG=$(whiptail --title "AppRise Tag" --inputbox "Gebe hier einen AppRise Tag ein (Optional! Achtung, ohne Tag\nwerden alle Konfigurierten Methoden in Apprise genutzt)" 16 100 3>&2 2>&1 1>&3)
if [ -n "$AppRise_URL" ]; then
sed -i "s|AppRiseURL=.*|AppRiseURL=\"$AppRise_URL/notify/apprise\"|g" $config
sed -i "s/NotificationHandler=.*/NotificationHandler=\"Apprise\"/g" $config
fi
if [ -n "$AppRise_URL_TAG" ]; then
sed -i "s/AppRiseTAG=.*/AppRiseTAG=\"$AppRise_URL_TAG\"/g" $config
fi
;;
NextcloudTalk)
NextcloudDomain=$(whiptail --title "Nextcloud Domain" --inputbox "Gebe hier deine Nextcloud Domain/IP:Port ein\nBeispiel: 10.0.0.4:85 oder\nhttps://cloud.zephyre.one" 16 100 3>&2 2>&1 1>&3)
NextcloudTalkToken=$(whiptail --title "Nextcloud Talk Token" --inputbox "Gebe hier deinen Nextcloud Talk Chatroom Token ein\nhttps://cloud.zephyre.one/call/9gp9y99i\n9gp9y99i ist der benötigte Token" 16 100 3>&2 2>&1 1>&3)
NextcloudUser=$(whiptail --title "Nextcloud User" --inputbox "Gebe hier deinen Nextcloud User ein der die Nachricht schreiben soll.\nDer User muss dem Chatroom hinzugefügt werden!" 16 100 3>&2 2>&1 1>&3)
NextcloudPassword=$(whiptail --title "Nextcloud Password" --passwordbox "Gebe hier das Passwort von dem Nextcloud User ein" 16 100 3>&2 2>&1 1>&3)
if [ -n "$NextcloudDomain" ]; then
sed -i "s|NextcloudDomain=.*|NextcloudDomain=\"$NextcloudDomain\"|g" $config
sed -i "s/NotificationHandler=.*/NotificationHandler=\"NextCloud\"/g" $config
fi
if [ -n "$NextcloudTalkToken" ]; then
sed -i "s/NextcloudTalkToken=.*/NextcloudTalkToken=\"$NextcloudTalkToken\"/g" $config
fi
if [ -n "$NextcloudUser" ]; then
sed -i "s/NextcloudUser=.*/NextcloudUser=\"$NextcloudUser\"/g" $config
fi
if [ -n "$NextcloudPassword" ]; then
sed -i "s/NextcloudPassword=.*/NextcloudPassword=\"$NextcloudPassword\"/g" $config
fi
;;
PushBullet)
PBToken=$(whiptail --title "Pushbullet Token" --inputbox "Gebe hier deinen Pushbullet Token ein" 16 100 3>&2 2>&1 1>&3)
if [ -n "$PBToken" ]; then
sed -i "s/PushBulletToken=.*/PushBulletToken=\"$PBToken\"/g" $config
sed -i "s/NotificationHandler=.*/NotificationHandler=\"PushBullet\"/g" $config
fi
;;
Email)
smtpURL=$(whiptail --title "Nextcloud Domain" --inputbox "Gebe hier die SMTP Domain ein" 16 100 3>&2 2>&1 1>&3)
smtpPORT=$(whiptail --title "Nextcloud Talk Token" --inputbox "Gebe hier den SMTP Port an" 16 100 3>&2 2>&1 1>&3)
mailfrom=$(whiptail --title "Nextcloud User" --inputbox "Gebe hier die E-Mail an, die die Nachricht verschicken soll" 16 100 3>&2 2>&1 1>&3)
mailrcpt=$(whiptail --title "Nextcloud Password" --inputbox "Gebe hier die E-Mail an, die die Nachricht erhalten soll" 16 100 3>&2 2>&1 1>&3)
mailuser=$(whiptail --title "Nextcloud User" --inputbox "Gebe hier den User für die E-Mail an" 16 100 3>&2 2>&1 1>&3)
mailpass=$(whiptail --title "Nextcloud Password" --passwordbox "Gebe das Passwort des Users ein" 16 100 3>&2 2>&1 1>&3)
if [ -n "$smtpURL" ]; then
sed -i "s/smtpURL=.*/smtpURL=\"$smtpURL\"/g" $config
sed -i "s/NotificationHandler=.*/NotificationHandler=\"Email\"/g" $config
fi
if [ -n "$smtpPORT" ]; then
sed -i "s/smtpPORT=.*/smtpPORT=\"$smtpPORT\"/g" $config
fi
if [ -n "$mailfrom" ]; then
sed -i "s/mailfrom=.*/mailfrom=\"$mailfrom\"/g" $config
fi
if [ -n "$mailrcpt" ]; then
sed -i "s/mailrcpt=.*/mailrcpt=\"$mailrcpt\"/g" $config
fi
if [ -n "$mailuser" ]; then
sed -i "s/mailuser=.*/mailuser=\"$mailuser\"/g" $config
fi
if [ -n "$mailpass" ]; then
sed -i "s/mailpass=.*/mailpass=\"$mailpass\"/g" $config
fi
;;
Rocket.Chat)
RCHOOK=$(whiptail --title "Rocket Chat Webhook" --inputbox "Gebe hier deine Rocket.Chat Webhook ein" 16 100 3>&2 2>&1 1>&3)
if [ -n "$RCHOOK" ]; then
sed -i "s/RocketChatHook=.*/RocketChatHook=\"$RCHOOK\"/g" $config
sed -i "s/NotificationHandler=.*/NotificationHandler=\"Rocket.Chat\"/g" $config
fi
;;
CronErstellen)
cronloc="/tmp/crontab"
curr_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
scriptname=$(echo "$0" | sed 's/\.\///g')
crontab -l "$cronloc"
if grep -q "notifier.sh" $cronloc; then
if whiptail --title "Eintrag bereits vorhanden" --yesno "Es ist bereits ein eintrag für den notifier vorhanden, möchtest du diesen überschreiben?" 20 100; then
sed -i "s|.*notifier.sh.*|10,20,30,40,50 * * * * /bin/bash $curr_dir/$scriptname|g" "$cronloc"
crontab "$cronloc"
fi
else
echo "10,20,30,40,50 * * * * /bin/bash $curr_dir/$scriptname|g" >>"$cronloc"
crontab "$cronloc"
fi
;;
Beenden)
break
exit 0
;;
esac
break
exit
done
}
while getopts ":hc" option; do
case $option in
h) # display Help
Help
exit
;;
c) # Starte eine erneute Konfiguration
if ! [ -f "$config" ]; then
mkdir -p /opt/Passive-Income/NotificationHandler 2>/dev/null
wget -qO "$config" https://raw.githubusercontent.com/Pakobbix/passive-income/NotificationHandler/NotificationHandler/config
fi
setup_config
exit
;;
\?) # Invalid option
echo "Fehler: Ungültige Eingabe"
Help
exit
;;
esac
done
if ! [ -d "/opt/Passive-Income/NotificationHandler" ] || ! [ -f "$config" ]; then
mkdir -p /opt/Passive-Income/NotificationHandler 2>/dev/null
wget -qO "$config" https://raw.githubusercontent.com/Pakobbix/passive-income/NotificationHandler/NotificationHandler/config
setup_config
fi
source "$config"
if [ -z "$NotificationHandler" ]; then
setup_config
fi
if [ -z "$SurfbarName" ]; then
fehler "SurfbarName ist nicht gesetzt!"
Hinweis "Wenn du weiter drückst, wird die Konfiguration nochmal aufgerufen. Wähle hier dann SurfbarName um diesen zu Konfigurieren"
read -rp "Drücke eine beliebige Taste zum fortfahren"
setup_config
fi
for SurfbarLinks in $SurfbarName; do
ProcessID=$(pgrep -f "surfbar/$SurfbarLinks")
case $NotificationHandler in
Discord)
if [ -z "$Discord_WebHookLink" ]; then
fehler "Fehler! Discord wurde ausgewählt, aber keine WebHook angegeben!"
echo
Hinweis "Eine Anleitung für die Webhook findet ihr hier:"
URLlink "https://hookdeck.com/webhooks/platforms/how-to-get-started-with-discord-webhooks#how-do-i-add-a-webhook-to-discord"
exit 1
else
if [ -z "$ProcessID" ]; then
curl -i -H "Accept: application/json" -H "Content-Type:application/json" -X POST --data "{\"content\": \"Ebesucher ist Abgestürzt.\n$SurfbarLinks läuft nicht mehr\"}" "$Discord_WebHookLink" &>/dev/null
else
exit 1
fi
fi
;;
Telegram)
if [ -z "$Telegram_UID" ] || [ -z "$Telegram_BT" ]; then
fehler "Fehler! Discord wurde ausgewählt, aber keine WebHook angegeben!"
echo
Hinweis "Eine Anleitung für die Webhook findet ihr hier:"
URLlink "https://hookdeck.com/webhooks/platforms/how-to-get-started-with-discord-webhooks#how-do-i-add-a-webhook-to-discord"
exit 1
else
if [ -z "$ProcessID" ]; then
curl -X POST -H 'Content-Type: application/json' -d '{"chat_id": "'"$Telegram_UID"'", "text": "'"Ebesucher auf $surflink"'", "disable_notification": true}' https://api.telegram.org/bot$Telegram_BT/sendMessage
else
exit 1
fi
fi
;;
Apprise)
if [ -z "$AppRiseURL" ]; then
fehler "Fehler! AppRise wurde ausgewählt, aber keine URL angegeben!"
echo
Hinweis "Eine Anleitung für AppRise findet ihr hier"
URLlink "https://github.com/caronc/apprise/wiki/config"
exit 1
else
if [ -z "$ProcessID" ]; then
if [ -n "$AppRiseTAG" ]; then
curl -d '{"body":"'"Ebesucher Container $SurfbarLinks ist down"'", "title":"Passive-Income Notification: Ebesucher ist Abgestürzt","tag":"'"$AppRiseTAG"'"}' -H "Content-Type: application/json" "$AppRiseURL" &>/dev/null
else
curl -d '{"body":"'"Ebesucher Container $SurfbarLinks ist down"'", "title":"Passive-Income Notification: Ebesucher ist Abgestürzt","tag":"all"}' -H "Content-Type: application/json" "$AppRiseURL" &>/dev/null
fi
else
exit 1
fi
fi
;;
NextCloud)
if [ -z "$NextcloudUser" ] || [ -z "$NextcloudPassword" ] || [ -z "$NextcloudDomain" ] || [ -z "$NextcloudTalkToken" ]; then
echo "Eine oder mehrere Variablen (NextcloudUser, NextcloudPassword, NextcloudDomain, und/oder NextcloudTalkToken) wurden nicht angegeben. Beende NotificationHandler!."
exit 1
else
if [ -z "$ProcessID" ]; then
curl -d '{"token":"'"$NextcloudTalkToken"'", "message":"'"Passive-Income Notification: Ebesucher ist Abgestürzt\nEbesucher Container $SurfbarLinks ist down"'"}' -H "Content-Type: application/json" -H "Accept:application/json" -H "OCS-APIRequest:true" -u "$NextcloudUser:$NextcloudPassword" "$NextcloudDomain"/ocs/v1.php/apps/spreed/api/v1/chat/tokenid &>/dev/null
fi
fi
;;
PushBullet)
if [ -z "$PushBulletToken" ]; then
fehler "Fehler! PushBullet wurde ausgewählt, aber kein Token angegeben!"
echo
Hinweis "Eine Anleitung für PushBullet findet ihr hier"
URLlink "https://www.pushbullet.com/"
exit 1
else
if [ -z "$ProcessID" ]; then
curl -X POST -H 'Content-Type: application/json' -d '{"chat_id": "'"$Telegram_UID"'", "text": "'"Ebesucher auf $surflink"'", "disable_notification": true}' https://api.telegram.org/bot$Telegram_BT/sendMessage
curl -u "$PushBulletToken": -X POST https://api.pushbullet.com/v2/pushes --header 'Content-Type: application/json' --data-binary '{"type": "note", "title": "Passive-Income Notification: Ebesucher ist Abgestürzt", "body": "Ebesucher Container '"$SurfbarLinks"' ist down"}'
else
exit 1
fi
fi
;;
Email)
if [ -z "$smtpURL" ] || [ -z "$smtpPORT" ] || [ -z "$mailfrom" ] || [ -z "$mailrcpt" ] || [ -z "$mailuser" ] || [ -z "$mailpass" ]; then
echo "Fehler! Mail wurde ausgewählt, aber eines oder mehrere Variablen leer gelassen!"
exit 1
else
if [ -z "$ProcessID" ]; then
echo "From: Passive-Income $mailfrom
To: $mailrcpt $mailrcpt
Subject: Passive-Income Notification: Ebesucher ist Abgestürzt
Hi $mailrcpt,
Your Ebesucher Container $SurfbarLinks ist abgestürzt und läuft nicht mehr.
Bye!" >/root/pain_watchmail
curl "smtps://$smtpURL:$smtpPORT" --mail-from "$mailfrom" --mail-rcpt "$mailrcpt" -T /root/pain_watchmail -u "$mailuser:$mailpass" --ssl-reqd --insecure --show-error -s
else
exit 1
fi
fi
;;
Rocket.Chat)
if [ -z "$RocketChatHook" ]; then
fehler "Fehler! RocketChat wurde ausgewählt, aber keine WebHook angegeben!"
echo
Hinweis "Eine Anleitung für die Webhook findet ihr hier:"
URLlink "https://docs.rocket.chat/use-rocket.chat/rocket.chat-workspace-administration/integrations"
exit 1
else
if [ -z "$ProcessID" ]; then
curl -X POST -H 'Content-Type: application/json' --data '{"text":"Passive-Income Notification: Ebesucher ist Abgestürzt","attachments":[{"title":"Passive-Income Notification: Ebesucher ist Abgestürzt","text":"Ebesucher Container '"$SurfbarLinks"' ist down","color":"#764FA5"}]}' "$RocketChatHook"
else
exit 1
fi
fi
;;
esac
done

View File

@@ -3,6 +3,10 @@
# Variablen für Benennung und Ebesucher Nutzernamen # Variablen für Benennung und Ebesucher Nutzernamen
username= username=
containername=ebesucher containername=ebesucher
# Variable für die Maximale Nutzung von CPU Cores
CPUcores=
# Ordner des Skripts # Ordner des Skripts
git_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) git_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
# Wechsel in den Ordner # Wechsel in den Ordner
@@ -22,19 +26,18 @@ sleep 60s
docker_run(){ docker_run(){
if [ -z "$username" ]; then if [ -z "$username" ]; then
# Funktion zum starten des Containers, falls username nicht gesetzt # Funktion zum starten des Containers, falls username nicht gesetzt
docker run -d --name="$containername" -p 3000:5800 -v "$git_dir"/config:/config:rw -m "$1" --shm-size 2g jlesage/firefox docker run -d --name="$containername" -p 3000:5800 -v "$git_dir"/config:/config:rw -m "$1" --cpus "$CPUcores" --shm-size 2g jlesage/firefox
else else
# Funktion zum starten von Firefox immer mit der Surfbar (Verhindert dass bei Updates Firefox ein "neue Features" Tab über der Surfbar öffnet) # Funktion zum starten von Firefox immer mit der Surfbar (Verhindert dass bei Updates Firefox ein "neue Features" Tab über der Surfbar öffnet)
docker run -d --name="$containername" -p 3000:5800 -e FF_OPEN_URL="https://ebesucher.com/surfbar/$username" -m "$1" -v "$git_dir"/config:/config:rw --shm-size 2g jlesage/firefox docker run -d --name="$containername" -p 3000:5800 -e FF_OPEN_URL="https://ebesucher.com/surfbar/$username" -m "$1" --cpus "$CPUcores" -v "$git_dir"/config:/config:rw --shm-size 2g jlesage/firefox
fi fi
} }
# Überprüfe wieviel Arbeitsspeicher vorhanden ist, um bei Geräten mit weniger als 4 GB 1 GB als Sicherungs zu haben. # Überprüfe wieviel Arbeitsspeicher vorhanden ist, um bei Geräten mit weniger als 4 GB 1 GB als Sicherungs zu haben.
ram_avail=$(bc <<<"scale=2;$(($(free | awk 'NR==2 {print $2}') / 1000000))") ram_avail=$(bc <<<"scale=2;$(($(free | awk 'NR==2 {print $2}') / 1000000))")
if [[ $ram_avail -ge "2" ]]; then if ((ram_avail >= 3 && ram_avail <= 4)); then
docker_run "1g" ebesucher_docker "3g" "$CPUSet"
elif [[ $ram_avail -eq "4" ]]; then
docker_run "3g"
elif [[ $ram_avail -ge "5" ]]; then elif [[ $ram_avail -ge "5" ]]; then
docker_run "4g" ebesucher_docker "4g" "$CPUSet"
fi fi