infrastructure/src/mainserver.sh

60 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# Check if we are running as sudo, if not, exit
if [ "$EUID" -ne 0 ]; then
echo "Please run as root. Maybe try 'sudo !!'"
exit
fi
if [ -z "$1" ]; then
echo "You need to specify arguments for this script."
echo "bash mainserver.sh secrets # Allow script to run, after you have configured secrets and SSH private key."
exit
fi
# Do everything in general.sh first
bash general.sh secrets
# Required for later things
groupadd media
mkdir /dockerData
# Change SSH Port
sed -i 's/#Port 22/Port 1000/g' /etc/ssh/sshd_config
systemctl restart sshd
# Install docker
## INFO: https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
systemctl enable --now docker
# Install Plex
echo "deb [signed-by=/usr/share/keyrings/plex.gpg] https://downloads.plex.tv/repo/deb public main" | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
sudo wget -O- https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | sudo tee /usr/share/keyrings/plex.gpg
sudo apt-get update
sudo apt-get install plexmediaserver -y
# Copy secrets
cp ./resources/secrets/*.txt ~
# Add crontabs
(crontab -l ; echo "*/15 * * * * /root/ddns.sh") | crontab -
(crontab -l ; echo "0 1 * * * /root/scripts/Backup/Backup.sh") | crontab -
(crontab -l ; echo "0 2 * * * docker image prune -a -f && docker volume prune -f && docker network prune -f") | crontab -
(crontab -l ; echo "0 * * * * curl --silent https://missionpark.net?es=cron&guid=edaiqo-pgoemj-cenpat-cbgkjr-fomgjy > /dev/null 2>&1") | crontab -
echo
echo "Almost there!"
echo "- Setup Docker Container Secrets & Start Containers"
echo "- Setup HealthChecks for Cron Jobs"
echo "- Setup Plex by going to: http://MACHINEIP:32400/web"
echo
cd ~ || exit