From 2481b00a263963173a2db40cae5877772d1fc3bd Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sat, 4 Feb 2023 13:22:07 +0100 Subject: [PATCH 01/20] Added CPU Limitation --- restart.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/restart.sh b/restart.sh index 23226e0..53dee0e 100755 --- a/restart.sh +++ b/restart.sh @@ -3,6 +3,10 @@ # Variablen für Benennung und Ebesucher Nutzernamen username= containername=ebesucher + +# Variable für die Maximale Nutzung von CPU Cores +CPUcores= + # Ordner des Skripts git_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) # Wechsel in den Ordner @@ -22,19 +26,19 @@ sleep 60s docker_run(){ if [ -z "$username" ]; then # 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 # 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 } # Ü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))") if [[ $ram_avail -ge "2" ]]; then - docker_run "1g" + docker_run "1g" "$CPUcores" elif [[ $ram_avail -eq "4" ]]; then - docker_run "3g" + docker_run "3g" "$CPUcores" elif [[ $ram_avail -ge "5" ]]; then - docker_run "4g" + docker_run "4g" "$CPUcores" fi From a386971342785d550af6f34b19343f1a1e3622b5 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sat, 4 Feb 2023 13:54:13 +0100 Subject: [PATCH 02/20] Rework for better root/user management --- gui_start.sh | 628 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 406 insertions(+), 222 deletions(-) diff --git a/gui_start.sh b/gui_start.sh index 165b99b..7d61396 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -7,75 +7,117 @@ white='\033[0;37m' # ${white} erfolgreich=0 fehler=0 skip=0 + +# Disable prompts, like which service should be restartet export DEBIAN_FRONTEND=noninteractive + +# Visually seperate different tasks 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() { - whiptail --title "Erfolgreich!" --msgbox "$1" 20 70 - erfolgreich=$((erfolgreich + 1)) + whiptail --title "Erfolgreich!" --msgbox "$1" 20 70 + erfolgreich=$((erfolgreich + 1)) } +# Message and count +1 for failed fehler() { - whiptail --title "Fehler!" --msgbox "$1" 20 70 - fehler=$((fehler + 1)) + whiptail --title "Fehler!" --msgbox "$1" 20 70 + fehler=$((fehler + 1)) } +# Message and count +1 for skipped skip() { - echo -e "${cyan}$1${white}" - skip=$((skip + 1)) + echo -e "${cyan}$1${white}" + skip=$((skip + 1)) } +# Function to install dependencies install_dep() { - if sudo apt-get install -y "$@" >/dev/null; then - erfolg "$@ Pakete wurden installiert" - else - fehler "$@ Pakete konnten nicht installiert werden" - fi + if sudo apt-get install -y "$@" >/dev/null; then + # shellcheck disable=SC2145 + erfolg "$@ Pakete wurden installiert" + else + # shellcheck disable=SC2145 + fehler "$@ Pakete konnten nicht installiert werden" + fi } messagebox() { - whiptail --title "$1" --msgbox "$2" 30 100 3>&1 1>&2 2>&3 + whiptail --title "$1" --msgbox "$2" 30 100 3>&1 1>&2 2>&3 } 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 } -[ -d /etc/needrestart/ ] && sudo sed -i 's/#$nrconf{restart} = '"'"'i'"'"';/$nrconf{restart} = '"'"'a'"'"';/g' /etc/needrestart/needrestart.conf 2>/dev/null -sudo echo -if ! which whiptail >/dev/null; then - sudo apt-get install whiptail -y -fi +# 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 + +# Just for sudo access. +sudo echo + +# Check if whiptail is already installed (not standard on minimal installation) +if ! which whiptail >/dev/null; then + sudo apt-get update + sudo apt-get install whiptail -y +fi + +# Whiptail Progressbar { - echo 0 - sudo apt-get update >/dev/null - echo 14 - sudo apt-get upgrade -y >/dev/null - echo 30 - sudo apt-get install ca-certificates curl gnupg lsb-release zip unzip bc apt-utils cron -y >/dev/null - echo 44 - [ -d /etc/apt/keyrings ] || sudo mkdir -p /etc/apt/keyrings - echo 61 - [ -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 "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 90 - if ! sudo apt-get update >/dev/null; then - sudo chmod a+r /etc/apt/keyrings/docker.gpg - sudo apt-get update - fi - echo 100 + echo 0 + sudo apt-get update >/dev/null + echo 14 + sudo apt-get upgrade -y >/dev/null + echo 30 + sudo apt-get install ca-certificates curl gnupg lsb-release zip unzip bc apt-utils cron -y >/dev/null + echo 44 + # Check if keyrings is present, if not, create folder for keyrings + [ -d /etc/apt/keyrings ] || sudo mkdir -p /etc/apt/keyrings + 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 + 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 + ;; + esac + echo 90 + if ! sudo apt-get update >/dev/null; then + sudo chmod a+r /etc/apt/keyrings/docker.gpg + sudo apt-get update + fi + echo 100 + # end whiptail progressbar } | whiptail --gauge "Aktualisiere System installiere Docker" 6 50 0 +# Check if Docker is not installed if ! which docker >/dev/null; then - 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 - 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 + # it's not installed, so do: + 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 + # 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 whiptail --title "Passive Income Helperskript" --msgbox "Dieses Skript richtet mehrere Einkommenshelfer für dich ein. @@ -107,72 +149,92 @@ https://pawns.app?r=905162 Traffmonetizer. Vermiete deine IP-Adresse als Proxy 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) if [ -z "$einzurichten" ]; then - echo "Nichts wurde ausgewählt" + echo "Nichts wurde ausgewählt" + exit else - for einrichtung in $einzurichten; do - case $einrichtung in - Honeygain) - 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) - device_name=$(whiptail --title "Honeygain Gerätenamen" --inputbox "Gebe einen Gerätenamen an: " 20 70 3>&1 1>&2 2>&3) - if docker rm -f honeygain || true && docker run -d --name honeygain --restart=always honeygain/honeygain -tou-accept -email "$honeymail" -pass "$honeypass" -device "$device_name"; then - erfolg "Honeygain wurde eingerichtet" - else - fehler "Honeygain konnte nicht eingerichtet werden" - fi - - ;; - Peer2Profit) - 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 - chmod +x ~/peer2profit.sh - if docker rm -f peer2profit || true && docker run -d --restart=always -e P2P_EMAIL="$P2P_E_MAIL" --name peer2profit peer2profit/peer2profit_linux:latest; then - erfolg "Peer2Profit wurde eingerichtet" - else - fehler "Peer2Profit konnte nicht eingerichtet werden" - fi - ;; - EarnAPP) - 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..." key - ;; - - Packetstream) - pscidh=$(whiptail --title "Packetstream CIDH E-Mail" --inputbox "Packetstream vergibt automatisch jedem User eine ID. + for einrichtung in $einzurichten; do + case $einrichtung in + ######################### + # Honeygain Einrichtung # + ######################### + Honeygain) + 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) + device_name=$(whiptail --title "Honeygain Gerätenamen" --inputbox "Gebe einen Gerätenamen an: " 20 70 3>&1 1>&2 2>&3) + if docker rm -f honeygain || true && docker run -d --name honeygain --restart=always honeygain/honeygain -tou-accept -email "$honeymail" -pass "$honeypass" -device "$device_name"; then + erfolg "Honeygain wurde eingerichtet" + else + fehler "Honeygain konnte nicht eingerichtet werden" + fi + ;; + ########################### + # Peer2Profit Einrichtung # + ########################### + Peer2Profit) + 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 + chmod +x ~/peer2profit.sh + if docker rm -f peer2profit || true && docker run -d --restart=always -e P2P_EMAIL="$P2P_E_MAIL" --name peer2profit peer2profit/peer2profit_linux:latest; then + erfolg "Peer2Profit wurde eingerichtet" + else + fehler "Peer2Profit konnte nicht eingerichtet werden" + fi + ;; + ####################### + # EarnApp Einrichtung # + ####################### + EarnAPP) + 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..." key + ;; + ############################ + # PacketStream Einrichtung # + ############################ + Packetstream) + 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 https://packetstream.io/dashboard/referrals Hinter dem Share PacketStream Link: https://packetstream.io/?psr=4HUh Steht die CIDH (4HUh ist demnach meine CIDH) " 20 70 3>&1 1>&2 2>&3) - if docker rm -f packetstream || true && docker run -d --restart=always -e CID="$pscidh" --name packetstream packetstream/psclient:latest; then - erfolg "Packetstream wurde eingerichtet" - else - fehler "Packetstream konnte nicht eingerichtet werden" - fi - ;; - - "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) - pawnspass=$(whiptail --title "IPRoyal Pawns.app Password" --passwordbox "Gebe dein IPRoyal Pawns.app Passwort ein: " 20 70 3>&1 1>&2 2>&3) - if docker rm -f IPRoyal || true && docker run -d --name IPRoyal --restart=always iproyal/pawns-cli:latest -email="$pawnsmail" -password="$pawnspass" -device-name="$device_name" -accept-tos; then - erfolg "IPRoyal (Pawns.app) wurde eingerichtet" - else - fehler "IPRoyal (Pawns.app) konnte nicht eingerichtet werden" - fi - ;; - Traffmonetizer) - 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 - erfolg "TraffMonetizer wurde eingerichtet" - else - fehler "TraffMonetizer konnte nicht eingerichtet werden" - fi - ;; - Ebesucher) - messagebox "Hinweis:" "WARNUNG: Ebesucher benötigt einen Firefox und ca. 3GB Arbeitsspeicher! + if docker rm -f packetstream || true && docker run -d --restart=always -e CID="$pscidh" --name packetstream packetstream/psclient:latest; then + erfolg "Packetstream wurde eingerichtet" + else + fehler "Packetstream konnte nicht eingerichtet werden" + fi + ;; + ######################### + # Pawns.App Einrichtung # + ######################### + "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) + pawnspass=$(whiptail --title "IPRoyal Pawns.app Password" --passwordbox "Gebe dein IPRoyal Pawns.app Passwort ein: " 20 70 3>&1 1>&2 2>&3) + if docker rm -f IPRoyal || true && docker run -d --name IPRoyal --restart=always iproyal/pawns-cli:latest -email="$pawnsmail" -password="$pawnspass" -device-name="$device_name" -accept-tos; then + erfolg "IPRoyal (Pawns.app) wurde eingerichtet" + else + fehler "IPRoyal (Pawns.app) konnte nicht eingerichtet werden" + fi + ;; + ############################## + # TraffMonetizer Einrichtung # + ############################## + Traffmonetizer) + 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 + erfolg "TraffMonetizer wurde eingerichtet" + else + fehler "TraffMonetizer konnte nicht eingerichtet werden" + fi + ;; + ######################### + # Ebesucher Einrichtung # + ######################### + Ebesucher) + messagebox "Hinweis:" "WARNUNG: Ebesucher benötigt einen Firefox und ca. 3GB Arbeitsspeicher! Außerdem wird durch das aufrufen von webseiten relativ viel CPU verbraucht! @@ -180,137 +242,259 @@ Ebesucher braucht leider etwas mehr Einrichtung. Aber keine Sorge, ich mach es d Zunächst erstellen wir einen Firefox Container. Dieser soll im Hintergrund die Werbeseiten aufrufen." - - if [ -d ~/ebesucher ]; then - skip "Ordner ebesucher exestiert bereits" - 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 - rm -f ~/ebesucher/config.zip - wget -O ~/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip - unzip ~/ebesucher/config.zip -d ~/ebesucher/ - else - unzip ~/ebesucher/config.zip -d ~/ebesucher/ - fi - fi - else - if [ "$linux_user" == "root" ]; then - if mkdir /root/ebesucher; then - wget -O /root/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip - unzip /root/ebesucher/config.zip -d /root/ebesucher/ - erfolg "Ordner für ebesucher konnte erstellt werden" - else - fehler "Der Ordner für ebesucher konnte nicht angelegt werden" - fi - else - if mkdir /home/"$linux_user"/ebesucher; then - wget -O /home/"$linux_user"/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip - unzip /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 - fi - 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 - 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 - } - ram_avail=$(bc <<<"scale=2;$(($(free | awk 'NR==2 {print $2}') / 1000000))") - if [[ $ram_avail -ge "2" ]]; then - ebesucher_docker "1g" - elif [[ $ram_avail -eq "4" ]]; then - ebesucher_docker "3g" - elif [[ $ram_avail -ge "5" ]]; then - ebesucher_docker "4g" - fi - messagebox "" "Oben Rechts im Firefox Browser, öffne das Ebesucher addon. + # Ebesucher Configuration if user = root + if [ "$linux_user" == "root" ]; then + # Check if ebesucher folder already exists + if [ -d /root/ebesucher ]; then + skip "Ordner ebesucher exestiert bereits" + # 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 + # remove old config + 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 + # unpack config + unzip -o /root/ebesucher/config.zip -d /root/ebesucher/ + else + # unpack config + unzip -o /root/ebesucher/config.zip -d /root/ebesucher/ + fi + fi + else + # Create ebesucher folder + if mkdir /root/ebesucher; then + # download config + wget -O /root/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip + # unpack config + unzip -o /root/ebesucher/config.zip -d /root/ebesucher/ + erfolg "Ordner für ebesucher wurde erstellt" + 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 "$CPUSet" -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))") + if [[ $ram_avail -ge "2" ]]; then + # create ebesucher docker container with specific RAM available (around 1 GB less then available) + ebesucher_docker "1g" + elif [[ $ram_avail -eq "4" ]]; then + ebesucher_docker "3g" + elif [[ $ram_avail -ge "5" ]]; then + ebesucher_docker "4g" + 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, + 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 ~/ebesucher/config.zip ]; then - rm -f ~/ebesucher/config.zip - fi - echo 15 - docker stop ebesucher - echo 25 - cd ~/ebesucher/ || exit - echo 30 - zip -r config.zip config/ - echo 60 - wget -O ~/ebesucher/restart.sh https://raw.githubusercontent.com/Pakobbix/passive-income/master/restart.sh - echo 80 - chmod +x ~/ebesucher/restart.sh - bash ~/ebesucher/restart.sh - echo 90 - sed -i "s/username=/&$nutzername/g" ~/ebesucher/restart.sh - echo 100 - } | whiptail --gauge "Erstelle Sicherung und Lade Restarter Skript herunter" 6 50 0 + { + echo 10 + if [ -f /root/ebesucher/config.zip ]; then + # delete blank config.zip + rm -f /root/ebesucher/config.zip + fi + echo 15 + docker stop ebesucher + echo 20 + cd /root/ebesucher/ || exit + echo 30 + # pack config folder into new config.zip + 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 + echo 60 + # make restart skript executable + chmod +x /root/ebesucher/restart.sh + echo 70 + # add username to restart skript + 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 + } | 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, reboot and update to crontab + echo "0 * * * * /bin/bash /root/ebesucher/restart.sh +@reboot /bin/bash /root/ebesucher/restart.sh +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 + 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))") + if [[ $ram_avail -ge "2" ]]; then + # create ebesucher docker container with specific RAM available (around 1 GB less then available) + ebesucher_docker "1g" "$CPUSet" + elif [[ $ram_avail -eq "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 - messagebox "Erstelle Timer" "Nun muss noch ein Cronjob eingerichtet werden. -Das ist Quasi ein Timer. Wir stellen ihn so ein, -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 [ "$linux_user" == "root" ]; then - if ! grep -q "ebesucher/restart.sh" "/tmp/ebesucher"; then - echo "0 * * * * /bin/bash /root/ebesucher/restart.sh - @reboot /bin/bash /root/ebesucher/restart.sh" >>/tmp/ebesucher - fi - else - if ! grep -q "ebesucher/restart.sh" "/tmp/ebesucher"; then - echo "0 * * * * /bin/bash /home/$linux_user/ebesucher/restart.sh - @reboot /bin/bash /home/$linux_user/ebesucher/restart.sh" >>/tmp/ebesucher - crontab /tmp/ebesucher - rm /tmp/ebesucher - fi - crontab -l >/tmp/rootcron - echo "0 0 * * 0 reboot" >>/tmp/rootcron - sudo crontab /tmp/rootcron - rm /tmp/rootcron - fi - ;; - esac - done + ;; + esac + done fi if [ "$linux_user" == "root" ]; 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 - chmod +x /root/update_system.sh + # 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" >/root/update_system.sh + # make update script executable + chmod +x /root/update_system.sh else - 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" >/home/"$linux_user"/update_system.sh - chmod +x /home/"$linux_user"/update_system.sh + # 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 -if ! grep -q "update_system.sh" "/tmp/updatecron"; then - if [ "$linux_user" == "root" ]; then - crontab -l /tmp/updatecron - echo "0 4 * * * /bin/bash /root/update_system.sh" >>/tmp/updatecron - crontab /tmp/updatecron - rm /tmp/crontab - else - sudo crontab -l /tmp/updatecron - echo "0 4 * * * /bin/bash /home/$linux_user/update_system.sh" >>/tmp/updatecron - sudo crontab /tmp/updatecron - rm /tmp/updatecron - fi -fi -if docker ps | grep "ebesucher\|traffmonetizer\|peer2profit\|IPRoyal\|packetstream\|honeygain" >/dev/null; 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" - else - fehler "Watchtower konnte nicht eingerichtet werden" - fi + +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 + erfolg "Watchtower erfolgreich eingerichtet" + else + fehler "Watchtower konnte nicht eingerichtet werden" + fi + else + skip "Watchtower ist bereits vorhanden." + 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" new_task "${green}$erfolgreich Erfolgreiche Operationen\n${red}$fehler Fehlerhafte Operationen\n${cyan}$skip Übersprungene Operationen${white}" From 53cb4f58f424db65471029afc59367ba6c517f83 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sat, 4 Feb 2023 20:10:11 +0100 Subject: [PATCH 03/20] added user for easy deleting folder --- restart.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/restart.sh b/restart.sh index 53dee0e..7a40363 100755 --- a/restart.sh +++ b/restart.sh @@ -26,10 +26,10 @@ sleep 60s docker_run(){ if [ -z "$username" ]; then # 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" --cpus "$CPUcores" --shm-size 2g jlesage/firefox + docker run -d --name="$containername" -p 3000:5800 -u $(awk -v user=$(whoami) -F':' '$0 ~ user {print $3}' /etc/passwd) -v "$git_dir"/config:/config:rw -m "$1" --cpus "$CPUcores" --shm-size 2g jlesage/firefox else # 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" --cpus "$CPUcores" -v "$git_dir"/config:/config:rw --shm-size 2g jlesage/firefox + docker run -d --name="$containername" -p 3000:5800 -u $(awk -v user=$(whoami) -F':' '$0 ~ user {print $3}' /etc/passwd) -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 } From 6a0ebfdf2a302b97d556e224f032f56a27a11232 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sat, 4 Feb 2023 20:12:34 +0100 Subject: [PATCH 04/20] added user to ebesucher container --- gui_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui_start.sh b/gui_start.sh index 7d61396..592de5d 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -391,7 +391,7 @@ erstelle ich eine Sicherung der Firefox-Konfiguration" 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 + if docker rm -f ebesucher || true && docker run -d --name=ebesucher -p 3000:5800 -u $(awk -v user=$(whoami) -F':' '$0 ~ user {print $3}' /etc/passwd) -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 From a7b44d20093b83b75bfe0c15dd25da3b0d7e40fd Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sat, 4 Feb 2023 20:17:50 +0100 Subject: [PATCH 05/20] revert -u switch for ebesucher --- gui_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui_start.sh b/gui_start.sh index 592de5d..7d61396 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -391,7 +391,7 @@ erstelle ich eine Sicherung der Firefox-Konfiguration" 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 -u $(awk -v user=$(whoami) -F':' '$0 ~ user {print $3}' /etc/passwd) -m "$1" --cpus "$2" -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 "$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 From 04f5c25f0e468c074d0427df651d9915e19b5504 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sat, 4 Feb 2023 20:18:20 +0100 Subject: [PATCH 06/20] revert -u switch --- restart.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/restart.sh b/restart.sh index 7a40363..53dee0e 100755 --- a/restart.sh +++ b/restart.sh @@ -26,10 +26,10 @@ sleep 60s docker_run(){ if [ -z "$username" ]; then # Funktion zum starten des Containers, falls username nicht gesetzt - docker run -d --name="$containername" -p 3000:5800 -u $(awk -v user=$(whoami) -F':' '$0 ~ user {print $3}' /etc/passwd) -v "$git_dir"/config:/config:rw -m "$1" --cpus "$CPUcores" --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 # 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 -u $(awk -v user=$(whoami) -F':' '$0 ~ user {print $3}' /etc/passwd) -e FF_OPEN_URL="https://ebesucher.com/surfbar/$username" -m "$1" --cpus "$CPUcores" -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 } From df5f5c89215ce8928549e41356cda7c17e72228e Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sat, 4 Feb 2023 22:06:48 +0100 Subject: [PATCH 07/20] fix for lxc in Unraid & watchtower --- gui_start.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui_start.sh b/gui_start.sh index 7d61396..fdfd9e0 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -243,7 +243,7 @@ Ebesucher braucht leider etwas mehr Einrichtung. Aber keine Sorge, ich mach es d Zunächst erstellen wir einen Firefox Container. Dieser soll im Hintergrund die Werbeseiten aufrufen." # Ebesucher Configuration if user = root - if [ "$linux_user" == "root" ]; then + if [ "$linux_user" == "root" ] || [ "$linux_user" == "USER" ]; then # Check if ebesucher folder already exists if [ -d /root/ebesucher ]; then skip "Ordner ebesucher exestiert bereits" @@ -485,7 +485,7 @@ else fi if docker ps | grep -q "ebesucher\|traffmonetizer\|peer2profit\|IPRoyal\|packetstream\|honeygain"; then - if docker ps -a | grep -i "containerr/watchtower"; 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 erfolg "Watchtower erfolgreich eingerichtet" else From e04d7335bc08503937444a5882ee24b9a93a9d4d Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sun, 5 Feb 2023 00:30:21 +0100 Subject: [PATCH 08/20] fixed ebesucher memory allocation --- gui_start.sh | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/gui_start.sh b/gui_start.sh index fdfd9e0..bce67f9 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -290,13 +290,11 @@ Dieser soll im Hintergrund die Werbeseiten aufrufen." } # Check how much ram is available. 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" - elif [[ $ram_avail -eq "4" ]]; then - ebesucher_docker "3g" + # 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" + 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" @@ -400,10 +398,8 @@ erstelle ich eine Sicherung der Firefox-Konfiguration" } # Check how much ram is available. 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" "$CPUSet" - elif [[ $ram_avail -eq "4" ]]; then + # 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" From 38582d7f8d67e3251f3589aa4f5dc0cd64a5ef0f Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sun, 5 Feb 2023 00:31:42 +0100 Subject: [PATCH 09/20] fixed ebesucher memory allocation --- restart.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/restart.sh b/restart.sh index 53dee0e..45e32c6 100755 --- a/restart.sh +++ b/restart.sh @@ -35,10 +35,9 @@ docker_run(){ # Ü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))") -if [[ $ram_avail -ge "2" ]]; then - docker_run "1g" "$CPUcores" -elif [[ $ram_avail -eq "4" ]]; then - docker_run "3g" "$CPUcores" +if ((ram_avail >= 3 && ram_avail <= 4)); then + ebesucher_docker "3g" "$CPUSet" elif [[ $ram_avail -ge "5" ]]; then - docker_run "4g" "$CPUcores" + ebesucher_docker "4g" "$CPUSet" fi + From 3a5b5fd0067f778e1b8917d7239475d92d9e6ca3 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Sun, 5 Feb 2023 15:23:26 +0100 Subject: [PATCH 10/20] Fixed unraid LXC earnapp RID stuck --- gui_start.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gui_start.sh b/gui_start.sh index bce67f9..7cda111 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -188,6 +188,10 @@ else ####################### EarnAPP) wget -qO- https://brightdata.com/static/earnapp/install.sh >/tmp/earnapp.sh && echo "yes" | sudo bash /tmp/earnapp.sh + RandomID=$(tr -dc A-Za-z0-9 Date: Sun, 5 Feb 2023 15:24:03 +0100 Subject: [PATCH 11/20] Fixed Unraid LXC RID creation --- gui_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui_start.sh b/gui_start.sh index 7cda111..9ae64f6 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -187,7 +187,7 @@ else # EarnApp Einrichtung # ####################### 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 RandomID=$(tr -dc A-Za-z0-9 Date: Sun, 5 Feb 2023 15:24:55 +0100 Subject: [PATCH 12/20] Fixed Unraid earnapp RID creation (really now) --- gui_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui_start.sh b/gui_start.sh index 9ae64f6..d742027 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -190,7 +190,7 @@ else wget -qO- https://brightdata.com/static/earnapp/install.sh >/tmp/earnapp.sh RandomID=$(tr -dc A-Za-z0-9 Date: Mon, 6 Feb 2023 16:13:33 +0100 Subject: [PATCH 13/20] reworked all ebesucher folder directions to variable --- gui_start.sh | 64 ++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/gui_start.sh b/gui_start.sh index d742027..c1b71d4 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -53,6 +53,9 @@ inputbox() { whiptail --title "$1" --inputbox "$2" 30 100 3>&1 1>&2 2>&3 } +ebesucher_folder_root="/root/ebesucher" +ebesucher_folder_user="/home/"$linux_user"/ebesucher/" + # get the last logged in User linux_user=$(w | awk '{print $1}' | tail -n1) @@ -188,7 +191,10 @@ else ####################### EarnAPP) wget -qO- https://brightdata.com/static/earnapp/install.sh >/tmp/earnapp.sh - RandomID=$(tr -dc A-Za-z0-9 /dev/null + sudo rm -f $ebesucher_folder_user/config.zip 2>/dev/null fi echo 15 docker stop ebesucher echo 20 - cd /home/"$linux_user"/ebesucher/ || exit + cd $ebesucher_folder_user || exit echo 30 # pack config folder into new config.zip zip -r config.zip config/ 2>/dev/null @@ -431,17 +437,17 @@ erstelle ich eine Sicherung der Firefox-Konfiguration" # 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 + wget -O $ebesucher_folder_user/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 + sed -i "s/username=/&$nutzername/g" $ebesucher_folder_user/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 + sed -i "s/CPUcores=/CPUcores=$CPUSet/g" $ebesucher_folder_user/restart.sh # make restart skript executable - chmod +x /home/"$linux_user"/ebesucher/restart.sh + chmod +x $ebesucher_folder_user/restart.sh echo 80 - bash /home/"$linux_user"/ebesucher/restart.sh + bash $ebesucher_folder_user/restart.sh echo 100 } | whiptail --gauge "Erstelle Sicherung und Lade Restarter Skript herunter" 6 50 0 # Export current crontab From d15b1919cf5e676a777b666ccc99a845375a8779 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Mon, 6 Feb 2023 16:19:04 +0100 Subject: [PATCH 14/20] added Repocket --- gui_start.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gui_start.sh b/gui_start.sh index c1b71d4..9433c81 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -153,7 +153,7 @@ Traffmonetizer. Vermiete deine IP-Adresse als Proxy 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 "Repocket" "Vermiete deine IP-Adresse als Proxy" ON 3>&1 1>&2 2>&3) if [ -z "$einzurichten" ]; then echo "Nichts wurde ausgewählt" exit @@ -240,6 +240,15 @@ else fehler "TraffMonetizer konnte nicht eingerichtet werden" fi ;; + Repocket) + repocketmail=$(whiptail --title "Repocket E-Mail" --inputbox "Gebe deine Repocket E-Mail adresse an: " 20 70 3>&1 1>&2 2>&3) + repocketspass=$(whiptail --title "Repocket Password" --passwordbox "Gebe dein Repocket Passwort ein: " 20 70 3>&1 1>&2 2>&3) + if docker rm -f repocket || true && docker run -d --name repocket -e RP_MAIL="$repocketmail" -e RP_PASSWORD="$repocketspass" --restart always repocket/repocket; then + erfolg "Repocket wurde eingerichtet" + else + fehler "Repocket konnte nicht eingerichtet werden" + fi + ;; ######################### # Ebesucher Einrichtung # ######################### From e463d963bad97023a9c895558b5f6d16b95dc4f3 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Mon, 6 Feb 2023 16:22:20 +0100 Subject: [PATCH 15/20] Added logging for restarter --- gui_start.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gui_start.sh b/gui_start.sh index 9433c81..858552f 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -354,8 +354,8 @@ erstelle ich eine Sicherung der Firefox-Konfiguration" # check if restart script is already configured 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 -@reboot /bin/bash /root/ebesucher/restart.sh + echo "0 * * * * /bin/bash -x /root/ebesucher/restart.sh > /var/log/ebesucher_restart.log 2>&1 +@reboot /bin/bash /root/ebesucher/restart.sh > /var/log/ebesucher_restart.log 2>&1 0 0 * * 0 reboot 0 4 * * * /bin/bash /root/update_system.sh" >>/tmp/ebesucher # Let cron reload the new configured crontab @@ -464,8 +464,8 @@ erstelle ich eine Sicherung der Firefox-Konfiguration" # 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 + echo "0 * * * * /bin/bash -x /home/$linux_user/ebesucher/restart.sh > /var/log/ebesucher_restart.log 2>&1 +@reboot /bin/bash /home/$linux_user/ebesucher/restart.sh > /var/log/ebesucher_restart.log 2>&1" >>/tmp/ebesucher # Let cron reload the new configured crontab crontab /tmp/ebesucher # delete the export From 8b7562d3bff82fdd91fbf61385755f006dfd97ae Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Mon, 6 Feb 2023 22:05:58 +0100 Subject: [PATCH 16/20] fixed docker function --- restart.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/restart.sh b/restart.sh index 45e32c6..8199bbe 100755 --- a/restart.sh +++ b/restart.sh @@ -36,8 +36,8 @@ docker_run(){ # Ü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))") if ((ram_avail >= 3 && ram_avail <= 4)); then - ebesucher_docker "3g" "$CPUSet" + docker_run "3g" "$CPUSet" elif [[ $ram_avail -ge "5" ]]; then - ebesucher_docker "4g" "$CPUSet" + docker_run "4g" "$CPUSet" fi From 05f149baf68b344c6ab5044b0eaace0dc91573f4 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Wed, 8 Feb 2023 20:20:31 +0100 Subject: [PATCH 17/20] fixed repocket mail and select menu size --- gui_start.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui_start.sh b/gui_start.sh index 858552f..4970e54 100755 --- a/gui_start.sh +++ b/gui_start.sh @@ -153,7 +153,7 @@ Traffmonetizer. Vermiete deine IP-Adresse als Proxy 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 "Repocket" "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" 25 115 9 "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 "Repocket" "Vermiete deine IP-Adresse als Proxy" ON 3>&1 1>&2 2>&3) if [ -z "$einzurichten" ]; then echo "Nichts wurde ausgewählt" exit @@ -243,7 +243,7 @@ else Repocket) repocketmail=$(whiptail --title "Repocket E-Mail" --inputbox "Gebe deine Repocket E-Mail adresse an: " 20 70 3>&1 1>&2 2>&3) repocketspass=$(whiptail --title "Repocket Password" --passwordbox "Gebe dein Repocket Passwort ein: " 20 70 3>&1 1>&2 2>&3) - if docker rm -f repocket || true && docker run -d --name repocket -e RP_MAIL="$repocketmail" -e RP_PASSWORD="$repocketspass" --restart always repocket/repocket; then + if docker rm -f repocket || true && docker run -d --name repocket -e RP_EMAIL="$repocketmail" -e RP_PASSWORD="$repocketspass" --restart always repocket/repocket; then erfolg "Repocket wurde eingerichtet" else fehler "Repocket konnte nicht eingerichtet werden" From f9e234915dd8cb64c93c6a7b327606deabdc2ac6 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Thu, 9 Feb 2023 21:21:59 +0100 Subject: [PATCH 18/20] Update Readme.md --- Readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Readme.md b/Readme.md index 1c7eb87..08e8e96 100644 --- a/Readme.md +++ b/Readme.md @@ -62,3 +62,4 @@ Die Anbieter sind mit Ref-Links versehen, falls ihr euch erst noch anmelden müs - [packetstream](https://packetstream.io/?psr=4HUh) - [IPRoyal Pawn.app](https://pawns.app?r=905162) - [TraffMonetizer](https://traffmonetizer.com/?aff=607897) +- [Repocket](https://link.repocket.co/undefined) From c9faefa42c24cad55b5566df93aaf98ea1948fa6 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Tue, 14 Feb 2023 20:36:17 +0100 Subject: [PATCH 19/20] added an lock file to exit restarter if restart is already triggered If you want multiple conditions (if ping is sucessfull, on less than X CPU Usage etc) for the restarter, it will create a lock file now to avoid multiple instances. --- restart.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/restart.sh b/restart.sh index 8199bbe..c846231 100755 --- a/restart.sh +++ b/restart.sh @@ -7,6 +7,14 @@ containername=ebesucher # Variable für die Maximale Nutzung von CPU Cores CPUcores= +# Überprüfe ob bereits ein restart läuft +if [ -f /tmp/ebesucher_restart.lock ]; then + exit +fi + +# Erstelle Lockfile +echo $$ > ebesucher_restart.lock + # Ordner des Skripts git_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) # Wechsel in den Ordner @@ -41,3 +49,4 @@ elif [[ $ram_avail -ge "5" ]]; then docker_run "4g" "$CPUSet" fi +rm -f /tmp/ebesucher_restart.lock From 4c7716a9137f34acfb3211742631e4e943352241 Mon Sep 17 00:00:00 2001 From: Pakobbix Date: Tue, 14 Feb 2023 20:41:31 +0100 Subject: [PATCH 20/20] fixed missing /tmp/ --- restart.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/restart.sh b/restart.sh index c846231..598ff00 100755 --- a/restart.sh +++ b/restart.sh @@ -13,7 +13,7 @@ if [ -f /tmp/ebesucher_restart.lock ]; then fi # Erstelle Lockfile -echo $$ > ebesucher_restart.lock +echo $$ > /tmp/ebesucher_restart.lock # Ordner des Skripts git_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)