diff --git a/README.md b/README.md index e58a774..2c65391 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ ### Retired Scripts 💀 +## Don't like typing "Y"? Just add a "u" after the /sh/ `(/sh/u/RANDOMSCRIPT)` + --- ## [Gitea](https://about.gitea.com/) diff --git a/scripts/gogsinstall.sh b/scripts/gogsinstall.sh index bca6064..c2b4791 100644 --- a/scripts/gogsinstall.sh +++ b/scripts/gogsinstall.sh @@ -21,7 +21,8 @@ apt install -y curl else CURL_NOT_EXIST=0 fi -sudo apt install wget git go-lang -y +sudo apt install wget git -y +wget -O goinstall.sh https://sop.wtf/sh/u/goinstall && bash goinstall.sh sudo adduser --disabled-login --gecos 'Gogs' git git clone --depth 1 https://github.com/gogs/gogs.git gogs cd gogs diff --git a/scripts/goinstall.sh b/scripts/goinstall.sh index 7aa2540..dc415c9 100644 --- a/scripts/goinstall.sh +++ b/scripts/goinstall.sh @@ -28,7 +28,7 @@ apt remove golang -y rm -rf /tmp/go/ mkdir /tmp/go/ cd /tmp/go/ -VER="1.20.7" +VER="1.21.0" if [ -n "$(uname -a | grep x86_64)" ]; then curl -fsSL -o "/tmp/go/go"$VER".linux-amd64.tar.gz" "https://go.dev/dl/go"$VER".linux-amd64.tar.gz" fi diff --git a/scripts/hockeypuckinstall.sh b/scripts/hockeypuckinstall.sh index 8e24011..8cf18da 100644 --- a/scripts/hockeypuckinstall.sh +++ b/scripts/hockeypuckinstall.sh @@ -31,23 +31,7 @@ else CURL_NOT_EXIST=0 fi apt remove golang -y -rm -rf /tmp/go/ -mkdir /tmp/go/ -cd /tmp/go/ -VER="1.20.7" -if [ -n "$(uname -a | grep x86_64)" ]; then - curl -fsSL -o "/tmp/go/go"$VER".linux-amd64.tar.gz" "https://go.dev/dl/go"$VER".linux-amd64.tar.gz" -fi -if [ -n "$(uname -a | grep armv6l)" ]; then - curl -fsSL -o "/tmp/go/go"$VER".linux-armv6l.tar.gz" "https://go.dev/dl/go"$VER".linux-armv6l.tar.gz" -fi -if [ -n "$(uname -a | grep i386)" ]; then - curl -fsSL -o "/tmp/go/go"$VER".linux-386.tar.gz" "https://go.dev/dl/go"$VER".linux-386.tar.gz" -fi -rm -rf /usr/local/go && tar -C /usr/local -xzf *.tar.gz -chmod +x /usr/local/go/bin/go -export PATH=$PATH:/usr/local/go/bin -cd ~ +wget -O goinstall.sh https://sop.wtf/sh/u/goinstall && bash goinstall.sh git clone https://github.com/hockeypuck/packaging /var/lib/hockeypuck cd packaging ./prepare.bash diff --git a/scripts/hugoinstall.sh b/scripts/hugoinstall.sh index 65f27a3..cc1e811 100644 --- a/scripts/hugoinstall.sh +++ b/scripts/hugoinstall.sh @@ -24,23 +24,7 @@ CURL_NOT_EXIST=0 fi apt remove golang -y apt autoremove -y -rm -rf /tmp/go/ -mkdir /tmp/go/ -cd /tmp/go/ -VER="1.20.7" -if [ -n "$(uname -a | grep x86_64)" ]; then - curl -fsSL -o "/tmp/go/go"$VER".linux-amd64.tar.gz" "https://go.dev/dl/go"$VER".linux-amd64.tar.gz" -fi -if [ -n "$(uname -a | grep armv6l)" ]; then - curl -fsSL -o "/tmp/go/go"$VER".linux-armv6l.tar.gz" "https://go.dev/dl/go"$VER".linux-armv6l.tar.gz" -fi -if [ -n "$(uname -a | grep i386)" ]; then - curl -fsSL -o "/tmp/go/go"$VER".linux-386.tar.gz" "https://go.dev/dl/go"$VER".linux-386.tar.gz" -fi -rm -rf /usr/local/go && tar -C /usr/local -xzf *.tar.gz -chmod +x /usr/local/go/bin/go -export PATH=$PATH:/usr/local/go/bin -cd ~ +wget -O goinstall.sh https://sop.wtf/sh/u/goinstall && bash goinstall.sh rm -rf /tmp/hugo/ mkdir /tmp/hugo/ VER=$(curl --silent "https://api.github.com/repos/gohugoio/hugo/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | sed 's|[v,]||g' ) diff --git a/scripts/unattended/caddyinstall.sh b/scripts/unattended/caddyinstall.sh new file mode 100644 index 0000000..d0fa860 --- /dev/null +++ b/scripts/unattended/caddyinstall.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +# Check if curl is installed +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +apt remove golang -y +rm -rf /tmp/go/ +mkdir /tmp/go/ +cd /tmp/go/ +VER="1.20.7" +if [ -n "$(uname -a | grep x86_64)" ]; then + curl -fsSL -o "/tmp/go/go"$VER".linux-amd64.tar.gz" "https://go.dev/dl/go"$VER".linux-amd64.tar.gz" +fi +if [ -n "$(uname -a | grep armv6l)" ]; then + curl -fsSL -o "/tmp/go/go"$VER".linux-armv6l.tar.gz" "https://go.dev/dl/go"$VER".linux-armv6l.tar.gz" +fi +if [ -n "$(uname -a | grep i386)" ]; then + curl -fsSL -o "/tmp/go/go"$VER".linux-386.tar.gz" "https://go.dev/dl/go"$VER".linux-386.tar.gz" +fi +rm -rf /usr/local/go && tar -C /usr/local -xzf *.tar.gz +chmod +x /usr/local/go/bin/go +export PATH=$PATH:/usr/local/go/bin +cd ~ +rm -rf /tmp/caddy +mkdir /tmp/caddy +cd /tmp/caddy +VER=$(curl --silent "https://api.github.com/repos/caddyserver/xcaddy/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | sed 's|[v,]||g') +if [ -n "$(uname -a | grep x86_64)" ]; then + curl -fsSL -o "/tmp/caddy/xcaddy_"$VER"_linux_amd64.tar.gz" "https://github.com/caddyserver/xcaddy/releases/download/v"$VER"/xcaddy_"$VER"_linux_amd64.tar.gz" +fi +if [ -n "$(uname -a | grep armv6l)" ]; then + curl -fsSL -o "/tmp/caddy/xcaddy_"$VER"_armv6.tar.gz" "https://github.com/caddyserver/xcaddy/releases/download/v"$VER"/xcaddy_v"$VER"_armv6.tar.gz" +fi +if [ -n "$(uname -a | grep armv7l)" ]; then + curl -fsSL -o "/tmp/caddy/xcaddy_"$VER"_linux_armv7.tar.gz" "https://github.com/caddyserver/xcaddy/releases/download/v"$VER"/xcaddy_v"$VER"_linux_armv7.tar.gz" +fi +if [ -n "$(uname -a | grep armv5l)" ]; then + curl -fsSL -o "/tmp/caddy/xcaddy_"$VER"_linux_armv5.tar.gz" "https://github.com/caddyserver/xcaddy/releases/download/v"$VER"/xcaddy_v"$VER"_linux_armv5.tar.gz" +fi +tar xvf *.tar.gz xcaddy +sudo mv xcaddy /usr/bin +mkdir ~/caddy +cd ~/caddy +xcaddy build +sudo mv caddy /usr/bin +sudo groupadd --system caddy +sudo useradd --system \ + --gid caddy \ + --create-home \ + --home-dir /var/lib/caddy \ + --shell /usr/sbin/nologin \ + --comment "Caddy web server" \ + caddy +sudo chown root:root /usr/bin/caddy +sudo chmod 755 /usr/bin/caddy +sudo mkdir /etc/caddy +sudo chown -R root:caddy /etc/caddy +sudo mkdir /etc/ssl/caddy +sudo chown -R root:caddy /etc/ssl/caddy +sudo chmod 0770 /etc/ssl/caddy +sudo mkdir /var/www +sudo chown caddy:caddy /var/www +sudo sh -c 'curl https://raw.githubusercontent.com/caddyserver/dist/master/init/caddy.service > /etc/systemd/system/caddy.service' +sudo systemctl daemon-reload +sudo systemctl status caddy +sudo ufw allow proto tcp from any to any port 80,443 \ No newline at end of file diff --git a/scripts/unattended/fail2baninstall.sh b/scripts/unattended/fail2baninstall.sh new file mode 100644 index 0000000..ae08863 --- /dev/null +++ b/scripts/unattended/fail2baninstall.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +sudo apt update && sudo apt upgrade -y +sudo apt install fail2ban -y +sudo cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local +sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local +sudo systemctl enable fail2ban + +echo -e "==================================================================" + +echo "Fail2Ban has been installed!" +echo "The F2B Config can be found at /etc/fail2ban/fail2ban.local" +echo "The F2B Jails Config can be found at /etc/fail2ban/jail.local" +echo "When it has been setup to your liking you can run ~fail2ban-client start~" + +echo -e "==================================================================" \ No newline at end of file diff --git a/scripts/unattended/giteainstall.sh b/scripts/unattended/giteainstall.sh new file mode 100644 index 0000000..5514d04 --- /dev/null +++ b/scripts/unattended/giteainstall.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +set -b +ping -c1 "github.com" &>"/dev/null" +ping -c1 "api.github.com" &>"/dev/null" +ping -c1 "dl.gitea.io" &>"/dev/null" +ping -c1 "raw.githubusercontent.com" &>"/dev/null" +if [[ "${?}" -ne 0 ]]; then + echo "I am unable to access one of the necessary domains that are needed to continue this Install." +elif [[ "${#args[@]}" -eq 0 ]]; then +# Check if curl is installed +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +VER=$(curl --silent "https://api.github.com/repos/go-gitea/gitea/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | sed 's|[v,]||g' ) +sudo systemctl stop gitea +sudo apt-get install git -y +sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git +if [ -n "$(uname -a | grep i386)" ]; then + curl -fsSL -o "/tmp/gitea" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-386" +fi + +if [ -n "$(uname -a | grep x86_64)" ]; then + curl -fsSL -o "/tmp/gitea" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-amd64" +fi + +if [ -n "$(uname -a | grep armv6l)" ]; then + curl -fsSL -o "/tmp/gitea" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-arm-6" +fi + +if [ -n "$(uname -a | grep armv7l)" ]; then + curl -fsSL -o "/tmp/gitea" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-arm-7" +fi + +sudo mv /tmp/gitea /usr/local/bin +sudo chmod +x /usr/local/bin/gitea +sudo mkdir -p /var/lib/gitea/{custom,data,log} +sudo chown -R git:git /var/lib/gitea +sudo chmod -R 750 /var/lib/gitea +sudo mkdir /etc/gitea +sudo chown root:git /etc/gitea +sudo chmod 770 /etc/gitea +curl -fsSL -o /etc/systemd/system/gitea.service https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service +sudo systemctl daemon-reload +sudo systemctl enable --now gitea +sudo systemctl start gitea +sudo ufw allow 3000 +echo -e "==================================================================" +publicipaddress=$(curl -sS --connect-timeout 10 -m 60 https://ipv4.icanhazip.com/ || curl -sS --connect-timeout 10 -m 60 https://api.ipify.org ) +intenalip=$(ip addr | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -E -v "^127\.|^255\.|^0\." | head -n 1) + echo "Gitea Should be available at http://${intenalip}:3000" + echo "Or If you are using a VPS at http://${publicipaddress}:3000" +echo -e "==================================================================" +fi \ No newline at end of file diff --git a/scripts/unattended/gitearemove.sh b/scripts/unattended/gitearemove.sh new file mode 100644 index 0000000..ff7e08a --- /dev/null +++ b/scripts/unattended/gitearemove.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +sudo systemctl stop gitea +sudo systemctl disable gitea +sudo rm -rf /etc/systemd/system/gitea.service +echo "Backing up Files" +tar -cvzf gitea.tar.gz /var/lib/gitea/ /etc/gitea +sudo rm -rf /home/git +sudo userdel git +sudo rm -rf /usr/local/bin/gitea +sudo rm -rf /var/lib/gitea/* +sudo rm -rf /etc/gitea +sudo ufw delete allow 3000 + +echo "Gitea has been uninstalled, and all files have are backed up in gitea.tar.gz, you can delete it at your discretion." + diff --git a/scripts/unattended/giteaupdate.sh b/scripts/unattended/giteaupdate.sh new file mode 100644 index 0000000..0ee4a6d --- /dev/null +++ b/scripts/unattended/giteaupdate.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +set -b +ping -c1 "github.com" &>"/dev/null" +ping -c1 "api.github.com" &>"/dev/null" +ping -c1 "dl.gitea.io" &>"/dev/null" +ping -c1 "raw.githubusercontent.com" &>"/dev/null" +if [[ "${?}" -ne 0 ]]; then + echo "I am unable to access one of the necessary domains that are needed to continue this Install." +elif [[ "${#args[@]}" -eq 0 ]]; then +# Check if curl is installed +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +VER=$(curl --silent "https://api.github.com/repos/go-gitea/gitea/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | sed 's|[v,]||g' ) +sudo systemctl stop gitea +if [ -n "$(uname -a | grep i386)" ]; then + curl -fsSL -o "/tmp/gitea" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-386" +fi + +if [ -n "$(uname -a | grep x86_64)" ]; then + curl -fsSL -o "/tmp/gitea" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-amd64" +fi + +if [ -n "$(uname -a | grep armv6l)" ]; then + curl -fsSL -o "/tmp/gitea" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-arm-6" +fi + +if [ -n "$(uname -a | grep armv7l)" ]; then + curl -fsSL -o "/tmp/gitea" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-arm-7" +fi +sudo mv /tmp/gitea /usr/local/bin +sudo chmod +x /usr/local/bin/gitea +sudo chown -R git:git /var/lib/gitea +sudo chmod -R 750 /var/lib/gitea +sudo chown root:git /etc/gitea +sudo systemctl start gitea +sudo ufw allow 3000 +echo -e "==================================================================" +echo "Gitea has been updated!!" +echo -e "==================================================================" +fi \ No newline at end of file diff --git a/scripts/unattended/gitlabuninstall.sh b/scripts/unattended/gitlabuninstall.sh new file mode 100644 index 0000000..9fa55eb --- /dev/null +++ b/scripts/unattended/gitlabuninstall.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +sudo gitlab-ctl stop +sudo apt remove gitlab-ce -y +sudo apt update && apt upgrade -y +sudo ufw delete allow 443 +sudo ufw delete allow 80 \ No newline at end of file diff --git a/scripts/unattended/gogsinstall.sh b/scripts/unattended/gogsinstall.sh new file mode 100644 index 0000000..c3d62bc --- /dev/null +++ b/scripts/unattended/gogsinstall.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +sudo apt install wget git -y +wget -O goinstall.sh https://sop.wtf/sh/u/goinstall && bash goinstall.sh +sudo adduser --disabled-login --gecos 'Gogs' git +git clone --depth 1 https://github.com/gogs/gogs.git gogs +cd gogs +go build -o gogs +./gogs web +sudo mkdir /var/log/gogs +sudo chown -R git:git /var/log/gogs/ +sudo echo " +[Unit] +Description=Gogs self-hosted Git service +After=syslog.target +After=network.target +After=mysql.service + +[Service] +# Modify these two values and uncomment them if you have +# repos with lots of files and get an HTTP error 500 because +# of that +### +#LimitMEMLOCK=infinity +#LimitNOFILE=65535 +Type=simple +User=git +Group=git +WorkingDirectory=/home/git +ExecStart=/home/git/gogs web +Restart=always +Environment=USER=git HOME=/home/git + +# Some distributions may not support these hardening directives. If you cannot start the service due +# to an unknown option, comment out the ones not supported by your version of systemd. +ProtectSystem=full +PrivateDevices=yes +PrivateTmp=yes +NoNewPrivileges=true + +[Install] +WantedBy=multi-user.target +" >> /etc/systemd/system/gogs.service +sudo rsync -avz gogs/* /home/git/ +sudo chown -R git:git /home/git/ +sudo ufw allow 3000 +sudo systemctl daemon-reload +sudo systemctl enable gogs +sudo systemctl start gogs +sudo rm -rf gogs linux_amd64.tar.gz + +echo -e "==================================================================" +publicipaddress=$(curl -sS --connect-timeout 10 -m 60 https://ipv4.icanhazip.com/ || curl -sS --connect-timeout 10 -m 60 https://api.ipify.org ) +intenalip=$(ip addr | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -E -v "^127\.|^255\.|^0\." | head -n 1) + echo "Gogs Should be available at http://${intenalip}:3000" + echo "Or If you are using a VPS at http://${publicipaddress}:3000" +echo -e "==================================================================" \ No newline at end of file diff --git a/scripts/unattended/gogsuninstall.sh b/scripts/unattended/gogsuninstall.sh new file mode 100644 index 0000000..d8bbfc7 --- /dev/null +++ b/scripts/unattended/gogsuninstall.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +sudo systemctl stop gogs +sudo systemctl disable gogs +sudo rm -rf /etc/systemd/system/gogs.service +sudo userdel git +sudo rm -rf /home/git +sudo rm -rf /var/log/gogs/* +sudo ufw delete allow 3000 \ No newline at end of file diff --git a/scripts/unattended/goinstall.sh b/scripts/unattended/goinstall.sh new file mode 100644 index 0000000..fb67f54 --- /dev/null +++ b/scripts/unattended/goinstall.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +# Check if curl is installed +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +apt remove golang -y +rm -rf /tmp/go/ +mkdir /tmp/go/ +cd /tmp/go/ +VER="1.21.0" +if [ -n "$(uname -a | grep x86_64)" ]; then + curl -fsSL -o "/tmp/go/go"$VER".linux-amd64.tar.gz" "https://go.dev/dl/go"$VER".linux-amd64.tar.gz" +fi +if [ -n "$(uname -a | grep armv6l)" ]; then + curl -fsSL -o "/tmp/go/go"$VER".linux-armv6l.tar.gz" "https://go.dev/dl/go"$VER".linux-armv6l.tar.gz" +fi +if [ -n "$(uname -a | grep i386)" ]; then + curl -fsSL -o "/tmp/go/go"$VER".linux-386.tar.gz" "https://go.dev/dl/go"$VER".linux-386.tar.gz" +fi +rm -rf /usr/local/go && tar -C /usr/local -xzf *.tar.gz +chmod +x /usr/local/go/bin/go +export PATH=$PATH:/usr/local/go/bin +cd ~ \ No newline at end of file diff --git a/scripts/unattended/hockeypuckinstall.sh b/scripts/unattended/hockeypuckinstall.sh new file mode 100644 index 0000000..9a66ea2 --- /dev/null +++ b/scripts/unattended/hockeypuckinstall.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +sudo apt-get install bzr git mercurial -y +# Check if curl is installed +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +apt remove golang -y +wget -O goinstall.sh https://sop.wtf/sh/u/goinstall && bash goinstall.sh +git clone https://github.com/hockeypuck/packaging /var/lib/hockeypuck +cd packaging +./prepare.bash +export GOPATH=$(pwd) +go install github.com/hockeypuck/server/cmd/hockeypuck +go install github.com/hockeypuck/server/cmd/hockeypuck-load +go install github.com/hockeypuck/server/cmd/hockeypuck-pbuild +bash /var/lib/hockeypuck -config /var/lib/hockeypuck/hockeypuck.conf \ No newline at end of file diff --git a/scripts/unattended/hugoinstall.sh b/scripts/unattended/hugoinstall.sh new file mode 100644 index 0000000..b2e6c0a --- /dev/null +++ b/scripts/unattended/hugoinstall.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +apt remove golang -y +apt autoremove -y +wget -O goinstall.sh https://sop.wtf/sh/u/goinstall && bash goinstall.sh +rm -rf /tmp/hugo/ +mkdir /tmp/hugo/ +VER=$(curl --silent "https://api.github.com/repos/gohugoio/hugo/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | sed 's|[v,]||g' ) +if [ -n "$(uname -a | grep x86_64)" ]; then + curl -fsSL -o "/tmp/hugo/hugo_"$VER"_linux-amd64.tar.gz" "https://github.com/gohugoio/hugo/releases/download/v$VER/hugo_"$VER"_linux-amd64.tar.gz" +fi + +if [ -n "$(uname -a | grep armv6l)" ]; then + curl -fsSL -o "/tmp/hugo/hugo_"$VER"-arm64.tar.gz" "https://github.com/gohugoio/hugo/releases/download/v$VER/hugo_"$VER"-arm64.tar.gz" +fi + +if [ -n "$(uname -a | grep armv7l)" ]; then + curl -fsSL -o "/tmp/hugo/hugo_"$VER"-arm.tar.gz" "https://github.com/gohugoio/hugo/releases/download/v$VER/hugo_"$VER"-arm.tar.gz" +fi +cd /tmp/hugo/ +tar -xzf /tmp/hugo/*.tar.gz +sudo mv /tmp/hugo/hugo /usr/local/bin +cd ~ \ No newline at end of file diff --git a/scripts/unattended/librenmsinstall.sh b/scripts/unattended/librenmsinstall.sh new file mode 100644 index 0000000..baaf7cb --- /dev/null +++ b/scripts/unattended/librenmsinstall.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +trap 'exit 130' INT + +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +sudo apt install acl fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-json php-mbstring php-mysql php-snmp php-xml php-zip rrdtool snmp snmpd whois unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd python3-pip -y +sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash)" +cd /opt +sudo git clone https://github.com/librenms/librenms.git +sudo chown -R librenms:librenms /opt/librenms +sudo chmod 771 /opt/librenms +sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ +sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ +sudo -u librenms bash -c './scripts/composer_wrapper.php install --no-dev' +exit +sudo curl -fsSL -o "composer-stable.phar" https://getcomposer.org/composer-stable.phar +sudo mv composer-stable.phar /usr/bin/composer +sudo chmod +x /usr/bin/composer diff --git a/scripts/unattended/mariadbinstall.sh b/scripts/unattended/mariadbinstall.sh new file mode 100644 index 0000000..360ba53 --- /dev/null +++ b/scripts/unattended/mariadbinstall.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +apt update && apt upgrade -y +sudo apt install wget software-properties-common dirmngr ca-certificates apt-transport-https mariadb-server mariadb-client -y +echo -e "==================================================================" +echo "Time to Configure MariaDB." +echo "Don't Know what to do? I can help!" +echo "1. Root password just click ENTER as there is no password" +echo "2. Switch to unix_socket authentication select. n" +echo "3. Change the root password? Y" +echo "4. Remove anonymous users? Y " +echo "5. Disallow root login remotely? y, But if it's local it's fine to say no." +echo "6. Remove test database and access to it? Y" +echo "7. Reload privilege tables now? Y" +echo -e "==================================================================" +sleep 5 +sudo mysql_secure_installation + +echo "If you want to install phpMyAdmin run wget -O pmainstall.sh https://sop.wtf/sh/pmainstall && bash pmainstall.sh" \ No newline at end of file diff --git a/scripts/unattended/mastodoninstall.sh b/scripts/unattended/mastodoninstall.sh new file mode 100644 index 0000000..3a017d3 --- /dev/null +++ b/scripts/unattended/mastodoninstall.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +curl -sL https://deb.nodesource.com/setup_16.x | bash - +apt-get install nodejs -y +curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - +echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list +apt-get update -y +apt-get install yarn -y +apt-get install postgresql postgresql-contrib -y +su - postgres +psql +CREATE USER mastodon CREATEDB; +exit +adduser --disabled-login --gecos 'Mastodon Server' mastodon +su - mastodon +git clone https://github.com/rbenv/rbenv.git ~/.rbenv +cd ~/.rbenv && src/configure && make -C src +echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc +echo 'eval "$(rbenv init -)"' >> ~/.bashrc +exec bash +git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build\ +RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.3 +rbenv global 3.0.3 +gem update --system +gem install bundler --no-document +su - mastodon +git clone https://github.com/tootsuite/mastodon.git ~/live +cd ~/live +bundle config deployment 'true' +bundle config without 'development test' +bundle install -j$(getconf _NPROCESSORS_ONLN) +yarn install --pure-lockfile +RAILS_ENV=production bundle exec rake mastodon:setup +exit +cp /home/mastodon/live/dist/mastodon-web.service /etc/systemd/system/ +cp /home/mastodon/live/dist/mastodon-sidekiq.service /etc/systemd/system/ +cp /home/mastodon/live/dist/mastodon-streaming.service /etc/systemd/system/ +systemctl start mastodon-web +systemctl start mastodon-sidekiq +systemctl start mastodon-streaming +systemctl enable mastodon-web +systemctl enable mastodon-sidekiq +systemctl enable mastodon-streaming +systemctl status mastodon-web mastodon-sidekiq mastodon-streaming \ No newline at end of file diff --git a/scripts/unattended/misskeyinstall.sh b/scripts/unattended/misskeyinstall.sh new file mode 100644 index 0000000..02696fd --- /dev/null +++ b/scripts/unattended/misskeyinstall.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +NODE_LTS= "18.12.1" +sudo apt update && apt upgrade -y +sudo apt install postgresql postgresql-contrib ffmpeg redis-server npm yarn -y +sudo systemctl start postgresql.service +curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash +source ~/.bashrc +nvm install node +nvm install v$NODE_LTS +nvm use v$NODE_LTS +curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - +echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list +PASSWD_GEN=$(openssl rand -base64 10) +sudo -i -u postgres psql -c "CREATE USER misskey WITH PASSWORD '$PASSWD_GEN';" +sudo -i -u postgres psql -c "CREATE USER misskey WITH PASSWORD '$PASSWD_GEN';" +sudo -i -u postgres psql -c "CREATE DATABASE misskey;" +sudo -i -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE misskey to misskey;" +sudo -i -u postgres psql -c "ALTER DATABASE misskey OWNER TO misskey;" +adduser --disabled-password --disabled-login misskey +sudo -i -u misskey +git clone -b master https://github.com/misskey-dev/misskey.git +cd misskey +git checkout master +yarn +cp .config/example.yml .config/default.yml +sed -e "s|user: example-misskey-user = ''user: = 'misskey'|" >> .config/default.yml +sed -e "s|user: example-misskey-pass = ''user: = '$PASSWD_GEN'|" >> .config/default.yml +NODE_ENV=production yarn build +yarn run init +exit +curl -fsSL -o "/etc/systemd/system/misskey.service" https://git.oldgate.org/Sophia/thelinuxlist/raw/branch/main/systemd/misskey.service +sudo systemctl daemon-reload +sudo systemctl enable misskey.service +sudo systemctl start misskey.service + diff --git a/scripts/unattended/mongodbinstall.sh b/scripts/unattended/mongodbinstall.sh new file mode 100644 index 0000000..7881348 --- /dev/null +++ b/scripts/unattended/mongodbinstall.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +sudo apt update && apt upgrade -y +sudo apt install wget curl gnupg2 software-properties-common apt-transport-https ca-certificates lsb-release -y +sudo curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - +echo "deb http://security.ubuntu.com/ubuntu jammy-security main" | sudo tee /etc/apt/sources.list.d/jammy-security.list +echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list +sudo apt update -y +sudo apt-get install libssl1.1 -y +sudo apt install mongodb-org -y +sudo systemctl start mongod +sudo systemctl enable mongod +apt autoremove -y diff --git a/scripts/unattended/pmainstall.sh b/scripts/unattended/pmainstall.sh new file mode 100644 index 0000000..f29bc9a --- /dev/null +++ b/scripts/unattended/pmainstall.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +while [ "$go" != 'apache' ] && [ "$go" != 'nginx' ]; do + read -p "Would you like to install using Nginx or Apache? (nginx/apache) " go +done +if [ "$go" == 'nginx' ]; then +sudo apt update && apt upgrade -y +sudo apt-get install build-essential lsb-release software-properties-common -y +sudo add-apt-repository --yes ppa:ondrej/nginx && sudo add-apt-repository --yes ppa:ondrej/php && sudo apt install php-fpm software-properties-common phpmyadmin php-mbstring php-zip php-gd php-json php-curl nginx-full php-mysql -y +sudo systemctl stop nginx +sudo wget -O /etc/nginx/conf.d/phpmyadmin.conf https://git.oldgate.org/Sophia/thelinuxlist/raw/branch/main/conf/pmanginx.conf +sudo systemctl enable nginx +sudo systemctl start nginx +## Updating phpMyAdmin. +PMA_VER="5.2.1" +sudo rm -rf /usr/share/phpmyadmin.bak +sudo mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak +sudo mkdir /usr/share/phpmyadmin/ +sudo wget https://files.phpmyadmin.net/phpMyAdmin/$PMA_VER/phpMyAdmin-"$PMA_VER"-all-languages.tar.gz -P /usr/share/phpmyadmin/ +sudo tar xzf /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages.tar.gz -C /usr/share/phpmyadmin/ +sudo mv /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages/* /usr/share/phpmyadmin +sudo mkdir /usr/share/phpmyadmin/tmp/ && chmod -R 777 /usr/share/phpmyadmin/tmp/ +sudo rm -rf /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages.tar.gz +## Thanks https://stackoverflow.com/users/3266847/benjamin-w +randomBlowfishSecret=$(openssl rand -base64 22) +sudo sed -e "s|cfg\['blowfish_secret'\] = ''|cfg['blowfish_secret'] = '$randomBlowfishSecret'|" /usr/share/phpmyadmin/config.sample.inc.php > /usr/share/phpmyadmin/config.inc.php +sudo systemctl restart nginx +sudo ufw allow 8080 +echo -e "==================================================================" +publicipaddress=$(curl -sS --connect-timeout 10 -m 60 https://ipv4.icanhazip.com/ || curl -sS --connect-timeout 10 -m 60 https://api.ipify.org ) +intenalip=$(ip addr | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -E -v "^127\.|^255\.|^0\." | head -n 1) + echo "phpMyAdmin Should be available at http://${intenalip}:8080" + echo "Or If you are using a VPS at http://${publicipaddress}:8080" +echo -e "==================================================================" +fi +if [ "$go" == 'apache' ]; then +sudo apt update && apt upgrade -y +sudo apt-get install build-essential lsb-release software-properties-common -y +sudo add-apt-repository --yes ppa:ondrej/apache2 && apt install apache2 libapache2-mod-php php-fpm software-properties-common phpmyadmin php-mbstring php-zip php-gd php-json php-curl php-mysql -y +sudo systemctl stop apache2 +sudo wget -O /etc/apache2/sites-enabled/phpmyadmin.conf https://git.oldgate.org/Sophia/thelinuxlist/raw/branch/main/conf/pmaapache.conf +sudo systemctl restart php-fpm +sudo systemctl reload apache2 +sudo systemctl enable apache2 +## Updating phpMyAdmin. +PMA_VER="5.2.1" +sudo rm -rf /usr/share/phpmyadmin.bak +sudo mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak +sudo mkdir /usr/share/phpmyadmin/ +sudo wget https://files.phpmyadmin.net/phpMyAdmin/$PMA_VER/phpMyAdmin-"$PMA_VER"-all-languages.tar.gz -P /usr/share/phpmyadmin/ +sudo tar xzf /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages.tar.gz -C /usr/share/phpmyadmin/ +sudo mv /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages/* /usr/share/phpmyadmin +sudo mkdir /usr/share/phpmyadmin/tmp/ && chmod -R 777 /usr/share/phpmyadmin/tmp/ +sudo rm -rf /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages.tar.gz +## Thanks https://stackoverflow.com/users/3266847/benjamin-w +randomBlowfishSecret=$(openssl rand -base64 22) +sudo sed -e "s|cfg\['blowfish_secret'\] = ''|cfg['blowfish_secret'] = '$randomBlowfishSecret'|" /usr/share/phpmyadmin/config.sample.inc.php > /usr/share/phpmyadmin/config.inc.php +sudo systemctl restart apache2 +sudo ufw allow 8080 +echo -e "==================================================================" +publicipaddress=$(curl -sS --connect-timeout 10 -m 60 https://ipv4.icanhazip.com/ || curl -sS --connect-timeout 10 -m 60 https://api.ipify.org ) +intenalip=$(ip addr | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -E -v "^127\.|^255\.|^0\." | head -n 1) + echo "phpMyAdmin Should be available at http://${intenalip}:8080" + echo "Or If you are using a VPS at http://${publicipaddress}:8080" +echo -e "==================================================================" +fi diff --git a/scripts/unattended/pmauninstall.sh b/scripts/unattended/pmauninstall.sh new file mode 100644 index 0000000..dcc00a9 --- /dev/null +++ b/scripts/unattended/pmauninstall.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +sudo apt remove phpmyadmin -y +sudo apt-get autoremove -y +sudo rm -rf /usr/share/phpmyadmin/ +sudo rm -rf /etc/apache2/sites-enabled/phpmyadmin.conf +sudo systemctl restart apache2 + +while true +do + read -r -p "Would you like to also uninstall apache2? This is not reversible. [Y/n] " input + + case $input in + [yY][eE][sS]|[yY]) + break + ;; + [nN][oO]|[nN]) + break + ;; + *) + echo "That wasn't an option..." + ;; + esac +done +sudo systemctl stop apache2 +sudo apt remove apache2 -y +sudo apt-get autoremove -y + + + + + diff --git a/scripts/unattended/pmaupdate.sh b/scripts/unattended/pmaupdate.sh new file mode 100644 index 0000000..0113f71 --- /dev/null +++ b/scripts/unattended/pmaupdate.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +sudo apt update && apt upgrade -y +sudo rm -rf /usr/share/phpmyadmin.bak +sudo mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak +sudo mkdir /usr/share/phpmyadmin/ +sudo curl -fsSL -o "/usr/share/phpmyadmin/" https://files.phpmyadmin.net/phpMyAdmin/$PMA_VER/phpMyAdmin-"$PMA_VER"-all-languages.tar.gz +sudo tar xzf /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages.tar.gz -C /usr/share/phpmyadmin/ +sudo mv /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages/* /usr/share/phpmyadmin +sudo mkdir /usr/share/phpmyadmin/tmp/ && chmod -R 777 /usr/share/phpmyadmin/tmp/ +sudo rm -rf /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages /usr/share/phpmyadmin/phpMyAdmin-"$PMA_VER"-all-languages.tar.gz +## Thanks https://stackoverflow.com/users/3266847/benjamin-w +randomBlowfishSecret=$(openssl rand -base64 22) +sudo sed -e "s|cfg\['blowfish_secret'\] = ''|cfg['blowfish_secret'] = '$randomBlowfishSecret'|" /usr/share/phpmyadmin/config.sample.inc.php > /usr/share/phpmyadmin/config.inc.php +sudo systemctl restart apache2 +sudo systemctl restart nginx +echo -e "==================================================================" +echo "phpMyAdmin has been updated!" +echo -e "==================================================================" + + + + + + + + diff --git a/scripts/unattended/smbamount.sh b/scripts/unattended/smbamount.sh new file mode 100644 index 0000000..160d3a5 --- /dev/null +++ b/scripts/unattended/smbamount.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +while true +do + read -p "Where would you like to mount your share?: " MOUNT_DIR + + if [ -d "$MOUNT_DIR" ]; then + echo "The Directory $MOUNT_DIR Already Exist" + sleep 1 + else + mkdir -p $MOUNT_DIR + echo "creating $MOUNT_DIR" + break + fi +done +while true +do + read -p "What is your Shares Username?: " SMB_USR + + if [ -d "$SMB_USR" ]; then + echo "username=$SMB_USR" >> /.smb-credentials + sleep 1 + else + echo "username=$SMB_USR" >> /.smb-credentials + break + fi +done +while true +do + read -p "What is your Shares Password?: " SMB_PASS + + if [ -d "$SMB_PASS" ]; then + echo "password=$SMB_PASS" >> /.smb-credentials + sleep 1 + else + echo "password=$SMB_PASS" >> /.smb-credentials + break + fi +done +while true +do + read -p "What is your Shares IP Address?: " SMB_ADDR + read -p "Where is your Share located on the remote server? i.e /mnt/Share: " SMB_REMDIR + + if [ -d "$SMB_ADDR" ]; then + sudo mount -t cifs -o rw,vers=3.0,credentials=/.smb-credentials //$SMB_ADDR/$SMB_REMDIR $MOUNT_DIR + sleep 1 + else + sudo mount -t cifs -o rw,vers=3.0,credentials=/root/.smb-credentials //$SMB_ADDR/$SMB_REMDIR $MOUNT_DIR + break + fi +done \ No newline at end of file diff --git a/scripts/unattended/wpinstall.sh b/scripts/unattended/wpinstall.sh new file mode 100644 index 0000000..2b24646 --- /dev/null +++ b/scripts/unattended/wpinstall.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +trap 'exit 130' INT +while true +do + read -p "Enter The Directory Where you want to install Wordpress: " INSTALL_DIR + + if [ -d "$INSTALL_DIR" ]; then + echo "The Directory $INSTALL_DIR Already Exist" + sleep 1 + else + mkdir -p $INSTALL_DIR + echo "creating $INSTALL_DIR" + break + fi +done +if [ ! -x /usr/bin/curl ] ; then +CURL_NOT_EXIST=1 +apt install -y curl +else +CURL_NOT_EXIST=0 +fi +curl -fsSL -o "latest.zip" https://wordpress.org/latest.zip +apt install unzip -y +unzip latest.zip -d $INSTALL_DIR +cp -r $INSTALL_DIR/wordpress/* $INSTALL_DIR +rm -rf $INSTALL_DIR/wordpress +rm -rf latest.zip +chmod -R 775 $INSTALL_DIR \ No newline at end of file