Docker Quickinstall
Quick Install Script
Below is the content of the docker.sh script, which is used to install Docker on a Debian-based system.
#!/bin/bash
# Check if the script is run as root, otherwise use sudo
if [ "$(whoami)" != "root" ]; then
SUDO=sudo
fi
# Add Docker's official GPG key
${SUDO} apt-get update
${SUDO} apt-get install ca-certificates curl
${SUDO} install -m 0755 -d /etc/apt/keyrings
${SUDO} curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
${SUDO} chmod a+r /etc/apt/keyrings/docker.asc
# Add the Docker repository to Apt sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
${SUDO} tee /etc/apt/sources.list.d/docker.list > /dev/null
${SUDO} apt-get update
# Install Docker packages
${SUDO} apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
This script will add Docker's official GPG key, set up the Docker repository, and install Docker along with its associated tools on a Debian-based system.
Wireguard VPN Setup
This guide assumes you have a clean Debian box with root access.
VPN Setup Script
Below is a bash script to set up a Wireguard VPN server and client configuration.
#!/bin/bash
# Update and install necessary packages
apt-get update
apt-get -y install wireguard wireguard-tools curl
# Prepare variables
export IFACE_NAME=$(ip route | awk '/default/ { print $5 }')
export PUBLIC_IP=$(curl -4 "ifconfig.me")
# Generate server keys
mkdir -p /etc/wireguard/server
wg genkey | tee /etc/wireguard/server/privatekey | wg pubkey > /etc/wireguard/server/publickey
# Generate client keys
mkdir -p /etc/wireguard/clients/client-1
wg genkey | tee /etc/wireguard/clients/client-1/privatekey | wg pubkey > /etc/wireguard/clients/client-1/publickey
# Server configuration
echo "[Interface]" > /etc/wireguard/wg0.conf
echo "PrivateKey = $(cat /etc/wireguard/server/privatekey)" >> /etc/wireguard/wg0.conf
echo "Address = 10.4.5.1/24" >> /etc/wireguard/wg0.conf
echo "ListenPort = 51820" >> /etc/wireguard/wg0.conf
echo "" >> /etc/wireguard/wg0.conf
echo "PostUp = sysctl net.ipv4.ip_forward=1" >> /etc/wireguard/wg0.conf
echo "PostUp = iptables -A FORWARD -i $IFACE_NAME -o %i -j ACCEPT" >> /etc/wireguard/wg0.conf
echo "PostUp = iptables -A FORWARD -i %i -j ACCEPT" >> /etc/wireguard/wg0.conf
echo "PostUp = iptables -t nat -A POSTROUTING -o $IFACE_NAME -j MASQUERADE" >> /etc/wireguard/wg0.conf
echo "" >> /etc/wireguard/wg0.conf
echo "PostDown = sysctl net.ipv4.ip_forward=0" >> /etc/wireguard/wg0.conf
echo "PostDown = iptables -D FORWARD -i $IFACE_NAME -o %i -j ACCEPT" >> /etc/wireguard/wg0.conf
echo "PostDown = iptables -D FORWARD -i %i -j ACCEPT" >> /etc/wireguard/wg0.conf
echo "PostDown = iptables -t nat -D POSTROUTING -o $IFACE_NAME -j MASQUERADE" >> /etc/wireguard/wg0.conf
echo "" >> /etc/wireguard/wg0.conf
echo "[Peer]" >> /etc/wireguard/wg0.conf
echo "PublicKey = $(cat /etc/wireguard/clients/client-1/publickey)" >> /etc/wireguard/wg0.conf
echo "AllowedIPs = 10.4.5.0/24" >> /etc/wireguard/wg0.conf
echo "PersistentKeepalive = 15" >> /etc/wireguard/wg0.conf
# Client configuration
echo "[Interface]" > /etc/wireguard/clients/client-1/wg0.conf
echo "PrivateKey = $(cat /etc/wireguard/clients/client-1/privatekey)" >> /etc/wireguard/clients/client-1/wg0.conf
echo "Address = 10.4.5.2/24" >> /etc/wireguard/clients/client-1/wg0.conf
echo "DNS = 8.8.8.8,8.8.4.4,1.1.1.1" >> /etc/wireguard/clients/client-1/wg0.conf
echo "" >> /etc/wireguard/clients/client-1/wg0.conf
echo "[Peer]" >> /etc/wireguard/clients/client-1/wg0.conf
echo "PublicKey = $(cat /etc/wireguard/server/publickey)" >> /etc/wireguard/clients/client-1/wg0.conf
echo "Endpoint = ${PUBLIC_IP}:51820" >> /etc/wireguard/clients/client-1/wg0.conf
echo "AllowedIPs = 0.0.0.0/0" >> /etc/wireguard/clients/client-1/wg0.conf
echo "PersistentKeepalive = 15" >> /etc/wireguard/clients/client-1/wg0.conf
# Start and enable the Wireguard service
systemctl start wg-quick@wg0
systemctl enable wg-quick@wg0
This script will install Wireguard, generate keys for the server and a client, and configure both the server and client settings. It also sets up the necessary iptables rules for forwarding traffic and starts the Wireguard service.