*#!/bin/bash echo "==============================" echo "==============================" echo "Debian 9 " echo "PTERO 1.0.3 " echo "DAEMON + PANEL" echo "==============================" echo "==============================" echo "STEP 1" echo "PREPARATION" echo "==============================" echo "==============================" sleep 3 sleep 3 bddpass=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w12 | head -n1) userpass=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w12 | head -n1) rm -rf /root/id_ptero.txt rm -rf /var/www/pterodactyl/* echo "Identifiant SQL" >> /root/id_ptero.txt echo "Utiliisateur : administrateur" >> /root/id_ptero.txt echo "Mot de passe :" >> /root/id_ptero.txt echo ${bddpass} >> /root/id_ptero.txt echo "Identifiant pterodactyl" >> /root/id_ptero.txt echo "Utilisateur : administrateur" >> /root/id_ptero.txt echo "Password" >> /root/id_ptero.txt echo ${userpass} >> /root/id_ptero.txt rm -rf /etc/systemd/system/pteroq.service rm -rf /etc/systemd/system/wings.service echo "nameserver 8.8.8.8" >> /etc/resolv.conf echo "nameserver 8.8.4.4" >> /etc/resolv.conf rm -rf /etc/apt/sources.list echo "deb http://ftp2.fr.debian.org/debian/ stretch main contrib non-free" >> /etc/apt/sources.list echo "deb http://ftp2.fr.debian.org/debian/ stretch-updates main contrib non-free" >> /etc/apt/sources.list echo "deb http://security.debian.org/ stretch/updates main contrib non-free" >> /etc/apt/sources.list read -p 'Entrez votre nom de domaine (ou l ip du vps si vous n en avez pas) ' domaine echo "Votre nom de domaine a été mis sur : $domaine !" sleep 1 read -p 'Utilisez vous un nom de domaine (exemple : montrucbidule.fr. ATTENTION 5.55.55.55 N EST PAS UN NOM DE DOMAINE)? (y/n) ' -n 1 dom sleep 1 echo "Vous avez choisis $dom" sleep 1 sleep 2 echo "==============================" echo "==============================" echo "STEP 2" echo "REQUIREMENT" echo "==============================" echo "==============================" sleep 3 apt update && apt -y upgrade apt install -y software-properties-common dirmngr ca-certificates apt-transport-https apt-transport-https ca-certificates curl gnupg2 software-properties-common zip unzip tar make gcc g++ python python-dev curl gnupg sudo wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add - echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" curl -sL https://deb.nodesource.com/setup_12.x | bash - apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.zol.co.zw/mariadb/repo/10.4/debian stretch main' apt update apt install -y docker-ce nodejs mariadb-common mariadb-server mariadb-client mariadb-server apache2 libapache2-mod-php7.4 redis-server certbot curl php7.4 php7.4-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} systemctl start redis-server systemctl enable redis-server systemctl start mariadb systemctl enable mariadb systemctl enable docker systemctl start docker echo "==============================" echo "Requirement Installed" sleep 2 echo "==============================" echo "==============================" echo "STEP 3" echo "PANEL" echo "==============================" echo "==============================" sleep 3 mysql -u root -e "DROP USER administrateur;" mysql -u root -e "DROP DATABASE ptero;" mysql -u root -e "CREATE USER administrateur IDENTIFIED BY '"${bddpass}"';" mysql -u root -e "CREATE DATABASE ptero;" mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO administrateur WITH GRANT OPTION;" mkdir -p /var/www/pterodactyl cd /var/www/pterodactyl curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/download/v1.0.3/panel.tar.gz tar -xzvf panel.tar.gz chmod -R 755 storage/* bootstrap/cache/ cp .env.example .env php -r "copy('https://raw.githubusercontent.com/Bagou450/Panel-installer-script/main/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php --version=1.10.16 php composer.phar install --no-dev --optimize-autoloader php artisan key:generate --force if [ $dom = "y" ] then php artisan p:environment:setup --author bagou@zelkoa.fr --url https://$domaine --timezone Europe/Paris --cache file --session database --queue database else php artisan p:environment:setup --author bagou@zelkoa.fr --url http://$domaine --timezone Europe/Paris --cache file --session database --queue database fi echo "script en pause pendant 5s" echo "Voicie ce que vous devez entrer" echo "Utiilisateur : administrateur" echo "Mot de passe :" echo ${bddpass} echo "BDD : ptero" sleep 5 php artisan p:environment:database --host 127.0.0.1 --port 3306 --database ptero --username administrateur --password ${bddpass} php artisan migrate --seed --force echo "création de l'utilisateur pterodactyl." sleep 4 php artisan p:user:make --admin 1 --email mail@exemple.com --username administrateur --name-first exemple --name-last name --password ${userpass} chown -R www-data:www-data * echo "# Pterodactyl Queue Worker File" >> /etc/systemd/system/pteroq.service echo "# ----------------------------------" >> /etc/systemd/system/pteroq.service echo "" >> /etc/systemd/system/pteroq.service echo "[Unit]" >> /etc/systemd/system/pteroq.service echo "Description=Pterodactyl Queue Worker" >> /etc/systemd/system/pteroq.service echo "After=redis-server.service" >> /etc/systemd/system/pteroq.service echo "" >> /etc/systemd/system/pteroq.service echo "[Service]" >> /etc/systemd/system/pteroq.service echo "# On some systems the user and group might be different." >> /etc/systemd/system/pteroq.service echo "User=www-data" >> /etc/systemd/system/pteroq.service echo "Group=www-data" >> /etc/systemd/system/pteroq.service echo "Restart=always" >> /etc/systemd/system/pteroq.service echo "ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3" >> /etc/systemd/system/pteroq.service echo "" >> /etc/systemd/system/pteroq.service echo "[Install]" >> /etc/systemd/system/pteroq.service echo "WantedBy=multi-user.target" >> /etc/systemd/system/pteroq.service sudo systemctl enable --now redis-server sudo systemctl enable --now pteroq.service if [ $dom = "y" ] then echo "==============================" echo "Vous avez un nom de domaine instalation de certbot pour le httpS" echo "==============================" sleep 2 apt update apt install -y certbot echo "Certbot installer création du certificat" service apache2 stop service nginx stop certbot certonly --standalone --agree-tos --no-eff-email --register-unsafely-without-email -d $domaine echo "==============================" echo "Certificat ssl crée" echo "==============================" rm -rf /etc/apache2/sites-enabled/pterodactyl.conf echo "" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " ServerName" $domaine >> /etc/apache2/sites-enabled/pterodactyl.conf echo " RewriteEngine On" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " RewriteCond %{HTTPS} !=on" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] " >> /etc/apache2/sites-enabled/pterodactyl.conf echo "" >> /etc/apache2/sites-enabled/pterodactyl.conf echo "" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " ServerName" $domaine >> /etc/apache2/sites-enabled/pterodactyl.conf echo " DocumentRoot "/var/www/pterodactyl/public"" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " AllowEncodedSlashes On" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " php_value upload_max_filesize 100M" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " php_value post_max_size 100M" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " " >> /etc/apache2/sites-enabled/pterodactyl.conf echo " AllowOverride all" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " " >> /etc/apache2/sites-enabled/pterodactyl.conf echo " SSLEngine on" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " SSLCertificateFile /etc/letsencrypt/live/"$domaine"/fullchain.pem" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " SSLCertificateKeyFile /etc/letsencrypt/live/"$domaine"/privkey.pem" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " " >> /etc/apache2/sites-enabled/pterodactyl.conf chmod -R 755 /var/www/pterodactyl/public && chown -R www-data:www-data /var/www/pterodactyl/public a2enmod rewrite a2enmod ssl service apache2 restart else echo "==============================" echo "Vous n'avez pas de nom de domaine certbot ne vas pas s installer" echo "==============================" sleep 5 rm -rf /etc/apache2/sites-enabled/pterodactyl.conf echo "" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " ServerName" $domaine >> /etc/apache2/sites-enabled/pterodactyl.conf echo " DocumentRoot "/var/www/pterodactyl/public"" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " AllowEncodedSlashes On" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " php_value upload_max_filesize 100M" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " php_value post_max_size 100M" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " " >> /etc/apache2/sites-enabled/pterodactyl.conf echo " AllowOverride all" >> /etc/apache2/sites-enabled/pterodactyl.conf echo " " >> /etc/apache2/sites-enabled/pterodactyl.conf echo "" >> /etc/apache2/sites-enabled/pterodactyl.conf a2enmod rewrite a2enmod ssl service apache2 restart fi sleep 3 sleep 1 cd /var/www/pterodactyl/public/ mkdir pma cd pma wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip unzip phpMyAdmin-5.0.2-all-languages.zip mv phpMyAdmin-5.0.2-all-languages/* /var/www/pterodactyl/public/pma rm -rf phpM* echo "=====" echo "=====" slepe 2 echo "=====" echo "Step 3 daemon" echo "=====" sleep 2 mkdir -p /etc/pterodactyl curl -L -o /usr/local/bin/wings https://github.com/pterodactyl/wings/releases/download/v1.0.1/wings_linux_amd64 chmod u+x /usr/local/bin/wings echo "[Unit]" >> /etc/systemd/system/wings.service echo "Description=Pterodactyl Wings Daemon" >> /etc/systemd/system/wings.service echo "After=docker.service" >> /etc/systemd/system/wings.service echo "" >> /etc/systemd/system/wings.service echo "[Service]" >> /etc/systemd/system/wings.service echo "User=root" >> /etc/systemd/system/wings.service echo "WorkingDirectory=/etc/pterodactyl" >> /etc/systemd/system/wings.service echo "LimitNOFILE=4096" >> /etc/systemd/system/wings.service echo "PIDFile=/var/run/wings/daemon.pid" >> /etc/systemd/system/wings.service echo "ExecStart=/usr/local/bin/wings" >> /etc/systemd/system/wings.service echo "Restart=on-failure" >> /etc/systemd/system/wings.service echo "StartLimitInterval=600" >> /etc/systemd/system/wings.service echo "" >> /etc/systemd/system/wings.service echo "[Install]" >> /etc/systemd/system/wings.service echo "WantedBy=multi-user.target" >> /etc/systemd/system/wings.service echo "Identifiant pterodactyl" echo "Utilisateur : administrateur" echo "Password" echo ${userpass} read -p "Coller ici votre commande Token crée depuis le panel (commande pour le daemon)" cmd ${cmd} systemctl enable --now wings echo "==============================" echo "==============================" echo "Fin du script" echo "Vos identiifiiant sont dans le fichier /root/id_ptero.txt" if [ $dom = "y" ] then echo "Veuillez accedez a Pterodactyl ici https://$domaine/" echo "Veuillez accedez a PhpMyAdmin ici https://$domaine/pma" else echo "Veuillez accedez a Pterodactyl ici http://$domaine/" echo "Veuillez accedez a PhpMyAdmin ici http://$domaine/pma" fi echo "==============================" echo "==============================" sleep 5