Category: Tutorials

  • Install WireGuard on Ubuntu LTS

    sudo apt update -y && sudo apt upgrade -y
    sudo apt install linux-headers-$(uname -r) wireguard wireguard-dkms net-tools -y
    Bash
    sudo nano /etc/wireguard/wg0.conf
    Bash
    [Interface]
    Address = 10.10.0.1/24
    SaveConfig = true
    ListenPort = 51820
    PrivateKey = SERVER_PRIVATE_KEY
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
    Conf
    sudo wg-quick up wg0
    Bash
    sudo wg show wg0
    Bash
    sudo systemctl enable wg-quick@wg0
    Bash

    For NAT to work, we need to enable IP forwarding. Open the /etc/sysctl.conf file and add or uncomment the following line

    sudo nano /etc/sysctl.conf
    Bash
    net.ipv4.ip_forward=1
    sudo sysctl -p
    Bash
    wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
    Bash
    sudo nano /etc/wireguard/wg0.conf
    Bash

    For setting up IP Port forwarding, Add the subnet in AllowedIPs in wg0.conf and also:

    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
    PostUp = /etc/wireguard/port-up.sh
    
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE
    PostDown = /etc/wireguard/port-down.sh
    Conf

    In the port-up.sh

    sudo iptables -t nat -A PREROUTING -p tcp --dport 5060 -j DNAT --to-destination 10.30.30.14:5060
    Bash
  • Install GraalVM on Ubuntu 18.04 LTS

    Install GraalVM on Ubuntu 18.04 LTS

    cd ~/
    wget "https://github.com/oracle/graal/releases/download/vm-19.1.1/graalvm-ce-linux-amd64-19.1.1.tar.gz" -O graalvm.tar.gz
    tar xvf graalvm.tar.gz
    rm graalvm.tar.gz
    echo "export PATH=$HOME/graalvm-ce-19.1.1/bin:$PATH" >> ~/.bashrc
    echo "export \"JAVA_HOME=$HOME/graalvm-ce-19.1.1\"" >> ~/.bashrc
    source ~/.bashrc

    For adding Native Image support

    gu install native-image

    Make sure you have GCC installed

    sudo apt install build-essential zlib1g-dev -y
  • Install Redis on Ubuntu 18.04

    sudo apt-get update -y &&  sudo apt-get upgrade -y
    sudo apt-get install redis-server
    sudo nano /etc/redis/redis.conf
    supervised systemd
    bind 127.0.0.1 ::1
    sudo systemctl enable redis-server.service
    sudo systemctl restart redis.service
  • Install Docker on Ubuntu 24.04

    Install latest

    curl -fsSL https://gist.githubusercontent.com/abrar71/469a26fe5c1b76a0cda59031d179517a/raw/install-docker.sh | sudo bash
    Bash
    curl -fsSL https://gist.githubusercontent.com/abrar71/469a26fe5c1b76a0cda59031d179517a/raw/install-docker.sh | sudo bash

    Install version specific script

    curl -fsSL https://gist.github.com/abrar71/469a26fe5c1b76a0cda59031d179517a/raw/e46a5c0759ea4e31670af7c00dd6685ea8847556/install-docker.sh | sudo bash
    Bash

    Manually install

    sudo apt update -y && sudo apt upgrade -y
    Bash
    sudo apt install apt-transport-https ca-certificates \
      curl software-properties-common -y
    Bash
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    Bash
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    Bash
    sudo apt update -y
    Bash
    sudo apt install docker-ce -y
    Bash
    sudo usermod -aG docker ${USER}
    Bash
    sudo systemctl enable docker
    Bash
    sudo su - ${USER}
    Bash

  • Install Node JS LTS on Ubuntu LTS with NVM

    sudo apt update -y
    Bash
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
    Bash
    source ~/.profile
    nvm install --lts
    nvm use --lts
    Bash