VPS installer improved, non-interactive changes made
This commit is contained in:
parent
1e90067128
commit
853980b4bf
|
@ -1,27 +0,0 @@
|
|||
#!/bin/sh
|
||||
cat super.txt
|
||||
|
||||
DISTRO_VERSION=$(cat /etc/os-release | grep PRETTY_NAME | cut -d= -f2 | tr -d '"')
|
||||
ARCH=$(uname -m)
|
||||
|
||||
CPU_NAME=$(lscpu | grep "Model name" | cut -d: -f2 | sed -e 's/^[[:space:]]*//')
|
||||
CPU_COUNT=$(lscpu | grep "Socket(s):" | cut -d: -f2 | sed -e 's/^[[:space:]]*//')
|
||||
THREAD_COUNT=$(lscpu | grep -E '^Socket\(s\)|^Core\(s\) per socket|^Thread\(s\) per core' | awk '{print $NF}' | tr '\n' ' ' | awk '{print $1 * $2 * $3}')
|
||||
|
||||
TOTAL_RAM=$(free | grep Mem | awk '{printf "%.2f GB\n", $2/1024/1024}')
|
||||
DISK_USAGE=$(df -h "$(pwd)" | awk 'NR==2 {print $3"B / "$2"B"}')
|
||||
CPU_INFO="${CPU_COUNT}x ${CPU_NAME} with ${THREAD_COUNT} threads each"
|
||||
|
||||
DARK_GREY='\033[0;90m'
|
||||
CYAN='\033[0;36m'
|
||||
NO_COLOR='\033[0m'
|
||||
SEP="${DARK_GREY}│${NO_COLOR}"
|
||||
|
||||
echo ""
|
||||
echo "┏┓┳┳┏┓┏┓┳┓ ${CYAN}Hostname${NO_COLOR} ${DARK_GREY}┃${NO_COLOR} $(cat /etc/hostname)"
|
||||
echo "┗┓┃┃┃┃┣ ┣┫ ${CYAN}Build${NO_COLOR} ${DARK_GREY}┃${NO_COLOR} $DISTRO_VERSION ($ARCH)"
|
||||
echo "┗┛┗┛┣┛┗┛┛┗ ${CYAN}CPU${NO_COLOR} ${DARK_GREY}┃${NO_COLOR} $CPU_INFO"
|
||||
echo "┳┓┏┓┏┳┓┏┓ ${CYAN}RAM${NO_COLOR} ${DARK_GREY}┃${NO_COLOR} $TOTAL_RAM"
|
||||
echo "┃┃┣ ┃ ┗┓ ${CYAN}DISK${NO_COLOR} ${DARK_GREY}┃${NO_COLOR} $DISK_USAGE"
|
||||
echo "┛┗┗┛ ┻ ┗┛ ${CYAN}IP${NO_COLOR} ${DARK_GREY}┃${NO_COLOR} $(curl -s https://4.icanhazip.com)"
|
||||
echo ""
|
|
@ -1,16 +0,0 @@
|
|||
[37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;103m [37;101m [37;103m [37;101m [37;103m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;103m [37;101m [37;103m [37;101m [37;103m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;103m [37;101m [37;103m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;103m [37;101m [37;103m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;103m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;103m [37;101m [37;103m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;103m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;103m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [37;101m [37;104m [0m
[0m
|
||||
[37;104m [0m
[0m
|
||||
[37;104m [0m[0m
|
116
vps
116
vps
|
@ -1,21 +1,29 @@
|
|||
#!/bin/bash
|
||||
# enter the void (vps) - developed by acidvegas (https://git.acid.vegas/void)
|
||||
|
||||
# xbps-install -Su && xbps-install -u xbps && xbps-install wget && wget https://git.supernets.org/acidvegas/void/raw/branch/master/vps && chmod +x vps && ./vps root
|
||||
# Notes:
|
||||
#
|
||||
# MUSL builds for Void Linux are having an issue where `su` is segfaulting or returning "Bad address"
|
||||
#
|
||||
# Bootstrap:
|
||||
# xbps-install -Su && xbps-install -u xbps && xbps-install wget nano && wget https://git.supernets.org/acidvegas/void/raw/branch/master/vps && chmod +x vps && ./vps root
|
||||
|
||||
set -xev
|
||||
|
||||
# Configuration
|
||||
ARCH=x86_64 # x86_64 or x86_64-musl
|
||||
DRIVE=/dev/vda
|
||||
HOSTNAME=blackhole
|
||||
SWAP_SIZE=1 # In GB (set to 0 to disable)
|
||||
SWAP_SIZE=$((1 * 1024)) # 1GB
|
||||
TIMEZONE="America/New_York"
|
||||
USERNAME=supernets
|
||||
|
||||
# Let's dynamically set the hostname so we don't have to hardcode it
|
||||
echo "Hostname:"
|
||||
read HOSTNAME
|
||||
|
||||
setup_root() {
|
||||
xbps-install parted
|
||||
wipefs -a $DRIVE
|
||||
xbps-install -y parted
|
||||
wipefs -a -f $DRIVE
|
||||
parted --script $DRIVE mklabel msdos
|
||||
parted --script $DRIVE mkpart primary ext4 1MiB 100%
|
||||
parted --script $DRIVE set 1 boot on
|
||||
|
@ -26,7 +34,7 @@ setup_root() {
|
|||
cp /var/db/xbps/keys/* /mnt/var/db/xbps/keys/
|
||||
REPO=https://repo-default.voidlinux.org/current
|
||||
[ $ARCH = 'x86_64-musl' ] && REPO=$REPO/musl
|
||||
XBPS_ARCH=$ARCH xbps-install -S -r /mnt -R "$REPO" base-system linux
|
||||
XBPS_ARCH=$ARCH xbps-install -y -S -r /mnt -R "$REPO" base-system linux
|
||||
cp vps /mnt/root/
|
||||
xchroot /mnt /bin/bash
|
||||
}
|
||||
|
@ -35,33 +43,35 @@ setup_chroot() {
|
|||
passwd
|
||||
|
||||
xbps-install -u xbps
|
||||
xbps-install -Su
|
||||
xbps-remove base-system openssh
|
||||
xbps-install curl dropbear git lxd iptables nano net-tools tmux socklog-void wget
|
||||
xbps-remove -y base-system openssh
|
||||
xbps-install -Syu curl dropbear git htop lxd iptables nano net-tools runit-iptables tmux socklog-void wget
|
||||
|
||||
IP_ADDR=$(ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1)
|
||||
GATEWAY=$(ip route show default | awk '/default/ {print $3}')
|
||||
printf "ip link set eth0 up\nip addr add ${IP_ADDR}/24 dev eth0\nip route add default via $GATEWAY\n" > /etc/rc.local
|
||||
printf "printf \"nameserver 208.67.222.222\\\nnameserver 208.67.220.220\\\nnameserver 2620:119:35::35\\\nnameserver 2620:119:53::53\" > /etc/resolv.conf" >> /etc/rc.local
|
||||
|
||||
>/var/log/lastlog && chattr +i /var/log/lastlog
|
||||
|
||||
SSH_PORT=$(shuf -i 2023-65000 -n 1)
|
||||
printf '#!/bin/sh\nexec 2>&1\n[ -r conf ] && . ./conf\nexec dropbear -K 0 -p '"$SSH_PORT"' -R -m -w -t -T 1 -F 2>&1\n' > /etc/sv/dropbear/run
|
||||
echo "$HOSTNAME" > /etc/hostname
|
||||
printf '#!/bin/sh\nexec 2>&1\n[ -r conf ] && . ./conf\nexec dropbear -K 0 -p %s -R -w -t -T 1 -F 2>&1\n' "$(shuf -i 10000-65534 -n 1)" > /etc/sv/dropbear/run
|
||||
printf "\nexport HISTFILE=/dev/null\nexport LESSHISTFILE=/dev/null\nexport PYTHONHISTFILE=/dev/null\n" >> /etc/profile
|
||||
printf "set boldtext\nset minibar\nset nohelp\nset nowrap\nset quickblank\nset tabsize 4\nunbind ^J main\nset selectedcolor black,red\ninclude \"/usr/share/nano/*.nanorc\"\n" > /etc/nanorc
|
||||
echo "hsts=0" >> /etc/wgetrc
|
||||
#printf "Defaults lecture = always\nDefaults lecture_file = /etc/sudoers.d/sudoers.lecture\nroot ALL=(ALL) ALL\n%%wheel ALL=(ALL) ALL\n" > /etc/sudoers
|
||||
#printf "\n\033[1m \033[32m\"Bee\" careful \033[34m__\n \033[32mwith sudo! \033[34m// \ \n \\\\\\_/ \033[33m//\n \033[35m''-.._.-''-.._.. \033[33m-(||)(')\n '''\033[0m\n" > /etc/sudoers.d/sudoers.lecture
|
||||
>/var/log/lastlog && chattr +i /var/log/lastlog
|
||||
|
||||
echo "proc /proc proc defaults,hidepid=2 0 0" >> /etc/fstab
|
||||
mount -o remount /proc
|
||||
|
||||
# Enable services
|
||||
ln -s /etc/sv/socklog-unix/ /etc/runit/runsvdir/default/ # We use this instead of /var/service because the system is not currently running
|
||||
ln -s /etc/sv/nanoklogd/ /etc/runit/runsvdir/default/
|
||||
ln -s /etc/sv/dropbear/ /etc/runit/runsvdir/default/
|
||||
ln -s /etc/sv/lxd /etc/runit/runsvdir/default/
|
||||
ln -s /usr/share/zoneinfo/$TIMEZONE /etc/localtime
|
||||
|
||||
touch /swapfile
|
||||
dd if=/dev/zero of=/swapfile bs=1M count=${SWAP_SIZE} status=progress
|
||||
chmod 0600 /swapfile
|
||||
mkswap /swapfile && swapon /swapfile
|
||||
|
||||
hwclock --systohc
|
||||
chsh -s /bin/bash
|
||||
|
||||
|
@ -72,17 +82,68 @@ setup_chroot() {
|
|||
if [ ! $ARCH = 'x86_64-musl' ]; then
|
||||
xbps-reconfigure -f glibc-locales
|
||||
fi
|
||||
echo "$HOSTNAME" > /etc/hostname
|
||||
|
||||
|
||||
# Setup fstab
|
||||
echo "UUID=$(blkid -s UUID -o value ${DRIVE}1) / ext4 rw,errors=remount-ro,noatime 0 1" > /etc/fstab
|
||||
echo "tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0" >> /etc/fstab
|
||||
|
||||
touch /swapfile
|
||||
COUNT=$(($SWAP_SIZE * 1024))
|
||||
dd if=/dev/zero of=/swapfile bs=1M count=${COUNT} status=progress
|
||||
chmod 0600 /swapfile
|
||||
mkswap /swapfile && swapon /swapfile
|
||||
echo "/swapfile none swap sw 0 0" >> /etc/fstab
|
||||
echo "proc /proc proc defaults,hidepid=2 0 0" >> /etc/fstab
|
||||
mount -o remount /proc
|
||||
|
||||
# Preseed LXD initialization
|
||||
{
|
||||
echo "config:"
|
||||
echo " images.auto_update_interval: \"0\""
|
||||
echo "networks:"
|
||||
echo "- config:"
|
||||
echo " ipv4.address: auto"
|
||||
echo " ipv6.address: none"
|
||||
echo " description: \"\""
|
||||
echo " name: lxdbr0"
|
||||
echo " type: \"\""
|
||||
echo " project: default"
|
||||
echo "storage_pools: []"
|
||||
echo "profiles:"
|
||||
echo "- config: {}"
|
||||
echo " description: \"\""
|
||||
echo " devices:"
|
||||
echo " eth0:"
|
||||
echo " name: eth0"
|
||||
echo " network: lxdbr0"
|
||||
echo " type: nic"
|
||||
echo " name: default"
|
||||
echo "projects: []"
|
||||
echo "cluster: null"
|
||||
} | lxd init --preseed
|
||||
|
||||
# Add the official SuperNETs seal of HARD FUCKIGN CORE INTERNET USAGE into the MOTD
|
||||
{
|
||||
echo ""
|
||||
echo " \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;103m \033[37;101m \033[37;103m \033[37;101m \033[37;103m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo "\033[37;104m \033[37;101m \033[37;103m \033[37;101m \033[37;103m \033[37;101m \033[37;103m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo "\033[37;104m \033[37;101m \033[37;103m \033[37;101m \033[37;103m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;103m \033[37;101m \033[37;103m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;103m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;103m \033[37;101m \033[37;103m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;103m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;103m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo " \033[37;104m \033[37;101m \033[37;104m \033[0m \033[0m"
|
||||
echo "┏┓┳┳┏┓┏┓┳┓ \033[37;104m \033[37;101m \033[37;104m \033[0m ┳┓┏┓┏┳┓┏┓"
|
||||
echo "┗┓┃┃┣┛┣ ┣┫ \033[37;104m \033[0m ┃┃┣ ┃ ┗┓"
|
||||
echo "┗┛┗┛┻ ┗┛┛┗ \033[37;104m \033[0m\033[0m ┛┗┗┛ ┻ ┗┛"
|
||||
echo ""
|
||||
} > /etc/motd
|
||||
|
||||
# Set up user SSH keys
|
||||
mkdir -p /home/$USERNAME/.ssh
|
||||
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgw6zK6LghGq/6fdMGFKfH9fr+qCOASlD+Xi7Zoe7Ps" > /home/$USERNAME/.ssh/authorized_keys
|
||||
chmod 700 $HOME/.ssh && chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh
|
||||
chmod 400 $HOME/.ssh/authorized_keys && chattr +i $HOME/.ssh/authorized_keys && chattr +i $HOME/.ssh
|
||||
|
||||
xbps-install -Sy grub
|
||||
grub-install $DRIVE
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
@ -90,13 +151,6 @@ setup_chroot() {
|
|||
xbps-reconfigure -fa
|
||||
}
|
||||
|
||||
setup_user() {
|
||||
mkdir -p $HOME/.ssh
|
||||
printf "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgw6zK6LghGq/6fdMGFKfH9fr+qCOASlD+Xi7Zoe7Ps" > $HOME/.ssh/authorized_keys
|
||||
chmod 700 $HOME/.ssh && chown -R $USER $HOME/.ssh
|
||||
chmod 400 $HOME/.ssh/authorized_keys && chattr +i $HOME/.ssh/authorized_keys && chattr +i $HOME/.ssh
|
||||
}
|
||||
|
||||
[ $1 = "root" ] && setup_root
|
||||
[ $1 = "chroot" ] && setup_chroot
|
||||
[ $1 = "user" ] && setup_user
|
||||
|
|
Loading…
Reference in New Issue