Debian Base Setup
Full server setup script for Debian. Nearly identical to the Ubuntu setup but uses .bashrc for aliases instead of .bash_aliases.
What it does
- System update —
apt update,apt upgrade,apt full-upgrade, installs vim and cursor - User creation — Creates a user with a prompted password
- Docker — Installs Docker via the convenience script, adds user to docker group, enables on startup
- Python — Installs python3 and pip3, installs docker-compose via pip
- Azure CLI — Installs Azure CLI and azcopy (auto-detects ARM64 vs x86_64)
- Shell aliases — Adds
c,s, andllaliases to~/.bashrc - Reboots the system
Script
#!/bin/bash
# Updates
apt update
apt upgrade -y
apt full-upgrade -y
apt install vim -y
apt install cursor -y
# User creation
username="sean"
read -s -p "Enter password for user $username: " password
echo
useradd -m "$username"
echo "$username:$password" | chpasswd
# Docker
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker $username
# Python
apt install python3 -y
apt install python3-pip -y
pip3 install docker-compose
# Docker on startup
systemctl enable docker
# Azure CLI
apt install libffi-dev python3-dev openssl
curl -L https://aka.ms/InstallAzureCli | bash
# azcopy (architecture-aware)
ARCH=$(uname -m)
if [[ "$ARCH" == "aarch64" ]]; then
wget -O downloadazcopy-v10-linux-arm64 https://aka.ms/downloadazcopy-v10-linux-arm64
tar -xf downloadazcopy-v10-linux-arm64
mv azcopy_linux_arm64/azcopy /usr/local/bin/
rm -rf downloadazcopy-v10-linux-arm64 azcopy_linux_arm64
elif [[ "$ARCH" == "x86_64" ]]; then
wget -O downloadazcopy-v10-linux-x64.tar.gz https://aka.ms/downloadazcopy-v10-linux
tar -xf downloadazcopy-v10-linux-x64.tar.gz
mv azcopy_linux_amd64_*/azcopy /usr/local/bin/
rm -rf downloadazcopy-v10-linux-x64.tar.gz azcopy_linux_amd64_*
fi
# Aliases
echo "alias c='cursor'" >> ~/.bashrc
echo "alias s='sudo'" >> ~/.bashrc
echo "alias ll='ls -la'" >> ~/.bashrc
# Reboot
shutdown -r 0Last updated on