operator-installer/00-setup-root.sh
2026-08-03 16:29:17 +02:00

53 lines
1.5 KiB
Bash
Executable file

#!/bin/bash -eu
# Run this script as root on a fresh Debian server
if [ "$EUID" -ne 0 ]; then
echo "Please run this script as root"
exit 1
fi
echo "=== Updating system packages ==="
apt-get update && apt-get upgrade -y
echo "=== Installing dependencies ==="
apt-get install -y curl git ufw nginx certbot python3-certbot-nginx pwgen openssl
echo "=== Installing Docker ==="
curl -fsSL https://get.docker.com | sh
echo "=== Configuring DNS (Quad9) ==="
sed -i 's/1.1.1.1/9.9.9.9/g' /etc/resolv.conf
sed -i 's/8.8.8.8/9.9.9.10/g' /etc/resolv.conf
if [ -f /etc/netplan/50-cloud-init.yaml ]; then
sed -i 's/1.1.1.1/9.9.9.9/g' /etc/netplan/50-cloud-init.yaml
sed -i 's/8.8.8.8/9.9.9.10/g' /etc/netplan/50-cloud-init.yaml
fi
echo "=== Configuring firewall ==="
ufw default deny incoming
ufw default allow outgoing
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 51820/udp
ufw allow 48271/udp
ufw allow 52428/udp
ufw allow 54783/tcp
ufw show added
ufw enable -y
echo "=== Creating Linux user ==="
read -p "Enter a username to create: " LINUX_USERNAME
read -s -p "Enter a password for ${LINUX_USERNAME}: " LINUX_PASSWORD
echo ""
useradd -m -s /bin/bash "$LINUX_USERNAME"
echo "${LINUX_USERNAME}:${LINUX_PASSWORD}" | chpasswd
usermod -aG sudo,docker "$LINUX_USERNAME"
echo ""
echo "User '${LINUX_USERNAME}' created and added to sudo and docker groups."
echo ""
echo "=== Done ==="
echo ""
echo "Next step: log in as '${LINUX_USERNAME}' and run setup-user.sh"