#!/usr/bin/env bash set -euo pipefail ################################################################################ # Configuration ################################################################################ REPO="https://github.com/tomasriveral/vps-config" REPO_DIR="vps-config" ################################################################################ # Helpers ################################################################################ step() { echo echo "==============================================================================" echo "$1" echo "==============================================================================" } ################################################################################ # System update ################################################################################ step "Updating system" apt update apt upgrade -y ################################################################################ # Base packages ################################################################################ step "Installing base packages" apt install -y \ ca-certificates \ curl \ git \ gnupg \ htop \ jq \ fail2ban \ ripgrep \ rclone \ rsync \ ufw \ unattended-upgrades \ unzip \ vim ################################################################################ # User ################################################################################ step "Creating administrator" read -rp "Username: " USERNAME adduser "$USERNAME" usermod -aG sudo,docker "$USERNAME" mkdir -p "/home/$USERNAME/.ssh" cp /root/.ssh/authorized_keys \ "/home/$USERNAME/.ssh/authorized_keys" chown -R "$USERNAME:$USERNAME" "/home/$USERNAME/.ssh" chmod 700 "/home/$USERNAME/.ssh" chmod 600 "/home/$USERNAME/.ssh/authorized_keys" ################################################################################ # Repository ################################################################################ step "Cloning configuration repository" if [ ! -d "$REPO_DIR" ]; then git clone "$REPO" /home/$USERNAME/$REPO_DIR fi cd "/HOME/$USERNAME/$REPO_DIR" chown -R "$USERNAME:$USERNAME" "/home/$USERNAME/" ################################################################################ # Docker ################################################################################ step "Installing Docker repository" install -d -m 0755 /etc/apt/keyrings curl -fsSL \ https://download.docker.com/linux/debian/gpg \ -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc . /etc/os-release cat >/etc/apt/sources.list.d/docker.list <" echo echo "Deploy by running the deploy.sh script"