setup/setup.sh
2025-03-21 01:06:43 +01:00

100 lines
3.3 KiB
Bash

#!/bin/bash
apt update
apt upgrade -y
apt install dialog -y
if [ "$EUID" -ne 0 ];
then echo "root required"
exit
fi
install_util () {
apt install curl dnsutils neofetch build-essential -y
}
install_node () {
apt install curl -y
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
nvm install node
npm i npm@latest -g
npm install yarn pm2 -g
}
install_go () {
cd /tmp
curl -O https://go.dev/dl/go1.24.1.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.1.linux-amd64.tar.gz
echo "export PATH=\$PATH:/usr/local/go/bin" > ~/.bashrc
source ~/.bashrc
}
install_wireguard() {
wget https://git.io/wireguard -O wireguard-install.sh;
chmod +x wireguard-install.sh
}
install_docker() {
curl https://get.docker.com | sudo bash
}
install_public_and_private_ip_route() {
if test -f /etc/systemd/system/delete-route-eth1.service; then
echo "Service delete-route-eth1 already exists!";
return;
fi
echo "[Unit]" >> /etc/systemd/system/delete-route-eth1.service;
echo "Description=delete eth1" >> /etc/systemd/system/delete-route-eth1.service;
echo "Requires=network-online.target" >> /etc/systemd/system/delete-route-eth1.service;
echo "After=network-online.target" >> /etc/systemd/system/delete-route-eth1.service;
echo "" >> /etc/systemd/system/delete-route-eth1.service;
echo "[Service]" >> /etc/systemd/system/delete-route-eth1.service;
echo "Type=oneshot" >> /etc/systemd/system/delete-route-eth1.service;
echo "RemainAfterExit=yes" >> /etc/systemd/system/delete-route-eth1.service;
echo "ExecStartPost=/usr/sbin/ip route del 1.0.0.1 via 10.5.0.1 dev eth1" >> /etc/systemd/system/delete-route-eth1.service;
echo "ExecStartPre=/usr/sbin/ip route del default via 10.5.0.1 dev eth1" >> /etc/systemd/system/delete-route-eth1.service;
echo "ExecStart=/usr/sbin/ip route del 1.1.1.1 via 10.5.0.1 dev eth1" >> /etc/systemd/system/delete-route-eth1.service;
echo "" >> /etc/systemd/system/delete-route-eth1.service;
echo "[Install]" >> /etc/systemd/system/delete-route-eth1.service;
echo "WantedBy=multi-user.target" >> /etc/systemd/system/delete-route-eth1.service;
systemctl daemon-reload;
systemctl enable delete-route-eth1.service;
systemctl start delete-route-eth1.service;
}
cmd=(dialog --output-fd 1 --separate-output --checklist '[ALEKSWILC.dev] Choose the tools to install:' 0 0 0)
load-dialog () {
options=(
1 'Essentials (build tools, dig, curl)' on
2 'Nodejs (via nvm)' off
3 'Wireguard VPN server' off
4 'GO' off
5 'Docker' off
6 'Route for private & public network (systemd)' off
)
choices=$("${cmd[@]}" "${options[@]}")
}
load-dialog
clear
for choice in $choices
do
case $choice in
1) install_util;;
2) install_node;;
3) install_wireguard;;
4) install_go;;
5) install_docker;;
6) install_public_and_private_ip_route;;
esac
done
echo "ALEKSWILC.DEV INSTALL SCRIPT"
echo "INSTALLED!"