server-setup/setup_server.sh

82 lines
2.2 KiB
Bash
Executable file

#!/bin/bash
## Define admin user account
export ADMIN_ACCOUNT=sys-admin
## Define bulk storage location
export ZFS_DIR=/data
## Check if user is root
if [ 'whoami' != 'root' ];then
su -
fi
## Ensure HOME directories are stored in ${ZFS_DIR}/home
awk '{sub("#HOME=/home","HOME=/home")} {print}' /etc/default/useradd > /tmp/temp.txt && mv /tmp/temp.txt /etc/default/useradd
awk '{sub("# HOME=/home","HOME=/home")} {print}' /etc/default/useradd > /tmp/temp.txt && mv /tmp/temp.txt /etc/default/useradd
awk -v dir=${ZFS_DIR}/home '{sub("HOME=/home","HOME="dir)} {print}' /etc/default/useradd > /tmp/temp.txt && mv /tmp/temp.txt /etc/default/useradd
## Install a few helpful packages
apt update
apt install -y cockpit
apt update
apt install -y htop nano rsync wget tree
## Check if administrator account exists
if id ${ADMIN_ACCOUNT} &>/dev/null; then
echo 'Admin User account found'
else
## Create and su into sys-admin
echo 'Creating Admin User account ...'
useradd -m -d ${ZFS_DIR}/home/${ADMIN_ACCOUNT} -G sudo ${ADMIN_ACCOUNT}
passwd ${ADMIN_ACCOUNT}
# adduser ${ADMIN_ACCOUNT}
echo "User account created"
fi
su - ${ADMIN_ACCOUNT}
echo "Setting up Docker ..."
## Uninstall old versions
sudo apt remove docker docker-engine docker.io containerd runc
## Set up repository
# sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## Install Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
./gitlab_install.sh
./jupyterhub_install.sh
./mineos_install.sh
./netbootxyz_install.sh
./nextcloud_install.sh
./plex_install.sh
echo "Setup Complete!"
###########################################