Ubuntu install golang

As usual, before installing anything in Ubuntu, run

sudo apt update
sudo apt upgrade

Once done, you can start installing golang. The easiest method to install using the below command.

sudo apt install golang-go

Next is to test if you had successfully install golang. Create a hello.go file, paste the contents below into the hello.go file and save it.

package main

import "fmt"

func main() {
    fmt.Println("hello world")

To execute the file, run the command below.

go run hello.go

Ubuntu install sysstat

Ubuntu install sysstat

sudo apt install sysstat

Once installation completed, enable sysstat by setting the value to true.

sudo vim /etc/default/sysstat


After that restart the sysstat service

sudo service sysstat restart

By default sysstat sample the CPU usage every 10 minutes at 5, 15, 25, 35, 45 and 55 minutes of the hour. To modify it,

sudo vim /etc/cron.d/sysstat


Viewing the stats

To view latest stats


To view yesterday’s stats

sar -f /var/log/sysstat/sa$(date +%d -d 'yesterday')

To view specific date stats

sar -f /var/log/sysstat/sa$(date +%d -d '2019-04-27')


Dynamic IP using Cloudflare

Dynamic IP using Cloudflare

I previously posted an article about updating your DNS with your dynamic IP using paid service I recently found out that you can do the same for free using Cloudflare.


  1. Registered an account with Cloudflare.
  2. Domain configured and active in Cloudflare. If not, read my post on how to configure one.
  3. Installed curl and jq.

Copy the content below into

json='Content-Type: application/json'
dns_id=$(curl -X GET "$zone_id/dns_records?type=A&name=$domain" -H "X-Auth-Email: $email" -H "X-Auth-Key: $api_key" -H "$json"|jq -r .result[0].id)
#echo -n $dns_id
curl -X PUT "$zone_id/dns_records/$dns_id" -H "X-Auth-Email: $email" -H "X-Auth-Key: $api_key" -H "$json" \
--data '{"type":"A","name":"'$domain'","content":"'$ip'","ttl":1,"proxied":true}'

Create a sub domain for you to update dynamically

This is where you can get your global API key

Once clicked [View], your API key will be shown

You can get your Zone ID here

The API I used can be found here

List DNS Records

Update DNS Record


Dynamic IP using

Dynamic IP using


  1. Ubuntu/Linux machine running at home with dynamic IP.
  2. Ubuntu/Linux machine is configured in DMZ or has port 80 forwarded to it.
  3. Registerd a free account at

Bash script below to automatically get your external IP and and update After that put this script to run as a cron job.

curl http://$username:$$hostname&myip=$myip





Ubuntu install Plex media server

Ubuntu install Plex media server

Go to Plex website to get the download URL


cd /tmp
sudo dpkg -i plexmediaserver_1.14.1.5488-cc260c476_amd64.deb
systemctl status plexmediaserver


Go to and start configuring your Plex

Assuming that the videos are in your external hard disk connected to your Ubuntu desktop. You’ll need to run these commands to give user plex to access your drive.

sudo usermod -a -G $MYGROUP plex
sudo chown $USER:$MYGROUP /media/$USER
sudo chmod 750 /media/$USER
sudo setfacl -m g:$MYGROUP:rwx /media/$USER
sudo service plexmediaserver restart

to check your group or the group user plex is in

groups plex


Ubuntu disable sleep on lid close

Ubuntu disable sleep on lid close

I prefer to install Ubuntu Desktop version instead of Ubuntu Server version because it takes care of all the drivers for my laptop. After the installation I’ll disable the GUI.

The screen will stay on at the login prompt and since it is a laptop, there isn’t a power off for the monitor only. Closing the lid will cause the laptop to sleep.

To prevent it from going to sleep. Do these.


Uncomment the 2 lines below and set it to ignore.


Lastly restart the service.

sudo service systemd-logind restart


Ubuntu 18.04 install MySQL Server

Ubuntu 18.04 install MySQL Server

Installation for MySQL is slightly different in 18.04 as compared to 16.04.

sudo apt update
sudo apt install mysql-server -y
sudo mysql -uroot

Now in MySQL console, type the following to check the users.

select user,host,plugin from mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEWPASSWORD';
update mysql.user set host='%' where user='root';

Comment the line bind-address if you like to listen on all addresses.

sudo service mysql restart


Ubuntu install Selenium

Ubuntu install Selenium

Most sites can be crawled with simple wget in Bash but some are loaded at runtime using Javascripts. These sites cannot be crawled using simple wget in Bash. You’ll need something like Selenium.

To install Selenium, Firefox and xvfb. Run these commands.

sudo apt update
sudo apt install python-pip firefox xvfb -y
echo export DISPLAY=:99|sudo tee -a /etc/environment
pip install selenium

Download geckodriver. Extract it and move to /usr/bin/

tar -xzvf geckodriver-v0.24.0-linux64.tar.gz
sudo mv geckodriver /usr/bin/

Login as root, and set to run xvfb at reboot.

sudo su
crontab -e
@reboot Xvfb :99 -ac
reboot now

Create a simple python script to test if your installation is successful.

from selenium import webdriver
driver = webdriver.Firefox()
  print driver.title

Ubuntu install Nokogiri

Ubuntu install Nokogiri

First check if you have Ruby installed in your Ubuntu. Type the following command to check.

ruby -v

If you do not have Ruby installed. Read my Ruby on Rails setup post, and read the install rbenv and then later install Ruby.

If it is showing you your Ruby version then Ruby is already installed in your environment. Next to install Nokogiri, type the command below.

gem install nokogiri

Clean Ubuntu 18.04 quick install Nokogiri

Assuming you are installing Nokogiri using a brand new clean Ubuntu 18.04. To quickly install Nokogiri. Use these following commands.

sudo apt update
sudo apt upgrade -y
sudo apt install ruby ruby-dev libz-dev build-essential -y
sudo gem install nokogiri