Scripts
AnythingLLM Roadmap

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