
Scripts
Here are some scripts I made to manage my servers and automate some tasks.
Docker
This script install Docker and Docker Compose on your machine.
#!/bin/bash
# Define logging functions
echo_fail() {
printf "\e[31m✘ \033\e[0m$@\n"
}
echo_pass() {
printf "\e[32m✔ \033\e[0m$@\n"
}
echo_warn() {
printf "\e[33m• \033\e[0m$@\n"
}
echo_pause() {
printf "\e[34mâ¸ï¸Ž \033\e[0m$1\n"
}
echo_question() {
if [ "$2" = "" ]; then
printf "\e[33m? \033\e[0m$@\n"
else
printf "\e[33m? \033\e[0m$@"
fi
}
echo_info() {
printf "\e[34mℹ \033\e[0m$1\n"
}
echo_point() {
if [ "$2" = "" ]; then
printf "\e[34m→ \033\e[0m$1\n"
else
printf "\e[34m→ \033\e[0m$1"
fi
}
echo_bullet() {
printf "\e[34m• \033\e[0m$1\n"
}
echo_wait() {
if [ "$2" = "" ]; then
printf "\e[33mâ²ï¸Ž \033\e[0m$1\n"
else
printf "\e[33mâ²ï¸Ž \033\e[0m$1"
fi
}
# Update package list
echo_info "Updating package list..."
if sudo apt-get update > /dev/null 2>&1; then
echo_pass "Package list updated successfully."
else
echo_fail "Failed to update package list."
exit 1
fi
# Install required packages
echo_info "Installing required packages (ca-certificates, curl)..."
if sudo apt-get install -y ca-certificates curl > /dev/null 2>&1; then
echo_pass "Required packages installed successfully."
else
echo_fail "Failed to install required packages."
exit 1
fi
# Create directory for APT keyrings
echo_info "Creating directory for APT keyrings..."
if sudo install -m 0755 -d /etc/apt/keyrings > /dev/null 2>&1; then
echo_pass "Directory created successfully."
else
echo_fail "Failed to create directory."
exit 1
fi
# Download Docker's GPG key
echo_info "Downloading Docker's GPG key..."
if sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc > /dev/null 2>&1; then
echo_pass "Docker's GPG key downloaded successfully."
else
echo_fail "Failed to download Docker's GPG key."
exit 1
fi
# Add read permissions for everyone to the GPG key
echo_info "Setting read permissions for the GPG key..."
if chmod a+r /etc/apt/keyrings/docker.asc > /dev/null 2>&1; then
echo_pass "Read permissions set successfully."
else
echo_fail "Failed to set read permissions."
exit 1
fi
# Add Docker's APT repository
echo_info "Adding Docker's APT repository..."
if echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null; then
echo_pass "Docker's APT repository added successfully."
else
echo_fail "Failed to add Docker's APT repository."
exit 1
fi
# Update package list again
echo_info "Updating package list again..."
if sudo apt-get update > /dev/null 2>&1; then
echo_pass "Package list updated successfully."
else
echo_fail "Failed to update package list."
exit 1
fi
# Install Docker packages
echo_info "Installing Docker packages (docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin, docker-compose-plugin)..."
if sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin > /dev/null 2>&1; then
echo_pass "Docker packages installed successfully."
else
echo_fail "Failed to install Docker packages."
exit 1
fi