Compare commits

..

6 Commits

2 changed files with 415 additions and 227 deletions

View File

@ -7,75 +7,117 @@ 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
# Visually seperate different tasks
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
erfolg "$@ Pakete wurden installiert" # shellcheck disable=SC2145
else erfolg "$@ Pakete wurden installiert"
fehler "$@ Pakete konnten nicht installiert werden" else
fi # shellcheck disable=SC2145
fehler "$@ Pakete konnten nicht installiert werden"
fi
} }
messagebox() { 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() { 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 # get the last logged in User
sudo echo
if ! which whiptail >/dev/null; then
sudo apt-get install whiptail -y
fi
linux_user=$(w | awk '{print $1}' | tail -n1) 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 echo 0
sudo apt-get update >/dev/null sudo apt-get update >/dev/null
echo 14 echo 14
sudo apt-get upgrade -y >/dev/null sudo apt-get upgrade -y >/dev/null
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
[ -d /etc/apt/keyrings ] || sudo mkdir -p /etc/apt/keyrings # Check if keyrings is present, if not, create folder for keyrings
echo 61 [ -d /etc/apt/keyrings ] || sudo mkdir -p /etc/apt/keyrings
[ -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 61
echo 75 # check if docker.gpg is in keyrings, if not get docker.gpg and save it in keyrings.
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 # Also check if debian or ubuntu is used.
echo 90 case "$distrib" in
if ! sudo apt-get update >/dev/null; then Debian)
sudo chmod a+r /etc/apt/keyrings/docker.gpg [ -f /etc/apt/keyrings/docker.gpg ] || curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo apt-get update echo 75
fi 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
echo 100 ;;
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 } | 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
messagebox "Kleinen Moment Geduld, Docker wird Installiert." "Das Fenster wird sich automatisch schließen, sobald Docker installiert wurde." & # it's not installed, so do:
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null messagebox "Kleinen Moment Geduld, Docker wird Installiert." "Das Fenster wird sich automatisch schließen, sobald Docker installiert wurde." &
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 apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null
sudo usermod -aG docker $linux_user # Info to user, we need a restart. It's needed, because we add the linux_user to the docker group
sudo reboot 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.
@ -107,72 +149,92 @@ 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) #########################
honeymail=$(whiptail --title "Honeygain E-Mail" --inputbox "Gebe deine Honeygain E-Mail adresse an: " 20 70 3>&1 1>&2 2>&3) # Honeygain Einrichtung #
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) Honeygain)
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 honeymail=$(whiptail --title "Honeygain E-Mail" --inputbox "Gebe deine Honeygain E-Mail adresse an: " 20 70 3>&1 1>&2 2>&3)
erfolg "Honeygain wurde eingerichtet" honeypass=$(whiptail --title "Honeygain Password" --passwordbox "Gebe dein Honeygain Passwort ein: " 20 70 3>&1 1>&2 2>&3)
else device_name=$(whiptail --title "Honeygain Gerätenamen" --inputbox "Gebe einen Gerätenamen an: " 20 70 3>&1 1>&2 2>&3)
fehler "Honeygain konnte nicht eingerichtet werden" 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
fi erfolg "Honeygain wurde eingerichtet"
else
;; fehler "Honeygain konnte nicht eingerichtet werden"
Peer2Profit) fi
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 # Peer2Profit Einrichtung #
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" Peer2Profit)
else P2P_E_MAIL=$(whiptail --title "P2PMail" --inputbox "Gebe deine Peer2Profit Emailadresse ein" 30 80 3>&1 1>&2 2>&3)
fehler "Peer2Profit konnte nicht eingerichtet werden" 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
fi 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
EarnAPP) erfolg "Peer2Profit wurde eingerichtet"
wget -qO- https://brightdata.com/static/earnapp/install.sh >/tmp/earnapp.sh && echo "yes" | sudo bash /tmp/earnapp.sh else
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 fehler "Peer2Profit konnte nicht eingerichtet werden"
;; fi
;;
Packetstream) #######################
pscidh=$(whiptail --title "Packetstream CIDH E-Mail" --inputbox "Packetstream vergibt automatisch jedem User eine ID. # 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 Daher müsstest du nun zur webseite von Packetstream wechseln und deine ID einsehen
https://packetstream.io/dashboard/referrals https://packetstream.io/dashboard/referrals
Hinter dem Share PacketStream Link: https://packetstream.io/?psr=4HUh 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) 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 if docker rm -f packetstream || true && docker run -d --restart=always -e CID="$pscidh" --name packetstream packetstream/psclient:latest; then
erfolg "Packetstream wurde eingerichtet" erfolg "Packetstream wurde eingerichtet"
else else
fehler "Packetstream konnte nicht eingerichtet werden" fehler "Packetstream konnte nicht eingerichtet werden"
fi fi
;; ;;
#########################
"Pawns.app") # Pawns.App Einrichtung #
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) "Pawns.app")
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 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)
erfolg "IPRoyal (Pawns.app) wurde eingerichtet" pawnspass=$(whiptail --title "IPRoyal Pawns.app Password" --passwordbox "Gebe dein IPRoyal Pawns.app Passwort ein: " 20 70 3>&1 1>&2 2>&3)
else 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
fehler "IPRoyal (Pawns.app) konnte nicht eingerichtet werden" erfolg "IPRoyal (Pawns.app) wurde eingerichtet"
fi else
;; fehler "IPRoyal (Pawns.app) konnte nicht eingerichtet werden"
Traffmonetizer) fi
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" # TraffMonetizer Einrichtung #
else ##############################
fehler "TraffMonetizer konnte nicht eingerichtet werden" Traffmonetizer)
fi 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
Ebesucher) erfolg "TraffMonetizer wurde eingerichtet"
messagebox "Hinweis:" "WARNUNG: Ebesucher benötigt einen Firefox und ca. 3GB Arbeitsspeicher! 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! 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. 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 [ -d ~/ebesucher ]; then if [ "$linux_user" == "root" ]; then
skip "Ordner ebesucher exestiert bereits" # Check if ebesucher folder already exists
if ! [ -f ~/ebesucher/config.zip ]; then if [ -d /root/ebesucher ]; 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 skip "Ordner ebesucher exestiert bereits"
rm -f ~/ebesucher/config.zip # check if config exists, if yes, ask to overwrite
wget -O ~/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip if [ -f ~/ebesucher/config.zip ]; then
unzip ~/ebesucher/config.zip -d ~/ebesucher/ if whiptail --title "Alte config gefunden" --yesno "Es wurde bereits ein Firefox Profil angelegt, soll dieses gelöscht und überschrieben werden?" 20 100; then
else # remove old config
unzip ~/ebesucher/config.zip -d ~/ebesucher/ rm -f /root/ebesucher/config.zip
fi # download blank config
fi wget -O /root/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip
else # unpack config
if [ "$linux_user" == "root" ]; then unzip -o /root/ebesucher/config.zip -d /root/ebesucher/
if mkdir /root/ebesucher; then else
wget -O /root/ebesucher/config.zip https://github.com/Pakobbix/passive-income/raw/master/config.zip # unpack config
unzip /root/ebesucher/config.zip -d /root/ebesucher/ unzip -o /root/ebesucher/config.zip -d /root/ebesucher/
erfolg "Ordner für ebesucher konnte erstellt werden" fi
else fi
fehler "Der Ordner für ebesucher konnte nicht angelegt werden" else
fi # Create ebesucher folder
else if mkdir /root/ebesucher; then
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 wget -O /root/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/ # unpack config
erfolg "Ordner für ebesucher konnte erstellt werden" unzip -o /root/ebesucher/config.zip -d /root/ebesucher/
else erfolg "Ordner für ebesucher wurde erstellt"
fehler "Der Ordner für ebesucher konnte nicht angelegt werden" else
fi fehler "Der Ordner für ebesucher konnte nicht angelegt werden"
fi fi
fi fi
ebesucher_docker() { while true; do
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 CPUSet=$(inputbox "CPU Begrenzung" "Das System hat $availablecores Kerne. Wieviele davon darf Ebesucher ausnutzen? 4 sind empfohlen")
erfolg "Firefox-Ebesucher wurde eingerichtet" if [[ "$availablecores" -ge "CPUSet" ]]; then
messagebox "Jetzt bist du gefragt!" "Öffne im browser deiner Wahl von einem anderen Gerät aus $(hostname -I | awk '{print $1}'):3000" break
else fi
fehler "Firefox-Ebesucher konnte nicht eingerichtet werden" done
fi # Ebesucher docker creation function. Will be used in the next step
} ebesucher_docker() {
ram_avail=$(bc <<<"scale=2;$(($(free | awk 'NR==2 {print $2}') / 1000000))") 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
if [[ $ram_avail -ge "2" ]]; then erfolg "Firefox-Ebesucher wurde eingerichtet"
ebesucher_docker "1g" messagebox "Jetzt bist du gefragt!" "Öffne im browser deiner Wahl von einem anderen Gerät aus $(hostname -I | awk '{print $1}'):3000"
elif [[ $ram_avail -eq "4" ]]; then else
ebesucher_docker "3g" fehler "Firefox-Ebesucher konnte nicht eingerichtet werden"
elif [[ $ram_avail -ge "5" ]]; then fi
ebesucher_docker "4g" }
fi # Check how much ram is available.
messagebox "" "Oben Rechts im Firefox Browser, öffne das Ebesucher addon. 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" Gebe in das Feld deinen Ebesucher Nutzernamen ein und mache einen Haken bei Privacy"
nutzername=$(inputbox "Ebesucher Nutzername" "Gebe hier deinen Ebesucher Nutzernamen ein: ") nutzername=$(inputbox "Ebesucher Nutzername" "Gebe hier deinen Ebesucher Nutzernamen ein: ")
messagebox 'Schließt nun alle Tabs im Browser und fahrt fort.' messagebox 'Schließt nun alle Tabs im Browser und fahrt fort.'
messagebox "Erstelle Sicherungen" "Damit die Einstellungen auch für immer gespeichert werden, messagebox "Erstelle Sicherungen" "Damit die Einstellungen auch für immer gespeichert werden,
erstelle ich eine Sicherung der Firefox-Konfiguration" erstelle ich eine Sicherung der Firefox-Konfiguration"
{ {
echo 10 echo 10
if [ -f ~/ebesucher/config.zip ]; then if [ -f /root/ebesucher/config.zip ]; then
rm -f ~/ebesucher/config.zip # delete blank config.zip
fi rm -f /root/ebesucher/config.zip
echo 15 fi
docker stop ebesucher echo 15
echo 25 docker stop ebesucher
cd ~/ebesucher/ || exit echo 20
echo 30 cd /root/ebesucher/ || exit
zip -r config.zip config/ echo 30
echo 60 # pack config folder into new config.zip
wget -O ~/ebesucher/restart.sh https://raw.githubusercontent.com/Pakobbix/passive-income/master/restart.sh sudo zip -r config.zip config/
echo 80 echo 40
chmod +x ~/ebesucher/restart.sh # download restart script
bash ~/ebesucher/restart.sh wget -O /root/ebesucher/restart.sh https://raw.githubusercontent.com/Pakobbix/passive-income/master/restart.sh
echo 90 echo 60
sed -i "s/username=/&$nutzername/g" ~/ebesucher/restart.sh # make restart skript executable
echo 100 chmod +x /root/ebesucher/restart.sh
} | whiptail --gauge "Erstelle Sicherung und Lade Restarter Skript herunter" 6 50 0 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, esac
das jede Stunde der Container, und die Firefox Daten gelöscht werden, done
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
fi fi
if [ "$linux_user" == "root" ]; then 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 # configure update script
chmod +x /root/update_system.sh 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 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 # configure update script
chmod +x /home/"$linux_user"/update_system.sh 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 ! grep -q "update_system.sh" "/tmp/updatecron"; then
if [ "$linux_user" == "root" ]; then if docker ps | grep -q "ebesucher\|traffmonetizer\|peer2profit\|IPRoyal\|packetstream\|honeygain"; then
crontab -l /tmp/updatecron if docker ps -a | grep -i "containerr/watchtower"; then
echo "0 4 * * * /bin/bash /root/update_system.sh" >>/tmp/updatecron 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
crontab /tmp/updatecron erfolg "Watchtower erfolgreich eingerichtet"
rm /tmp/crontab else
else fehler "Watchtower konnte nicht eingerichtet werden"
sudo crontab -l /tmp/updatecron fi
echo "0 4 * * * /bin/bash /home/$linux_user/update_system.sh" >>/tmp/updatecron else
sudo crontab /tmp/updatecron skip "Watchtower ist bereits vorhanden."
rm /tmp/updatecron fi
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
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

@ -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,19 @@ 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 -ge "2" ]]; then
docker_run "1g" docker_run "1g" "$CPUcores"
elif [[ $ram_avail -eq "4" ]]; then elif [[ $ram_avail -eq "4" ]]; then
docker_run "3g" docker_run "3g" "$CPUcores"
elif [[ $ram_avail -ge "5" ]]; then elif [[ $ram_avail -ge "5" ]]; then
docker_run "4g" docker_run "4g" "$CPUcores"
fi fi