#!/bin/bash USER_NAME=$(whoami) XMRIG_DIR="$HOME/xmrig-mo" XMRIG_URL="https://github.com/MoneroOcean/xmrig/releases/download/v6.22.2-mo1/xmrig-v6.22.2-mo1-lin64.tar.gz" POOL="gulf.moneroocean.stream" UPDATE_URL="https://gitea.ris-universe.eu/w12/w12-asm-os/raw/branch/main/asmmenu.sh" VERSION_URL="https://gitea.ris-universe.eu/w12/w12-asm-os/raw/branch/main/version.txt" LOCAL_VERSION="1.0.3" function check_for_update() { echo "ASM-Menü Version $LOCAL_VERSION" echo "Prüfe auf Updates ..." if [ -f /tmp/asm_lastcheck ] && [ $(date +%s) -lt $(( $(cat /tmp/asm_lastcheck) + 180 )) ]; then echo "[i] Letzte Update-Prüfung war vor weniger als 3 Minuten. Überspringe." return fi date +%s > /tmp/asm_lastcheck LATEST=$(curl -fsSL "$VERSION_URL") if [ $? -ne 0 ]; then echo "[!] Update-Prüfung fehlgeschlagen (kein Internet oder URL-Fehler)" sleep 2 return fi if [ "$LATEST" != "$LOCAL_VERSION" ]; then if (whiptail --yesno "Neue ASM OS Version verfügbar ($LATEST). Jetzt aktualisieren?" 10 60); then update_script fi else echo "[✓] Du verwendest die neueste ASM OS Version ($LOCAL_VERSION)." sleep 2 fi } function update_script() { TMP_FILE="/tmp/setupmenu.sh" echo "[*] Lade aktuelle Version von $UPDATE_URL..." if curl -fsSL "$UPDATE_URL" -o "$TMP_FILE"; then sudo cp "$TMP_FILE" /usr/local/bin/asm sudo chmod +x /usr/local/bin/asm echo "[✓] Update erfolgreich. Starte neu..." sleep 2 exec /usr/local/bin/asm else echo "[!] Update fehlgeschlagen. Prüfe Internet oder URL." sleep 2 fi } function setup_autologin() { if (whiptail --yesno "Autologin aktivieren für Benutzer $USER_NAME?" 8 60); then sudo mkdir -p /etc/systemd/system/getty@tty1.service.d echo "[Service] ExecStart= ExecStart=-/sbin/agetty --autologin $USER_NAME --noclear %I \$TERM" | sudo tee /etc/systemd/system/getty@tty1.service.d/override.conf > /dev/null sudo systemctl daemon-reexec sudo systemctl restart getty@tty1 echo "[✓] Autologin aktiviert." else sudo rm -f /etc/systemd/system/getty@tty1.service.d/override.conf sudo systemctl daemon-reexec sudo systemctl restart getty@tty1 echo "[✓] Autologin deaktiviert." fi sleep 2 } function install_xmrig() { mkdir -p "$XMRIG_DIR" cd "$XMRIG_DIR" echo "[*] Lade XMRig MoneroOcean Version..." curl -L "$XMRIG_URL" -o xmrig.tar.gz tar -xzf xmrig.tar.gz rm -f xmrig.tar.gz if [ ! -f "$XMRIG_DIR/xmrig" ]; then echo "[!] XMRig-Binärdatei fehlt. Installation fehlgeschlagen." sleep 2 return fi chmod +x "$XMRIG_DIR/xmrig" WALLET=$(whiptail --inputbox "Gib deine Monero-Wallet-Adresse ein:" 8 60 3>&1 1>&2 2>&3) CPU_PORT_CHOICE=$(whiptail --title "CPU-Typ auswählen" --menu "Wähle deinen CPU-Typ:" 15 60 4 \ 1 "Alte CPU/GPU (Port 10032)" \ 2 "Moderne CPU/GPU (Port 10128)" \ 3 "CPU/GPU-Farm (Port 18192)" 3>&1 1>&2 2>&3) case $CPU_PORT_CHOICE in 1) POOL_PORT="10032" ;; 2) POOL_PORT="10128" ;; 3) POOL_PORT="18192" ;; *) POOL_PORT="10128" ;; esac TOTAL_CORES=$(nproc) USED_CORES=$(whiptail --inputbox "Wie viele CPU-Kerne von $TOTAL_CORES sollen verwendet werden?" 8 60 "$TOTAL_CORES" 3>&1 1>&2 2>&3) if ! [[ "$USED_CORES" =~ ^[0-9]+$ ]] || [ "$USED_CORES" -lt 1 ] || [ "$USED_CORES" -gt "$TOTAL_CORES" ]; then echo "[!] Ungültige Eingabe – verwende alle $TOTAL_CORES Kerne." USED_CORES=$TOTAL_CORES fi CPU_THREADS="" for ((i=0; i "$XMRIG_DIR/config.json" <> Miner läuft – öffne Ansicht...\e[0m" screen -r miner & read -p ">> ENTER drücken zum Zurückkehren..." dummy screen -S miner -X detach echo "[i] Miner wieder im Hintergrund." sleep 1 else echo "[!] Kein laufender Miner gefunden." sleep 2 fi } function change_ssh_port() { PORT=$(whiptail --inputbox "Neuen SSH-Port eingeben (z. B. 2222):" 8 60 3>&1 1>&2 2>&3) if [[ "$PORT" =~ ^[0-9]+$ ]]; then sudo sed -i "s/^#\?Port .*/Port $PORT/" /etc/ssh/sshd_config sudo systemctl restart ssh echo "[✓] SSH-Port geändert auf $PORT." else echo "[!] Ungültiger Port." fi sleep 2 } function change_user_pass() { NEW_USER=$(whiptail --inputbox "Neuen Benutzernamen eingeben:" 8 60 3>&1 1>&2 2>&3) if id "$NEW_USER" &>/dev/null; then echo "[!] Benutzer $NEW_USER existiert bereits." else sudo adduser "$NEW_USER" sudo usermod -aG sudo "$NEW_USER" echo "[✓] Neuer Benutzer $NEW_USER erstellt." fi sleep 2 } function configure_wifi_nmtui() { if ! command -v nmtui &> /dev/null; then echo "[*] NetworkManager wird installiert..." sudo apt update sudo apt install -y network-manager sudo systemctl enable NetworkManager sudo systemctl start NetworkManager fi echo "[*] Starte nmtui..." sudo nmtui } function shutdown_system() { if (whiptail --yesno "System wirklich herunterfahren?" 8 60); then echo "[*] Fahre System herunter..." sleep 1 sudo shutdown now fi } function view_miner_with_enter_to_detach() { if screen -list | grep -q "miner"; then clear echo -e "\n\e[1;32m>> Miner läuft – öffne Ansicht für 20 Sekunden...\e[0m" echo -e "\e[1;33m>> Danach wird automatisch zurück ins Menü gewechselt.\e[0m" echo sleep 4 # Starte im Hintergrund ein Timer, der nach 20s detacht (sleep 20 && screen -S miner -X detach) & # screen in interaktivem Subprozess anzeigen script -qc "screen -r miner" /dev/null echo clear echo echo "[i] Miner wieder im Hintergrund (zurück zum ASM Menü)." sleep 4 else echo "[!] Kein laufender Miner gefunden." sleep 2 fi } function stop_miner_screen() { if screen -list | grep -q "miner"; then screen -S miner -X quit echo "[✓] Miner wurde beendet." else echo "[!] Keine laufende Miner-Sitzung gefunden." fi sleep 2 } # Hauptmenü while true; do check_for_update OPTION=$(whiptail --title "ASM OS Mining Setup Menü" --menu "Wähle eine Aktion" 22 60 13 \ 1 "Autologin ein-/ausschalten" \ 2 "XMRig installieren (MoneroOcean)" \ 3 "XMRig deinstallieren (MoneroOcean)" \ 4 "XMRig manuell starten (MoneroOcean)" \ 5 "Miner anzeigen 25 sec (dann zum ASM Menü)" \ 6 "Miner beenden/killen (sofort ohne Anzeige)" \ 7 "SSH-Port ändern" \ 8 "Benutzer ändern" \ 9 "Update ASM-Script" \ 10 "WLAN konfigurieren" \ 11 "System neustarten" \ 12 "System herunterfahren" \ 13 "zum Terminal" 3>&1 1>&2 2>&3) case $OPTION in 1) setup_autologin ;; 2) install_xmrig ;; 3) uninstall_xmrig ;; 4) start_xmrig ;; 5) view_miner_with_enter_to_detach ;; 6) stop_miner_screen ;; 7) change_ssh_port ;; 8) change_user_pass ;; 9) update_script ;; 10) configure_wifi_nmtui ;; 11) sudo reboot ;; 12) shutdown_system ;; 13) break ;; *) echo "Ungültige Auswahl";; esac done